UI recorder的介绍在上个文章中有,这里不过多介绍了。
这篇文章主要记录一下,使用docker selenium配合uirecorder做自动化测试的整个过程。
docker selenium
· GitHub地址:https://github.com/SeleniumHQ/docker-selenium
· 镜像地址:https://hub.docker.com/r/selenium/
包含的镜像及说明:
· selenium/base: 包含Java运行组件及Selenium jar文件的基础镜像
· selenium/hub: 运行Selenium Grid Hub的镜像
· selenium/node-base: 包含虚拟桌面环境及VNC支持的Selenium Grid Node基础镜像
· selenium/node-chrome: 包含Chrome的Selenium node镜像需要连接 Selenium Grid Hub使用
· selenium/node-firefox:包含firefox的Selenium node镜像需要连接 Selenium Grid Hub使用
· selenium/standalone-chrome:包含 Chrome的Selenium standalone镜像(不需要连接SeleniumGrid Hub)
· selenium/standalone-firefox: 包含 Firefox的Selenium standalone镜像(不需要连接 Selenium Grid Hub)
· selenium/standalone-chrome-debug:包含Chrome和VNC Server的Selenium standalone镜像
· selenium/standalone-firefox-debug:包含Firefox和VNC Server的Selenium standalone镜像
· selenium/node-chrome-debug: 包含Chrome和VNC Server的Selenium Grid Node 镜像,需要连接Selenium Grid Hub使用
· selenium/node-firefox-debug: 包含 Firefox和VNC Server的Selenium Grid Node 镜像,需要连接 Selenium Grid Hub 使用
docker 代替虚拟机组建 Selenium Grid 的好处
· 不再需要自己安装 python,浏览器等,只需要按照需要 run 这些 docker image 即可
· 只需要有一台 OS 支持 Docker Engine 的虚拟机/物理机可以跑了
· 根据自己需要开启和组建自己的 selenium grid ,大大缩短了以前增加和配置虚拟机所花的时间。同时由于组建 grid 成本低,因此不需要 grid 的时候直接关闭即可
拉取镜像跑起来
这里不介绍docker了,这篇的重点不在如何使用docker上。
· docker pull selenium/hub
· docker pull selenium/node-chrome
先拉取所需镜像,这里我使用hub和node-chrome
· docker run -d --name hub -p 4444:4444 selenium/hub
· docker run -d -P -p 5901:5900 -p 15000:5555 --link hub:hub selenium/node-chrome
启动这两个镜像
配合uirecorder
如何录制什么的,可以参考我的上一篇文章。
· 修改config文件为node-chrome节点
· 之后正常运行脚本
总结
优势
· 在运行的时候你会发现速度相较于虚拟机会快非常多
· 对于 selenium grid 环境,Docker 相比 VM 的优势在于快速启动和快速部署
· 对于变更频繁的测试环境,使用 docker 能减少很多部署的时间
· 不足
· IE还不支持