gpt4 book ai didi

docker - Chromium 使用 TestCafe Docker 镜像挂起

转载 作者:行者123 更新时间:2023-12-02 18:20:14 24 4
gpt4 key购买 nike

尝试在 testcafe/testcafe Docker 镜像中 headless 运行 Chromium 会导致浏览器挂起,无论我使用什么选项。这是我目前所拥有的:

"browsers": {
"path": "/usr/bin/chromium-browser",
"cmd": "--headless --disable-gpu --no-sandbox"
}

几分钟后的输出:
e2e_1  | Using locally installed version of TestCafe.
e2e_1 | ERROR The HeadlessChrome 71.0.3578 / Linux 0.0.0 browser disconnected. This problem may appear when a browser hangs or is closed, or due to network issues.
e2e_1 |
e2e_1 | Type "testcafe -h" for help.

如果我删除 --headless,这工作正常,但随后浏览器正在渲染为 Xvfb 而不是 headless 运行。

Dockerfile:
FROM testcafe/testcafe

USER root

RUN apk --no-cache add \
ffmpeg

RUN mkdir /home/e2e
WORKDIR /home/e2e
COPY . .
RUN chmod -R 757 /home/e2e

USER user

RUN npm install

EXPOSE 1337 1338

ENTRYPOINT ["/home/e2e/testcafe-docker.sh"]

testcafe-docker.sh:
#!/bin/sh
XVFB_SCREEN_WIDTH=${SCREEN_WIDTH-1280}
XVFB_SCREEN_HEIGHT=${SCREEN_HEIGHT-720}

dbus-daemon --session --fork
Xvfb :1 -screen 0 "${XVFB_SCREEN_WIDTH}x${XVFB_SCREEN_HEIGHT}x24" >/dev/null 2>&1 &
export DISPLAY=:1.0
fluxbox >/dev/null 2>&1 &
testcafe --ports 1337,1338 "$@"

.testcaferc.json:
{
"browsers": "chromium --no-sandbox",
"src": ["tests/*"],
"reporter": "spec",
"screenshotPath": "tmp/screenshots/",
"screenshotPathPattern": "${DATE}_${TIME}/test-${TEST_INDEX}/${USERAGENT}/${FILE_INDEX}.png",
"takeScreenshotsOnFails": true,
"videoPath": "tmp/reports/screen-captures",
"videoOptions": {
"singleFile": true,
"failedOnly": true,
"pathPattern": "${TEST_INDEX}/${USERAGENT}/${FILE_INDEX}.mp4"
},
"videoEncodingOptions": {
"r": 20,
"aspect": "16:9"
},
"skipJsErrors": true,
"concurrency": 1,
"port1": 1337,
"port2": 1338
}

编辑:我应该纠正自己,当我删除 --headless 时,这在 100% 的情况下都不起作用,当它是 headless 的时,它也不会 100% 失败。无论哪种方式,它都会间歇性地通过一两个测试,然后失败。 Firefox 确实通过了 100% 的时间。 我也一直在尝试 docker-compose,但在我的 docker-compose.yml 中没有什么特别之处,而且行为似乎相同。

最佳答案

[更新] 最新的 TestCafe 版本 ( 1.1.4 ) 包含所有必要的标志。
您可以简化 browsers property值如下:

"browsers": "chromium"

关于docker - Chromium 使用 TestCafe Docker 镜像挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54870850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com