首页 > 解决方案 > 在 Testcafe 中运行并发测试时,有没有办法区分一个浏览器实例

问题描述

在 Testcafe 中运行并发测试时,有没有办法区分一个浏览器实例?

假设我们有两个测试。

如果我们并行运行这些测试,它们将相互干扰。因此,必须有一种方法来接受这种并发性并将这些测试与某些原语同步,或者使它们并行并在隔离的沙箱中运行。

我宁愿选择第二个选项。可能是这样的

test('Some test', async t => {
  await useSandbox(t.browser.alias, t.browser.os.name, t.browser.instanceId);
  ... rest of the test
})

但是 AFAIK 无法在测试代码中区分一个浏览器实例与另一个浏览器实例。或者有吗?

标签: testingautomationautomated-testse2e-testingtestcafe

解决方案


TestCafe 没有一种机制来影响另一个测试的测试执行。当 TestCafe 并行启动测试时,它不会假设一个测试会干扰另一个测试。

TestCafe 以明确的 cookie、存储和用户配置文件开始每个测试。因此,如果您的数据保存在 localStorage 中,则每个测试都将独立运行。但是,如果您的数据保存在服务器端(即数据库中),那么 TestCafe 不能在沙箱中使用它,因为所有测试都通过同一个网站与数据库交互。

在这种情况下,最好一个一个地运行这两个测试,而不是同时运行。


推荐阅读