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

发表于:2023-1-17 09:24

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:移动Labs官方号​    来源:知乎

  什么是Selenium-Grid 
  Selenium Grid是Selenium的三大组件之一,它的作用就是允许我们在多台计算机上并行运行测试, 并集中管理不同的浏览器版本和浏览器配置。
  Selenium-Grid的使用场景
  - 支持在多执行环境进行测试
  Selenium Grid支持在多个物理机或者虚拟机(跨平台、跨浏览器)上执行,比如测试节点1为物理机,操作系统为Windows7,浏览器为Google Chrome,测试节点2为物理机,操作系统为Linux,浏览器为Firefox,测试节点3为基于Dockers的虚拟化环境,浏览器为IE8。Selenium-Grid对这三个节点均可以调用。
  - 结合多线程技术,在多台设备并行进行测试,可以有效地减少测试时间
  Selenium Grid本身并不支持多线程并发执行,但是可以结合多线程技术,实现测试并发执行。
  Selenium-Grid的结构
  Grid由一个中心(hub)和一到多个节点(Node)组成。
  其中,hub节点作为管理节点,用来管理各个代理节点的注册和状态信息,并且接收远程客户端代码请求调用,然后把请求的命令再转发给代理代点来执行。
  Node节点就是实际执行任务的节点,即浏览器所在的节点,它的主要作用就是注册到hub节点,并接收hub节点的请求及执行测试。
  环境搭建
  ·预置配置
  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节点进行交互
  此时,我们在192.168.1.3这台PC上创建了Hub节点,我们登陆一下hub节点,查看一下当前Selenium Grid整体的一个状态,打开http://192.168.1.3:4455/这个页面,可以看到右下角有个Console链接。
  点击console,可以自动跳转到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
  命令输入完成后,可以看到,当前设备已注册成功,我们再返回到Hub节点,刷新http://192.168.1.3:4455/grid/console页面,查看Node节点是否注册成功。
  此时,我们可以看到一个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
  Node节点二,显示已注册成功,此时我们登陆Hub,查看注册情况:
  我们在Hub节点可以看到两个Node节点。
  验证效果
  现在我们通过Python来验证以下selenium grid的神奇之处,我们在Hub节点编写一个自动化脚本,通过在Hub节点来下发任务,由Node节点来实现具体测试。测试的内容为让Node1节点通过Firefox浏览器打开百度网站。
  Hub节点上相应的Python脚本及执行结果如下:
  Node1节点上命令行的显示执行的任务如下:
  就此,整个完整的小测试已完成,你是不是想自己尝试操作一遍?
  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号