4

我正在尝试将这些所有东西一起使用以在无头 chrome 中运行并行测试:

码头工人,硒,Pytest

但是,我想知道运行系统的并行部分在哪里有意义?

Docker 可以做到这一点(使用 selenium 网格)。这两者都可用于运行并行(和分布式)硒测试。例如

https://github.com/elgalu/docker-selenium

https://github.com/zalando/zalenium

Pytest 也有自己的运行并行测试的方式(使用 pytest-xdist),例如

http://pytest.org/dev/xdist.html

运行 10 个并行 pytest-xdist 会比运行 10 个 docker 容器更容易吗?

我将不胜感激找出每个人的优点/缺点。

另外,知道如何一起使用这些东西吗?这方面的信息似乎真的很少。

4

2 回答 2

0

您可以根据需要/想要创建尽可能多的容器,然后您将告知容器的 xdist IP,如果您需要 UI 测试,那么 pytest 有 pytest-splinter,如果您需要 bdd 场景,您可以使用 pytest-bdd。

于 2017-05-10T11:40:32.603 回答
0

但是,我想知道运行系统的并行部分在哪里有意义?

每个部分都将有助于并行性的发生。您需要 Selenium HUB 来编排可用的浏览器来运行测试。您可以让n 个浏览器以无头模式运行,每个浏览器都隔离在自己的容器中。

运行 10 个并行 pytest-xdist 会比运行 10 个 docker 容器更容易吗?

Pytest 将为您并行化测试执行,而不是将实例化和编排到可用浏览器。

总结:

问题:您需要并行运行 UI (Selenium) 测试。您将需要N个可用的浏览器来运行此测试。

解决方案:可以从docker启动N个headless chrome节点。问题:您有 10 种不同的连接选项可以在您的测试中提供给您的驱动程序。

解决方案:启动 selenium hub 并让它为您管理这些。因此,您只需关注一个连接点,然后它就会为您提供可以自由运行该测试的浏览器。

问题:您现在运行测试并且只使用了一个浏览器。解决方案:使用 xdist 指示 pytest 每次运行X次测试。在这种情况下, X可以匹配N个可用的浏览器。

于 2019-12-11T15:22:31.633 回答