testng执行参数_TestNG之参数化

TestNG提供了两种参数化的方式,一种是通过XML,一种是通过代码实现,下面对这两种方式做介绍。

一、通过xml

/***

*

*

*

*

* @Title: paraFromXML

* @Description: Parameters from testng.xml

*@paramname

*@parampwd

*@returnvoid

*@throws

*/@Parameters({"username","password"})

@Testpublic voidparaFromXML(String name, String pwd) {

System.out.println(name+","+pwd);//print admin,123456

}

二、通过DataProvider,返回值分别是Object[][]和Iterator

返回值是Object[][]

1.DataProvider提供者和调用者在同一个类

@DataProvider(name="testdp")publicObject[][] createData() {return newObject[][] {

{"张三", new Integer(36) },

{"李四", new Integer(37)},

};

}/*** @Title: paraFromDP

* @Description: Parameters from DataProvider in one class

*@paramname

*@paramit

*@returnvoid

*@throws

*/@Test(dataProvider="testdp")public voidparaFromDP(String name, Integer it) {

System.out.println(name+", "+it);//print//张三, 36//李四, 37

}

2.DataProvider提供者和调用者在不同的类

DataProvider调用类:

packagetest.testng;importorg.testng.annotations.DataProvider;importorg.testng.annotations.Parameters;importorg.testng.annotations.Test;/***@authorQiaoJiafei

*@version创建时间:2015年12月11日 上午10:30:35

* 类说明*/

public classTestParameters {/*** @Title: paraFromDPA

* @Description: Parameters from DataProvider in another class

*@paramnum

*@returnvoid

*@throws

*/@Test(dataProvider= "create", dataProviderClass = StaticProvider.class)public voidparaFromDPA(Integer num) {

System.out.println(num);//print 42

}

}

DataProvider提供类:

packagetest.testng;importorg.testng.annotations.DataProvider;/***@authorQiaoJiafei

*@version创建时间:2015年12月11日 上午11:34:01

* 类说明*/

public classStaticProvider {

@DataProvider(name= "create")public staticObject[][] createData() {return newObject[][] {new Object[] { new Integer(42) }

};

}

}

返回值是Iterator

3.1数据源提供类

packagecom.data;importjava.lang.reflect.Method;importjava.util.ArrayList;importjava.util.HashSet;importjava.util.Iterator;importjava.util.List;importorg.apache.poi.hslf.model.Sheet;importorg.testng.annotations.DataProvider;/***@authorQiaoJiafei

*@version创建时间:2016年1月20日 上午11:58:26

* 类说明*/

public classTestD {

@DataProvider(name="testdp")public static IteratorcreateData() {

HashSet set = new HashSet();

set.add(Integer.valueOf(4));

set.add(Integer.valueOf(5));

HashSet so = new HashSet();for(Integer intg:set){

so.add(newObject[]{intg});

}returnso.iterator();

}

}

3.2 测试调用类

packagecom.data;importorg.testng.annotations.Test;/***@authorQiaoJiafei

*@version创建时间:2016年1月20日 上午11:58:34

* 类说明*/

public classTestT {

@Test(dataProvider="testdp",dataProviderClass = TestD.class)public voidlogin(Integer caseNum) {

System.out.println(caseNum);

}

}

输出:

4

5

三、dataProvider方法可接受 的参数:Methodmethod,ITestContextcontext,如:

packagecom.data;importjava.lang.reflect.Method;importjava.util.ArrayList;importjava.util.HashSet;importjava.util.Iterator;importjava.util.List;importorg.apache.poi.hslf.model.Sheet;importorg.testng.ITestContext;importorg.testng.annotations.DataProvider;/***@authorQiaoJiafei

*@version创建时间:2016年1月20日 上午11:58:26

* 类说明*/

public classTestD {

@DataProvider(name="testdp")public static IteratorcreateData(Method method, ITestContext context) {

System.out.println("-----------"+method.getName());

System.out.println("-----------"+context.getName());

HashSet set = new HashSet();

set.add(Integer.valueOf(4));

set.add(Integer.valueOf(5));

HashSet so = new HashSet();for(Integer intg:set){

so.add(newObject[]{intg});

}returnso.iterator();

}

}

注意:参数可以传其中一个,也可以两个一起传入

四.参数化后,在测试报告的显示如下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值