Запуск тестового примера в течение времени в Robot Framework - PullRequest
0 голосов
/ 20 февраля 2019

Я хотел запустить тестирование робота в течение некоторого времени, скажем, в течение 1 часа.Независимо от того, завершено ли выполнение всех тестовых случаев в наборе тестов.Он должен повторять тесты до тех пор, пока не достигнет заданного времени.

Я пытался использовать - предварительный модификатор и пытался написать свой собственный модуль, я использовал модуль robot.api robot.running.context и переопределить текущий метод end_suite () .Но не удачно!(

Ответы [ 3 ]

0 голосов
/ 21 февраля 2019

Я бы подошел к этому с помощью внешнего скрипта бегуна, использующего два потока.Пример алгоритма без реализации:

Запустить счетчик времени (только текущее время эпохи);Первый (основной) поток является управляющим.Он спит в течение 1 с, а при проверках выполнения и ответвлениях:

  • счетчик не достиг порогового значения (например, текущая эпоха - начало <предел) - проверка, работает ли другой поток (не имеетзаконченное выполнение): <br>- да: pass

    - нет: этот «другой» поток - это выполнение наборов роботов.Он не запущен - создайте поток, который будет запускать пакеты;перед этим - скопируйте журналы из предыдущего выполнения - если вы заботитесь о них (в общем, я полагаю, вы бы проанализировали результат прогона; кроме случаев, когда вы выполняете тест на долговечность и хотите контролировать только SUT).Таким образом, вы перезапустите наборы после того, как они закончатся.

  • Счетчик превысил порог - остановите запуск в другом потоке.Для этого сигнал INT или TERM - это позволит каркасу создавать файлы журнала.Если вы используете KILL, это внезапно завершит текущее выполнение - если вам не нужны журналы, это вариант.Но вы рискуете оставить свое SUT в загрязненном состоянии - запущенный случай, возможно, изменил свою конфигурацию, и у него не будет возможности очиститься после него.

Я бы посоветовал начатьвыполнение, чтобы указать , а не создать журнал и сообщить html-файлы из промежуточных прогонов (опции --log none --report none CLI) - их генерация займет время выполнения, в течение которого ваши дела не будут "вращаться".После выполнения вы можете сгенерировать их из промежуточных файлов output.xml, которые вы скопировали ранее.

Если вы заинтересованы в этом подходе и хотите использовать python для управляющего скрипта / системы, я 'Я бы посоветовал взглянуть на источник pabot - это то, что (управление потоком и запускается, но без привязки ко времени, ваш запрос) на стероидах.

0 голосов
/ 21 февраля 2019

Попробуйте с ключевым словом " Repeat Keyword ".Он принимает в качестве аргумента, как долго должно повторяться данное ключевое слово.Но в этом случае все ваши тесты должны идти по одному ключевому слову.Используйте «Run Keyword And Ignore Error» внутри него, чтобы игнорировать ошибки.

Например:

Repeat Keyword   2h    Keyword With All Test Cases

Второй вариант - запись Listener - имеет аналогичную функциональностькак модификатор prerun, но выполняется во время тестов, а не до.

0 голосов
/ 20 февраля 2019

Согласно руководству пользователя платформы Robot, набор тестов платформы робота будет выполняться в течение максимального времени 120 минут, т.е. 2 часа.Мы не можем перезаписать этот тайм-аут, явно указав время выполнения теста в таблице настроек тестовых файлов, как показано ниже

***Setting***
Test Timeout  60 minutes

Кроме того, вы можете задать время ожидания для тестовых случаев, используя опцию [Timeout], как показано ниже

***Test Cases***
Sample Test Case
  [Timeout]  5 minutes
  Do some testing
  Validate some results

Не стесняйтесь задавать вопросы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...