gpt4 book ai didi

selenium - Selenium Grid 的确切用途是什么?

转载 作者:行者123 更新时间:2023-12-05 06:21:43 29 4
gpt4 key购买 nike

我是 Selenium、TestNG 和 Selenium Grid 的新手。我对什么时候需要使用 Selenium Grid 感到有点困惑。以下是我对此的理解。如果我是对的,请告诉我:

  1. Selenium Grid用于在另一台机器上远程运行您的测试
  2. 如果我需要在我的本地机器上并行运行我的测试,则不需要使用网格。这可以通过仅使用 TestNG 来实现
  3. 如果我需要在不同的远程机器上并行执行我的测试,那么我必须将 selenium Grid 与 TestNG 一起使用。

所以我的理解是,Selenium 网格的目的不是并行执行。它用于远程执行。 通过 TestNG 实现并行执行仅使用 Grid 无法并行执行。这是正确的吗?

最佳答案

您的结论非常正确,Selenium Grid 的目的是在远程机器上远程执行测试。分发测试的两个主要原因是:


远程WebDriver

根据 Remote WebDriver 的官方文档:

You can use WebDriver remotely the same way you would use it locally. The primary difference is that a remote WebDriver needs to be configured so that it can run your tests on a separate machine.

远程 WebDriver 由两部分组成:服务器和客户端。客户端是 WebDriver 测试,服务器只是一个 Java servlet,可以托管在任何现代 JEE 应用服务器中。


远程 WebDriver 服务器

Remote WebDriver server将始终在您要测试的浏览器所在的机器上运行。服务器可以从命令行(或通过代码配置)启动。


远程 WebDriver 客户端

运行 Remote WebDriver client您必须先连接到 RemoteWebDriver。为此,我们将 URL 指向运行我们测试的服务器地址。


详细步骤

您需要遵循以下提到的步骤:

  • 启动Selenium Grid Hub:

    java -jar selenium-server-standalone-3.141.59.jar -role hub
  • 生成的日志:

    18:10:13.310 INFO [GridLauncherV3.parse] - Selenium server version: 3.141.59, revision: e82be7d358
    18:10:13.618 INFO [GridLauncherV3.lambda$buildLaunchers$5] - Launching Selenium Grid hub on port 4444
    2020-01-02 18:10:14.605:INFO::main: Logging initialized @2136ms to org.seleniumhq.jetty9.util.log.StdErrLog
    18:10:15.504 INFO [Hub.start] - Selenium Grid hub is up and running
    18:10:15.509 INFO [Hub.start] - Nodes should register to http://192.168.1.125:4444/grid/register/
    18:10:15.510 INFO [Hub.start] - Clients should connect to http://192.168.1.125:4444/wd/hub
  • 通过 url http://localhost:4444/grid/console 访问 Selenium Grid Console v.3.141.59:

SeleniumGridConsole

  • 启动 Selenium 网格节点:

    java -Dwebdriver.chrome.driver=chromedriver.exe -jar selenium-server-standalone-3.141.59.jar -role node -port 7777 -hub http://192.168.1.125:4444/grid/register
  • 生成的日志:

    18:33:55.959 INFO [GridLauncherV3.parse] - Selenium server version: 3.141.59, revision: e82be7d358
    18:33:56.112 INFO [GridLauncherV3.lambda$buildLaunchers$7] - Launching a Selenium Grid node on port 7777
    2020-01-02 18:33:56.584:INFO::main: Logging initialized @983ms to org.seleniumhq.jetty9.util.log.StdErrLog
    18:33:56.913 INFO [WebDriverServlet.<init>] - Initialising WebDriverServlet
    18:33:57.029 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 7777
    18:33:57.029 INFO [GridLauncherV3.lambda$buildLaunchers$7] - Selenium Grid node is up and ready to register to the hub
    18:33:57.195 INFO [SelfRegisteringRemote$1.run] - Starting auto registration thread. Will try to register every 5000 ms.
    18:33:57.734 INFO [SelfRegisteringRemote.registerToHub] - Registering the node to the hub: http://192.168.1.125:4444/grid/register
    18:33:57.856 INFO [SelfRegisteringRemote.registerToHub] - The node is registered to the hub and ready to use
  • 再次通过urlhttp://localhost:4444/grid/console访问Selenium Grid Console v.3.141.59查看注册节点:

SeleniumGridConsole_NodeRegistered

关于selenium - Selenium Grid 的确切用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59647961/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com