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..jar -role hub
4.2 启动node
java -jar selenium-server-standalone-3.5..jar -role node -port -hub http://localhost:4444/grid/register
同理我们另外启动两个 node(使用端口号分别为5556/5557):
java -jar selenium-server-standalone-3.5..jar -role node -port -hub http://localhost:4444/grid/register
java -jar selenium-server-standalone-3.5..jar -role node -port -hub http://localhost:4444/grid/register
4.3 更好的启动方法 — bat脚本
cd /d D:\grid
start java -jar selenium-server-standalone-3.5..jar -role hub
start java -jar selenium-server-standalone-3.5..jar -role node -port -hub http://localhost:4444/grid/register
start java -jar selenium-server-standalone-3.5..jar -role node -port -hub http://localhost:4444/grid/register
start java -jar selenium-server-standalone-3.5..jar -role node -port -hub http://localhost:4444/grid/register
4.4 更多选项
d:\grid>java -jar selenium-server-standalone-3.5..jar --help
Usage: <main class> [options]
Options:
--version, -version
Displays the version and exits.
Default: false
-browserTimeout
<Integer> in seconds : number of seconds a browser session is allowed to
hang while a WebDriver command is running (example: driver.get(url)). If the
timeout is reached while a WebDriver command is still processing, the session
will quit. Minimum value is . An unspecified, zero, or negative value means
wait indefinitely.
Default:
-debug
<Boolean> : enables LogLevel.FINE.
Default: false
-enablePassThrough
<Boolean>: Whether or not to use the experimental passthrough mode.
Defaults to true.
Default: true
-jettyThreads, -jettyMaxThreads
<Integer> : max number of threads for Jetty. An unspecified, zero, or
negative value means the Jetty default value () will be used.
-log
<String> filename : the filename to use for logging. If omitted, will log
to STDOUT
-port
<Integer> : the port number the server will use.
Default:
-role
<String> options are [hub], [node], or [standalone].
Default: standalone
-timeout, -sessionTimeout
<Integer> in seconds : Specifies the timeout before the server
automatically kills a session that hasn't had any activity in the last X seconds. The
test slot will then be released for another test to use. This is typically
used to take care of client crashes. For grid hub/node roles, cleanUpCycle
must also be set.
Default:
5. Selenium Grid 分布式测试脚本
# coding:utf- from selenium.webdriver import Remote
import time # 定义node_hub与浏览器对应关系
nodes = {
'http://127.0.0.1:5555/wd/hub': 'chrome',
'http://127.0.0.1:5556/wd/hub': 'internet explorer',
'http://127.0.0.1:5557/wd/hub': 'firefox'
} # 通过不同的浏览器执行测试脚本
for host, browser in nodes.items():
print(host, browser)
# 调用remote方法
driver = Remote(command_executor=host,
desired_capabilities={'platform': 'ANY', 'browserName': browser, 'version': '', 'javascriptEnabled': True}) # 打开百度首页并搜索词语,最后判断搜索跳转页面标题是否含有搜索词
wd = 'lovesoo'
driver.get('https://www.baidu.com')
driver.find_element_by_id("kw").send_keys(wd)
driver.find_element_by_id("su").click()
time.sleep()
assert wd in driver.title, '{0} not in {1}'.format(wd, driver.title.encode('utf-8'))
driver.quit()
('http://127.0.0.1:5555/wd/hub', 'chrome')
('http://127.0.0.1:5557/wd/hub', 'firefox')
('http://127.0.0.1:5556/wd/hub', 'internet explorer')
6. 常见问题
Selenium Grid分布式测试入门详解的更多相关文章
-
Selenium Grid分布式测试环境搭建
Selenium Grid简介 Selenium Grid实际上是基于Selenium RC的,而所谓的分布式结构就是由一个hub节点和若干个node代理节点组成.Hub用来管理各个代理节点的注册信息 ...
-
selenium之多线程启动grid分布式测试框架封装(四)
九.工具类,启动所有远程服务的浏览器 在utils包中创建java类:LaunchAllRemoteBrowsers package com.lingfeng.utils; import java.n ...
-
Redis快速入门详解
Redis入门详解 Redis简介 Redis安装 Redis配置 Redis数据类型 Redis功能 持久化 主从复制 事务支持 发布订阅 管道 虚拟内存 Redis性能 Redis部署 Redis ...
-
SQL注入攻防入门详解
=============安全性篇目录============== 本文转载 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机 ...
-
SQL注入攻防入门详解(2)
SQL注入攻防入门详解 =============安全性篇目录============== 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱 ...
-
Quartz 入门详解
Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Quartz可以用来创建简单或为运行十个,百个, ...
-
[转]SQL注入攻防入门详解
原文地址:http://www.cnblogs.com/heyuquan/archive/2012/10/31/2748577.html =============安全性篇目录============ ...
-
转:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法、shiro认证与shiro授权
原文地址:JAVAWEB开发之权限管理(二)——shiro入门详解以及使用方法.shiro认证与shiro授权 以下是部分内容,具体见原文. shiro介绍 什么是shiro shiro是Apache ...
-
【转载】SQL注入攻防入门详解
滴答…滴答…的雨,欢迎大家光临我的博客. 学习是快乐的,教育是枯燥的. 博客园 首页 博问 闪存 联系 订阅 管理 随笔-58 评论-2028 文章-5 trackbacks-0 站长 ...
随机推荐
-
Linux虚拟机中 Node.js 开发环境搭建
Node.js 开发环境搭建: 1.下载CentOS镜像文件和VMWare虚拟机程序; 2.安装VMWare——>添加虚拟机——>选择CentOS镜像文件即可默认安装带有桌面的Linux虚 ...
-
JAVA多线程 问题 转载
参考:http://ifeve.com/java-multi-threading-concurrency-interview-questions-with-answers/ http://www.cn ...
-
Eclipse经常报Unhandled event loop exception的原因
在公司的电脑上,Eclipse经常报Unhandled event loop exception 错误,非常频繁,通过搜索发现是因为电脑上安装了百度杀毒导致的.... 无语 另外 teamviewer ...
-
Caffe学习系列(9):运行caffe自带的两个简单例子
为了程序的简洁,在caffe中是不带练习数据的,因此需要自己去下载.但在caffe根目录下的data文件夹里,作者已经为我们编写好了下载数据的脚本文件,我们只需要联网,运行这些脚本文件就行了. 注意: ...
-
Socket网络编程(2)--服务端实现
中秋了,首先祝大家中秋快乐,闲着无事在家整一个socket的聊天程序,有点仿QQ界面,就是瞎折腾,不知道最后是不是能将所有功能实现. 如果你对socket不了解,请看这篇文章:http://www.c ...
-
CSS3伪类
1.:last-child 比如:查找ul的最后一个li ul li:last-child { //样式 } 2.:first-child 比如:查找ul的第一个li ul li:first-chil ...
-
Android 程序运行之后,禁止休眠
在程序中添加 // 禁止休眠功能 getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager. ...
-
PAT 1008. Elevator (20)
1008. Elevator (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The highest ...
-
git增加子模块
要拉取GIT代码时,有时候需要拉取多个GIT模块,一起配合使用: 1.下载主模块: git clone -b master http://username:passwd@git.wondershare ...
-
Python @property 方法
考察 Student 类: class Student(object): def __init__(self, name, score): self.name = name self.score = ...