通過TestNG實(shí)現(xiàn)參數(shù)化常用兩種方式,此篇講述@Parameters方式的傳參用法匈织;
@Parameters讀取testng.xml中參數(shù)
@DataProvider 注解傳參
注意??
1.只有已使用 @Test, @Before/After or @Factory 注解的方法可以使用@Parameters.
2.參數(shù)有作用域,在 testng.xml中锈拨,參數(shù)在 <suite> 或 <test>標(biāo)簽下賦值. 如果有同名參數(shù), <test> 標(biāo)簽下參數(shù)優(yōu)先級高.
語法:
step1:在java類中定義參數(shù)名@Parameters({ "paraName" });
step2:在TestNG.xml中設(shè)置參數(shù)值<parameter name="paraName" value="paraValue"/>
一十拣、傳遞一個(gè)參數(shù) (testDemo11.xml)
<?xml version="1.0" encoding="utf-8" ?>
<suite name="suitTestDemo1" verbose="1">
<test name="test">
<parameter name="strName" value="rose" />
<classes>
<class name="testNG2.testDemo1" >
<methods>
<include name="testParamOne"/>
</methods>
</class>
</classes>
</test>
</suite>
//類文件 testDemo1
package testNG2;
import org.testng.annotations.*;
/**
* @Description: 接口:
* 接口類型:GET
* @Date: Created in 下午2:18 2018/11/5
*/
public class testDemo1 {
@BeforeTest
public void beforeTest() {
System.out.println();
System.out.println("-------執(zhí)行.xml文件結(jié)果如下------");
}
@Parameters({"strName"})
@Test
public void testParamOne(String name) {
System.out.println(this.getClass().getName() + "_" + name);
}
@Test
@Parameters({"userName", "credit"})
public void testParamsTwo(String userName, String credit) {
System.out.println(this.getClass().getName() + "_" + userName);
System.out.println(this.getClass().getName() + "_" + credit);
}
@Parameters({"courseName"})
@Test
public void testParamsDefault(@Optional("chinese") String course){
System.out.println(this.getClass().getName()+"_"+course);
}
}
-------執(zhí)行.xml文件結(jié)果如下------
testNG2.testDemo1_rose
二、傳遞多個(gè)參數(shù)(testDemo12.xml)
<?xml version="1.0" encoding="utf-8" ?>
<suite name="suitTestDemo1" verbose="1">
<parameter name="userName" value="rose" />
<parameter name="credit" value="1K" />
<test name="test">
<classes>
<class name="testNG2.testDemo1" >
<methods>
<include name="testParamsTwo"/>
</methods>
</class>
</classes>
</test>
</suite>
-------執(zhí)行.xml文件結(jié)果如下------
testNG2.testDemo1_rose
testNG2.testDemo1_1K
三渔扎、使用參數(shù)的默認(rèn)值(testDemo13.xml)
<?xml version="1.0" encoding="utf-8" ?>
<suite name="suitTestDemo1" verbose="1">
<!--沒有name=coursename的parameter,testDemo中testParamsDefault方法直接讀取默認(rèn)提供的參數(shù)chinese-->
<test name="test">
<classes>
<class name="testNG2.testDemo1" >
<methods>
<include name="testParamsDefault"/>
</methods>
</class>
</classes>
</test>
</suite>
//執(zhí)行 testParamsDefault方法或者執(zhí)行testDemo13.xml文件的結(jié)果為
-------執(zhí)行.xml文件結(jié)果如下------
testNG2.testDemo1_chinese
項(xiàng)目地址:https://gitee.com/neimenggudaxue/BasicTest