服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - 编程技术 - 分布式系统Selenium GRID的原理及应用

分布式系统Selenium GRID的原理及应用

2022-10-24 20:37移动Labs汪欢 编程技术

今天向大家介绍一下基于selenium的分布式测试,Selenium-Grid。

作者 | 汪欢,单位:中国移动智慧家庭运营中心

Labs 导读

分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。如上,是分布式系统的概念,在测试系统,也有分布式的应用场景,今天向大家介绍一下基于selenium的分布式测试,Selenium-Grid。

Part 01 什么是Selenium-Grid

Selenium Grid是Selenium的三大组件之一,它的作用就是允许我们在多台计算机上并行运行测试, 并集中管理不同的浏览器版本和浏览器配置。

Part 02 Selenium-Grid的使用场景

- 支持在多执行环境进行测试

Selenium Grid支持在多个物理机或者虚拟机(跨平台、跨浏览器)上执行,比如测试节点1为物理机,操作系统为Windows7,浏览器为Google Chrome,测试节点2为物理机,操作系统为Linux,浏览器为Firefox,测试节点3为基于Dockers的虚拟化环境,浏览器为IE8。Selenium-Grid对这三个节点均可以调用。

- 结合多线程技术,在多台设备并行进行测试,可以有效地减少测试时间

Selenium Grid本身并不支持多线程并发执行,但是可以结合多线程技术,实现测试并发执行。

Part 03 Selenium-Grid的结构

Grid由一个中心(hub)和一到多个节点(Node)组成。

其中,hub节点作为管理节点,用来管理各个代理节点的注册和状态信息,并且接收远程客户端代码请求调用,然后把请求的命令再转发给代理代点来执行。

Node节点就是实际执行任务的节点,即浏览器所在的节点,它的主要作用就是注册到hub节点,并接收hub节点的请求及执行测试。

 

分布式系统Selenium GRID的原理及应用

 

 

Part 04 环境搭建

预置配置

Hub和Node节点PC需要部署java环境,且Hub节点与Node节点处于同一个局域网中,且网络互通,并将selenium grid的jar包下载到PC,下载地址:https://cdn.npm.taobao.org/dist/selenium/3.9/selenium-server-standalone-3.9.1.jar,

配置Hub节点

以Windows系统为例,进入jar包所在目录,输入以下命令:

java -jar selenium-server-standalone-3.9.1.jar -role hub -port 4455

 

  • role:表示此节点为hub节点
  • port:表示Hub通过此接口与Node节点进行交互

 

分布式系统Selenium GRID的原理及应用

 

此时,我们在192.168.1.3这台PC上创建了Hub节点,我们登陆一下hub节点,查看一下当前Selenium Grid整体的一个状态,打开http://192.168.1.3:4455/这个页面,可以看到右下角有个Console链接。

 

分布式系统Selenium GRID的原理及应用

 

点击console,可以自动跳转到selenium Grid的控制页面,显示如下:

 

分布式系统Selenium GRID的原理及应用

 

因其他Node节点还未配置,故只能查看当前配置项。

配置Node节点

配置节点一:

同样的,我们以Windows系统为例,进入jar包所在目录,输入以下命令:

java -jar selenium-server-standalone-3.9.1.jar -role node -hub http://192.168.1.3:4455/grid/register

 

分布式系统Selenium GRID的原理及应用

 

命令输入完成后,可以看到,当前设备已注册成功,我们再返回到Hub节点,刷新http://192.168.1.3:4455/grid/console页面,查看Node节点是否注册成功。

 

分布式系统Selenium GRID的原理及应用

 

此时,我们可以看到一个IP为192.168.147.1的设备已成功注册到Hub节点,且这个设备上有三种浏览器,分别为firefox、IE、Chrome。

 

配置节点二:

 

同样的,第二台PC,进入jar包所在目录,输入以下命令:

java -jar selenium-server-standalone-3.9.1.jar -role node -hub http://192.168.1.3:4455/grid/register

 

分布式系统Selenium GRID的原理及应用

 

Node节点二,显示已注册成功,此时我们登陆Hub,查看注册情况:

 

分布式系统Selenium GRID的原理及应用

 

我们在Hub节点可以看到两个Node节点。

 

 

Part 05 验证效果

 

现在我们通过Python来验证以下selenium grid的神奇之处,我们在Hub节点编写一个自动化脚本,通过在Hub节点来下发任务,由Node节点来实现具体测试。测试的内容为让Node1节点通过Firefox浏览器打开百度网站。

 

Hub节点上相应的Python脚本及执行结果如下:

 

分布式系统Selenium GRID的原理及应用

 

Node1节点上命令行的显示执行的任务如下:

 

分布式系统Selenium GRID的原理及应用

 

就此,整个完整的小测试已完成,你是不是想自己尝试操作一遍?

原文地址:https://mp.weixin.qq.com/s/ZLa3AIm-C__y0y1rslBG4A

延伸 · 阅读

精彩推荐