Тесты BrowserStack e2e с фиктивным сервером

Моя цель — настроить среду, в которой CircleCI будет запускать мои тесты e2e на BrowserStack в разных браузерах.

Мои тесты предполагают, что работает фиктивный сервер. (Например, тесты проверяют, был ли сделан определенный вызов фиктивному серверу или нет.)

Я узнал, что существует такая вещь, как local тестирование BrowserStack, но всякий раз, когда я хочу запустить фиктивный сервер на порту 65432, он говорит, что порт уже используется. Error: listen EADDRINUSE :::65432

У меня запущен фиктивный сервер Express (на порту 65432), тесты выполняются Nightwatch против сервера Selenium.

До сих пор я видел только примеры, которые запускают тесты на домашних страницах, которые находятся в Интернете (например, google.com), но я хотел бы запустить свой собственный фиктивный сервер локально и запустить свои тесты на нем.

Есть ли способ запустить фиктивный сервер и запустить свои тесты с помощью Nightwatch и Selenium на этом фиктивном сервере, и все это будет сделано с помощью инструмента CI, выполняющего тесты в BrowserStack?


person Adam Nagy    schedule 28.08.2018    source источник


Ответы (2)


Если у вас есть внутренний веб-сайт (недоступный для всех), размещенный на вашем компьютере (использующий фиктивный сервер — Tomcat, Nginx, Express Mock Server и т. д.) и хотите запустить сценарии на основе Selenium для тестирования этого приложения. в BrowserStack, вы можете использовать функцию локального тестирования.

Вам просто нужно run the binary file, что они предоставляют на вашем локальном компьютере (где доступен внутренний веб-сайт), и установить возможность 'browserstack.local' на 'true'. Следовательно, тесты, запущенные в BrowserStack, смогут получить доступ к вашему внутреннему веб-сайту. Я рекомендую вам ознакомиться с документацией здесь. Вы можете ознакомиться с документацией по NightwatchJS-BrowserStack здесь.

Если вы хотите запустить тесты с помощью CircleCI. Они также предоставляют подключаемый модуль для CircleCI, подробнее читайте на том же здесь< /а>. В этом случае плагин сам выполнит локальное тестирование.

person Xtraterrestrial    schedule 28.08.2018
comment
спасибо @ckzgraphics за ответ, ссылка Local Testing Internals очень помогла мне получить лучшее понимание, однако моя проблема была немного другой. - person Adam Nagy; 29.08.2018

Для будущих читателей: моей проблемой был параллелизм - я установил 2 рабочих процесса (в основном дочерние процессы) со следующим объектом:

"test_workers": {
    'enabled': true,
    'workers': 2
}

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

person Adam Nagy    schedule 29.08.2018