У меня есть несколько тестовых окружений, они отличаются BaseURL, и несколькими константами , которые я хочу вынести в testng.xml
Вопрос:
я могу эти параметры засунуть в разные как указано ниже(если да то как указывать testname при запуске тестов из терминала), или надо создать под каждый stage отдельный xml с данными?
Параметры можно указывать с разными значениями на уровне .
Parameters are scoped. In testng.xml, you can declare them either under a tag or under . If two parameters have the same name, it’s the one defined in that has precedence. This is convenient if you need to specify a parameter applicable to all your tests and override its value only for certain tests.
А обьем тестовых сценариев, то есть содержимое сьюта, изменяется в зависимости от окружения где выполняются тесты? И какой сборщик: Gradle, Maven?
Если Maven, то могу рекомендовать использовать профили и там устанавливать необходимые переменные, или даже прокидывать значение со строки запуска. Как пример строки запуска:
Здесь переменная с названием браузера (или любая другая) будет в зависимости от профиля, а количество потоков прокидывается уже с места запуска. А в xml будет выглядеть так:
В целом можно.
Если у вас тесты олдни и теже то почему нет, модно даже не класть в XML, а передавать mvn test -Dsuite=suite_name.xml -Denv=PUT_YOUR_ENV_HERE