'В соединении отказано! Сервер селена запущен? \ N 'во время выполнения тестов Nightwatch.js против Selenium Grid - PullRequest
0 голосов
/ 03 мая 2018

Я использую Nightwatch-Cucumber на основе Nightwatch.js для автоматизации моих тестов. И теперь я хочу использовать Selenium Grid с концентратором Selenium и несколькими узлами Selenium для выполнения моих тестов.

Это мои текущие зависимости, которые я на самом деле использую:

  "devDependencies": {
    "chromedriver": "2.37.0",
    "cucumber": "3.0.2",
    "geckodriver": "1.11.0",
    "nightwatch": "0.9.19",
    "nightwatch-cucumber": "9.0.0",
    "selenium-server-standalone-jar": "3.9.1",
  },

А это мой nightwatch.conf.js:

const config = {
  globals_path: "globals.js",
  output_folder: "reports",
  custom_commands_path: "commands",
  // custom_assertions_path: 'assertions',
  live_output: false,
  page_objects_path: "pageobjects",
  disable_colors: false,
  selenium: {
    start_process: true,
    server_path: seleniumServer.path,
    host: "127.0.0.1",
    port: 4444
  },
  test_settings: {
    default: {
      launch_url: "http://mywebsite.com"
    },
    firefox_grid: {
      selenium_host: "127.0.0.1",
      selenium_port: 4444,
      desiredCapabilities: {
        browserName: "firefox"
      }
      selenium: {
        start_process: false
      }
    }
  }
};
module.exports = config;

Итак, вот шаги, которые я выполнил, чтобы реализовать все:

1. Запустите Selenium Hub на локальном хосте

java -jar selenium-server-standalone-3.9.1.jar -port 4444 -role hub

2. Запустите Selenium Node на локальном хосте

java -jar selenium-server-standalone-3.9.1.jar -port 5555 -role node

3. Запустите тесты Nightwatch

./node_modules/.bin/nightwatch --env firefox_grid --tag=myCucumberTag

Текущий результат: Я получаю сообщение об ошибке при выполнении тестов Nightwatch и не знаю почему. Это выглядит так:

{ Error: Unhandled "error" event. ([object Object])
    at ClientManager.emit (events.js:185:19)
    at Nightwatch.<anonymous> (/Users/GRme/projects/Aservo/DP/lcm2/testautomation/end2end-web-tests/node_modules/nightwatch/lib/runner/clientmanager.js:68:10)
    at Object.onceWrapper (events.js:316:30)
    at emitOne (events.js:115:13)
    at Nightwatch.emit (events.js:210:7)
    at HttpRequest.<anonymous> (/Users/GRme/projects/Aservo/DP/lcm2/testautomation/end2end-web-tests/node_modules/nightwatch/lib/index.js:501:10)
    at emitThree (events.js:135:13)
    at HttpRequest.emit (events.js:216:7)
    at IncomingMessage.<anonymous> (/Users/GRme/projects/Aservo/DP/lcm2/testautomation/end2end-web-tests/node_modules/nightwatch/lib/http/request.js:172:16)
    at emitNone (events.js:110:20)
    at IncomingMessage.emit (events.js:207:7)
    at endReadableNT (_stream_readable.js:1057:12)
    at _combinedTickCallback (internal/process/next_tick.js:138:11)
    at process._tickCallback (internal/process/next_tick.js:180:9)
  context:
   { message: 'Connection refused! Is selenium server started?\n',
     data: { value: [Object], status: 33 } } }

Запрос к центру Selenium от Nightwatch кажется успешным:

21:50:52.393 INFO - Got a request to create a new session: Capabilities {acceptSslCerts: true, browserName: chrome, javascriptEnabled: true}
21:50:52.399 INFO - Trying to create a new session on test slot {seleniumProtocol=WebDriver, se:CONFIG_UUID=037e48a7-b5bc-44f2-a25b-e85c752095a7, browserName=chrome, maxInstances=5, platformName=MAC, platform=MAC}

И запрос также был направлен на узел Selenium:

2018-05-03 21:50:52.418:INFO:osjshC.ROOT:qtp1300393335-22: org.openqa.selenium.remote.server.WebDriverServlet-49d904ec: Initialising WebDriverServlet
21:50:52.450 INFO - Found handler: org.openqa.selenium.remote.server.commandhandler.BeginSession@31a65f95
21:50:52.454 INFO - /session: Executing POST on /session (handler: BeginSession)
21:50:52.546 INFO - Capabilities are: Capabilities {acceptSslCerts: true, browserName: chrome, javascriptEnabled: true}
21:50:52.548 INFO - Capabilities {acceptSslCerts: true, browserName: chrome, javascriptEnabled: true} matched class org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.chrome.ChromeDriverService)

Итак, что я делаю не так и как я могу это исправить? Возможно, это проблема с автономной версией Nightwatch.js и / или Selenium Server?

1 Ответ

0 голосов
/ 04 мая 2018

Это сообщение об ошибке ...

message: 'Connection refused!

... подразумевает, что узлу Selenium Grid не удалось инициировать / создать новый WebClient , т. Е. просмотр веб-страниц сеанс.

Ваша основная проблема в том, что команда используется для запуска / инициализации Узел решетки селена . Узел Selenium Grid должен быть запущен с нужным вариантом WebDriver в качестве аргумента следующим образом:

  1. Запустите Selenium Grid Hub (по умолчанию для порта 4444):

    java -jar selenium-server-standalone-3.9.1.jar -role hub
    
  2. Запустите узел Selenium Grid (по умолчанию для порта 5555):

    java -Dwebdriver.chrome.driver=C:/path/to/chromedriver.exe -jar selenium-server-standalone-3.9.1.jar -role node -hub http://localhost:4444/grid/register
    

Подобное подробное обсуждение можно найти в Отказ в соединении! Является ли сервер селен запущен Nightwatch на грани

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...