当前位置: 首页 > 知识库问答 >
问题:

硒网格的确切用途是什么?

穆正青
2023-03-14

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

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

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

共有1个答案

田博远
2023-03-14

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

  • 减少测试套件的执行时间。
  • 为了避免本地主机上的内存(例如RAM)紧缩,您可以在以下位置找到一些相关的讨论:
    • 限制 chrome 无外设 CPU 和内存使用量
    • 谷歌浏览器的许多进程(32位)
    • 硒使用过多的 RAM 与火狐
    • 使用Selenium GeckoDriver和Firefox时是否可以减少内存RAM消耗

    根据远程WebDriver的官方文档:

    您可以像在本地一样远程使用WebDriver。主要区别在于需要配置远程WebDriver,以便它可以在单独的机器上运行您的测试。

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

    远程WebDRiver服务器将始终在使用您要测试的浏览器的机器上运行。可以从命令行(或通过代码配置)启动服务器。

    要运行远程WebDRiver客户端,您必须首先连接到远程WebDRiver。我们通过将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
    

    通过以下网址访问 Selenium 网格控制台 v.3.141.59 http://localhost:4444/grid/console

    > < li>

    启动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 Gridhtml" target="_blank">控制台v.3.141.59以查看注册节点:

    https://imgs.xnip.cn/cj/n/8/800e95af-d90c-4538-b317-33451dbc1f6b.png" width="100%" height="100%" />

 类似资料:
  • 团队, 使用continueAsNew的确切用例是什么? 由于我们支持Cron附表进行定期活动,我不知道使用它的场景。 我们这样做是为了提供向后兼容性吗

  • 我正在尝试设置硒网格以实现测试的并行执行。首先,我将解释我当前的场景。 < li >我用watir webdriver在cucumber中编写了我的全功能测试套件 < li >我需要在多个环境中执行所有测试。 < li >我为selenium hub和node创建了一个设置 < li >我可以通过hub在单个节点上运行我的测试 我的目标是在多个虚拟机上同时运行我的测试。我遗漏了一部分,我需要配置我

  • 从这里下载selenium-server-4.0.0.jar之后 我将这个jar文件放在c文件夹中,然后使用cmd命令尝试使用这个命令启动selenium grid hub 我无法运行selenium网格中心,它显示以下内容 我试着把这个网址放在chrome浏览器中 然后它显示这个

  • 问题内容: 我正在学习java nio包,我意识到File已经提供了很多方法,而nio.Files通过使用Path类再次提供了这些方法。像我再得到的那几个。我实际上没有得到nio包的实际用途。 我对这个软件包非常陌生,所以可能我的问题是错的,但是一点帮助可以使我进一步阅读。 问题答案: IO和NIO之间的主要区别是IO正在阻塞,而NIO是非阻塞。 本文介绍了程序包中的差异以及什么是阻塞和非阻塞IO

  • 问题内容: 我不了解Java的这一功能。我知道它使编码更容易,有时看起来更整洁,但这的实际用途是什么?相反,我觉得最好显示警告,因为将来任何人在修改代码之前都可以引用它们。这@SuppressWarnings是否提高了编译效率,还是根据任何编码标准? 问题答案: 其他答案已经解释了很多用例,但是我想强调一点, 有时您绝对需要使用它来克服语言本身的局限性,在这些情况下,使用绝对是合法的。 在其他情况

  • 问题内容: java中有什么用? 请解释一下。 问题答案: 可能这个例子会帮助您。