• Selenium Grid 的搭建方法


    传统 Selenium Grid 的搭建方法

    搭建一个具有 1 个 Node 的 Selenium Grid。那么通常来讲我们需要 2 台机器,其中一台作为 Hub,另外一台作为 Node,并要求这两台机器已经具备了 Java 执行环境

    1.通过官网下载 selenium-server-standalone-.jar 文件。这里需要注意的是,不管是 Hub 还是Node,都使用同一个 JAR 包启动,只是启动参数不同而已。
    2.将下载的 selenium-server-standalone-.jar文件分别复制到两台机器上.
    3.选定其中一台机器作为 Selenium Hub,并在这台机器的命令行中执行以下命令:

    java -jar selenium-server-standalone-<version>.jar -role hub
    
    • 1

    在这条命令中,“-role hub”的作用是将该机器启动为 Selenium Hub。启动完成后,这台机器默认对外提供服务的端口是 4444。
    然后,你就可以在这台机器上通过http://localhost:4444/grid/console观察 Selenium Hub 的状态,也可以在其他机器上通过 http://:4444/grid/console 观察 Selenium Hub 的状态。其中, 是这台 Selenium Hub 机器的 IP 地址。由于此时还没有 Node 注册到该 Hub 上,所以你看不到任何的 Node 信息。
    启动过程和状态信息,分别如图所示。
    在这里插入图片描述
    在这里插入图片描述
    4.在另一台作为 Selenium Node 的机器上执行以下命令:

    java -jar selenium-server-standalone-<version>.jar -role node -hub http:// <Hub_IP>:4444/grid/register
    
    • 1

    这条命令中,“-role node”的作用是,将该机器启动为 Selenium Node,并且通过“-hub”指定了 Selenium Hub 的节点注册 URL。
    执行成功后,你可以再次打开 http://:4444/grid/console 观察 Selenium Hub 的状态。此时,你可以看到已经有一个 Node 挂载到了 Hub 上。这个 Node,就是用来实际执行测试的机器了。并且,这个 Node 上已经缺省提供了 5 个 Firefox 浏览器的实例、5 个 Chrome 浏览器的实例和 1 个 IE 浏览器的实例,同时默认允许的并发测试用例数是 5 个。
    如果你想自己配置这些内容,可以在启动 Node 的时候提供不同的启动参数。具体可以指定哪些参数,你可以参考Selenium Grid的官方文档。
    Node启动过程
    在这里插入图片描述
    Hub端Node注册的过程
    在这里插入图片描述
    5.完成上述操作后,在测试用例中通过以下代码将测试指向 Selenium Hub,然后由 Selenium Hub 完成实际测试执行机的分配与调度工作。其中,最关键的部分是,创建 RemoteWebDriver 实例的第一个参数,这个参数不再是一个具体的测试执行机的 IP 地址或者名字了,而是 Selenium Hub 的地址。

    DesiredCapabilities capability = DesiredCapabilities.firefox();
    WebDriver driver = new RemoteWebDriver(new URL("http://:4444/wd/hub"), capability);
    
    • 1
    • 2

    基于 Docker 的 Selenium Grid 的搭建方法

    #创建了Docker的网络grid
    $ docker network create grid
    
    #以Docker容器的方式启动Selenium Hub,并且对外暴露了4444端口
    $ docker run -d -p 4444:4444 --net grid --name selenium-hub selenium/hub:3.14.0-europium
    
    #以Docker容器的方式启动并挂载了ChromeSelenium Node
    $ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-chrome:3.14.0-europium
    
    #以Docker容器的方式启动并挂载了FirefoxSelenium Node
    $ docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-firefox:3.14.0-europium
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相关阅读:
    UTS 数据库同步原理
    欧拉角(Euler Angle)
    Java中泛型的使用介绍(#自定义泛型 #通配符?的使用 # <? extend Person> # <? super Person>)
    (Java高级教程)第三章Java网络编程-第八节:博客系统搭建(前后端分离)
    Day980.OAuth 2.0实现一个OpenID Connect用户身份认证协议 -OAuth 2.0
    【UE5】物体沿样条线移动
    利用快速排序的思想寻找第k小的元素
    【每日一练】组队竞赛 && 删除公共字符(C++实现)
    flink 流的合并
    知识体系之Redis
  • 原文地址:https://blog.csdn.net/qq_38122800/article/details/133124597