gpt4 book ai didi

javascript - 如何在单个浏览器实例上运行所有测试脚本

转载 作者:行者123 更新时间:2023-11-28 19:49:02 24 4
gpt4 key购买 nike

我正在使用带有 Java 脚本的 Testcafe(免费版)。我想在每个浏览器类型的单个浏览器实例中运行我的所有测试用例(驻留在 __test__ 目录中的多个测试脚本中)(以这种方式登录 1 次)。

  1. 例如,1 个用于 chrome 的实例和 1 个用于 safari 的实例,但所有测试都将在关闭浏览器之前运行。
  2. 如果测试失败,我希望截取屏幕截图并计算测试失败的次数。但又想继续。
  3. 我在 Node 12 Docker 镜像上完成所有工作,所以最好不需要安装任何其他东西。

我如何使用 Testcafe 做到这一点?

const createTestCafe = require('testcafe')

let testcafe = null
let runner = null

createTestCafe('localhost', 1337, 1338)
.then(tc => {
testcafe = tc

const runner = testcafe.createRunner()

return runner
.src([ '__test__/*.js' ])
.browsers([ 'chrome:headless --no-sandbox --disable-gpu', 'safari' ])
.screenshots('./reports/screenshots/', true)
.run({
selectorTimeout: 10000,
assertionTimeout: 10000,
})
})

runner
.screenshots({
path: 'reports/screenshots/',
takeOnFails: true,
})
.then(failedCount => {
console.log('Tests failed: ' + failedCount)

testcafe.close()
})
.catch(error => {
console.log("An ERROR detected:" + error)
})

这是在 Dockerfile 上安装 chrome 的方式。有人能告诉我如何在 Dockerfile 上安装 Firefox 吗?

RUN sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' && \
http_proxy=${http_proxy} https_proxy=${https_proxy} apt-get update && \
http_proxy=${http_proxy} https_proxy=${https_proxy} apt-get install -y --allow-unauthenticated google-chrome-stable && \
apt clean && rm -rf /var/lib/apt/lists/*

最佳答案

一次满足所有要求是不可能的。

1) For example, 1 instance for chrome and 1 instance for safari but all tests will run before closing the browser.

您不能在 docker 镜像上安装 Chrome 和 Safari 网络浏览器。可以只在其上安装 Chromium 和 Firefox。查看Using TestCafe docker帮助主题以获取更多信息。

2) If a test fail, I want the screen shot taken and count number of test failed. But do want to continue.

TestCafe 的 Live mode以相同的方式工作,但它在 docker 上不可用。

关于javascript - 如何在单个浏览器实例上运行所有测试脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58757716/

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