Как заставить Почтальона/Ньюмана провалить тест по прошествии определенного времени?

Итак, в моей коллекции около десяти запросов, из них два последних:

/Wait 10 seconds

/Check Complete 

Первый вызывает эхо почтальона (задержка на 10 секунд), а второй - вызов моей системы для проверки статуса завершения. Теперь, если статус недоступен, я жду еще 10 секунд:

postman.setNextRequest("Wait 10 seconds");

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

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


person user2187935    schedule 12.04.2017    source источник
comment
Почему бы вам не использовать глобальную переменную счетчика повторных попыток, и после 6 попыток вы провалите тест?   -  person Suzana    schedule 11.08.2017


Ответы (2)


вы можете ознакомиться с параметрами newman здесь: https://www.npmjs.com/package/newman#newman-run-collection-file-source-options. Интересная опция --timeout-request : она наверняка удовлетворит ваши потребности. В самом Postman вы можете проверить responseTime. Я помню, что в правой части есть фрагмент, который выглядит так:

tests["Response time is less than 200ms"] = responseTime < 200;

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

Александр

person A.Joly    schedule 19.07.2017

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

timeout(120) {
  node {
    sh 'newman command'
  }
}

Воспользуйтесь редактором Pipeline Syntax" в Jenkins, чтобы сгенерировать блок кода и искать другие полезные функции.

person Stefan Crain    schedule 12.04.2017
comment
Интересный подход, но тайм-аут убьет весь конвейер, не так ли? Если тайм-аут одного этапа/шага истекает, все это уничтожается. - person user2187935; 13.04.2017
comment
Правильно, каков желаемый результат неудачного теста? Вы хотите продолжить другие тесты или выйти? - person Stefan Crain; 13.04.2017
comment
правильно, у меня есть еще тесты в трубе, поэтому только потому, что один в контексте не прошел, я не хочу прерывать все остальные вещи. - person user2187935; 13.04.2017