测试开发之自动化篇-有效测试数据管理

news2024/11/27 9:36:43

我们知道在测试设计时,对于一些操作相似的场景,可以采用步骤同数据相分离的方法来描述。这样的用例内容精炼、逻辑清晰,也利于未来自动化测试脚本的复用。

数据驱动测试是一种流行的软件测试方法,用于归纳性、结构化和集中化地描述测试中有规律的输入、可验证的输出,以及环境等配置项。

如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以加裙485187702,群内会有不定期的发放免费的资料链接,这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

image.png

好的测试数据,通常具有以下几个特征:

  • 覆盖全面的业务操作场景
  • 涵盖尽可能多的异常路径
  • 避免等价类数据间的冗余
  • 同时包括输入和输出数据
  • 提炼系统、浏览器、设备等软硬件环境差异
  • 取值特征明确,具有可操作性

我们在自动化测试中,通常会将数据保存在文本文件、Excel或数据库中。实际使用时,利用自动化测试框架的数据提供者特性,来封装数据调用。以下是几个主流测试工具采取的数据萃取方法。

功能自动化工具 - HP UFT (QTP) 使用了一个二维表格管理数据

image.png

性能/接口测试工具 - JMeter 使用XPath读取XML等结构化文件

单元测试工具 - TestNG 提供了DataProvider数据提供者机制

image.png

有关测试数据的管理,这里给大家介绍一个开源利器 - 禅道ZenData。他使用了YAML文件来定义测试数据,支持定义间的继承、覆盖和引用,具备语法简明、结构清晰、配置灵活和复用方便等优点。以下,我们用几个例子来说明其简单而丰富的语法特性。

支持区间(a-z)、步长(3)、随机(R)、重复({3})、循环(loop)、前后缀(prefix)

title: 测试
fields:

- field: test
  range: a-z:3, 1-9:R, x-y{3}
  loop: 3  
  loopfix: |
  rand: true
  prefix: "["  
  postfix: "]\t"

可格式化(format)、补白(leftpad)、嵌套(fields),平行和递归地迭代数据(mode)

title: 测试
fields:

- field: field1
  mode: r

  fields: 
  - field: field1.1
    range: 1-9
    format: "passwd%02d”

  - field: field1.2
    range: 1-99  
    length: 2
    leftpad: 0

支持时间运算(-1M为一月前)、常用函数(md5)和值表达式(value)解析

title: 测试
fields:

- field: time                  
  range: “(-1M)-(+1w):60”
  type: timestamp 
  format: "YY/MM/DD hh:mm:ss”

- field: function                  
  range: 1000-9999
  format: md5

- field: number                  
  value: 1-9
- field: expression                  
  value: "$ number * 3 + 1000"

可从文件中读取(range)、Excel中查询(select)、其他YAML定义中引用(from)数据

title: 测试
fields:

- field: file                  
  range: users.txt:R

- field: query                  
  from: address.cn.v1.china
  select: city
  where: state like '%山东%'     
  limit: 3

- field: refer                  
  from: ip.v1.yaml 
  use: privateC{3}

ZenData內置了一些常见的国家、地址、姓名、颜色、互联网”黑话“等基础数据,支持文本、JSON、XML、SQL、CSV、Excel、ProtoBuf和大段文章8种数据输出格式,还提供了一个Web界面以方便初次使用的人员。

image.png

测试人员也可以通过接口来使用测试数据,以下命令在8848端口启动了一个数据服务,并使用curl命令获取了100行demo/test.yaml配置文件所定义的数据。

./zd –p 8848
curl -i -X POST http://localhost:8848/data?lines=100&T=true&config=demo/test.yaml

为了更好地实现数据驱动的目标,我们可以封装ZenData数据服务接口成为一个DataProvider,在测试框架中直接使用。
以下是使用TestNG测试WordPress文章发布功能的示例。这里使用测试方法publishArticle反复提交文章,其引用了名为articleData的数据提供者来从ZenData服务获取数据。


@Test(dataProvider="articleData")
public void publishArticle(Map<String, String> data) {
    load("wp-admin/post-new.php");
    waitTitle("撰写");

    if (round == 0) {
        clickIfExist(By.cssSelector("[aria-label='关闭对话框'"));
    }

    clickIfExist(By.cssSelector(".edit-post-post-status"));

    String title = data.get("title") + "-" + TimeUtils.DataTimeStr();
    titles.add(title);
    inputIfExist(By.cssSelector("textarea.editor-post-title__input"), title);
    clickIfExist(By.cssSelector(".block-editor-default-block-appender__content"));
    inputIfExist(By.cssSelector(".wp-block-paragraph"), data.get("content"));

    clickIfExist(By.xpath("//button[contains(text(), '发布')]"));
    sleep(1);
    clickIfExist(By.xpath("//button[text()='发布']"));

    round++;
    sleep(2);
}

