我正在使用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 ...) {
}
答案 0 :(得分:2)
您可以inject ITestContext
并从中获取所有属性:
@Test
public void initTest(ITestContext context) {
Map<String, String> params = context.getCurrentXmlTest().getAllParameters();
// ...
}