2016-11-25 2 views
0

P.S .: Нет, я не хочу отлаживать свой сценарий. Это довольно здорово.Как приостановить выполнение сценария окулирования watir в середине исполнения, а затем возобновить его?

Проблема заключается в тестировании приложения. Если я сделаю несколько заказов, он сработает. Так что я хочу сделать это: mid-execution, когда я вижу, что приложение разбилось, я хочу приостановить тестовый скрипт, вернуть приложение и запустить приложение, а затем возобновить тест.

Я знаю, что это не тот момент времени, когда я должен запускать тестовые сценарии, так как приложение недостаточно стабильно, но разработчики работают над этим и, надеюсь, достаточно скоро, они исправят его. Мне просто интересно узнать, есть ли решение, потому что я не смог его найти. Конечно, я мог бы интегрировать приведение приложения снова, когда он падает в моих тестах, но это не то, что я хочу сделать.

Моя система:

ОС: Linux Mint

Тесты: Watir (Ruby) + Огурцы на Chrome

Я запускать тесты на Linux терминал с помощью огурца тегов.

Я просто хочу знать вообще, есть ли способ приостановить и возобновить выполнение. Например, когда я хочу остановить все тесты, я даю прерывание командной строки Ctrl + C. Итак, есть ли такая команда прерывания для приостановки и возобновления?

+1

Как вы «видите», что приложение разбилось? Есть ли элемент, который появляется на веб-странице, которую вы могли бы использовать в качестве «идентификатора сбоя»? –

+0

И следующий вопрос: происходит ли авария в случайных местах в процессе заказа или всегда после одного и того же действия? –

+0

У вашего приложения есть идентификаторы сеанса и аутентификация? Если да, то ваш существующий тестовый сеанс не будет продолжен после перезапуска среднего теста приложения. Как вы упомянули, перезапуск приложения должен быть интегрирован в тест с повторной аутентификацией для беспрепятственного выполнения. В случае отсутствия сеанса вы можете определить, что приложение потерпело крах, используя все, что указывает на сбой (текст/элемент/etc), приостанавливает проверку на определенное количество времени и тем временем перезапускает приложение. – Sid

ответ

1

Хорошо, так как вы хотите «общий» ответ, здесь идет ...

Основываясь на ваших условиях, вы ищете «разбитое» состояние в вашем проекте.

Мой собственный подход к решению этой проблемы включает в себя написание вспомогательного метода, который будет искать это условие, и, если это правда, оно «приостанавливается». Например ...

def pause_if_crashed sleep 30 if @browser.product_price.nil? end

Тогда я посыпьте этот вспомогательный метод в вероятных «аварии» пятна в моих других функциональных методов.

Без лишних подробностей о ваших потребностях, это примерно так же полезно, как я могу получить, я думаю.

+0

Спасибо @AbeHeward за ваш ответ, я думаю, что смогу сделать эту работу. – Freya

Смежные вопросы