testng указать разных пользователей

Я запускаю наши автоматизированные тесты с помощью TestNG. Причина, по которой мы выбрали TestNG, заключается в том, что мы можем отправлять входные данные переменных в тестовые методы, например public void testXX (String userId), а userId может изменяться для каждого теста.

В приведенном ниже коде показаны три разных идентификатора пользователя, которые я могу использовать для выполнения своих тестов. Таким образом, мой точно такой же тест будет выполняться трижды для каждого из трех разных пользователей. Эта замечательная функция действительно позволяет мне проводить несколько тестов в разных сценариях, потому что у каждого из наших пользователей разные профили.

// All valid Pricing Leads
@DataProvider(name = "userIds")
public Object[][] createPricingLeadUsersParameters() {
   return new Object[][] {
      { "TestUser001" },
      { "TestUser002" },
      { "TestUser003" }
   };
}

@Test( dataProvider = "userIds" )
public void createGroup( String userIds) {
    ............
 }

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что при определенных условиях я могу использовать только один идентификатор пользователя, иначе все мои тесты не пройдут. Я хотел бы сохранить тот же тест, но пройти только по userId, а не по трем показанным выше. Есть ли способ настроить TestNG для создания этой переменной в командной строке, поэтому иногда я бы использовал три определенных, но при другом условии это был бы только один из трех или новый userId?


person Peter Delaney    schedule 09.07.2012    source источник


Ответы (1)


Конечно, есть много способов сделать это. Как насчет передачи системного свойства при запуске TestNG?

java -Dfoo=bar org.testng.TestNG...

а затем ваш поставщик данных может проверить значение foo с помощью System.getProperty() и соответствующим образом скорректировать то, что он возвращает.

person Cedric Beust    schedule 10.07.2012
comment
Мне нужен способ установить идентификаторы пользователей на основе одной конфигурации по сравнению с другой. Надеялся каким-то образом TestNG контролировать это, скажем, testng.xml, а не программно. Спасибо за вклад! - person Peter Delaney; 10.07.2012