使用docker搭建分布式UI自动化的解决方案

一,为什么要用selenium grid进行分布式?

使用这种架构可以加速UI自动化的运行速度,因为UI自动化执行是比较慢的,不像接口测试执行速度快,加上可以使用testng的多线程就更快了,所以接口测试很少遇到性能瓶颈。加上UI自动化流程比较复杂,真的运行起来如果启动几百个服务器是比较耗内存的,这个时候需要加服务器才能够满足需求,但是这样有时候会存在资源分配问题。grid相当于搭建一个浏览器集群,可以当做一个通用的基础服务,这个也有负载均衡策略,可以最大化提高资源利用率
在这里插入图片描述
hub:主节点,负责调度
node:从节点,负责处理请求
在这里插入图片描述

二,实战

1,命令行启动

# e:指定环境变量,相当于一个参数,会动态初始化容器的一个行为。就像写代码时候要传参一样
 docker run -d --name=hub -p 5001:4444 -e GRID_TIMEOUT=0 -e GRID_THROW_ON_CAPABILITY_NOT_PRESENT=true -e GRID_NEW_SESSION_WAIT_TIMEOUT=-1 -e GRID_BROWSER_TIMEOUT=15000 -e GRID_TIMEOUT=30000 -e GRID_CLEAN_UP_CYCLE=30000 -d selenium/hub:3.7.1-beryllium

启动后浏览器就可以访问界面了
在这里插入图片描述

2,启动node节点

# 提供远程桌面的连接服务,可以进行debug服务
# NODE_MAX_SESSION=6:同时运行的浏览器数量是6
# --link:把hub和node的网络连接在一起
docker run --name=chrome -p 5902:5900 -e NODE_MAX_INSTANCES=6 -e NODE_MAX_SESSION=6 -e NODE_REGISTER_CYCLE=5000 -e DBUS_SESSION_ADDRESS=/dev/null -v /dev/shm:/dev/shm --link hub -d selenium/node-chrome-debug:3.7.1-beryllium

想多注册几个也是可以的
在这里插入图片描述
点击页面的console即可跳转到这个界面
在这里插入图片描述
使用VNC VIEWER连接远程服务
1,登录客户端,新建连接(端口号写的node的)
在这里插入图片描述
2,点击继续
在这里插入图片描述
3,输入密码,默认是secret
在这里插入图片描述
我们可以跑一个测试任务
在这里插入图片描述
进行分布式测试
右键run
在这里插入图片描述
可以看到vnc里面有3个浏览器会启动

三,补充

1,selenium gird 支持的浏览器类型
在这里插入图片描述
为什么没有IE呢?docker和虚拟机的区别是什么?

  • 因为IE是需要内核的,但是docker是没有内核的。
  • 最大区别是docker没有内核,没有内核就等于没有操作系统,docker用的是宿主机的内核,这样的好处是快,节省了内核的消耗,不需要开机。启动虚拟机相当于重新开机,点开docker相当于启动qq。缺点是隔离性不太好。
  • 一切挑内核的都不要用docker
  • 如果想加入IE到grid里面,需要搭一个windows虚拟机,再到selenium官方网站下载gird,然后安装启动起来,配好java环境等
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值