Selenium并行测试运行多个浏览器实例之间的冲突b/c共享本地存储



我开始为一个角度SPA设置量角器测试。为了加快测试的运行速度,我设置了Selenium,让它在Firefox和Chrome中使用每个浏览器的多个实例来运行测试。

在每个测试用例之前,我们清除localStorage,以便我们确定我们的起始位置。

然而,今天我发现了一个冲突。因为一个浏览器有两个实例,如果指向同一个域,它将在这两个实例之间共享localStorage。因此,如果我有两个并行运行的测试,其中一个需要用户登录,而另一个需要用户注销——那么,第一个测试将登录用户,现在第二个浏览器实例中的用户也将登录(因为localStorage在两个浏览器中都被设置/更新了)。

现在,我的一个测试失败了,因为它发现自己在错误的页面上。

有没有简单的方法来克服这个问题?(这并不涉及设置服务器和多个实例,或花费$2,000/月在Saucelabs/Browserstack…)

好吧,我正面临着同样的问题,这是我得到的解决方案:

  1. 你必须制作一个框架的副本,并将其存储在本地机器的两个不同位置。

  2. 您必须为在selenium中启动的每个实例创建不同的侦听端口,您可以通过配置用于启动自动化测试的testing .xml来完成相同的操作。

最新更新