Selenium3+python自动化016-Selenium Grid
一、Selenium Grid介绍
1、概念
Selenium Grid组件专门用于远程分布式测试或并发测试,通过并发执行测试用例的方式可以提高测试用例的执行速度和效率,解决界面自动化测试执行速度过慢的问题
2、可以怎么做
使用此组件可以在一台计算机上给多台计算机(不同操作系统和不同版本浏览器环境)分发多个测试用例从而并发执行,大大提高了测试用例执行效率,基本满足大型项目自动化测试的时限要求和兼容性要求
3、版本
1.0版本
2.0版本,最多可以远程控制5个浏览器
4、工作模式
Selenium Grid使用Hub和Node模式,一台计算机作为Hub(管理中心)管理其他多个Node(节点)计算机,Hub负责将测试用例分发给多台Node计算机执行,并收集多台Node计算机执行结果的报告,汇总后提交一份总的测试报告
4.1、Hub
1.在分布式测试模式中,只有一台作为Hub的计算机
2.Hub负责管理测试脚本,并负责发送脚本给其他Node节点。
3.所有的Node节点计算机必须先在作为Hub的计算机中进行注册,注册成功后再和Hub计算机通信,Node节点计算机会告知Hub自己的相关信息,例如,Node节点的操作系统和浏览器的相关版本
4.Hub计算机可以给自己分配执行测试用例的任务
5.Hub计算机分发的测试用例任务会在各个Node计算机节点执行
4.2、Node
1.在分布式测试模式中,可以有一个或者多个Node节点
2.Node节点会打开本地的浏览器完成测试任务并返回测试结果给Hub
3.Node节点的操作系统和浏览器版本无需和Hub保持一致
4.在Node节点上可以同时打开多个浏览器并行执行测试任务
二、Selenium Grid使用方法
2.1、测试环境准备
1、下载JDK 1.8,安装bin并配置环境变量
2、Hub计算机和Node计算机均访问 http://www.seleniumhq.org/download
下载‘Selenium Standalone Server’中的jar文件 selenium-server-standalone-x.xxx.xx.jar

