0

我是并行测试的新手,我想知道它们之间有什么区别。

显然,pytest-xdist 不需要 Selenium Grid 来运行。它可以单独与 Selenium 一起使用。

有没有人有任何线索或资源可以让我了解差异?

谢谢和亲切的问候。

4

1 回答 1

0

以防万一这对任何人有用,我会写下我学到的东西:

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 环境,请执行以下步骤:

  1. https://www.selenium.dev/downloads/下载selenium-server-standalone-[version].jar
  2. 启动集线器java -jar selenium-server-standalone-[version].jar -role hub
  3. 根据需要启动任意数量的节点: java -jar selenium-server-standalone-[version].jar -role node -hub http://[URL_HUB]/wd/hub
  4. 在测试中配置 a RemoteDriver,例如:driver = webdriver.Remote( desired_capabilities = DesiredCapabilities.CHROME, command_executor = 'http://[URL_HUB]:4444/wd/hub')

我仍然需要学习如何将功能 args作为RemoteDriver. 在conftest.py文件中,我可以使用config.getoption('--capability')). 我仍然需要弄清楚如何将我想要的功能传递给我setUp所有测试的方法。

如果有人知道,我将非常感谢您对此的提示。

我希望这可以帮助像我一开始一样迷失的人:)

于 2021-06-02T14:34:25.157 回答