跳至主要內容

Docker

Docker 是一種強大的容器化技術,可讓您將測試套件封裝到一個在每個系統上行為都相同的容器中。這可以避免因瀏覽器或平台版本不同而導致的不穩定。為了在容器中運行測試,請在您的專案目錄中建立一個 Dockerfile,例如:

FROM ianwalter/puppeteer:latest
WORKDIR /app
ADD . /app

RUN npm install

CMD npx wdio

請確保您沒有將 node_modules 包含在您的 Docker 映像檔中,並在建立映像檔時安裝這些模組。為此,請新增一個具有以下內容的 .dockerignore 檔案

node_modules
資訊

我們在這裡使用的是預先安裝 Google Chrome 的 Docker 映像檔。有各種具有不同瀏覽器設定的映像檔可用。請查看 Selenium 專案維護的映像檔在 Docker Hub 上

由於我們只能在 Docker 容器中以無頭模式運行 Google Chrome,因此我們必須修改 wdio.conf.js 以確保我們這樣做

wdio.conf.js
export const config = {
// ...
capabilities: [{
maxInstances: 1,
browserName: 'chrome',
'goog:chromeOptions': {
args: [
'--no-sandbox',
'--disable-infobars',
'--headless',
'--disable-gpu',
'--window-size=1440,735'
],
}
}],
// ...
}

自動化協定中所述,您可以使用 WebDriver 協定或 Chrome DevTools 運行 WebdriverIO。如果您使用 WebDriver,請確保您的映像檔上安裝的 Chrome 版本與您在 package.json 中定義的 Chromedriver 版本相符。

要建立 Docker 容器,您可以執行

docker build -t mytest -f Dockerfile .

然後要運行測試,請執行

docker run -it mytest

有關如何設定 Docker 映像檔的詳細資訊,請查看Docker 文件

歡迎!我能幫您什麼嗎?

WebdriverIO AI Copilot