如何解决Selenium Grid 和 pytest-xdist 插件有什么区别?
我是并行测试的新手,我想知道它们之间有什么区别。
显然,pytest-xdist 不需要 Selenium Grid 来运行。它可以单独与 Selenium 一起使用。
有没有人有任何线索或资源可以让我了解其中的区别?
谢谢和亲切的问候。
解决方法
为了以防万一这对任何人有用,我会写下我学到的:
pytest-xdist:用于在安装在将运行测试的本地机器上的浏览器中运行并行测试。这意味着每个测试都配置了一个浏览器(例如:Firefox、Chrome),例如:
+------------+---------+---------------------+------------+
| feature_id | user_id | feature_name | can_access |
+------------+---------+---------------------+------------+
| 1 | 1 | automated-investing | 1 |
| 2 | 1 | crypto | 0 |
| 3 | 2 | crypto | 0 |
| 4 | 3 | automated-investing | 0 |
| 5 | 4 | automated-investing | 1 |
| 7 | 1 | financial-tracking | 1 |
| 8 | 2 | financial-tracking | 0 |
| 9 | 3 | financial-tracking | 1 |
| 10 | 4 | financial-tracking | 0 |
| 11 | 5 | crypto | 1 |
+------------+---------+---------------------+------------+
或
driver = webdriver.Firefox()
因此,每个测试都将使用代码中指定的驱动程序运行。显然,本地机器需要浏览器驱动程序在任何PATH 位置可用,以便可以使用它们运行测试。
Selenium Grid:它允许在不同浏览器、浏览器版本和操作系统配置中执行测试。
Selenium Grid 结合 pytest-xdist 允许在不同的 浏览器操作系统 环境中执行并行测试(配置了功能,我认为).
一个执行命令示例是:
driver = webdriver.Chrome()
-n5:(pytest参数)表示会同时启动5个浏览器实例。
test or ready:这些标记可以组合起来执行具有这些标记的测试。
browserName firefox:这是一项功能,表明测试必须在指定的浏览器中运行,在本例中为 Firefox。一些可能的值是:pytest -n5 -v -s -m "test or ready" --capability browserName firefox
.
其他一些功能是:
version:要使用的浏览器版本。
平台:浏览器将在其中执行的平台。一些可能的值是:chrome,firefox,internet explorer,safari
.
要设置 Selenium Grid 环境,请执行以下步骤:
- 从以下位置下载 selenium-server-standalone-[version].jar https://www.selenium.dev/downloads/。
- 启动HUB:
WINDOWS,XP,VISTA,MAC,LINUX,UNIX,ANDROID
- 根据需要启动任意数量的 NODES:
java -jar selenium-server-standalone-[version].jar -role hub
- 在测试中配置一个
java -jar selenium-server-standalone-[version].jar -role node -hub http://[URL_HUB]/wd/hub
,例如:RemoteDriver
我仍然需要学习如何将 capabilities args 作为参数传递给 driver = webdriver.Remote( desired_capabilities = DesiredCapabilities.CHROME,command_executor = 'http://[URL_HUB]:4444/wd/hub')
。在 RemoteDriver
文件中,我可以使用 conftest.py
以列表形式获取功能。我仍然需要弄清楚如何将我想要的功能传递给我所有测试的 config.getoption('--capability'))
方法。
如果有人知道,我会很感激的。
我希望这能帮助那些和我一开始一样迷茫的人:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。