配置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 ...
随机推荐
- P3648 [APIO2014]序列分割(斜率优化dp)
P3648 [APIO2014]序列分割 我们先证明,分块的顺序对结果没有影响. 我们有一个长度为3的序列$abc$ 现在我们将$a,b,c$分开来 随意枚举一种分块方法,如$(ab)(c)$,$(a ...
- Bugku-CTF之网站被黑(这个题没技术含量但是实战中经常遇到)
Day11 网站被黑 http://123.206.87.240:8002/webshell/
- WDTP注册破解
简介 WDTP 不止是一款开源免费的 GUI 桌面单机版静态网站生成器和简单方便的前端开发工具,更是一款跨平台的集笔记.个人知识管理.写作/创作.博客/网站内容与样式管理等功能于一体的多合一内容处理/ ...
- vue搭建前端相关命令
Vue搭建.新建工程并打开浏览器调试的指令: 这四行命令就是我们接下来工作了. 1.npm install –global vue-cli 我们在安装好nodejs后就可以用到“npm”这个前缀指令, ...
- Architectural principles
原文 "If builders built buildings the way programmers wrote programs, then the first woodpecker t ...
- vue实现 toggle显示隐藏效果
背景介绍jQuery中有个toggle()方法,可以切换元素的显示状态,在用vue时如果不引入jQuery如何实现这种效果?使用场景常见有三种场景:1.控制页面中一个dom元素2.控制页面中多个dom ...
- Lintcode481-Binary Tree Leaf Sum-Easy
481. Binary Tree Leaf Sum Given a binary tree, calculate the sum of leaves. Example Example 1: Input ...
- Centos7 安装并配置redis
一. 安装 操作系统:Centos 7. 最小化安装 redis版本: 4.0.2 服务器地址:*** 安装过程: 安装wget, yum -y install wget 2. 下载redis wg ...
- Nginx教程--02.Nginx虚拟主机的配置
1.Nginx虚拟主机的配置 1.1 在conf目录下,使用命令 : vim nginx.conf 对上图解释: //全局区 worker _processes 1; //表示当前有1个工作的子进程, ...
- robot framework学习二-----元素定位
文章摘自:https://www.cnblogs.com/fnng/p/3901391.html 不要误认为Robot framework 只是个web UI测试工具,更正确的理解Robot fram ...