3、Hub计算机上打开CMD窗口,将当前工作目录切换到 jar文件所在目录,执行:java -jar selenium-server-standalone-3.141.59.jar -role hub
(-role hub:启动一个Hub服务,作为分布式管理中心,等待WebDriver客户端进行注册和请求,默认接收注册地址为 http://localhost:4444/grid/register,默认启动该端口为4444)

4、在Hub计算机的Firefox浏览器访问 http://localhost:4444/grid/console,如果访问的网页中显示‘view config’的链接,表示可以访问次网站。讲locahost换成本机的真实ip依然可以正常访问

CMD -- ipconfig 查看IP地址。

localhost 换成IP地址名称(可不做)

5、Node计算机中打开CMD窗口,将当前工作目录切换到 jar文件所在目录,执行:java -jar selenium-server-standalone-3.141.59.jar -role webdriver -hub http://localhost:4444/grid/register -port 6655 -browser browserName='chrome'(或:browserName='firefox' 或-browser browserName='ie')
(1)role:参数值webdriver表示Node(节点)的名字
(2)hub:参数值表示管理中心的URL地址,Node会链接这个地址进行节点注册
(3)port:参数值表示Node节点服务的端口号为6655,建议使用大于5000的端口号
6、再次访问 http://localhost:4444/grid/console,验证Node节点是否已在Hub上注册成功,注册成功如图所示。
从此页面可以获取到节点计算机允许不同种类的浏览器打开多少个实例,验证节点计算机执行命令行的正确性。

2.2、编写分布式执行的测试脚本
1、使用chrome浏览器访问百度首页,输入关键字‘selenium’进行搜索,验证搜索结果的页面源码中包含'selenium'关键字。
2、执行脚本,Node计算机会自动启动chrome浏览器执行测试脚本,执行完毕后在Hub计算机上可以看到自动化测试的执行结果。
Selenium3+python自动化016-Selenium Grid的更多相关文章
- selenium3+python自动化50-环境搭建(firefox)
		前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的. 安装环境过程中主要会遇到三个坑: 1.'geckodri ... 
- selenium3+python自动化50-环境搭建(firefox)【转载】
		前言 有不少小伙伴在安装selenium环境后启动firefox报错,因为现在selenium升级到3.0了,跟2.0的版本还有有一点区别的. 安装环境过程中主要会遇到三个坑: 1.'geckodri ... 
- web端自动化——Selenium3+python自动化(3.7版本)-chrome67环境搭建
		前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要.本系列依然以selenium3为基础. 一.selenium简介 Sel ... 
- Selenium3+python自动化006-环境搭建
		一.selenium简介 1.Selenium历史 (1)Selenium 1.0: Selenium IDE Selenium Grid Selenium RC(核心功能) Sele ... 
- web端自动化——Selenium3+python自动化(3.7版本)-火狐62版本环境搭建
		前言 目前selenium版本已经升级到3.0了,网上的大部分教程是基于2.0写的,所以在学习前先要弄清楚版本号,这点非常重要.本系列依然以selenium3为基础. 一.selenium简介 Sel ... 
- Selenium3+python自动化010-UnitTest框架简介和单元测试框架使用
		一.UnitTest介绍 unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过, ... 
- Selenium3+python自动化006+自动化测试概述
		自动化测试概述 1.自动化分类: (1)单元测试自动化: 单元测试(Unit):模拟各种异常场景,外部依赖较少,且可以做测试单元到最小的一种测试方法. Java单元测试框架Junit.TestNG; ... 
- selenium+python自动化105 - selenium 如何在已打开的浏览器上继续运行自动化脚本?
		前言 使用selenium 做web自动化的时候,经常会遇到这样一种需求,是否可以在已经打开的浏览器基础上继续运行自动化脚本? 这样前面的验证码登录可以手工点过去,后面页面使用脚本继续执行,这样可以解 ... 
- Python自动化测试之selenium从入门到精通
		1. 安装selenium 首先确保python安装成功,输入python -V 在windows下使用pip安装selenium,详情如图所示: 在ubuntu下使用pip install sele ... 
随机推荐
- Keras学习系列——神经网络层组件
			对Keras提供的对各种层的抽象进行相对全面的概括 1 基础常用层 名称 作用 原型参数 Dense 实现全连接层 Dense(units,activation,use_bias=True, kern ... 
- 十篇笔记走向Python测试开发之路四(字典)
			字典 字典(dict)是Python的一种内置的数据结构.在其他语言中也称为map,使用键-值(key-value)存储,可以通过查找某个特定的词语(键 key),从而找到他的定义(值 value) ... 
- Params:params 关键字可以指定在参数数目可变处采用参数的方法参数。
			Params:params 关键字可以指定在参数数目可变处采用参数的方法参数. 注意点: 1.一个方法中只能使用一个params来声明不定长参数数组: 2.params参数数组只能放在已定义参数后面 ... 
- pytorch之 CNN
			# library # standard library import os # third-party library import torch import torch.nn as nn impo ... 
- 虚拟机ubuntu的网络连接类型
			图很好 https://jingyan.baidu.com/article/91f5db1b17e8a01c7f05e3e6.html 很详细,有实例 https://www.cnblogs.com/ ... 
- codewars--js--Human Readable Time—Math对象,parseInt()
			问题描述: Write a function, which takes a non-negative integer (seconds) as input and returns the time i ... 
- C# 一个帮您理解回调函数的例子(新手必看)
			using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 回调函数 ... 
- ES6 - 基础学习(6): 对象扩展
			对象对于JavaScript至关重要,在ES6中对象又加了很多新特性. 对象字面量:属性的简洁表示法 ES6允许对象的属性直接写变量,这时候属性名是变量名,属性值是变量值. let attr1 = & ... 
- 开源工作流管理系统节点接收人设置“指定节点处理人”系列讲解
			关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 开发者表单 拖拽式表单 工作流系统CCBPM节点访问规则接收人规则 适配数据库: o ... 
- mysql实现远程登录
			CentOS7上安装mysql后,想要实现mysql远程登录. 主要解决二个问题:(1)为mysql用户授予远程登录权限(改表法或授权法):(2)防火墙开放3306端口. (一)授予登录权限 mysq ... 
