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

"python工程"->"svn"->"jenkins"

"docker hub node" 搭建执行环境

->“当即构建”html

1.使用工具

  centos 七、docker、selenium/hub、selenium/node-chromejava

2.安装docker

  此处docker的安装方式不做讲解,请参考:http://www.javashuo.com/article/p-qwmrfdkf-gr.htmlnode

3.获取selenium镜像

   查找镜像

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

 docker search selenium git

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

输入命令chrome

 docker pull selenium/hub docker

 docker pull selenium/node-chrome windows

 docker pull selenium/node-chrome-debug centos

下载相关镜像

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 -p 5555:5555 --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.扩展部分

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

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

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

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

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

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

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

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

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

  docker run -d -p 5900:5900 -e NODE_MAX_INSTANCES=5 -e NODE_MAX_SESSION=5 -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

    

相关文章
相关标签/搜索