2016-04-13 2 views
-1

Мне действительно нужно передать тип браузера с помощью @Parameter из TestNG.xml, и тест должен быть параметризован данными, например. Имя пользователя и пароль, используя @DataProviderКак использовать @parameter и @Data провайдер для одного метода @Test

Поскольку я пытаюсь осуществить параллельную мульти тестирования браузера, я нуждается в этом решении

@Test(dataProvider="data") 
@Parameters("browser") 
public void test1(String browser, String uname, String pass){ 
    System.out.println(browser+uname+pass);   

} 

@DataProvider 
public Object[][] data(){  
    String[][] data = new String[2][2]; 
    data[0][0] = "user1"; 
    data[0][1] = "pass1"; 

    data[1][0] = "user2"; 
    data[1][1] = "pass2";  

    return data; 

} 

Любое альтернативное решение также ценится.

ответ

1

Поскольку dataprovider требует, чтобы количество передаваемых столбцов соответствовало аргументам функции с использованием датапараудера, вы не можете использовать аргумент браузера. Вы можете создать другой метод с аннотацией @BeforeTest и присвоить значение браузера переменной класса и использовать его любыми методами, которые вам нужны.

+0

Если я использую beforetest, чтобы взять имя браузера, есть ли способ передать переменную экземпляра браузера из метода Beforetest в Test, поскольку я планирую реализовать параллельное тестирование браузера в проекте. Каждый тест должен принимать переменную браузера, специфичную для его метода, и ее нельзя использовать как переменную класса. –

Смежные вопросы