搭建测试环境_Selenium Grid分布式测试环境搭建

Selenium Grid简介

Selenium Grid实际上是基于Selenium RC的,而所谓的分布式结构就是由一个hub节点和若干个node代理节点组成。Hub用来管理各个代理节点的注册信息和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令转发给代理节点来执行(官方说明)

简单来说通过selenium grid可以实现一台服务器控制多台node节点机器远程执行selenium自动化测试脚本。比如自动化测试脚本存放在一台hub主机上,那么通过grid就可以控制多台node客户端来执行hub主机上的自动化测试脚本,下面我们就开始配置一下分布式测试运行环境

环境准备

其实hub主机和node节点可以同时配置在一台物理机上,但是为了模拟真实的测试环境,我准备了2台真实的物理机,当然你也可以使用一台物理机+虚拟机的方式练习

1. 准备2台处于同一个局域网下的物理机,保证2台物理机能够相互ping通

2.下载selenium-server-standalone包

3.作为node节点的物理机需要配置好浏览器和对应驱动,并把驱动程序加入环境变量

4.hub主机和node主机均需要配置java jdk 1.8 (切记本版,否则可能配置不成功)

问题

如果你的两台机器处于同一个网络,但是无法相互ping通,你可以尝试下面的办法解决

打开控制面板-打开防火墙设置-点击【高级设置】-点击【入站规则】找到下面两个规则并开启

3162aa83408334f01f67e61095c1e87d.png

下载selenium-server-standalone

访问官网 https://www.seleniumhq.org/download/ 下载 selenium-server-standalone

53336fe4618e8292f5638b6adeb10cf2.png

下载好selenium-server-standalone-3.141.59.jar包后,分别放到两台电脑的任意位置

配置浏览器驱动

浏览器驱动如何配置,请自行百度(谷歌的驱动可以从这里下载https://npm.taobao.org/mirrors/chromedriver),我后面主要使用的是firefox浏览器

安装JDk

https://www.cnblogs.com/linuxchao/p/linuxchao-jenkins-setup.html 我的这篇文章里面有安装jdk的教程,但是请注意jdk的版本

搭建环境

配置hub主机

我选择作为hub主机的地址为:192.168.1.103

打开cmd终端,并切换到selenium-server-standalone-3.141.59.jar所在的目录下,执行命令:java -jar selenium-server-standalone-3.141.59.jar -role hub

84318b01611f18ef733cce8f27227910.png

执行命令后,会初始化本机为hub服务器,自动分配一个ip地址(如图,这个地址是个虚拟地址,作为hub的主机地址,因为同一台机器可以同时作为hub和note,所以会自动生成一个虚拟地址),端口号默认为4444,当然你在初始化hub主机的时候也可以修改默认端口,添加-port=指定端口号即可

初始化完成后,我们可以访问http://192.168.24.1:4444:/grid/console来查看初始化的hub状态如图

cbd833a2c438614f4a65293b5e686208.png

配置node节点

我选择的node节点机器的地址为:192.168.1.102

同样打开cmd终端,并切换到selenium-server-standalone-3.141.59.jar所在的目录下,执行命令:

java -jar selenium-server-standalone-3.141.59.jar -role webdriver -browser "browserName=firefox,platform=WINDOWS" -hubHost 192.168.1.103(hub所在的主机地址)

如果你使用的浏览器是chrome,可能你需要执行这个命令(别问我为什么,我使用chrome浏览器的时候,使用上面的命令,只是修改了browserName=chrome,没有成功)

java -jar -Dwedriver.chrome.driver=driver所在的目录chromedriver.exe selenium-server-standalone-3.141.59.jar -browser "browserName=chrome, version=75" -role node -hubHost 192.168.1.103

命令执行完毕后你会看到下面的输出信息

741c218c6fe2f4697a12bec5c938bad6.png

ok,现在我们再次访问一下hub主机的地址看下状态

a382cd672925675e67b1bcd0a81d76bb.png

右边就是我初始化成功后的远程node节点机器的配置,左边我也配置了一个,是在hub所在的主机配置的一个note节点

到这里,我们的分布式自动化测试环境就配置完成了,接下来开始编写我们的测试代码,看下是否能够在远程note机器上执行测试

测试脚本

测试脚本放在hub所在的机器(我们的目的就是控制远程note机器执行测试(打开浏览器执行测试),并不是hub所在机器执行(要不然还有啥意义呢?))

"""------------------------------------@Time : 2019/7/6 16:55@Auth : linux超@File : testCaseNodeB.py@IDE : PyCharm@Motto: Real warriors,dare to face the bleak warning,dare to face the incisive error!@QQ : 28174043@qq.com@GROUP: 878565760------------------------------------"""import timeimport unittestfrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECclass TestSeleniumGrid(unittest.TestCase): def setUp(self): self.driver = webdriver.Remote(command_executor="http://192.168.1.102:16891/wd/hub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值