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

时间:2019-04-23 15:49:00

标签: selenium selenium-webdriver pytest selenium-grid

现在我用它来运行测试。我在命令行中输入了浏览器的名称和帮助流的数量。 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)

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

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

是否可以通过某种方式自动启动服务器?

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

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

1 个答案:

答案 0 :(得分:0)

您可以通过两种方式处理此问题。

  1. 获取一个云实例或服务器,您可以在其中启动硒网格并使用服务器URL对其进行访问。这样您就无需在完成测试后重新整理服务器。

  2. 如果要自动化整个设置和去皮过程,可以使用Jenkins并配置Jenkins,以便可以在运行测试之前设置整个网格,并在完成测试后去皮。

如果您使用的是黄瓜,则可以将测试用例标记为@Chrome和@FF,并且当您执行远程浏览器时,使用if case.tagName.equals(Chrome)然后在节点中运行或启动具有chrome功能的remotedriver