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 文件。