跳至主要内容

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