Перейти к содержимому

Фотография

Порядок выполнения


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1 filipok

filipok

    Новый участник

  • Members
  • Pip
  • 40 сообщений

Отправлено 14 декабря 2010 - 08:05

Здравствуйте люди.

Есть вопрос по порядку выполнения классов и тестовых случаев.

Использую TestNG + Selenium + Java + Eclipce.

Проблема в том что я бы хотел что бы тестовые классы и данные которые я подгружаю из xsl документа через провайдера данных выполнялись в том порядке в котором я их указал. То-есть классы запускаются по порядку из testng.xml (в том порядке в котором они там напечатаны) и данные подставляются в соответствии с порядком в котором они расположены в файле с данными.

опция у тега "<test>" preserve-order="true" не даёт результатов, как запускалось всё хаотично так и запускается.

Может кто то заморачивался по этому поводу, подкиньте решение.
  • 0

#2 OVA

OVA

    Опытный участник

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 14 декабря 2010 - 08:17

Переместил сюда, потому как к Selenium отношения имеет весьма отдаленное.

По теме - он классы пускает не в том порядке или тестовые методы внутри классов?
  • 0

#3 stmark

stmark

    Опытный участник

  • Members
  • PipPipPipPip
  • 404 сообщений
  • ФИО:Докучаев Сергей
  • Город:Ярославль


Отправлено 14 декабря 2010 - 08:23

Почитай про dependsOnMethods и dependsOnGroups в документации к TestNG.
  • 0

#4 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 14 декабря 2010 - 16:26

Параметр preserve-order работает до уровня классов, а не отдельных методов.

Упорядочить методы можно используя одну из вариаций dependsOn, но не стоит этим злоупотреблять, потому что это жёсткая зависимость -- пытаясь запустить даже один тестовый метод вы потянете за собой рекурсивно всё, от чего у него указаны зависимости.
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#5 filipok

filipok

    Новый участник

  • Members
  • Pip
  • 40 сообщений

Отправлено 15 декабря 2010 - 07:11

тему потерял 8( тока нашёл 8)

Метод у меня во всех классах только один, так что мне зависимость выполнения методов не нужна.
Мне бы хотелось что бы классы выполнялись в том порядке в котором они перечислены в testNG. У каждого класса только один метод verify(String... args)

Групп у меня нет совсем (они мне не нужны).
Параметр preserve-order не влияет вообще никак.

Или я просто что то не понимаю в этой жизни?
  • 0

#6 OVA

OVA

    Опытный участник

  • Members
  • PipPipPipPip
  • 405 сообщений
  • ФИО:Высоцкий Сергей Павлович
  • Город:Новосибирск

Отправлено 16 декабря 2010 - 05:15

Да вроде все понимаете)
preserve-order должен работать нормально. А можно весь xml посмотреть?
  • 0

#7 filipok

filipok

    Новый участник

  • Members
  • Pip
  • 40 сообщений

Отправлено 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 и далее по порядку. Тоесть выполняет он их по алфавиту а на последовательность классов в файле не обращает внимания
  • 0

#8 LeshaL

LeshaL

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 094 сообщений
  • ФИО:Алексей Лянгузов
  • Город:Saint-Petersburg


Отправлено 16 декабря 2010 - 07:46

Конечно

  <!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 и далее по порядку. Тоесть выполняет он их по алфавиту а на последовательность классов в файле не обращает внимания

Сдается мне, что порядок алфавитный для параметра name.
  • 0
Regards,
Alexey

#9 filipok

filipok

    Новый участник

  • Members
  • Pip
  • 40 сообщений

Отправлено 21 декабря 2010 - 11:58


Конечно

  <!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 и далее по порядку. Тоесть выполняет он их по алфавиту а на последовательность классов в файле не обращает внимания

Сдается мне, что порядок алфавитный для параметра name.

не понятно тогда правда на кой нужна опция preserve-order="true"
  • 0

#10 igorek9191

igorek9191

    Новый участник

  • Members
  • Pip
  • 22 сообщений


Отправлено 14 ноября 2016 - 08:40

Нашёл подходящую тему.
Как в testng.xml задать очерёдность выполнения пакетов? 
Хочу запускать тесты пакетами.


  • 0

#11 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 14 ноября 2016 - 08:57

в аннотации @Test можешь выставить параметр priority для каждого теста


  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных