簡體   English   中英

Gitlab ci selenium 測試與 docker 未連接到 RemoteWebDriver

[英]Gitlab ci selenium testing with docker not connecting to RemoteWebDriver

我想用 gitlab-ci、docker 自動運行 selenium 測試。

在本地一切正常,但似乎 docker 和 selenium 存在一些連接問題。

工作失敗

selenium.test.dashboard.MyTest > myFirstTest FAILED
    org.openqa.selenium.remote.UnreachableBrowserException
        Caused by: java.net.ConnectException
            Caused by: java.net.ConnectException
    java.lang.NullPointerException

我嘗試更改不同的 url 以連接到 selenium 服務器,我認為可能存在端口問題。 但是我嘗試過的每種組合都得到了相同的結果。

.gitlab-ci.yml

image: gradle:alpine

variables:
  GRADLE_OPTS: "-Dorg.gradle.daemon=false"

before_script:
  - export GRADLE_USER_HOME=`pwd`/.gradle

stages:
  - build
  - seleniumTesting


build:
  stage: build
  script: 
    - echo $CI_JOB_STAGE
    - echo $CI_COMMIT_REF_NAME
    - gradle --build-cache war
  artifacts:
    paths:
      - public
  cache:
    key: "$CI_COMMIT_REF_NAME"
    policy: push
    paths:
      - build
      - .gradle


seleniumTestingChrome:
  stage: seleniumTesting
  script: gradle integrationTest
#  services:
#    - selenium/standalone-chrome:latest 
  services:
    - name: selenium/standalone-chrome:latest 
  artifacts:
    paths:
      - build/reports/tests/
  cache:
    key: "$CI_COMMIT_REF_NAME"
    policy: push
    paths:
      - build
      - .gradle

RemoteWebDriver 的 Java 代碼

DesiredCapabilities capabilities = new DesiredCapabilities();
            capabilities.setBrowserName(DesiredCapabilities.chrome().getBrowserName());

            try {
//              driver = new RemoteWebDriver( new URL("http://selenium_standalone-chrome:4444/wd/hub"), capabilities);
                WebDriver driver = new RemoteWebDriver( new URL("http://127.0.0.1:4444/wd/hub"), capabilities);

            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

在 runner 上創建容器

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
92f018da4cbe        8017d8c2ba74        "sh -c 'if [ -x /usr…"   20 seconds ago      Up 19 seconds                           runner-Y2QWpCBd-project-4-concurrent-0-build-4
9dfdc838a7af        9e599fb82f84        "/opt/bin/entry_poin…"   40 seconds ago      Up 38 seconds       4444/tcp            runner-Y2QWpCBd-project-4-concurrent-0-selenium__standalone-chrome-0

docker 在 runner 上記錄命令

019-08-30 17:06:02,099 INFO Included extra file "/etc/supervisor/conf.d/selenium.conf" during parsing
2019-08-30 17:06:02,101 INFO supervisord started with pid 7
2019-08-30 17:06:03,106 INFO spawned: 'xvfb' with pid 10
2019-08-30 17:06:03,109 INFO spawned: 'selenium-standalone' with pid 11
17:06:03.826 INFO [GridLauncherV3.parse] - Selenium server version: 3.141.59, revision: e82be7d358
2019-08-30 17:06:03,830 INFO success: xvfb entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2019-08-30 17:06:03,830 INFO success: selenium-standalone entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
17:06:04.065 INFO [GridLauncherV3.lambda$buildLaunchers$3] - Launching a standalone Selenium Server on port 4444
2019-08-30 17:06:04.200:INFO::main: Logging initialized @1058ms to org.seleniumhq.jetty9.util.log.StdErrLog
17:06:04.804 INFO [WebDriverServlet.<init>] - Initialising WebDriverServlet
17:06:05.050 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 4444

我確實希望測試在 docker 容器中的 gitlab-ci-runner 上運行。 連接到 selenium-server 並使用公共可用的 url 執行 selenium 測試

正如@Sascha Frinken所指出的

連接到RemoteWebDriver的URL錯誤。 我錯過了一個下划線。

http:// selenium_standalone-chrome:4444 / wd / hub

VS

http:// selenium__standalone-chrome:4444 / wd / hub

gitlab https://docs.gitlab.com/ee/ci/services/#accessing-the-services 中有一個主題,其中指出

Everything after the colon (:) is stripped.
Slash (/) is replaced with double underscores (__) and the primary alias is created.
Slash (/) is replaced with a single dash (-) and the secondary alias is created (requires GitLab Runner v1.1.0 or higher). 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM