I am trying to run tests in parallel written with nightwatchjs in Docker using the Selenium Hub. I can get the tests to run in parallel in Docker without the Selenium Hub, however, some child processes will timeout, causing several attempts. The results are very inconsistent. I hope to use Selenium Hub or something similar to remove timeouts and retries so that test results are more stable and stable, rather than timeout.
However, now when I run docker-compose run --rm nightwatch
using the following code, the selenium server will start in parallel and several child processes will be started, however only the first will be executed. Then the other child processes will receive Error retrieving a new session from the selenium server. Connection refused! Is selenium server started?
Error retrieving a new session from the selenium server. Connection refused! Is selenium server started?
Did I miss something so that tests for night hours run in parallel without turning off the time?
nightwatch.conf.js
module.exports = { src_folders: ['tests'], output_folder: 'reports', custom_commands_path: '', custom_assertions_path: '', page_objects_path: 'page_objects', test_workers: true, live_output: true, detailed_output: true, selenium: { start_process: true, server_path: './bin/selenium-server-standalone-3.0.1.jar', log_path: '', host: '127.0.0.1', port: 4444, cli_args: { 'webdriver.chrome.driver' : './node_modules/chromedriver/bin/chromedriver' } }, test_settings: { default: { launch_url: 'https://example.com', selenium_port: 4444, selenium_host: 'hub', silent: true, screenshots: { 'enabled': false, 'path': '' }, desiredCapabilities: { browserName: 'chrome', javascriptEnabled: true, acceptSslCerts: true, chromeOptions: { args: [ '--window-size=1024,768', '--no-sandbox' ] } }, globals: { waitForConditionTimeout: 20000, asyncHookTimeout: 70000 } } };
Docker-compose.yml
version: '2' services: nightwatch: build: context: . command: /bin/sh -c "node ./node_modules/nightwatch/bin/nightwatch" links: - chrome - hub volumes: - .:/opt/nightwatch chrome: environment: VIRTUAL_HOST: node.chrome.docker HUB_PORT_4444_TCP_ADDR: hub HUB_PORT_4444_TCP_PORT: 4444 image: selenium/node-chrome:3.1.0-astatine links: - hub hub: ports: - 4444:4444 image: selenium/hub:3.1.0-astatine
Dockerfile
FROM java:8-jre