配置selenium grid
1. Selenium Grid简介
2. Selenium Grid结构

3. 环境准备
3.1 JDK环境
3.2 selenium-server-standalone下载

3.3 webdriver下载
3.3.1 IE

3.3.2 Chrome
3.3.3 Firefox

driver下载完成解压后,分别拷贝IEDriverServer.exe,geckodriver.exe,chromedriver.exe至Python安装路径(如C:\Python27\)下即可
4. Selenium Grid启动
4.1 启动hub
java -jar selenium-server-standalone-3.5.0.jar -role hub

4.2 启动node
java -jar selenium-server-standalone-3.5.0.jar -role node -port 5555 -hub http://localhost:4444/grid/register
java -jar selenium-server-standalone-3.5.0.jar -role node
同理我们另外启动两个 node(使用端口号分别为5556/5557):
java -jar selenium-server-standalone-3.5.0.jar -role node -port 5556 -hub http://localhost:4444/grid/register
java -jar selenium-server-standalone-3.5.0.jar -role node -port 5557 -hub http://localhost:4444/grid/register

4.3 更好的启动方法 — bat脚本
cd /d D:\grid
start java -jar selenium-server-standalone-3.5.0.jar -role hub
start java -jar selenium-server-standalone-3.5.0.jar -role node -port 5555 -hub http://localhost:4444/grid/register
start java -jar selenium-server-standalone-3.5.0.jar -role node -port 5556 -hub http://localhost:4444/grid/register
start java -jar selenium-server-standalone-3.5.0.jar -role node -port 5557 -hub http://localhost:4444/grid/register
from selenium.webdriver import Remote driver = Remote(command_executor= 'http://192.168.87.1:4444/wd/hub', #command_executor参数格式是固定的
desired_capabilities= {'platform':'ANY',
'browserName':'chrome', #这个desired_capabilities参数格式也是固定的
'version':'',
'javascriptEnable':True
}
) driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys('remote')
driver.find_element_by_id('su').click()
例子二:
我们分别在本机上开启了一个hub 和3个node: 来测试自动运行浏览器
lists = {'http://192.168.87.1:4444/wd/hub':'chrome',
'http://192.168.87.1:5555/wd/hub': 'firefox',
'http://192.168.87.1:5556/wd/hub': 'firefox'} for host,browser in lists.items():
print host,browser driver = Remote(command_executor=host,
desired_capabilities={'platform':'ANY',
'browserName':browser,
'version':'',
'javascriptEnabled':True}
) driver.get('http://www.baidu.com')
16 driver.find_element_by_id('kw').send_keys(browser)
driver.find_element_by_id('su').click()
例子三:实现在远程的node上运行测试用例
要想在其他主机上启动node,则必须满足下面的条件:
(1).本地的hub主机必须与远程的node主机之间可以用ping联通.我用的是虚拟机 需要注意一点的是 需要关闭防火墙才可以ping通对方,否则会不通.
(2)远程主机必须安装浏览器和webdriver驱动 并且要放在环境变量path目录下
(3).远程主机必须要安装java环境,并且还需要讲selenium server的jar包放在远程主机本地目录下,因为在调用远程node主机的时候需要在远程主机上运行node
(4).也要安装python环境
操作步骤:
1.启动本地hub主机(本机IP地址为:192.168.87.1)
2.启动远程node主机(远程主机ip地址为:192.168.31.128)
设置端口号为5556,指向的hub为主机IP地址:192.168.87.1
3.修改远程主机的ip地址和端口号,在远程主机上的firefox和Chrome上运行脚本
lists = {'http://192.168.31.128:5556/wd/hub':'chrome',
'http://192.168.31.128:5555/wd/hub': 'firefox',
'http://192.168.87.1:4444/wd/hub': 'firefox'} for host,browser in lists.items():
print host,browser driver = Remote(command_executor=host,
desired_capabilities={'platform':'ANY',
'browserName':browser,
'version':'',
'javascriptEnabled':True}
) driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys(browser)
driver.find_element_by_id('su').click()
现在再来运行脚本,会发现在远程主机上可以看到脚本被运行.
5. 常见问题