@DataProvider(name="articleData")
public Iterator<Object[]> articleData() throws Exception{
    String fileName="articles.csv";
    return new CsvDataProvider(fileName);
}

最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!【100%无套路免费领取】

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

8小时传疯!大厂面试真题全被大佬整理在这个小程序上了!【软件测试,建议收藏】

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础 

  全套资料获取方式:点击下方小卡片自行领取即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1177412.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux开发板移植FTP服务器和OpenSSH时发现的问题

先上结论&#xff1a;如果在linux开发板上移植了OpenSSH&#xff0c;那么不仅可以远程登录Linux开发板&#xff0c;还可以用FileZilla在windows和Linux开发板之间传输文件&#xff0c;这时候就不需要移植vsftpd(移植vsftpd后windows可以用FileZilla跟Linux开发板传输文件)了&am…

【Unity ShaderGraph】| 快速制作一个 表面水纹叠加效果

前言 【Unity ShaderGraph】| 快速制作一个 表面水纹叠加效果一、效果展示二、表面水纹叠加效果三、应用实例 前言 本文将使用ShaderGraph制作一个表面水纹叠加效果&#xff0c;可以直接拿到项目中使用。对ShaderGraph还不了解的小伙伴可以参考这篇文章&#xff1a;【Unity Sh…

CentOS/RHEL7环境下更改网卡名称为CentOS6的传统命名规则

图片 CentOS/RHEL7网卡命名规则介绍 图片 传统的Linux服务器网卡的名称命名方式是从eth0,eth1,eth2....这种方式命名的&#xff0c;但是这个编号往往不一定准确对应网卡接口的物理顺序&#xff0c;常规模式下我们使用的服务器设备可能只有一张网卡&#xff0c;若网卡较多的情…

抖音10月榜单有哪些看点?

10月20日&#xff0c;抖音双11好物节在抖音平台正式开启抢跑&#xff0c;据数据显示&#xff0c;截止10月31日平台多项双11销售增长记录再次被刷新。 *新抖双十一活动也已开启&#xff0c;最高可省30788元&#xff0c;活动详情&#x1f449; 抖音平台内大促氛围火爆&#xff0…

桶装水订水系统水厂送水小程序开发;

桶装水小程序正式上线&#xff0c;支持多种商品展示形式&#xff0c;会员卡、积分、分销等功能&#xff1b; 开发订水送水小程序系统&#xff0c;基于用户、员工、商品、订单、配送站和售后管理模块&#xff0c;对每个模块进行统计分析&#xff0c;简化了分配过程&#xff0c;提…

虹科教您 | 如何选择超声波储罐液位传感器(一)

在储罐中安装传感器时需要考虑&#xff1a; 1.避开障碍物 - 罐壁或罐内的其他障碍物会导致测距读数不准确。 2.放置会影响读数 - 初始的过滤设置是让传感器优先考虑大目标而不是小目标和噪音源。这有利于储罐液位监测的应用&#xff0c;因为液位往往会产生最大的返回声波。 …

ES 报错问题汇总

报错1&#xff1a; curl -XGET http://192.168.56.115:9200/_license解决方式 在 es/config/elasticsearch.yml文件,把开启密码验证把此处也修改成false xpack.security.enabled: false 报错2&#xff1a; 解决方式&#xff1a; 查看服务器es的license信息&#xff0c;发现 …

信驰达RF-DG-52PAS CC2652P Zigbee 3.0 USB Dongle烧录指南

一、使用前准备 RF-DG-52PAS是信驰达科技基于美国 TI CC2652P和CP2102为核心设计的Zigbee 3.0 USB Dongle,可烧录 Z-Stack 3.x.0协调器固件&#xff0c;可以直接连接到计算机或树莓派&#xff0c;通过ZHA或 Zigbee2MQTT连接到 Home Assistant或其他开源物联网平台。还可以烧录…

软件测试面试看这套全网最权威最全面的800+面试题,你值得拥有

想转行的&#xff0c;想跳槽涨薪的&#xff0c;想换一份更舒服更美好的工作的现在可以准备起来了。 软件测试作为IT届最亲民的门槛最低的准入行业&#xff0c;每年在这个时候会迎来很多的小白&#xff0c;在自学一段时间后&#xff0c;马上面临着面试的压力。 全网最权威最全…

【方法】Word文档如何防止更改?

