Fork me on GitHub

Grid + selenium分布式执行自动化测试

1、Selenium Grid的作用

Selenium Grid的作用就是分布式执行测试。最简单的两点解决重复执行测试、解决多浏览器兼容这是UI自动化的价值;那分布式是什么概念?简单的说就是老大收到任务,分发给手下去干;通过Selenium Grid的可以控制多台机器多个浏览器执行测试用例,分布式上执行的环境在Selenium Grid中称为node节点。
举例说明一下,比如当自动化测试用例达到一定数量的时候,比如上万,一台机器执行全部测试用例耗时5个小时(只是举例,真正的耗时是需要根据测试用例场景的复杂度决定的),而如果需要覆盖主流浏览器比如Chrome、Firefox,加起来就是10个小时;这时候领导跟你说有什么办法可以解决这个执行速度?当然最笨的办法就是另外拿台机器,然后部署环境,把测试用例分开去执行然后合并结果即可。而Selenium也想到了这点,所以有了Selenium Grid的出现,它就是解决分布式执行测试的痛点。

2、Selenium Grid工作原理

Selenium Grid实际它是基于Selenium RC的,而所谓的分布式结构就是由一个hub节点和若干个node代理节点组成。Hub用来管理各个代理节点的注册信息和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令转发给代理节点来执行。下面结合环境部署来理解Hub与node节点的关系。

3、Selenium Grid环境部署

3.1、下载selenium-server-standalone-2.53.1.jar
下载地址:http://selenium-release.storage.googleapis.com/index.html

3.2、启动hub
使用快捷键WIN+R打开运行对话框,输入cmd确定,进入命令窗口,进入selenium-server-standalone-2.53.1.jar包的位置,如E:\selenium;
启动hub,命令如下(命令以截图为准,请参考截图中的启动命令):
java -jar selenium-server-standalone-2.53.1.jar -role hub -maxSession 10 -port 4444

参数解析:

  • -role hub表示启动运行hub;
    - -port是设置端口号,hub的默认端口是4444,这里使用的是默认的端口,当然可以自己配置;
    - -maxSession为最大会话请求,这个参数主要要用并发执行测试用例,默认是1,建议设置10及以上。
    浏览器打开地址:http://localhost:4444/grid/console,出现如下图表示hub启动成功。
posted @ 2020-03-02 16:46  路痴队长  阅读(604)  评论(0编辑  收藏  举报