(一)介绍:

  Grid的功能:

  并行执行

  通过一个中央管理器统一控制用例在不同环境、不同浏览器下运行

  灵活添加变动测试

  (二)快速开始

  这个例子将介绍如何使用selenium2.0的grid,并且注册一个WebDriver节点。如何使用java调用grid。这里Hub和节点都跑在同一台机器上面,但是如有你需要的话可以复制selenium-server-standalone到分布式机器上去实现。

  注:selenium-server-standalone的jar包中已经包含了grid,WebDriver和RC。Ant在2.0版本就不被需要。

  Step1:Start the hub

  Hub作为中央节点,他将接收所有的测试请求,然后分发到各个测试节点上。打开控制台,进入selenium-server-standalone所在目录,输入以下指令:

  java -jar selenium-server-standalone-2.20.0.jar -role hub

  hub将会使用默认的4444端口启动。如果需要更改默认端口,可以通过添加参数启动。同样可以通过访问http://localhost:4444/grid/console查看hub的状态:

  Step2: Start the node

  不管你是为WebDriver启动一个grid还是为RC启动,都只需要通过相同的selenium-server-standalone包启动就可以了:

  java -jar selenium-server-standalone-2.20.0.jar -role node -hub http://hubhost:4444/grid/register

  注:此处的hubhost为启动Selenium Grid hub所在机器的IP。

  (三)使用grid执行用例

  现在我们已经启动了一个grid,那么我需要访问这个grid来执行我们的用例,对于RC用例,我们将继续使用DefaultSelenium对象来跟hub进行通信:

  Selenium selenium = new DefaultSelenium("hubhost", 4444, "*firefox", "http://www.google.com");

  而对于WebDriver用例,我们需要使用RemoteWebDriver和DesiredCapabilities对象来声明用例需要使用的浏览器,版本和平台。声明我们需要测试执行的浏览器:

  DesiredCapabilities capability = DesiredCapabilities.firefox();

  将capability加载到RemoteWebDriver对象:

  WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability);通过这些步骤,RemoteWebDriver会把用例中的操作发送给hub,hub则根据capability将用例指派到特定的测试节点(即向hub注册的node)上。同样如果测试节点机器设置了capabilities的值,那么我们需要在WebDriver对象中进行相同的设置,才能被访问到。例如:A测试机节点通过下列项进行注册到hub:-browser browserName=firefox,version=3.6,platform=LINUX那么它将被这样的用例访问到:capability.setBrowserName("firefox" ); capability.setPlatform("LINUX"); capability.setVersion("3.6");同样他也会匹配:capability.setBrowserName("firefox" ); capability.setVersion("3.6");可见node也是接受模糊匹配的。如果capabilities没有被指定,那么这个用例将被忽略。同样如果指定的capabilities不存在,则这个用例将不能运行。

  (四)配置节点:

  默认情况下,支持11款浏览器:5个FF,5个Chrome,1个IE。默认的最大并发数为5。不过我们可以通过命令行来进行更改。-browser browserName=firefox,version=3.6,maxInstances=5,platform=LINUX以上配置了一个Linux测试机节点,且可以同时并发5个FF3.6浏览器。如果你的测试机上存在多个版本的浏览器,那么也可以通过配置具体浏览器的执行文件的路径来配置多个版本:-browser browserName=firefox,version=3.6,firefox_binary=/home/myhomedir/firefox36/firefox,maxInstances=3,platform=LINUX -browser browserName=firefox,version=4,firefox_binary=/home/myhomedir/firefox4/firefox,maxInstances=4,platform=LINUX注:firefox_binary为节点测试机上具体的FF启动文件

