在 Docker 容器中的 Chrome Headless 上运行 Testcafe 脚本

Kee*_*asa 0 testing google-chrome docker kubernetes testcafe

我有一个 Testcafe 脚本 ( script.js)。我想在 Chrome 浏览器上运行它,但以无头模式运行。所以,我使用以下命令。

testcafe chrome:headless script.js
Run Code Online (Sandbox Code Playgroud)

这很好用。但是,现在我希望对其进行 Docker 化并在容器中运行它。目的是让它在 Kubernetes 中运行。我怎样才能实现这个目标?

我看到Testcafe Docker 镜像,但这只是为了运行 Testcafe 实例。它不能满足我在容器中的 Chrome Headless 中运行此脚本的要求。

这个问题和我问的不一样)

mat*_*t_j 5

正如您在Dockerfile中看到的,testcafe/testcafeDocker 镜像基于 Alpine Linux 镜像。它不包含Chrome浏览器,但您可以使用浏览器运行测试。\n可以在本文档Chromium中找到更多信息

\n
\n

TestCafe 提供了一个预配置的 Docker 镜像,其中安装了 Chromium 和 Firefox。

\n
\n
\n

码头工人

\n

我已经为您创建了一个简单的示例来说明它是如何工作的。\n在我的本地计算机上,我有tests一个包含一个简单测试脚本的目录script.js

\n
root@server1:~# cat /tests/script.js \nimport { Selector } from \'testcafe\';\n\nfixture `First test`\n    .page `http://google.com`;\n\ntest(\'Test 1\', async t => {\n        // Test code\n});\n
Run Code Online (Sandbox Code Playgroud)\n

我可以使用以下命令在容器中运行此测试脚本:

\n
root@server1:~# docker run -v /tests:/tests -it testcafe/testcafe chromium:headless /tests/script.js\n Running tests in:\n - Chrome 86.0.4240.111 / Linux 0.0\n\n First test\n \xe2\x9c\x93 Test 1\n\n\n 1 passed (1s)\n
Run Code Online (Sandbox Code Playgroud)\n

库伯内斯

\n

此外,您可能想使用例如 Kubernetes 在 Kubernetes 中运行一些测试Jobs

\n

Dockerfile基于testcafe/testcafe图像创建,将测试脚本复制到适当的位置,然后从中构建图像Dockerfile

\n
FROM testcafe/testcafe\n...\nCOPY tests/script.js /tests/script.js\n...\n
Run Code Online (Sandbox Code Playgroud)\n

最后,我Job使用上面的图像创建了(也可以CronJob):

\n
apiVersion: batch/v1\nkind: Job\nmetadata:\n  name: simple-test\nspec:\n  backoffLimit: 3\n  template:\n    spec:\n      containers:\n      - image: <IMAGE_NAME>\n        name: simple-test\n        args: [ "chromium:headless", "/tests/script.js" ]\n      restartPolicy: Never\n
Run Code Online (Sandbox Code Playgroud)\n

我们可以看到Job成功完成:

\n
$ kubectl get job,pod\nNAME                    COMPLETIONS   DURATION   AGE\njob.batch/simple-test   1/1           18s        14m\n\nNAME                    READY   STATUS      RESTARTS   AGE\npod/simple-test-w72g2   0/1     Completed   0          14m\n
Run Code Online (Sandbox Code Playgroud)\n