Xvfb и транспортир производят тайм-ауты - PullRequest
0 голосов
/ 24 марта 2020

Я хочу запустить тесты транспортира на платформе интеграции веб-сервера без gui на основе redhat linux. Тесты будут выполняться при каждом развертывании программного обеспечения веб-сервера. Я использую firefox и geckodriver. Цепочка вызовов

  • вызовы транспортира
  • firefox на
  • вызовы Xvfb
  • (локальный) веб-сервер
  • и назад к вызывающему.

Я получаю тайм-ауты Jasmine при запуске Protractor с Xvfb.

Мое окружение:

  • узел: v12.14.1
  • npm: 6.14.2
  • Xvfb:?, Установленный, вызываемый
  • xvfb-run:?, Установленный, вызываемый

Мои стартовые скрипты :

Selenium:

java -jar -Dwebdriver.chrome.driver=/pathx/geckodriver-v0.26.0 /pathy/selenium-server-standalone-3.141.59.jar &

По сути, это именно то, что делает 'запуск webdriver-manager', но мне не нужно обновление заранее.

Xvfb:

xvfb-run --auto-servernum --server-args='-screen 0 1920x1200x24' -e xvfb.err firefox &

Транспортир:

DISPLAY=:99 protractor --verbose --troubleshoot --logLevel=DEBUG protractor.conf.js

Все, что я получаю, это

[15:00:59] D/launcher - Running with --troubleshoot
[15:00:59] D/launcher - Protractor version: 5.4.3
[15:00:59] D/launcher - Your base url for tests is undefined
[15:00:59] I/launcher - Running 1 instances of WebDriver
[15:00:59] I/direct - Using FirefoxDriver directly...
[15:01:00] D/runner - WebDriver session successfully started with capabilities C                              apabilities {
  map_: Map {
    'acceptInsecureCerts' => false,
    'browserName' => 'firefox',
    'browserVersion' => '60.9.0',
    'moz:accessibilityChecks' => false,
    'moz:geckodriverVersion' => '0.26.0',
    'moz:headless' => false,
    'moz:processID' => 32246,
    'moz:profile' => '/tmp/rust_mozprofileAz14ww',
    'moz:useNonSpecCompliantPointerOrigin' => false,
    'moz:webdriverClick' => true,
    'pageLoadStrategy' => 'normal',
    'platformName' => 'linux',
    'platformVersion' => '3.10.0-957.el7.x86_64',
    'rotatable' => false,
    'timeouts' => { implicit: 0, pageLoad: 300000, script: 30000 }
  }
}
[15:01:00] D/runner - Running with spec files /home/xgadvls/az-uss/frontend/e2e/                              src/specs/login/login-spec.ts,/home/xgadvls/az-uss/frontend/e2e/src/specs/logout                              /logout-spec.ts
Started
undefined
F(node:32231) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
FA Jasmine spec timed out. Resetting the WebDriver Control Flow.
A Jasmine spec timed out. Resetting the WebDriver Control Flow.
FA Jasmine spec timed out. Resetting the WebDriver Control Flow.


Failures:
1) Anmeldung Anmeldedate werden eingegeben
  Message:
    Failed: WebDriverError
  Stack:
    Error: Failed: WebDriverError
        at /home/xgadvls/az-uss/node_modules/jasminewd2/index.js:64:48
...

Как я могу получить ошибку веб-драйвера, если ее нет в моей цепочке вызовов ?! Что я делаю неправильно? Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 25 марта 2020

Проблема была вызвана неверным сертификатом.

Мой способ решения может быть интересным.

Я переименовал geckodriver-v0.26.0 (или около того) в geckodriver.bin. Я сделал скрипт с исходным именем geckodriver и вызвал в этом скрипте версию bin с аргументом -vv (очень подробный) и перенаправил вывод в файл (> myfile). Важно передать все параметры ($ @).

Следующий тест информировал меня в файле журнала о недействительном сертификате. Это может быть исправлено параметром AcceptInsecureCerts для firefox. (Я думаю, chrome также)

Здесь мы go.

Надеюсь, это кому-нибудь поможет.

...