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

Фотография

Перезапуск теста до падения, как? (TestNG)


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

#1 Aleksche

Aleksche

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

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Алексей


Отправлено 08 ноября 2018 - 11:32

Если стало ясно что тест будет провален, к примеру сервер не ответил и нужно перезапустить

не доводя до assert как это лучше сделать?

Сейчас я просто выхожу через  SkipException соответственно тест помечается как ignored

есть гайды как перезапустить упавший тест, но я что-то не соображу как перезапустить скипнутый

Через ITestListener  onTestSkipped такое можно провернуть?


  • 0

#2 Spock

Spock

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

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 08 ноября 2018 - 12:44

можно тот код который хотите перезапускать заключить в try/catch и поместить в цикл

 

при успешном выполнении выставить флаг

после цикла проверить-ассертить флаг, зафейлить если флаг не выставлен


  • 0

#3 Aleksche

Aleksche

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

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Алексей


Отправлено 08 ноября 2018 - 13:03

Если честно, не очень понял вашу идею, попробую перефразировать вопрос К примеру кейс у меня из десяти последовательных шагов

на 5-ом я понимаю что выполнение блокируется и выхожу по skipException 

Допустим (пока не проверял) будет вызван метод  onTestSkipped из класса  ITestListener

Вот теперь мне нужно понять как в этом методе запустить по новой скипнутый тест.

 

зы

 

Понятно что можно походу еще ассертов понаставить и перезапускать по падению

но это будут немного портить картинку


  • 0

#4 Spock

Spock

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

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 08 ноября 2018 - 13:24

 

 

Вот теперь мне нужно понять как в этом методе запустить по новой скипнутый тест.

вам не надо весь тест перезапускать

 

код который может зафейлится внутри теста и вам надо перезапустить - вот этот код и заключайте в try/catch


  • 0

#5 Aleksche

Aleksche

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

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Алексей


Отправлено 08 ноября 2018 - 13:27

Не, не получится, это как пельмени разлепить

так короче если сервак не отозвался, приложение

загружает свою демку и я уже с этим ничего поделать не могу

только перезапуск только хардкор


  • 0

#6 Spock

Spock

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

  • Members
  • PipPipPipPipPipPip
  • 1 772 сообщений
  • ФИО:Роман

Отправлено 08 ноября 2018 - 13:56

 

Не, не получится, это как пельмени разлепить

тест - это код

шаги внутри теста - это тоже код

 

почему вдруг шаги внутри теста нельзя перезапускать? если сервак не отозвался - значит надо перезапустить этот шаг


  • 0

#7 QuadBit

QuadBit

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

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

Отправлено 08 ноября 2018 - 19:00

Не, не получится, это как пельмени разлепить

так короче если сервак не отозвался, приложение

загружает свою демку и я уже с этим ничего поделать не могу

только перезапуск только хардкор

Неявные ожидания?


  • 0

#8 Little_CJIOH

Little_CJIOH

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

  • Members
  • PipPipPipPipPipPip
  • 1 515 сообщений
  • ФИО:Власкин Павел
  • Город:Санкт-Петербург


Отправлено 08 ноября 2018 - 19:09

Если я правильно понял, у тестируемой системы есть внешняя зависимость, если с ней что-то не так, система переходит в демо-режим.

 

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


  • 0

#9 Aleksche

Aleksche

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

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Алексей


Отправлено 08 ноября 2018 - 19:29

 

 

Не, не получится, это как пельмени разлепить

тест - это код

шаги внутри теста - это тоже код

 

почему вдруг шаги внутри теста нельзя перезапускать? если сервак не отозвался - значит надо перезапустить этот шаг

 

 

Еще раз, при отсутствии ответа, приложение переходит в демо-режим

выйти из которого можно только одним способом, закрыть приложение

и запустить его заново, можно конечно запустить тест внутри теста, но

мне такой подход не нравится


  • 0

#10 Noksa

Noksa

    Активный участник

  • Members
  • PipPip
  • 117 сообщений
  • ФИО:Александр

Отправлено 09 ноября 2018 - 04:06

Что вам мешает в тесте закрыть приложение и запустить его заново?


  • 0

#11 Aleksche

Aleksche

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

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Алексей


Отправлено 09 ноября 2018 - 04:26

Что вам мешает в тесте закрыть приложение и запустить его заново?

 

Многое мешает


  • 0

#12 Noksa

Noksa

    Активный участник

  • Members
  • PipPip
  • 117 сообщений
  • ФИО:Александр

Отправлено 09 ноября 2018 - 04:39

Что именно мешает? Что это за "многое"? 

 

Не получили ответ - вызвали закрытие приложения - запустили заново - и снова отправили запрос...


  • 0

#13 Aleksche

Aleksche

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

  • Members
  • Pip
  • 22 сообщений
  • ФИО:Алексей


Отправлено 26 ноября 2018 - 03:26

Решил вопрос следующим путем.  В ключевых точках делаю проверку состояния, если что-то пошло не так, тест падает

и соответственно перезапускается, в отчете такая попытка отражается как ignored


  • 0


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

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