数据驱动测验
在实际的测验过程中,咱们会发现好几组用例都是相同的操作过程,只是测验数据的不同,而咱们往往需求编写屡次用例来进行测验,此刻咱们能够利用数据驱动测验来简化该种操作。
参数化:
输入数据的不同从而发生不同的测验成果(简单来说就是将输入的数据作为变量传入)。
比方查找产品,不同的查找关键字和查找条件作为入参,就会得到不同的查找成果。
数据驱动:
测验数据的改动驱动自动化测验的履行,发生不同的测验成果,数据驱动本质上是高档的参数化。
关于测验数据,咱们能够将其存放在代码的数据结构中(比方数组、调集),也能够存放在外部文件(比方json、csv、yaml、Excel)或数据库中,经过相应的读取技能拿到测验数据完成数据驱动测验。
各大语言测验结构都有对应的功用,比方Python的Unitest,Java的TestNG/Junit
如TestNG有提供DataProvider注解完成数据驱动测验
方式一:将测验数据保存到代码中(数组)
//指定数据提供者,注入测验数据到测验办法中完成数据驱动测验
@Test(dataProvider="getDatasFromArray")
public void test(String name,String phone,String pwd) {
//TODO
}
//从二维数组中获取数据驱动测验所需的测验数据(包含入参和期望值)
@DataProvider
public Object [][] getDatasFromArray(){
Object [][] datas = {{"13323234545","123456","登录成功"},{"133232345451","123456","手机号码格局不正确"},{"13323234545","","暗码不能位空"}};
return datas;
}
方式二:将数据保存到外部的文件中(Excel)
//指定数据提供者,注入测验数据到测验办法中完成数据驱动测验
//需求注意的是:此刻数据提供者回来的是一维数组,数组里元素类型是ExcelData目标,所以办法这儿需求经过ExcelData类型接纳
@Test(dataProvider="getDatasFromExcel")
public void test(ExcelData excelData) {
//TODO
}
//从外部文件(Excel)中获取数据驱动测验所需的测验数据
@DataProvider
public Object [] getDatasFromExcel(){
//读取指定Sheet
List<ExcelData> list = EasyExcel.read("filePath").
head(ExcelData.class).sheet("Sheet1").doReadSync();
//将调集转换为数组
return list.toArray;
}
数据驱动测验的优点:
1、类似的测验过程只需求编写一条用例,能够直接经过多条测验数据驱动履行,进步了测验脚本的复用性
2、测验数据和测验脚本别离,进步后期脚本可保护性
无论是将测验数据保存在代码或许文件,又或许数据库中都能够。至于保存在哪里取决于测验数据量大小和运用场景
- 少数的数据,比方账号相关的信息,能够直接写入代码中进行保护
- 数据的量级在几十~几千之间,能够经过外部的文件进行办理,比方Excel
- 当数据量级特别大的情况下,经过数据库这样方式的办理数据相对比较高效
**ps:**小编个人收集啦许多软测材料,希望能够帮到学软件测验的朋友们软件材料共享包含但不限于:Java自动化测验、Python自动化测验、功能测验、web测验、APP测验
测验开发工具包:appuim安装包、fiddler安装包(也有配套视频教程)、eclipse、git、jmeter、loadrunner、monkey、postman、soapul、Xmind等等
喜欢的话能够给小编点点赞哦,私信小编“测验”免费领取
点击链接免费领取《软件测验全套根底/进阶/转行材料》