selenium分布式测试
Selenium Grid
Selenium Grid是Selenium的三大组件之一,其作用就是分布式执行测试。
UI自动化的优势和价值主要体现在:重复执行测试和多浏览器兼容性测试上;那分布式是什么概念?简单的说就是老大收到任务,分发给手下去干;Selenium Grid可以控制多台机器多个浏览器执行测试用例,分布式上执行的环境在Selenium Grid中称为node节点。
Selenium Grid原理
Selenium Grid实际它是基于Selenium RC的,而所谓的分布式结构就是由一个hub节点和若干个node 代理节点组成。 Hub用来管理各个代理节点的注册信息和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令转发给代理节点来执行。
Selenium Grid有什么用?
- 在不同的浏览器、操作系统和机器上运行测试-分布式测试
- 最大程度用于兼容性测试
- 提高自动化执行效率,减少运行时间
Selenium Grid环境部署
启动Selenium Grid的三种方式:
- 用命令行启动 --bat启动
- 用JSON配置文件启动
- 用docker启动
启动Selenium Grid前准备工作
将会使用2台机器,一台运行hub另一台运行node,为了方便描述,将运行hub的机器命名为“Machine H”(IP:192.168.1.114),运行node的机器命名为“Machine N”(IP:192.168.1.87);2台机器要求在同一个局域网下。
环境要求
- selenium Grid依赖java环境,所以无论是hub和是node机器,都要有JDK的环境
- 下载selenium server,selenium server就是selenium Grid核心,也是启动的关键,将selenium-server- standalone-X.XX.jar分别放在“Machine H”和“Machine N”上(自定义路径)
命令行启动-Selenium Grid
在机器“Machine H”上打开命令行,切换到selenium server所在的路径,运行:java -jar selenium-server- standalone-3.141.59.jar -role hub -port 5566。
验证Hub是否启动成功:
在机器“Machine H”上的浏览器中输入:http://localhost:5566/grid/console ,将会看到下图:
在机器“Machine N”上查看Hub,则浏览器的中的地址中localhost要修改为“Machine H”的IP地址