配置selenium grid的更多相关文章
- Python+Selenium笔记(十一):配置selenium Grid
(一) 前言 Selenium Grid可以将测试分布在若干个物理或虚拟机器上,从而实现分布方式或并行方式执行测试. 这个链接是官方的相关说明. https://github.com/Selenium ...
- 转:Selenium Grid+JAVA +Windows 配置(Selenium 2.0)
Selenium-Grid 允许你在多台机器的多个浏览器上并行的进行测试,也就是说,你可以同时运行多个测试.本质上来说就是,Selenium-Grid 支持分布式的测试执行.它可以让你的测试在一个分布 ...
- 搭建selenium grid简单配置
1.使用selenium提供的服务端独立jar包 :服务端.客户端都是运行于java7环境. 2.启动hub: hub配置文件如下: Java -jar selenium-server-standal ...
- Selenium Grid的原理、配置与使用(转)
Selenium GridSelenium Grid在前面介绍Selenium的时候说过它有三大组件,Selenium Grid就是其中之一而作用就是分布式执行测试.讲分布式之前还是要说说UI自动化的 ...
- selenium grid的使用与配置
一.selenium grid的组成与作用:由一个集线器hub和多个客户机node组成,如果你的程序需要在不用的浏览器,不同的操作系统上测试,而且比较多的case需要多线程远程执行,那么一个比较好的测 ...
- Robot Framework + Selenium2Library环境下,结合Selenium Grid实施分布式自动化测试
最近一段时间,公司在推行自动化测试流程,本人有幸参与了自定义通用控件的关键字封装和脚本辅助编写.数据驱动管理.测试用例执行管理等一系列工具软件的研发工作,积累了一些经验,在此与大家做一下分享,也算是做 ...
- Selenium Grid 运行报错 Exception thrown in Navigator.Start first time ->Error forwarding the new session Empty pool of VM for setup Capabilities
Selenium Grid 运行报错 : Exception thrown in Navigator.Start first time ->Error forwarding the new se ...
- selenium Grid(一)
selenium grid Quick Start selenium-grid是用于设计帮助我们进行分布式测试的工具,其整个结构是由一个hub节点和若干个代理节点组成.hub用来管理各个代理节点的注册 ...
- selenium Grid
Selenium Grid 的机制是启动一个 hub,然后启动多个 Selenium RC 注册到 hub 上, 当测试请求到 hub 时,hub 会将测试分发给 Selenium RC, Selen ...
随机推荐
- python split()函数的用法
转自: https://blog.csdn.net/orangefly0214/article/details/80810449 函数:split() Python中有split()和os.path. ...
- LSTMs 长短期记忆网络系列
RNN的长期依赖问题 什么是长期依赖? 长期依赖是指当前系统的状态,可能受很长时间之前系统状态的影响,是RNN中无法解决的一个问题. 如果从(1) “ 这块冰糖味道真?”来预测下一个词,是很容易得出“ ...
- vue中父子组件之间的传值、非父子组件之间的传值
在Vue实例中每个组件之间都是相互独立的,都有自己的作用域,所以组件之间是不能直接获取数据.在项目开发中一个组件可能需要获取另一个组件的值,我们可以通过其他方法间接的获取.所以,获取的方法有以下几种: ...
- 王之泰201771010131《面向对象程序设计(java)》第六周学习总结
第一部分:理论知识学习部分 第五章 第五章学习内容主要分为七个模块,分别为: 1.类.超类和子类: a. 类继承的格式: class 新类名extends已有类名. b. 已有类称为:超类(super ...
- 浅谈HTTP中GET、POST用法以及它们的区别
浅谈HTTP中GET.POST用法以及它们的区别 HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符.我们可以这样认为: 一 ...
- Qt自定义阴影效果和QOpenGLWidget冲突导致控件不刷新
Qt5.6.2版本存在这样一个问题(其它版本未测试),当main函数中设置了application.setAttribute(Qt::AA_NativeWindows)(用于使得每个子界面都可以获取w ...
- JAVA深入研究——Method的Invoke方法(转)
原文地址:http://www.cnblogs.com/onlywujun/p/3519037.html 在写代码的时候,发现Method可以调用子类的对象,但子类即使是改写了的Method,方法名一 ...
- 《SQL 基础教程》第二章:查询基础
这一章的结构如下: SELECT 语句基础 算术运算符和比较运算符 逻辑运算符 SELECT 语句可用于查询数据,并且可以设定条件来查询具有特定值的记录.条件的设定就需要算数运算符.比较运算符和逻辑运 ...
- C++ #和##运算符
原文:https://blog.csdn.net/mitu405687908/article/details/51084441 #和##运算符 #:构串操作符 构串操作符#只能修饰带参数的宏的形参,它 ...
- android -------- MVP+DataBinding 的使用
今天来说说MVP+DataBinding 的使用 以一个登录案例来讲解 布局:(ConstraintLayout 作为根布局) <layout> <data> <vari ...