我正在使用TesnNG进行测试。我有一类常量Constant.java
:
public class Constants {
public static final String ID = "myID";
public static final String PASSWORD = "support1";
public static final String ENV = "stage";
public static final String ACCOUNT = "000458";
这些参数会有所不同,取决于帐户和环境。这是一种使用方式,例如Test.xml
:
<suite name="Regression">
<parameter name="asset" value="0"/>
<test name="Test3">
<classes>
<class name="UnTrusted.Login"/>
<class name="NegativeLogin"/>
</classes>
</test>
并将参数从XML传递到Constant.java
,其中包含以下值:id
,password
,env
,account#
。
我知道你可以使用@Test
将参数从XML传递到@Parameters
,但我没有传入@Test
注释。任何帮助表示赞赏。
答案 0 :(得分:0)
只是分享我的想法..
1)您可以改为创建一个简单的setter/getter
类。
2)使用Unmarshalling
将XML
转换为JAVA
3)生成对象后,可以使用生成的对象设置setter/getter
类。
希望有所帮助..
答案 1 :(得分:0)
如果您将其视为需求变更,则可能。您可以使用DataProviders
修改您的方法。
// 在您的数据类XYZ :
中@DataProvider(name = "LoginData")
public static Object[][] dataProviderLogin(ITestContext context) throws Exception {
String testData = context.getCurrentXmlTest().getLocalParameter(); //to get the params for *test*
String suiteData = context.getCurrentXmlTest().getXmlSuite().getParameters(); //to get the params for *suite*
.... other data to be added to the test
}
在您的测试类中:
@Test(priority = 1, dataProvider = "LoginData",dataProviderClass=XYZ.class)
public static void testLogin(String param) // arguments vary based on what data providers return
{