硒网格。在各种浏览器中并行执行

问题描述 投票:0回答:1

现在我用它来运行测试。我在命令行中传递浏览器的名称和帮助流的数量。 pytest-xdist

def __init__(self, browser):
    desired_capabilites = None
    comand_executor = "http://localhost:4444/wd/hub"

    if browser == "chrome":
        desired_capabilites =  {
                "browserName": "chrome",
                "maxInstances": 5
            }
    elif browser == "firefox":
        desired_capabilites = {
            "browserName": "firefox",
            "maxInstances": 5
        }

    self.driver = webdriver.Remote(
        command_executor=comand_executor,
        desired_capabilities=desired_capabilites)

但在我看来,这种方法有几个缺点:

  • 在发布之前,始终启动* selenium-server *(java -jar selenium-standalone-server.jar) - 测试不同浏览器中的所有内容
  • 我必须运行两次测试(一次用于铬,第二次用于ff)

有可能以某种方式自动化服务器启动吗?

以及如何在不同的浏览器中并行运行测试?

一个很好的选择是创建两个节点并在两者中同时运行测试。或者在一个节点中创建几个不同的浏览器并启动它们。但我不知道如何。在此先感谢您的帮助

selenium selenium-webdriver pytest selenium-grid
1个回答
0
投票

有两种方法可以解决这个问题。

  1. 获取云实例或服务器,您可以在其中启动selenium网格并使用服务器Url访问它。因此,在完成测试后,您无需关闭服务器。
  2. 如果你想自动完成整个设置和去皮过程,你可以使用Jenkins并配置Jenkins,这样你就可以在运行测试之前设置整个网格,并在完成测试后去掉它。

如果您使用黄瓜,您可以将测试用例标记为@Chrome和@FF,当您使用远程浏览器时,如果使用scenario.tagName.equals(Chrome),则在节点中运行或使用chrome功能启动remotedriver。

© www.soinside.com 2019 - 2024. All rights reserved.