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 ...
随机推荐
- CryptAPI 数字签名 与 Openssl 验证签名
这段时间要实现一个认证协议,分为客户端和服务器端,客户端使用windows操作系统,服务器端使用linux操作系统,在客户端下(windows),使用windows证书库中的签名证书对消息进行签名(使 ...
- HTML5显示地图例子
html 5获取GPS位置,Google地图显示 场景: JQuery Mobile 代码片段: <script type="text/javascript"> $(' ...
- HackerRank "Favorite sequence"
Typical topological sorting problem .. why is it 'difficult'? #include <iostream> #include < ...
- activiti自定义流程之Spring整合activiti-modeler5.16实例(七):任务列表展示
注:(1)环境搭建:activiti自定义流程之Spring整合activiti-modeler5.16实例(一):环境搭建 (2)创建流程模型:activiti自定义流程之Spring ...
- 删除SQL server 实例
在网上找到下面几种方法,本人使用的是第一种,很实用. 1.删除 SQL Server 的特定实例若要删除 SQL Server 的某个特定实例,请按照以下步骤操作: 找到并删除%drive%:\\Pr ...
- override 修饰符
override(C# 参考) 要扩展或修改继承的方法.属性.索引器或事件的抽象实现或虚实现,必须使用 override 修饰符. C# abstract class ShapesClass { ab ...
- Learning Core Data 1
What is Core Data? If you want to build anything beyond the most simplistic apps for iOS, you’ll nee ...
- OAF_EO系列3 - Initialize详解和实现(案例)
2014-06-14 Created By BaoXinjian
- hdu 5363 组合数学 快速幂
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Problem Descrip ...
- [物理学与PDEs]第4章 反应流体力学
[物理学与PDEs]第4章第1节 引言 [物理学与PDEs]第4章第2节 反应流体力学方程组 2.1 粘性热传导反应流体力学方程组 [物理学与PDEs]第4章第2节 反应流体力学方程组 2.2 反应流 ...