Выдана ошибка завитка для http POST в / session с параметрами: {"requiredCapabilities": {"browserName": "chrome", "platform": "ANY" с Selenium и PHPUnit - PullRequest
0 голосов
/ 18 февраля 2019

Я выполняю все тесты, используя PHPUnit.Создаем оболочку, которая запускает экземпляр Apache, затем запускает автономный сервер Selenium, затем создает экземпляр Chrome Remote Webdriver со скоростью http://localhost:4444/wd/hub.. Этот процесс работает 100% времени на наших машинах разработчика и 90% временина тестовом сервере, но время от времени тесты проваливаются следующим образом:

 [exec] 1) Intranet\Pages\FinancialReportsSeleniumTest::test_changeMonthYear
 [exec] Facebook\WebDriver\Exception\WebDriverCurlException: Curl error thrown for http POST to /session with params: {"desiredCapabilities":{"browserName":"chrome","platform":"ANY","chromeOptions":{"binary":"","args":["--window-size=1400,900","--no-sandbox","--headless"]},"goog:chromeOptions":{"args":["--window-size=1400,900","--no-sandbox","--headless"]}}}
 [exec] 
 [exec] Failed to connect to localhost port 4444: Connection refused
 [exec] 
 [exec] C:\Jenkins\jobs\Intranet-Master\workspace\vendor\facebook\webdriver\lib\Remote\HttpCommandExecutor.php:292
 [exec] C:\Jenkins\jobs\Intranet-Master\workspace\vendor\facebook\webdriver\lib\Remote\RemoteWebDriver.php:126
 [exec] C:\Jenkins\jobs\Intranet-Master\workspace\phpunit\library\Intranet\Selenium.php:364
 [exec] C:\Jenkins\jobs\Intranet-Master\workspace\phpunit\library\Intranet\Selenium.php:51
 [exec] C:\Jenkins\jobs\Intranet-Master\workspace\phpunit\library\Intranet\SeleniumTestCase.php:9

Если мы повторно запустим тесты, в следующий раз все будет работать нормально.

Dev Machines:

  • Windows 10 Pro (1809) (64 бита)
  • Apache 2.4.38 (32 бита)
  • PHP 7.2.15 (32 бита)
  • Java 1.8.0_192 (64 бита)
  • Selenium 3.141.59
  • Selenium Chrome Driver 73.0.3683.20

Тестовая машина

  • Windows Server 2008 R2 x 64 (64-разрядная версия)
  • Apache 2.4.38 (32-разрядная версия)
  • PHP 7.2.15 (32-разрядная версия)
  • Jenkins 2.1.64
  • Java 1.8.0_192 (64 бита)
  • Selenium 3.141.59
  • Selenium Chrome Driver 73.0.3683.20

Файл журнала показывает, что сервервверх:

10:41:27.392 INFO [GridLauncherV3.launch] - Selenium build info: version: '3.14.0', revision: 'aacccce0'
10:41:27.392 INFO [GridLauncherV3$1.launch] - Launching a standalone Selenium Server on port 4444
10:41:28.562 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 4444

ОБНОВЛЕНИЕ № 1: Теперь мы запускаем автономный сервер Selenium как Службу, но по-прежнему происходит сбой примерно с той же частотой (после каждых 5-10 тестовых прогонов).

ОБНОВЛЕНИЕ № 2: Теперь мы запускаем экземпляр Apacheи удаленный веб-драйвер как часть нашего файла начальной загрузки PHPUnit, прежде чем запускать какие-либо тесты.Мы также теперь проверяем, что веб-драйвер работает (сначала, прежде чем пытаться его запустить), используя fsockopen ().Частота отказов упала до менее чем 5%, но это все еще происходит время от времени.Странно то, что улучшение фактически произошло после того, как мы добавили вызов fsockopen () - может быть, есть проблема с синхронизацией?

1 Ответ

0 голосов
/ 18 февраля 2019

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

 [exec] Facebook\WebDriver\Exception\WebDriverCurlException: Curl error thrown for http POST to /session with params: {"desiredCapabilities":{"browserName":"chrome","platform":"ANY","chromeOptions":{"binary":"","args":["--window-size=1400,900","--no-sandbox","--headless"]},"goog:chromeOptions":{"args":["--window-size=1400,900","--no-sandbox","--headless"]}}}

... означает, что при инициализации сеанса Chrome Browser возникла ошибка Curl .

Похоже, что ваша основная проблема связана с требуемой способностью platform, установленной как ANY.


Согласно platformName раздел Возможности обработки - WebDriver W3C Living Document , следующие названия платформ широко используются с хорошо понятной семантикой, и при сопоставлении возможностей можно достичь наибольшей совместимости, если учитывать их как действительные синонимы для скважины.известные операционные системы:

Key         System
---         ------
"linux"     Any server or desktop system based upon the Linux kernel.
"mac"       Any version of Apple’s macOS.
"windows"   Any version of Microsoft Windows, including desktop and mobile versions.

Примечание : этот список не является исчерпывающим.

При возврате возможностей из нового сеанса допустимо возвращать более конкретное имя платформы., позволяя пользователям правильно идентифицировать операционную систему, в которой работает реализация WebDriver.

Таким образом, вместо передачи "platform":"ANY" в требуемых возможностях объектт, более конкретный "platform":"windows" будет более желательным подходом.

...