【问题标题】:Selenium grid. Parallel execution in various browser硒网格。在各种浏览器中并行执行
【发布时间】:2019-09-12 20:42:18
【问题描述】:

现在我用它来运行测试。我在命令行中传递了浏览器的名称和帮助流的数量。 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) - 在不同的浏览器中测试所有内容
  • 我必须运行两次测试(一次用于 chrome,第二次用于 ff)

是否有可能以某种方式自动启动服务器?

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

一个很好的选择是创建两个节点并同时在两个节点上运行测试。或者在一个节点中创建多个不同的浏览器并已经启动它们。但我不知道怎么做。提前感谢您的帮助

【问题讨论】:

    标签: selenium selenium-webdriver pytest selenium-grid


    【解决方案1】:

    有两种方法可以处理这个问题。

    1. 获取一个云实例或服务器,您可以在其中启动 selenium 网格并使用服务器 Url 访问它。这样您就不需要在完成测试后对服务器进行去皮了。

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

    如果您使用 cucumber,您可以将测试用例标记为 @Chrome 和 @FF,当您执行远程浏览器时,请使用 if scenario.tagName.equals(Chrome) 然后在节点中运行或启动具有 chrome 功能的远程驱动程序.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-17
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      相关资源
      最近更新 更多