#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 миллисекунд