数据驱动测试
在现实的测试过程中,我们会发现好几组用例都是雷同的操作步调,只是测试数据的不同,而我们往往需要编写多次用例来进行测试,此时我们可以利用数据驱动测试来简化该种操作。
参数化:
输入数据的不同从而产生不同的测试结果(简单来说就是将输入的数据作为变量传入)。
比如搜刮商品,不同的搜刮关键字和搜刮条件作为入参,就会得到不同的搜刮结果。
数据驱动:
测试数据的改变驱动自动化测试的实行,产生不同的测试结果,数据驱动本质上是高级的参数化。
对于测试数据,我们可以将其存放在代码的数据布局中(比如数组、集合),也可以存放在外部文件(比如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
- 当数据量级特别大的情况下,通过数据库这样方式的管理数据相对比力高效
我本身网络啦许多软测资料,希望能够帮到学软件测试的朋友们软件资料分享包罗但不限于:Python自动化测试、性能测试、web测试、APP测试、测试开发、安全测试
测试开发工具包:appuim安装包、fiddler安装包(也有配套视频教程)、eclipse、git、jmeter、loadrunner、monkey、postman、soapul、Xmind等等
末了感谢每一个阅读我文章的人,一点小心意,固然不是啥值钱的东西,需要的话点击下方小卡片直接拿走~
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |