我是并行测试的新手,我想知道它们之间有什么区别。
显然,pytest-xdist 不需要 Selenium Grid 来运行。它可以单独与 Selenium 一起使用。
有没有人有任何线索或资源可以让我了解差异?
谢谢和亲切的问候。
我是并行测试的新手,我想知道它们之间有什么区别。
显然,pytest-xdist 不需要 Selenium Grid 来运行。它可以单独与 Selenium 一起使用。
有没有人有任何线索或资源可以让我了解差异?
谢谢和亲切的问候。
以防万一这对任何人有用,我会写下我学到的东西:
pytest-xdist:它用于在将运行测试的本地机器中安装的浏览器中运行并行测试。这意味着每个测试都配置了一个浏览器(例如:Firefox、Chrome),例如:
driver = webdriver.Firefox()
或者
driver = webdriver.Chrome()
因此,每个测试都将使用代码中指定的驱动程序运行。显然,本地机器需要浏览器驱动程序在任何PATH位置都可用,以便可以使用它们运行测试。
Selenium Grid:它允许在不同的浏览器、浏览器版本和操作系统配置中执行测试。
Selenium Grid结合pytest-xdist允许在不同的浏览器操作系统环境中执行并行测试(我认为配置了功能)。
执行命令示例为:
pytest -n5 -v -s -m "test or ready" --capability browserName firefox
-n5:(pytest 参数)表示将同时启动 5 个浏览器实例。
test 或 ready:这些标记可以组合起来执行具有这些标记的测试。
browserName firefox:它是一项功能,表示测试必须在指定的浏览器中运行,在本例中为 Firefox。一些可能的值是:chrome, firefox, internet explorer, safari
。
其他一些功能是:
version:要使用的浏览器版本。
platform:将在其中执行浏览器的平台。一些可能的值是:WINDOWS, XP, VISTA, MAC, LINUX, UNIX, ANDROID
。
要设置 Selenium Grid 环境,请执行以下步骤:
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
,例如:driver = webdriver.Remote( desired_capabilities = DesiredCapabilities.CHROME, command_executor = 'http://[URL_HUB]:4444/wd/hub')
我仍然需要学习如何将功能 args作为RemoteDriver
. 在conftest.py
文件中,我可以使用config.getoption('--capability'))
. 我仍然需要弄清楚如何将我想要的功能传递给我setUp
所有测试的方法。
如果有人知道,我将非常感谢您对此的提示。
我希望这可以帮助像我一开始一样迷失的人:)