转:Selenium2.0之grid学习总结的更多相关文章

  1. Python版:Selenium2.0之WebDriver学习总结_实例1

    Python版:Selenium2.0之WebDriver学习总结_实例1  快来加入群[python爬虫交流群](群号570070796),发现精彩内容. 实属转载:本人看的原文地址 :http:/ ...

  2. Selenium2.0+TestNG+Ant+Jenkins自动化测试浅尝

    当前常用自动化测试工具 Web自动化测试工具:QTP .selenium等 性能自动化测试工具:loadrunner.jmeter等 接口自动化测试工具:SoapUI.postman等 手机自动化测试 ...

  3. 新手入门指导:Vue 2.0 的建议学习顺序

    起步 1. 扎实的 JavaScript / HTML / CSS 基本功.这是前置条件. 2. 通读官方教程 (guide) 的基础篇.不要用任何构建工具,就只用最简单的 <script> ...

  4. selenium2.0(WebDriver) API

    1.1  下载selenium2.0的包 官方download包地址:http://code.google.com/p/selenium/downloads/list 官方User Guide:  h ...

  5. 在selenium2.0中使用selenium1.0的API

    Selenium2.0中使用WeDriver API对页面进行操作,它最大的优点是不需要安装一个selenium server就可以运行,但是对页面进行操作不如selenium1.0的Selenium ...

  6. Selenium Grid 学习笔记

    Selenium Grid 学习笔记http://www.docin.com/p-765680298.html

  7. selenium2.0处理case实例(二)

    本文通过具体代码处理过程, 来展示selenium中一些比较不常用的类的用法 1.javascriptExcutor,通过将driver强转成JavascriptExecutor类型, 调用execu ...

  8. selenium2.0的初步封装(java版本)

    我们都知道, 在本地创建java项目后,引入selenium-java-2.35.0.jar   selenium-support-2.35.0.jar junit-4.8.1.jar等等jar包之后 ...

  9. selenium2.0 处理各种窗口问题解决方法

    selenium2.0处理muti-Windows . Frames .Popup Dialogs selenium2.0处理多窗口,弹窗等,只需要调用WebDriver 嵌套类:TargetLoca ...

随机推荐

  1. Git Bash 简单操作

    在Windows下使用Git Bash,用的是Linux命令,常用几个文件操作命令如下: Windows命令 Linux命令 意义 cd e:\xxx cd /e/xxx 切换到xxx目录 cd pw ...

  2. Xcode调试之查看变量

    从其他开发语言转行进军IOS开发的小伙伴可能会有这样一件苦恼的事情,调试程序时如何查看变量值?我并不喜欢每次都要通过打印去查看变量的值,也不喜欢通过光标悬浮到变量上来显示变量的值,如果要查看变量的属性 ...

  3. app.use(express.static)设置静态文件目录小解

    app.use(path, function, [, function]) 功能: 为path注册中间函数,即根据path使用不同函数进行处理,默认path是"/",也就是处理任何 ...

  4. C# WebRequest简单调用WebService方法

    //get string res = GetStringByUrl("http://你的地址/WebService.asmx/方法名?参数=1"); //post string r ...

  5. php中文乱码问题分析及解决办法

    中文乱码问题产生的原因,主要就是字符编码设置问题:             首先,mysql数据库安装的时候字符编码要选择正确,最好选择utf-8比较保险.如果安装时没有设置正确,找到mysql的安装 ...

  6. zookeeper入门知识

    ZooKeeper 是什么? ZooKeeper 顾名思义 动物园管理员,他是拿来管大象(Hadoop) . 蜜蜂(Hive) .小猪(Pig)  的管理员, Apache Hbase和 Apache ...

  7. PostMessage 向Windows窗口发送Alt组合键

    PostMessage 向Windows窗口发送Alt组合键 关于向Windows窗口发送Alt组合键的问题,这个真是经典问题啊,在网上找了一下,问的人N多,方法差不多, 但就是没有很好解决问题. 之 ...

  8. 面向方面编程(AOP)

    简介 如果你很熟悉面向方面编程(AOP),你就会知道给代码增加"切面"可以使代码更清晰并且具有可维护性.但是AOP通常都依赖于第三方类库或者硬编码的.net特性来工作.虽然这些实现 ...

  9. OpenCV ——双线性插值(Bilinear interpolation)

    1,原理 在图像的仿射变换中,很多地方需要用到插值运算,常见的插值运算包括最邻近插值,双线性插值,双三次插值,兰索思插值等方法,OpenCV提供了很多方法,其中,双线性插值由于折中的插值效果和运算速度 ...

  10. Java学习笔记之[ 利用扫描仪Scanner进行数据输入 ]

    /*********数据的输入********//**利用扫描仪Scanner进行数据输入 怎么使用扫描仪Scanner *1.放在类声明之前,引入扫描仪 import java.util.Scann ...