TestNG,0或xml文件中的倍数参数

时间:2016-07-25 13:37:30

标签: java testng

我正在使用testNG框架。我有可以有参数的测试。 例如,我可以使用以下xml:

 <?xml version="1.0" encoding="UTF-8"?>
   <suite name="Suite" parallel="tests">
   <test name="FlowTest0">
       <parameter name="node" value="http://192.168.117.135:5555/wd/hub"/>
       <parameter name="name" value="nameTest0"/>
       <parameter name="direction" value="IN"/>
       <classes>
           <class name="selenium.test.flow.FlowSaveTest"/>
       </classes>
   </test>
   </suite>

或者我可以拥有这个:

   <?xml version="1.0" encoding="UTF-8"?>
   <suite name="Suite" parallel="tests">
   <test name="FlowTest0">
       <parameter name="node" value="http://192.168.117.135:5555/wd/hub"/>
       <classes>
           <class name="selenium.test.flow.FlowSaveTest"/>
       </classes>
   </test>
   </suite>

或根本没有参数或更多参数。 然后在我的测试用例中,我以这种方式得到参数:

@Parameters({"name", "direction"})
public void initTest(String name, String direction) {
    //code of the method
}

我想要的是能够根据我在xml中的值传递可变数量的值。我可以使用testNG参数注释吗?

编辑1:

我希望在C中声明printf声明,例如:

@Parameters("node", Something that will get all the paramaters)
@BeforeTest
public void initTest(Object ...) {

}

1 个答案:

答案 0 :(得分:2)

您可以inject ITestContext并从中获取所有属性:

@Test
public void initTest(ITestContext context) {
    Map<String, String> params = context.getCurrentXmlTest().getAllParameters();
    // ...
}