2016-06-03 2 views
0

Я занимаюсь тестированием с использованием TesnNG. У меня есть класс констант Constant.java:Testng: передать значения из XML в класс 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#.

Я знаю, что вы можете передавать параметры из XML в @Test с использованием @Parameters, но я не перехожу к аннотации @Test. Любая помощь оценивается.

+0

Похоже, ваши постоянные свойства, а не постоянные. Это означает, что значения должны быть заполнены во время выполнения. –

+0

Я сделал их постоянными. Теперь требования изменились, я хочу заполнить их в любое время. –

ответ

0

Просто поделитесь своими мыслями .. 1) Вместо этого вы можете создать простой класс setter/getter. 2) Используйте Unmarshalling для преобразования XML в JAVA 3) После того, как вы создали объект, вы можете установить класс setter/getter с этим сгенерированным объектом.

Надежда, что помогает ..

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 
{ 
Смежные вопросы