当在Testcafe中运行并发测试时,有没有一种方法可以区分一个浏览器实例和另一个



在Testcafe中运行并发测试时,有没有一种方法可以区分一个浏览器实例和另一个?

假设我们有两个测试。

  • 创建一些实体,然后对其进行更改,并验证更改是否正确应用
  • 另一个会删除所有实体,并验证是否删除了所有实体

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

我宁愿选择第二种选择。它可能是类似的东西

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

但是AFAIK没有办法在测试代码中区分一个浏览器实例和另一个。还是有?

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

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

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

最新更新