Linux系统下搭建Selenium Grid分布式测试环境

1.使用工具

  centos 7、docker、selenium/hub、selenium/node-chrome

2.安装docker

  此处docker的安装方式不作讲解,请参考:https://www.cnblogs.com/deai/p/11039071.html

3.获取selenium镜像

   查找镜像

通过docker search selenium查看可用的selenium相关镜像

 docker search selenium 

hub:selenium/hub
node:selenium/node-chrome,selenium/node-chrome-debug

输入命令

 docker pull selenium/hub 

 docker pull selenium/node-chrome 

 docker pull selenium/node-chrome-debug 

下载相关镜像

node的镜像有两种,selenium/node-chrome与selenium/node-chrome-debug,带有debug的镜像中带有vnc服务可以使用vnc viewer进行连接查看运行情况

使用命令docker images查看下载的镜像

  docker images 

4.部署镜像

hub的部署

 docker run -d -p 4444:4444 --name hub selenium/hub 

暴露4444端口用于后面脚本的运行

部署成功后,可通过http://主节点ip地址:4444/grid/console 查看节点状态

node的部署

 docker run -P -d --link hub:hub --name chrome selenium/node-chrome 

--link 是链接别名为hub的容器

注意:这样部署以后未设置容器的共享内存,很有可能造成用例运行过程中,内存不足卡死,可以使用下面的命令给容器设置共享内存,官网建议为2g

 docker run -P -d --link hub:hub --name chrome --shm-size=2g selenium/node-chrome

 

node节点部署成功后会注册到hub中心节点中,如果出现chrome标志则注册成功,可以点击view config查看详细信息

node-debug的部署

 docker run -d -p 5900:5900 --shm-size=2g --link hub:hub selenium/node-chrome-debug 

debug镜像在部署是需要暴露5900端口用于vnc服务的连接,可以下载vnc viewer连接进镜像中,vnc的初始密码为:secret

 

5.节点在不同计算机上

当主节点与分支节点在不同的计算机上运行时,需要在部署node时添加启动参数

seleniumHQ网站:https://github.com/seleniumHQ/docker-selenium,网站上有详细说明,以及如何搭建集群

如:主节点运行在192.168.1.165上,分支节点运行在192.168.1.117上

  docker run -d -p < node_port >:5555 -e HUB_HOST = < hub_ip | hub_name > -e HUB_PORT = 4444 -e REMOTE_HOST = "http:// <node_ip | node_name>:<node_port>" selenium/node-chrome:3.14.59-palladium 

<node_port> 分支节点端口号

<hub_ip|hub_name> 此处只用填写主节点的ip地址

<node_ip | node_name> 分支节点的ip地址

<3.141.59-palladium> 为版本号

完整命令:

 docker run -d -p 5555:5555 -e HUB_HOST=192.168.1.165 -e HUB_PORT=4444 -e REMOTE_HOST="http://192.168.1.117:5555" selenium/node-chrome:3.141.59-palladium 

6.运行测试脚本 

 1 public class Test {
 2     public static void main(String[] args) throws Exception {
 3         DesiredCapabilities browserDriver;
 4         browserDriver = DesiredCapabilities.chrome();
 5         String url = "http://192.168.1.117:4444/wd/hub";
 6         WebDriver driver = new RemoteWebDriver(new URL(url),browserDriver);
 7         driver.get("https://www.baidu.com/");
 8         driver.findElement(By.id("kw")).sendKeys("Selenium");
 9         driver.findElement(By.id("su")).click();
10         Thread.sleep(2000);
11         System.out.println("运行结束");
12         driver.quit();
13     }
14 }

 

如果运行过程中没有报错且成功打印信息则证明环境搭建成功,也可以使用vncverw连接chrome-node-debug查看运行状态

 

7.扩展部分

一、设置分支节点浏览器的分辨率信息

默认情况下,节点浏览器以1360 x 1020的屏幕分辨率,颜色深度24位运行。这些设置可以通过调整启动参数SCREEN_WIDTH(宽)SCREEN_HEIGHT(高)SCREEN_DEPTH(色位)指定需要的分辨率与颜色深度

 docker run -d -p 5900:5900 -e SCREEN_WIDTH=1920 -e SCREEN_HEIGHT=1080 -e SCREEN_DEPTH=24 --shm-size=2g --link hub:hub selenium/node-chrome-debug  

使用vnc连接分支节点查看分辨率是否设置成功

二、主节点(hub)并发数设置

    设置主节点的最大session数,部署镜像是才能够设置,使用GRID_MAX_SESSION,如果是存在多个分支节点,分支节点上的maxSession和不能大于主节点上的maxSession

      docker run -d -p 4444:4444 -e GRID_MAX_SESSION=10 --name hub selenium/hub 

三、分支节点(node)并发数设置

默认情况下,每个节点浏览器只支持一个浏览器同时运行,可以通过设置启动参数NODE_MAX_INSTANCES,NODE_MAX_SESSION(节点中同时运行的最大测试数),两个参数必须配合使用

  docker run -d -p 5900:5900 -e NODE_MAX_INSTANCES=5 -e NODE_MAX_SESSION=-e SCREEN_WIDTH=1920 -e SCREEN_HEIGHT=1080 -e SCREEN_DEPTH=24 --shm-size=2g --link hub:hub selenium/node-chrome-debug 

         验证并发数设置

    通过访问主节点ip:4444/grid/console 查看子节点注册状态,出现五个chrome图标,标识能同时启动五个chrome浏览器

    

    跨平台

    Grid支持不同平台的节点连接,这里我们再将windows平台下的node节点注册到linxu主节点下

    1.windows平台下使用grid首先需要下载selenium的jar包,这里使用的是3.12的版本

     要求:

      1):JDK环境(这里不做赘述,可以百度查看)

      2):selenium-server-standalone-3.12.jar

     下载连接:https://selenium-release.storage.googleapis.com/index.html,进入到3.12文件夹中,下载selenium-server-standalone-3.12.jar

    2.下载好以后,打开cmd并且进入到jar包下载目录,并运行下方命令启动node节点

  java -jar selenium-server-standalone-3.12.0.jar -role node -hub http://192.168.1.117:4444/grid/register/ -maxSession 5 -browser "browserName=firefox,version=68,platform=WINDOWS,maxInstances=5" -port 5555 

     windows系统下使用 -hub http://ip:端口/grid/register 进行的子节点注册

     -browser 则是浏览器的启动参数,browserName是浏览器名,version是浏览器版本号

     注册成功后访问主节点ip:4444/grid/console会出现下方界面,可以看出已经成功注册了firefox浏览器的节点,并且并发数是5

    

 

转载于:https://www.cnblogs.com/deai/p/11041381.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值