TestNG 中DataProvider 的用法
使用DataProvider提供数据有两种形式:
第一种:一种是在测试代码和测试数据放在同一个类中;
第二种:把所有的数据提供都单独写在一个类里面,当测试数据比较多时,这种方法利于维护。
DataProvider定义了属性name时,提取数据时可以使用name,没有定义name时,提取数据时直接使用方法名称。
public class ParamTestWithDataProvider1 {
@DataProvider(name = "test1")
public static Object[][] primeNumbers() {
return new Object[][] { { 2, true ,"hi"}, { 6, false ,"test"}, { 19, true ,"good"},
{ 22, false ,"aha"}, { 23, true ,"loo"} };
}
//参数必须要一致
@Test(dataProvider = "test1")
public void testPrimeNumberChecker(Integer inputNumber,
Boolean expectedResult, String test) {
System.out.println(inputNumber + " " + expectedResult+" "+test);
Assert.assertEquals(expectedResult,
primeNumberChecker.validate(inputNumber));
}
}
第二种是通过DataProviderClass 把测试数据文件引过来
package TestngTest;
import org.testng.annotations.DataProvider;
public class DataProviderMethod {
//无指定数据名称,默认使用方法名
@DataProvider
public static Object[][] NoNameMethod(){
return new Object[][]{
{"DataWithNoName1"},
{"DataWithNoName2"},
{"DataWithNoName3"}
};
}
//指定名称1
@DataProvider(name="dataprovider1")
public static Object[][] dataProvider1(){
return new Object[][]{
{"dataprovider1-1"},
{"dataprovider1-2"}
};
}
//指定名称2
@DataProvider(name="dataprovider2")
public static Object[][] dataProvider2(){
return new Object[][]{
{"dataprovider2-1"},
{"dataprovider2-2"}
};
}
}
java测试代码
package TestngTest;
import org.testng.annotations.Test;
public class DataProviderTest {
@Test(dataProvider="NoNameMethod",dataProviderClass=DataProviderMethod.class)
public void doTestNG(String testdatas) {
System.out.println("未指定名称,数据源名为方法名NoNameMethod:"+testdatas);
}
@Test(dataProvider="dataprovider1",dataProviderClass=DataProviderMethod.class)
public void doTestNG1(String testdatas){
System.out.println("指定名称,数据源名称选择了dataprovider1:"+testdatas);
}
@Test(dataProvider="dataprovider2",dataProviderClass=DataProviderMethod.class)
public void doTestNG2(String testdatas){
System.out.println("指定名称,数据源名称选择了dataprovider2:"+testdatas);
}
}
记录一下,以便学习。
TestNG 中DataProvider 的用法的更多相关文章
- TestNG中DataProvider的用法二:简单的数据驱动
@DataProvider标记的方法除了可以返回数组外,还可以返回一个Iterator,这样的好处是不用把所有的测试数据都加载到内存中,而是需要的时候就读一条. 下面的例子就使用了Iterator,然 ...
- TestNG中DataProvider的用法
提供数据的一个测试方法.注解的方法必须返回一个Object[] [],其中每个对象 []的测试方法的参数列表中可以分配.该@Test 方法,希望从这个 DataProvider 的接收数据,需要使用一 ...
- TestNG中group的用法
TestNG中的组可以从多个类中筛选组属性相同的方法执行. 比如有两个类A和B,A中有1个方法a属于组1,B中有1个方法b也属于组1,那么我们可以通过配置TestNG文件实现把这两个类中都属于1组的方 ...
- TestNG中DataProvider的用法一
目录 为什么要使用DataProvider DataProvider的常规用法 带Method参数的DataProvider 带ITestContext的DataProvider DataProvid ...
- testNG中dataprovider使用的两种方式
testNG的参数化测试有两种方式:xml和dataprovider.个人更喜欢dataprovider,因为我喜欢把测试数据放在数据库里. 一.返回类型是Iterator<Object[]&g ...
- TestNG中的数据源DataProvider概述
http://blog.csdn.net/taiyangdao/article/details/52141711 在上一篇文章中,我们知道带参数的测试方法,可以在testng.xml配置文件中为其参数 ...
- TestNG中的DataProvider返回Iterator<Object[]>的妙用
TestNG中使用DataProvider有个好处,就是: 1. 在执行用例的时候dataProvider迭代中的每组数据都是作为一个用例执行 2. 在测试数据有规律的情况下,免去了添加testXML ...
- 简单聊聊TestNG中的并发
前言 最近在做项目里的自动化测试工作,使用的是TestNG测试框架,主要涉及的测试类型有接口测试以及基于业务实际场景的场景化测试.由于涉及的场景大多都是大数据的作业开发及执行(如MapReduce.S ...
- testng使用DataProvider+Excel实现DDT
DDT,即数据驱动测试 Data Driver Test,我曾经记录了一篇关于python的DDT框架(Excel+DDT数据驱动实例),那么java中的DDT是怎么样的呢?在java中,可以用tes ...
随机推荐
- Django_restframework+vue解决跨域问题
1. 安装 pip3 install django-cors-headers 2.在settings.py里设置 INSTALLED_APPS = ( ... 'corsheaders', ... ) ...
- lombok系列(一)
如果在类上面使用@Builder注解, @Builder public class A { } controller中使用: public String test(@RequestBody A a){ ...
- CMDB资产管理系统开发【day26】:数据正式存入待存区
1.from表单提交 1.数据提交到哪里呢? 提交到assets/new_assets_approval.html这了 2.Yes, I'm sure提交了什么? 为什么没有下拉框了 ...
- EF CodeFirst系列(7)---FluentApi配置存储过程
FluentApi配置存储过程 1.EF自动生成存储过程 EF6的CodeFirst开发模式支持给实体的CUD操作配置存储过程,当我们执行SaveChanges()方法时EF不在生成INSERT,UP ...
- oh-my-zsh安装和简单定制
我使用的是deepin系统,deepin的终端做的已经很好了,最近想换一个新的命令的提示符风格.据说oh-my-zsh很好用,花一点时间安装,记录这个过程. oh-my-zsh的安装是非常方便的,安装 ...
- JavaScript 日期和时间基础知识
前言 学习Date对象之前,首先要先了解关于日期和时间的一些知识.比如,闰年.UTC等等.深入了解这些,有助于更好地理解javascript中的Date对象. 标准时间 一般而言的标准时间是指GMT和 ...
- [浏览器事件循环] javaScript事件循环 EventLoop
前言 Event Loop即事件循环,是指浏览器或Node的一种解决javaScript单线程运行时不会阻塞的一种机制,也就是我们经常使用异步的原理. 先熟悉基本概念 [堆Heap] 堆是一种数据结构 ...
- CF611D lcp+dp
本篇博客只是留个辣鸡的自己标记一下,误入的同学请出门左转博客 https://blog.csdn.net/loy_184548/article/details/50865777 代码神马的也是复制啊 ...
- 使用PHP中的ajax做登录页面、验证用户名是否可用、动态调用数据库
1.ajax的基础知识 ajax是结合了jquery.php等几种技术延伸出来的综合运用的技术,不是新的内容.ajax也是写在<script>标签里面的. 如果使用ajax一定是要有1个处 ...
- oracle的安装与卸载
安装oracle: 下载符合系统要求的oracle数据库 2. 将上面的压缩文件都解压到一个文件夹中,然后以管理员的身份运行其中的可执行文件(.exe) 3. 配置安全更新(可选可不选,学习时我没 ...