testNG的DataProvider返回IteratorObject[]的妙用
TestNG中使用DataProvider有如下好处:
1. 在执行用例的时候,dataProvider迭代中的每组数据都是作为一个用例执行,实现数据驱动执行
2. 在测试数据有规律的情况下,免去了在XML中添加测试数据的烦恼,直接将测试数据放到dataProvider中即可
其中dataProvider作为数据提供者,只能返回Object[][]和Iterator<Object[]>类型的数据
当测试数据包含类对象来达到数据驱动,使用DataProvider的Iterator<Object[]>类型的数据返回就显得那么方便,看个例子。
testdata.txt
{ "name":"test1","url":"/v1/test","method":"post","body":{"platformCode": "10001","productCode": "10002","userId": "123456"}
};
{"name":"test2","url":"/v2/test","method":"post","body":{"platformCode": "10003","productCode": "10004","userId": "211234"}
}
TestCase.java文件
/** 接口测试中,接口的信息封装成一个对象*/
@Data
public class TestCase {
// 接口nameprivate String name;
// 接口urlprivate String url;
// 接口的请求方式private String method;
// 接口的请求体private Map<String,Object> body;}
测试数据源:
/*** 从外部txt文件中读取测试数据 * @param MethodName* @return*/@DataProvider(name="iterator")public Iterator<Object[]> getMethodData1(Method method){String data=fileUtil.readFile();String[] strArray=data.split(";");List<Object[]> testCases=new ArrayList<>();for(String str :strArray){ TestCase testcase = JSON.parseObject(str ,TestCase.class);if(testcase.getName().equals(method.getName())){//查询接口的信息要封装成对象testCases.add(new Object[]{JSON.parseObject(str ,TestCase.class)});}}return testCases.iterator();}
测试方法:
根据测试方法执行对应的测试数据,如test1只运行其对应的测试数据。
@Test(dataProvider="iterator")public void test1(TestCase testcase){System.out.println(testcase.toString());}
转载于:https://www.cnblogs.com/sunshine2017/p/11436227.html
testNG的DataProvider返回IteratorObject[]的妙用相关推荐
- testng使用DataProvider+Excel实现DDT
DDT,即数据驱动测试 Data Driver Test,我曾经记录了一篇关于python的DDT框架(Excel+DDT数据驱动实例),那么java中的DDT是怎么样的呢?在java中,可以用tes ...
- 【转】React 16 中从 setState 返回 null 的妙用
概述 在 React 16 中为了防止不必要的 DOM 更新,允许你决定是否让 .setState 更来新状态.在调用 .setState 时返回 null 将不再触发更新. 我们将通过重构一个 mo ...
- RF使用技巧--返回值的妙用
作者:IT小样 在语言编程中我们直接用return语句可以妙用返回值,但在RF中使用起来有一定技巧.接下来就来讲解一下RF中如何使用返回值,返回值结合设置全局变量关键字,用起来简直所向披靡. 如何设置 ...
- TestNG参数– DataProvider和XML
TestNG methods can have arguments also. There are two ways we can inject method arguments: TestNG方法也 ...
- linux命令返回值的妙用
什么是返回值 在shell终端中,你所输入的一切命令其实都有返回值,而这个返回值默认保存在"$?"中,举例看一下 [root@localhost ~]# touch 123 [ro ...
- 在 React 16 中从 setState 返回 null 的妙用
翻译:疯狂的技术宅 原文:blog.logrocket.com/returning-n- 未经允许严禁转载 概述 在 React 16 中为了防止不必要的 DOM 更新,允许你决定是否让 .setSt ...
- TestNG中的参数化– DataProvider和TestNG XML(带有示例)
测试自动化,或所谓的自动化测试,并不像听起来那样容易. 必须考虑所有可能的用户交互的所有排列和组合,并且在此基础上,您将必须创建测试脚本以通过多种浏览器和OS组合来验证Web应用程序. 这就是参数化在 ...
- TestNG:在一个测试类中使用@DataProvider依次运行测试
许多Java开发人员和自动化测试工程师在他们的工作中都使用TestNG作为测试框架. 我也不例外. 这是一个显而易见的选择,因为TestNG提供了非常强大的工具集,使处理各种测试变得更加容易. 为了证 ...
- TestNG 自动化测试入门教程--典型示例
TestNG介绍 TestNG是Java中的一个测试框架, 类似于JUnit 和NUnit, 功能都差不多, 只是功能更加强大,使用也更方便 Java中已经有一个JUnit的测试框架了. Tes ...
最新文章
- 移动端图形化报表界面设计_B端移动设计 | 客户RFM分析
- Open***异地机房互连以及负载均衡高可用解决方案
- exi 虚拟服务器,图文教程:如何在ESXi主机上部署VMware Tools 10
- nginx 返回动态Html,Nginx负载均衡
-Nginx动态更新upstream
- java面试没有全部答对_十道java基础面试题,你能保证全答对吗?
- 基于Flex的迷你工作流的设计与实现(序)
- C++STL笔记(十一):priority queue(带优先级的队列)详解
- c#.net利用RNGCryptoServiceProvider产生任意范围强随机数的办法
- 实战丨基于接口的银行系统自动化测试实践
- python中--snip--是什么意思
- 一文读懂authorized_keys和known_hosts
- Vue Antdv 上传组件(a-upload、a-upload-dragger)二次封装(DZMAntdvUpload)
- 全功能 Visual Studio 组件集 ComponentOne 2018V2发布,提供轻量级的 .NET BI 仪表板
- python初始画笔_Python自带Turtle画笔的原理
- java 画笔_JAVA画笔(paint)的使用
- SDU_week4_A - DDL 的恐惧(贪心+作业调度问题)
- Opencv 环境安装以及学习图像处理知识总结(附代码)(一)
- 标准网页两侧浮动广告代码 支持FF及IE
- CASIA情感数据库
- 拆卸组装计算机的注意事项,自己动手组装电脑要注意什么 小白装机必修功课...