发表于: 2019-12-07 22:30:39
1 818
一、今天完成的事情:
1.用selenium Grid通过一个主机控制并行的执行测试用例,看多台服务器上不同浏览器不同操作系统测试环境中的测试运行。
1)配置浏览器环境变量
2)部署Hub节点(hub节点地址:192.168.0.103)
3)查看部署Hub节点是否成功
4)部署Node节点(node节点地址:192.168.0.106)
5)查看Node节点是否已上线
6)编写测试用例
①执行下段代码可以通过hub节点访问node节点的谷歌浏览器,并打开百度搜索selenium Grid
②执行下段代码可以通过hub节点访问node节点的火狐浏览器成功,并打开百度搜索selenium Grid
2.最后把不同浏览器上的测试执行步骤和结果写出,整理并提交
1)执行下段代码,通过hub节点访问node节点谷歌浏览器,访问百度并搜索“selenium Grid”成功
结果如下
2)执行下段代码,通过hub节点访问node节点谷歌浏览器,访问百度并搜索“selenium Grid”成功
结果如下:
二、明天计划的事情:
1.完成任务9,开始任务10
三、遇到的问题:
1.selenium Grid如何使用?--http://hiadmin.org/2019/08/02/Selenium-Grid/
Selenium Grid分布式测试
selenium Grid的前世今生
2004年ThoughtWorks公司的一个测试工程师“Jason Huggins”为了减少工作量、自己实现了基于JavaScript代码库;用这套代码库可以进行页面交互操作、并且可以重复在不同的浏览器上进行操作;selenium1.0就诞生了。
在selenium1.0中包括selenium IDE、selenium Grid、selenium RC三部分;
2006年一个来自Google的工程师‘Simon Stewart’做了一个叫做‘Webdriver’的项目,这个项目可以直接让测试工具调用浏览器本身提供的内置方法,以此来操作浏览器。
2008年‘selenium1’和‘Webdriver’2个项目进行了合并;就出现了我们大部分人见到的‘selenium Webdriver’(简称WebDriver)
selenium2=selenium+webdriver
而我们今天要介绍的Selenium Grid和Selenium RC合并到了一起,成了全新的Selenium Grid
现在Selenium Grid已经来到了3.14版本;而最新的Selenium4版本也即将和我们见面(如果作者不延期的话)
selenium Grid能做什么
selenium Grid允许你在多台机器的多个浏览器上并行的进行测试,也就是说,你可以同时运行多个测试。本质上来说就是,Selenium Grid支持分布式的测试执行。它可以让你的测试在一个分布式的执行环境中运行。
换言之,使用Selenium Grid可以让我们在分布测试环境下执行测试,例如Windows,Linux,Mac OS,Android/ios等等,这样可以大大减少重复的工作量,提高我们的工作效率。
什么时候需要用到Selenium Grid
通常需要做多个浏览器的兼容性测试,即在不同浏览器或不同操作系统的浏览器中进行测试。
测试用例较多时,也可以通过分布式测试减少测试用例执行时间。
Selenium Grid架构
一个Grid框架包含hub节点和若干个node节点。hub节点是管理所有node节点的注册和状态等信息,是一个中心控制节点。也就是说hub节点一接收到用户的调用请求,就会把这个请求再转给node这类工作节点,node节点便会在相应的环境及浏览器中执行由hub下发的测试用例。原则上说,node越多的话,该测试环境自动化执行效率就会越高。
准备工作
准备测试机器
由于selenium有hub和Node模式,所以我们至少需要两台电脑
名称 | IP地址 |
---|---|
Hub机 | 192.168.0.103 |
Node机 | 192.168.0.106 |
安装Python
下载Selenium Grid最新版本
从seleniumHq官网下载最新版本的selenium-server。--下载地址http://selenium-release.storage.googleapis.com/index.html
配置Java运行环境
配置浏览器驱动
请根据你的浏览器版本、下载好对应的驱动程序
用Chrome浏览器就去下载chromedriver.exe--https://npm.taobao.org/mirrors/chromedriver/
用firefox浏览器就去下载geckodriver.exe--https://npm.taobao.org/mirrors/geckodriver/
把浏览器驱动添加到环境变量里面
部署selenium Grid的Hub节点
在192.168.0.103这台hub机器上运行命令:java -jar selenium-server-standalone-3.14.0.jar -role hub
hub节点常用参数
- 1) -role hub 即用hub模式启动
- 2)-port Hub启动的端口;node节点连接的端口
- 3)-Hubhost 如果有多个ip的话,可以指定绑定IP地址
其默认端口是4444,默认IP是localhost,如果要修改,只需要加-port和-Hubhost
hub启动成功后,在浏览器上访问http://192.168.0.103:4444/grid/console,可以看到hub的状态信息,说明启动成功
部署selenium Grid的Node节点
在192.168.0.105这台Node节点机器上执行命令:java -jar selenium-server-standalone-3.14.0.jar -role node -hub http://192.168.0.103:4444/grid/register -port 6666
Node节点常用参数
- 1)-role node 设置为node模式启动
- 2)-hub 指定Hub注册服务器;
- 3)-port 指定本地node节点的所用端口号
- 4)-hubConfig 指定配置文件;可以把所有配置参数放到配置文件里面
- 5)-browser 可以指定浏览器
默认情况下,Node节点允许并发使用11个浏览器:5个Firefox,5个Chrome,1个Internet Explorer。默认情况下,并发测试的最大数量为5。要更改此设置和其他浏览器设置,可以将参数传入每个-browser开关(每个开关节点表示基于参数的节点)。如果使用-browser参数,默认浏览器将被忽略。
Node节点启动成功后,在命令行窗口可以看到注册成功的信息。
切换到Hub-Console刷新信息,可以看到Node节点已上线。
编写测试脚本,在Node上执行
再写一个多Node节点的用例
2.执行后node节点没有反应--猜测原因是node节点没有配置浏览器环境变量
2.1谷歌浏览器环境配置--https://www.jb51.net/article/162900.htm
1)下载chromedriver
2)将你下载完成的chromedriver.exe文件解压到C:\Program Files (x86)\Google\Chrome\Application这种路径下
3)右击我的电脑-->属性-->高级系统设置-->环境变量-->双击path-->将刚刚配置C:\Users\AppData\Local\Google\Chrome\Application这种路径复制粘贴进去就行了
2.2火狐浏览器环境配置--https://blog.csdn.net/qq_34908107/article/details/80533338
1)下载火狐浏览器
2)firefox路径添加环境变量
3)下载geckodriver
4)在firefox中下载Selenium IDE
5)验证:在命令窗口输入firefox.exe看能否正常跳转到网页
3.下段代码执行没反应---if __name__== "__main__":和unittest.main()应该退一个tab符。
四、收获:
1.了解Selenium Grid的用法,会编写测试用例通过hub节点控制node节点的浏览器,一台机器可以有多个node节点(端口号不一样)
2.了解谷歌浏览器和火狐浏览器如何进行环境配置
评论