跳至主要內容

Docker 服務

wdio-docker-service 是一個第三方套件,如需更多資訊,請參閱 GitHub | npm

此服務旨在與 WebdriverIO 搭配使用,並協助針對/使用容器化應用程式執行功能/整合測試。它使用廣受歡迎的 Docker 服務(需另外安裝)來執行容器。

為何要使用它?

理想情況下,您的測試會在某種類型的 CI/CD 管道中執行,其中通常沒有「真實」的瀏覽器和其他您的應用程式所依賴的資源。隨著 Docker 的出現,實際上所有必要的應用程式依賴項都可以容器化。使用此服務,您可以在 CI 中以及完全隔離的情況下執行您的應用程式容器或 docker-selenium(假設 CI 可以將 Docker 安裝為依賴項)。如果您的應用程式需要與您的主要作業系統隔離,這也適用於本機開發。

運作方式

服務將執行現有的 Docker 映像檔,一旦準備就緒,就會啟動 WebdriverIO 測試,這些測試應針對您的容器化應用程式執行。

安裝

執行

npm install wdio-docker-service --save-dev

有關如何安裝 WebdriverIO 的說明,請參閱此處

設定

預設情況下,在主機系統上安裝 Google Chrome、Firefox 和 PhantomJS 時可以使用。為了使用此服務,您需要將 docker 加入您的服務陣列

// wdio.conf.js
exports.config = {
// ...
services: ['docker'],
// ...
};

選項

dockerOptions

執行 Docker 容器所需的各種選項

類型:Object

預設值:{ options: { rm: true } }

範例

dockerOptions: {
image: 'selenium/standalone-chrome',
healthCheck: 'https://127.0.0.1:4444',
options: {
p: ['4444:4444'],
shmSize: '2g'
}
}

dockerOptions.image

Docker 容器名稱標籤。可以是本機的或來自 Docker HUB。

類型:String

必要:true

dockerOptions.healthCheck

設定,在啟動測試之前檢查您的容器是否已準備就緒。通常這會是一個 localhost URL。如果未設定 healthCheck,Webdriver 會在 Docker 容器啟動後立即開始執行測試,考慮到 Web 服務在 Docker 容器內啟動需要時間,這可能太早了。

類型:String|Object

Object 使用的選項

  • url - 容器內運行的應用程式的 URL
  • maxRetries - 在 healthcheck 失敗之前的重試次數。預設值:10
  • inspectInterval - 每次重試之間的間隔,以毫秒為單位。預設值:500
  • startDelay - 開始 healthcheck 的初始延遲,以毫秒為單位。預設值:0

範例 1 (字串):healthCheck: 'https://127.0.0.1:4444'

範例 2 (物件)

healthCheck: {
url: 'https://127.0.0.1:4444',
maxRetries: 3,
inspectInterval: 1000,
startDelay: 2000
}

dockerOptions.options

docker run 命令使用的選項對應。如需有關 run 命令的更多詳細資訊,請按一下此處

任何單字母選項都會轉換為 -[option](即 d: true -> -d)。

任何兩個或更多字元的選項都會轉換為 --[option](即 rm: true -> --rm)。

對於可能多次使用的選項(即 -e-add-host--expose 等),請使用陣列標記法(即 e: ["NODE_ENV=development", "FOO=bar"])。

類型:Object

範例

options: {
e: ['NODE_ENV=development', 'PROXY=http://myproxy:80']
p: ['4444:4444', '5900:5900'],
shmSize: '2g'
}

dockerOptions.args

您可能想要傳遞到容器中的任何引數。對應於 Docker run CLI 中的 [ARG...]

類型:String

dockerOptions.command

您可能想要傳遞到容器中的任何命令。對應於 Docker run CLI 中的 [COMMAND]

類型:String

onDockerReady

當 Docker 應用程式準備就緒時呼叫的回呼方法。是否準備就緒由 ping healthCheck URL 的能力決定。

類型:Function

dockerLogs

應儲存 Docker 容器記錄的路徑

類型:String

測試使用案例/做法

如需更多詳細資訊,請瀏覽我們的 Wiki

歡迎!我能為您做些什麼?

WebdriverIO AI Copilot