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 中运行此脚本的要求。
(这个问题和我问的不一样)
正如您在Dockerfile中看到的,testcafe/testcafeDocker 镜像基于 Alpine Linux 镜像。它不包含Chrome浏览器,但您可以使用浏览器运行测试。\n可以在本文档Chromium中找到更多信息
\n\nTestCafe 提供了一个预配置的 Docker 镜像,其中安装了 Chromium 和 Firefox。
\n
我已经为您创建了一个简单的示例来说明它是如何工作的。\n在我的本地计算机上,我有tests一个包含一个简单测试脚本的目录script.js:
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});\nRun Code Online (Sandbox Code Playgroud)\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)\nRun Code Online (Sandbox Code Playgroud)\n此外,您可能想使用例如 Kubernetes 在 Kubernetes 中运行一些测试Jobs。
我Dockerfile基于testcafe/testcafe图像创建,将测试脚本复制到适当的位置,然后从中构建图像Dockerfile:
FROM testcafe/testcafe\n...\nCOPY tests/script.js /tests/script.js\n...\nRun Code Online (Sandbox Code Playgroud)\n最后,我Job使用上面的图像创建了(也可以CronJob):
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\nRun Code Online (Sandbox Code Playgroud)\n我们可以看到Job成功完成:
$ 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\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3079 次 |
| 最近记录: |