迁安三屏网站建设,贵阳学网站建设,网站设计公司 南京,南京市雨花台区建设局网站数据驱动测试
在实际的测试过程中#xff0c;我们会发现好几组用例都是相同的操作步骤#xff0c;只是测试数据的不同#xff0c;而我们往往需要编写多次用例来进行测试#xff0c;此时我们可以利用数据驱动测试来简化该种操作。
参数化#xff1a;
输入数据的不同从而…数据驱动测试
在实际的测试过程中我们会发现好几组用例都是相同的操作步骤只是测试数据的不同而我们往往需要编写多次用例来进行测试此时我们可以利用数据驱动测试来简化该种操作。
参数化
输入数据的不同从而产生不同的测试结果简单来说就是将输入的数据作为变量传入。
比如搜索商品不同的搜索关键字和搜索条件作为入参就会得到不同的搜索结果。
数据驱动
测试数据的改变驱动自动化测试的执行产生不同的测试结果数据驱动本质上是高级的参数化。
对于测试数据我们可以将其存放在代码的数据结构中比如数组、集合也可以存放在外部文件比如json、csv、yaml、Excel或数据库中通过相应的读取技术拿到测试数据实现数据驱动测试。
各大语言测试框架都有对应的功能比如Python的UnitestJava的TestNG/Junit
如TestNG有提供DataProvider注解实现数据驱动测试 方式一将测试数据保存到代码中数组
//指定数据提供者注入测试数据到测试方法中实现数据驱动测试
Test(dataProvidergetDatasFromArray)
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(dataProvidergetDatasFromExcel)
public void test(ExcelData excelData) {//TODO
}//从外部文件Excel中获取数据驱动测试所需的测试数据
DataProvider
public Object [] getDatasFromExcel(){//读取指定Sheet ListExcelData list EasyExcel.read(filePath).head(ExcelData.class).sheet(Sheet1).doReadSync();//将集合转换为数组return list.toArray;}
复制代码
数据驱动测试的优点
1、相似的测试步骤只需要编写一条用例可以直接通过多条测试数据驱动执行提高了测试脚本的复用性
2、测试数据和测试脚本分离提高后期脚本可维护性 无论是将测试数据保存在代码或者文件又或者数据库中都可以。至于保存在哪里取决于测试数据量大小和使用场景
少量的数据比如账号相关的信息可以直接写入代码中进行维护数据的量级在几十~几千之间可以通过外部的文件进行管理比如Excel当数据量级特别大的情况下通过数据库这样方式的管理数据相对比较高效
ps小编个人收集啦许多软测资料希望能够帮到学软件测试的朋友们软件资料分享包括但不限于软件测试、Python自动化测试、性能测试、web测试、APP测试还有各种测试相关工作模板简历模板、大厂面试真题等。