testng参数化方法:Parameters和DataProvider
Parameters注解在测试方法上指定参数列表,然后在测试方法中声明对应的形参,形参与参数列表一一对应,但名字可以不同,如下所示:
public class Test1 { @Parameters({"Name", "Age", "Hobby"})
@Test
public void test1(String name, int age, String hobby) {
System.out.println(name + " is " + age + " years old and likes " + hobby);
}
}
然后在XML文件中通过<parameter>标签对每个参数赋值,采用name-value对的形式:
<suite name="suite1">
<parameter name="Name" value="xiaoming" />
<parameter name="Age" value="20" />
<parameter name="Hobby" value="dajiangyou" /> <test name="test1" verbose="2">
<classes>
<class name="sea.Test1" />
</classes>
</test> </suite>
运行结果为:
xiaoming is 20 years old and likes dajiangyou
PASSED: test1("xiaoming", 20, "dajiangyou")
Parameters一般用于比较简单的参数,对于参数比较多、复杂或者需要从文件读取的时候一般使用DataProvider注解。
采用DataProvider时构造参数的方法必须返回Obiect[][],可以看着二维数组(当然也可存放一维数据)。
使用时,首先定义一个DataProvider,通过name参数指定该测试数据的名字;
然后在测试方法中,通过Test注解的dataProvider参数指定需要使用的测试数据名字,多个测试方法可以使用同一个dataProvider;
最后在测试方法的形参列表中,定义与Obiect[][]的每一行数据一一对应的参数,该测试方法被执行时,有多少组参数就会被执行多少次。
举例如下,可以看到test2这个用例被执行了3次:
public class Test1 {
@DataProvider(name = "data1")
public Object[][] createdata() {
return new Object[][] {
{"lilei", 20, "football"},
{"hanmeimei", 18, "music"},
{"wangnima", 25, "baozoumanhua"}
};
} @Test(dataProvider = "data1")
public void test2(String name, int age, String hobby) {
System.out.println(name + " is " + age + " years old and likes " + hobby);
}
}
lilei is 20 years old and likes football
hanmeimei is 18 years old and likes music
wangnima is 25 years old and likes baozoumanhua
PASSED: test2("lilei", 20, "football")
PASSED: test2("hanmeimei", 18, "music")
PASSED: test2("wangnima", 25, "baozoumanhua")
testng参数化方法:Parameters和DataProvider的更多相关文章
- TestNG参数化之@Parameters传参
通过TestNG实现参数话常用两种方式,一种是借助 @Parameters读取testng.xml中参数,一种是使用@DataProvider注解传参. 此次主要讲解XML传参,语法:在java类中定 ...
- testng入门教程10 TestNG参数化测试
在TestNG的另一个有趣的功能是参数测试.在大多数情况下,你会遇到这样一个场景,业务逻辑需要一个巨大的不同数量的测试.参数测试,允许开发人员运行同样的测试,一遍又一遍使用不同的值. TestNG让你 ...
- TestNG 参数化应用
一.第一种参数化方式(testng.xml配置参数) 1.新建ParameterDemo04类 2.拷贝类的路径 3.testng.xml配置类地址及参数 <?xml version=" ...
- loadrunner 脚本优化-参数化方法
脚本优化-参数化方法 by:授客 QQ:1033553122 方法一 1.确定需要参数化的内容 2.选中需要参数化的内容 3.右键选中的内容->Replace with a Parameter- ...
- Jmeter接口测试系列之参数化方法
至于参数化的用途,我这里就不多说了,本文主要介绍最全.最强大的参数化方法,对参数化有一个彻底的认识,这里提供了多种参数化方法 1.jmeter参数化之用户变量 在测试计划里面添加一个用户自定义的变 ...
- SoapUI常用的参数化方法
本篇文章来讲一下SoapUI在使用中常用的参数化方法字段参数化和使用DataSource调用Excel中的 数据给接口参数化,其中DataSource功能SoapUI开源版没有,大家可以使用破解版, ...
- 【一】Jmeter接口自动化测试系列之参数化方法
Jmeter作为虽然作为一款和LoadRunner相媲美的性能测试工具,但参数化功能实在不咋地,这里我大概总结了一下Jmeter的参数化方法! 至于参数化的用途,我这里就不多说了,做测试的都明白吧!本 ...
- TestNG中用Parameters或DataProvider为测试方法传入参数
转载于网络 一.设置参数 测试方法是可以带有参数的.每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递正确的参数. 设置方式有两种方法:使用 te ...
- TestNG参数化测试-数据提供程序 @DataProvider方式
在 testng.xml 中指定参数可能会有如下的不足: 1.如果你压根不用 testng.xml. 2.你需要传递复杂的参数,或者从Java中创建参数(复杂对象,对象从属性文件或者数据库中读取的et ...
随机推荐
- windows 2003 上安装windows liver writer
下载"resource hacker"软件,修改exe文件,找到config--config0-0 替换为: <?xml version="1.0" en ...
- c++中引用和指针的区别
1.指针和引用的主要区别. 引用是为变量起另一个名字(小名),一般在变量初始化时,初始值直接拷贝给变量,定义引用时,把引用(小名)和初始值“绑定”在一起,而不是将初始值拷贝给引用.因为 无法将引用重新 ...
- golang的采集库
goquery https://github.com/PuerkitoBio/goquery 例子 aa.html <html> <body> <div id=" ...
- 纯js上传控件——fineuploader
fineuploader是一款基于ajax实现文件上传的插件,具有以下有点: A:支持文件上传进度显示. B:文件拖拽浏览器上传方式 C:Ajax页面无刷新. D:多文件上传. F:跨浏览器. E:跨 ...
- js常见数字处理整理
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- 宏定义中的##操作符和... and _ _VA_ARGS_ _
1.Preprocessor Glue: The ## Operator 预处理连接符:##操作符 Like the # operator, the ## operator can be used i ...
- PLSQL_基础系列01_正则表达REGEXP_LIKE / SUBSTR / INSTR / REPLACE(案例)
2014-11-30 Created By BaoXinjian
- HDFS的运行原理(转)
简介 HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.是根据google发表的论文翻版的.论文为GFS(Google File System)Go ...
- JAVA 单选按钮、复选按钮
//单选按钮和复选按钮 import java.awt.*; import javax.swing.*; public class Jiemian6 extends JFrame{ JPanel mb ...
- 树莓派3上安装Qt5
按照在2上的安装只安装了qt4,实际上qt5已经可以直接apt方式可以获取到树莓派上了. install qt5-default and qtcreator:$ sudo apt-get instal ...