TestNG-参数传递几种方式 03

参数化测试

      将参数直接传递给测试方法的两种方式: 使用 testng.xml  数据提供者 

1、通过 xml文件( @Parameters )将参数传递给 @Test。

1)  创建一个测试类,有@Test 测试方法;

2)创建 testng.xml 文件;

3)将 testng.xml 中参数用 @Parameters 引用到测试方法。

TestNG-参数传递几种方式 03

TestNG-参数传递几种方式 03

附上代码:

############### String

public class TesParametersXML {
    @Test
    @Parameters("myName")
    public void parameterTest(String myName) {
        System.out.println("Parameterized value is : " + myName);
    }
} 

###############

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1">

    <test name="test1">
        <parameter name="myName" value="zhouyang"/>
        <classes>
            <class name="com.zytest.TesParametersXML" />
        </classes>
    </test>

</suite>

###############

备注: testng.xml 支持的参数类型,String、int / Integer、boolean / Boolean、 byte / Byte、char / Character、

double / Double、float / Float 、long/Long、short/Short ;

2、通过 数据提供者(  @DataProvider ) 将参数传递给 @Test。

2.1  通过 @DataProvider 传递一个 int 参数

TestNG-参数传递几种方式 03

####代码############

public class TestParameterDataProvider {

    @Test(dataProvider = "provideNumbers")
    public void test(int number, int expected) {
        Assert.assertEquals(number + 10, expected);
        System.out.println(number+" "+expected);
    }

    @DataProvider(name = "provideNumbers")
    public Object[][] provideData() {
        return new Object[][] { { 11, 21 }, { 12, 22 }, { 13, 23 } };
    }
}
####################

2.2  通过 @DataProvider 传递一个对象参数