Использование Nightwatch для демонстрации — замедление утверждений конфигурацией

#javascript #selenium #nightwatch.js #acceptance-testing

#javascript #селен #nightwatch.js #приемочное тестирование

Вопрос:

моя команда и я используем Nightwatch для написания сквозных приемочных тестов для микросервисно-ориентированной архитектуры с общим количеством систем пять. После некоторой работы по его настройке и объединению наших сервисов с docker-compose теперь он отлично работает, и все тесты просматриваются в пользовательском интерфейсе в браузере (не без головы).

У нас появилась идея использовать это и для демонстраций (начальная демонстрация sprint и т. Д.), И нам стало интересно, есть ли какая-то настройка (которую мы до сих пор не нашли) или другая возможность просто добавить некоторую искусственную задержку между щелчками / тестами / утверждениями и всем остальным.

У кого-нибудь есть идея?

Ответ №1:

Вы можете добавлять паузы в свой набор, где захотите, используя:

 .pause(5000) // a pause for 5 seconds
//or alternately
.pause(this.timeout)
  

this.timeout может быть установлен в вашем base-test-case.js

 var timeout = 5000; // in your variable declarations
  

а затем в том же файле, в вашем прототипе базового класса, который вы хотите:

   before: function (client) {
    this.timeout = timeout;
  

Комментарии:

1. Итак, если у меня есть несколько утверждений, я должен ставить .pause() перед каждым утверждением? Это немного некрасиво. Из Selenium IDE я знаю, что есть ползунок, который автоматически ожидает определенное количество времени перед выполнением следующей команды. Значит, в nightwatch нет эквивалента? (например, глобальная .setSpeed() команда в начале)

2. Нет, вам не нужно ставить паузу перед каждым утверждением. В большинстве случаев вам это вообще не понадобится, но, допустим, вы ожидаете добавления какого-либо элемента в DOM или загрузки страницы, вы можете использовать .waitForElementPresent(селектор, тайм-аут) эквивалента setSpeed() нет, потому что он не нужен. Он не предназначен для демонстрации, хотя я видел, как он использовался таким образом. Однако, если вы хотите использовать его в качестве демонстрации, вы можете использовать .pause(тайм-аут) для любой части приложения, которую вы хотите замедлить.

3. Перевод тестового запуска в «медленный режим» либо для демонстраций, либо для сложных страниц (например, элементов управления, использующих переходы) — это старая функция, и она обязательна. Засорение вашего кода паузами или ожиданиями — это то, что делает тесты e2e хрупкими, медленными и ужасными в обслуживании. Capybara продолжает устанавливать стандарт того, насколько хорошим может быть тестирование e2e.

Ответ №2:

browser.pause между щелчками или значением setValue для хорошей задержки достаточно 100-300 миллисекунд

http://nightwatchjs.org/api#pause