做好的Word文档&#xff0c;担心查看的时候&#xff0c;不小心做了更改&#xff0c;除了可以将Word文档转换成PDF&#xff0c;还可以直接在Word文档里设置保护&#xff0c;防止更改&#xff0c;下面小编来分享3种常用的保护方法。 方法一&#xff1a;设置以“只读方式”打开文档…

CZ发布减半倒计时!暗示投资者熊转牛拐点即将到来?

近日&#xff0c;币安创始人兼首席执行官赵长鹏(CZ)在推特贴出一张时间表&#xff0c;引起百万人浏览热议&#xff0c;他似乎在暗示投资者&#xff0c;熊市转为牛市的拐点即将到来。 “4年周期&#xff0c;”赵长鹏在推特写道&#xff0c;附图标出比特币减半时间表&#xff0c;…

知识经济时代,学历提升行业如何通过软文实现长效发展

国家对于人才需求日益增长&#xff0c;学历提升行业具有广阔的发展前景&#xff0c;知识经济盛行&#xff0c;人们对于终身学习的需求愈发强烈&#xff0c;学历提升机构能够为人们提供进修、升学、转行等机会&#xff0c;帮助他们进行自我提升。 然而学历提升行业也面临市场竞…

seo而生的WordPress主题RabbitV3.0主题分享

seo而生的WordPress主题RabbitV3.0主题分享&#xff0c;是一款专注于SEO优化用途的WordPress主题&#xff0c;专为博客、自媒体、资讯类等类型网站SEO优化设计开发&#xff0c;自适应兼容手机、平板设备&#xff0c;支持前端用户中心&#xff0c;可以前端发布/投稿文章&#xf…

Vision China 2023(深圳)圆满落幕 | 51camera 2023年度展会完美收官

Vision China 2023深圳机器视觉展于10月30日-11月1日在深圳国际会展中心宝安新馆成功举办。7F06展台51camera携多项满足市场需求的创新性视觉产品与应用方案亮相现场&#xff0c;吸引了众多观众驻足咨询&#xff0c;火热人气氛围&#xff0c;成为展会现场的风景线。 7F06展台盛…

MS35657步进电机驱动器可兼容DRV8824

MS35657 是一款双通道 DMOS 全桥驱动器&#xff0c;可以驱动一个步进电机或者两个直流电机。可兼容DRV8824&#xff08;功能基本一致&#xff0c;管脚不兼容&#xff09;。每个全桥的驱动电流在 24V 电源下可以工作到 1.4A。MS35657 集成了固定关断时间的 PWM 电流校正器&#…

文案如何打动人心?这个技巧帮助你

在企业推广的大潮中&#xff0c;有一种推广方式是用户接受度较高&#xff0c;同时投放效果相对较好的&#xff0c;那就是软文推广&#xff0c;很多人了解软文推广的优势&#xff0c;但是在创作标题文案时常常感到困惑&#xff0c;导致推广效果好坏不一&#xff0c;不知道其中的…

计讯物联高精度GNSS接收机:担当小型水库大坝安全监测解决方案的“护航者”

应用背景 水库大坝作为水利工程建筑物&#xff0c;承担着灌溉、发电、供水、生态等重任。一旦水库大坝发生安全事故&#xff0c;后果将不堪设想。因此&#xff0c;水库大坝的安全监测对保障水利工程顺利运行具有重要意义。 计讯物联作为水利行业专家型企业&#xff0c;多年来…

亚马逊鲲鹏批量注册amazon买家号软件

亚马逊鲲鹏系统可全自动批量注册亚马逊买家号&#xff0c;自动输入账号信息、自动接收验证码、自动绑定添加的收货地址及支付卡。 功能&#xff1a; 1、单个或批量添加账号信息 2、批量绑定IP和指纹 3、批量绑定信用卡及收货地址 4、自动绑定及解绑手机号&#xff08;需要注…

antv/x6 使用Stencil实现拖拽生成节点

antv/x6 使用Stencil实现拖拽生产节点 安装stencil插件引用Stencil初始化拖拽生成节点 安装stencil插件 npm install antv/x6-plugin-stencil2.1.4 --save引用Stencil <div id"stencil"></div>import { Stencil } from antv/x6-plugin-stencil// 初始化…

Sam Altman再出手,投资了两个不到20岁的RPA创业者

“AI到底是变革还是泡沫&#xff1f;” 作者 | 王王 首图来源&#xff1a;IndiaTimes Sam Altman又出手了。这次他投资了一个只有5个人的RPA早期团队Induced AI&#xff0c;两位联合创始人Aryan Sharma和Ayush Pathak&#xff0c;一个18岁&#xff0c;一个19岁。 不只是Sam A…