selenium-grid AND docker化方案

本文介绍了如何利用Selenium Grid结合Docker来提高自动化测试的效率。通过注册Hub和Node,搭建docker化的Selenium环境,利用官方镜像快速构建测试环境,并提供了预发环境的绑定方法,使得自动化脚本能够并行执行,加快测试速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

selenium-grid && docker化方案

背景

因为我们服务端维护了很多脚本,并且只有一台机器做自动化回归,加快回归的速度,发现了docker化方案,以此成文。

selenium Grid

Selenium Grid 提供多系统、多浏览器的执行环境。

注册 hub

java -jar selenium-server-standalone-3.6.0.jar -role hub

...
11:20:33.261:INFO:osjs.Server:main: Started @1080ms
11:20:33.263 INFO - Nodes should register to http://1.2.3.206:4444/grid/register/
11:20:33.263 INFO - Selenium Grid hub is up and running
11:21:39.756 INFO - Registered a node http://1.2.3.206:5555

注册 node

$ java -jar selenium-server-standalone-3.6.0.jar -role node -hub http://1.2.3.206:4444/grid/register/

11:21:39.691 INFO - Selenium Grid node is up and ready to register to the hub
11:21:39.706 INFO - Starting auto registration thread. Will try to register every 5000 ms.
11:21:39.706 INFO - Registering the node to the hub: http://1.2.3.206:4444/grid/register
11:21:39.756 INFO - The node is registered to the hub and ready to use

之后可以开跑自动化脚本了。

docker化

参考资料: https://testerhome.com/topics/8450

selenium-docker

selenium官方其实已经支持了docker搭建镜像环境,镜像仓库地址:https://hub.docker.com/r/selenium/

构建镜像所需的Dockerfile来自Github:[https://github.com/SeleniumHQ/docker-selenium
](https://github.com/SeleniumHQ/docker-selenium
)

查找selenium 镜像

$ docker search selenium
NAME                                DESCRIPTION           STARS          
selenium/hub                                              219                                
selenium/node-chrome                                      122
selenium/standalone-chrome                                90      
selenium/node-firefox                                     85                         
selenium/standalone-firefox                               69       
selenium/node-chrome-debug

这里需要 selenium/hub 作为hub,selenium/node-chrome 或者你需要的浏览器做 node。需要说明的是,selenium/node-chrome-debug ,debug结尾的镜像都带有VNC服务端,本机安装VNC客户端,即可远程连接。

拉取镜像搭建环境

$ docker pull selenium/hub

$ docker pull selenium/node-chrome

$ docker pull selenium/node-firefox

$ docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
selenium/node-firefox   latest              902986a504e2        2 weeks ago         683MB
selenium/node-chrome    latest              1e39200c6581        2 weeks ago         917MB
selenium/hub            latest              cc632782ed23        2 weeks ago         297MB

 $ docker run -d -p 5911:5900 -p 5560:5555 --name cnode1 --link selehub:hub --shm-size=512m selenium/node-chrome

 $ docker run -d -p 5901:5900 -p 5561:5555 --name cnode2 --link selehub:hub --shm-size=512m selenium/node-chrome

 $ docker run -d -p 5903:5900 -p 5562:5555 --name cnode3 --link selehub:hub --shm-size=512m selenium/node-chrome

 $ docker run -d -p 5905:5900 -p 5563:5555 --name cnode4 --link selehub:hub --shm-size=512m selenium/node-chrome

登录 http://localhost:4444/grid/console 可以查看

预发环境绑定

$ docker run -d -p 5923:5900 -p 5553:5555 --name dcnode3 --link selehub:hub --add-host list.a.com:14.25.13.11 --add-host list.b.hk:14.25.13.11 --shm-size=512m selenium/node-chrome-debug

确认环境


$ docker exec e0a cat /etc/hosts
127.0.0.1   localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
14.25.13.11 list.a.com
14.25.13.11 list.b.hk
172.17.0.2  hub c8b153e994b4 selehub
172.17.0.4  e0a2b085d5e9

驱动selenium代码

根据PageObject 设计模式,封装了常用功能。感兴趣可以参考:

http://blog.youkuaiyun.com/kittyboy0001/article/details/25219053

http://blog.youkuaiyun.com/column/details/seleniumframe.html

docker化方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值