Порядок выполнения
#1
Отправлено 14 декабря 2010 - 08:05
Есть вопрос по порядку выполнения классов и тестовых случаев.
Использую TestNG + Selenium + Java + Eclipce.
Проблема в том что я бы хотел что бы тестовые классы и данные которые я подгружаю из xsl документа через провайдера данных выполнялись в том порядке в котором я их указал. То-есть классы запускаются по порядку из testng.xml (в том порядке в котором они там напечатаны) и данные подставляются в соответствии с порядком в котором они расположены в файле с данными.
опция у тега "<test>" preserve-order="true" не даёт результатов, как запускалось всё хаотично так и запускается.
Может кто то заморачивался по этому поводу, подкиньте решение.
#2
Отправлено 14 декабря 2010 - 08:17
По теме - он классы пускает не в том порядке или тестовые методы внутри классов?
#3
Отправлено 14 декабря 2010 - 08:23
#4
Отправлено 14 декабря 2010 - 16:26
Упорядочить методы можно используя одну из вариаций dependsOn, но не стоит этим злоупотреблять, потому что это жёсткая зависимость -- пытаясь запустить даже один тестовый метод вы потянете за собой рекурсивно всё, от чего у него указаны зависимости.
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium
#5
Отправлено 15 декабря 2010 - 07:11
Метод у меня во всех классах только один, так что мне зависимость выполнения методов не нужна.
Мне бы хотелось что бы классы выполнялись в том порядке в котором они перечислены в testNG. У каждого класса только один метод verify(String... args)
Групп у меня нет совсем (они мне не нужны).
Параметр preserve-order не влияет вообще никак.
Или я просто что то не понимаю в этой жизни?
#6
Отправлено 16 декабря 2010 - 05:15
preserve-order должен работать нормально. А можно весь xml посмотреть?
#7
Отправлено 16 декабря 2010 - 06:36
<!DOCTYPE suite (View Source for full doctype...)> - <suite name="application" verbose="1" junit="false" parallel="false" configfailurepolicy="skip" thread-count="5" skipfailedinvocationcounts="false" data-provider-thread-count="10"> - <test name="V2_F26-Login_Logout" junit="false" skipfailedinvocationcounts="false" preserve-order="true"> - <classes> - <!-- TS1 --> <class name="test.v2.f26.VerifyLoginLogoutEnterUsernamePasswordPossibility" /> - <!-- TS2 --> <class name="test.v2.f26.VerifyLoginLogoutCaseSensitivityUsernamePasswordField" /> - <!-- TS3 --> <class name="test.v2.f26.VerifyLoginLogoutLabelsLoginPageAvailibility" /> - <!-- TS4 --> <class name="test.v2.f26.VerifyLoginLogoutLinksLoginPageAvailibility" /> </classes> </test> </suite>
при любом раскладе первым выполняется TS2 а потом уже TS1 и далее по порядку. Тоесть выполняет он их по алфавиту а на последовательность классов в файле не обращает внимания
#8
Отправлено 16 декабря 2010 - 07:46
Сдается мне, что порядок алфавитный для параметра name.Конечно
<!DOCTYPE suite (View Source for full doctype...)> - <suite name="application" verbose="1" junit="false" parallel="false" configfailurepolicy="skip" thread-count="5" skipfailedinvocationcounts="false" data-provider-thread-count="10"> - <test name="V2_F26-Login_Logout" junit="false" skipfailedinvocationcounts="false" preserve-order="true"> - <classes> - <!-- TS1 --> <class name="test.v2.f26.VerifyLoginLogoutEnterUsernamePasswordPossibility" /> - <!-- TS2 --> <class name="test.v2.f26.VerifyLoginLogoutCaseSensitivityUsernamePasswordField" /> - <!-- TS3 --> <class name="test.v2.f26.VerifyLoginLogoutLabelsLoginPageAvailibility" /> - <!-- TS4 --> <class name="test.v2.f26.VerifyLoginLogoutLinksLoginPageAvailibility" /> </classes> </test> </suite>
при любом раскладе первым выполняется TS2 а потом уже TS1 и далее по порядку. Тоесть выполняет он их по алфавиту а на последовательность классов в файле не обращает внимания
Alexey
#9
Отправлено 21 декабря 2010 - 11:58
не понятно тогда правда на кой нужна опция preserve-order="true"Сдается мне, что порядок алфавитный для параметра name.
Конечно<!DOCTYPE suite (View Source for full doctype...)> - <suite name="application" verbose="1" junit="false" parallel="false" configfailurepolicy="skip" thread-count="5" skipfailedinvocationcounts="false" data-provider-thread-count="10"> - <test name="V2_F26-Login_Logout" junit="false" skipfailedinvocationcounts="false" preserve-order="true"> - <classes> - <!-- TS1 --> <class name="test.v2.f26.VerifyLoginLogoutEnterUsernamePasswordPossibility" /> - <!-- TS2 --> <class name="test.v2.f26.VerifyLoginLogoutCaseSensitivityUsernamePasswordField" /> - <!-- TS3 --> <class name="test.v2.f26.VerifyLoginLogoutLabelsLoginPageAvailibility" /> - <!-- TS4 --> <class name="test.v2.f26.VerifyLoginLogoutLinksLoginPageAvailibility" /> </classes> </test> </suite>
при любом раскладе первым выполняется TS2 а потом уже TS1 и далее по порядку. Тоесть выполняет он их по алфавиту а на последовательность классов в файле не обращает внимания
#10
Отправлено 14 ноября 2016 - 08:40
Нашёл подходящую тему.
Как в testng.xml задать очерёдность выполнения пакетов?
Хочу запускать тесты пакетами.
#11
Отправлено 14 ноября 2016 - 08:57
в аннотации @Test можешь выставить параметр priority для каждого теста
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных