Selenium对于我们进行web自动化测试有很大的帮助,如果要进行大范围的测试覆盖,就不能仅仅在一两台机器上跑了;同样Selenium-Grid也给我们提供了这样的帮助,我们可以借助Selenium-Grid很容易的实现分布式测试环境的搭建。不同于其它一些通用的分布式程序【如:hudson】,Selenium-Grid是专门针对Selenium的自动化分布式测试解决方案。

 

其优点是:

  • 快速搭建分布环境【通过简单的参数配置】
  • 自动分配测试脚本【针对不同环境】
  • 只需一份测试代码【目标测试机不需要有测试代码】

搭建Selenium2环境

 

在搭建Selenium-Grid之前,首先要搭建每台测试机上的Selenium环境【准确点说应该是代理节点的环境】。这里以Java为例:

 
  1. 安装Java【下载
  2. 配置Java环境变量【这里
  3. 下载ie、chrome的driver程序【如果要测试其它浏览器还需额外下载;FF驱动默认在webdriver中,无需下载】
  4. 把ie、chrome的driver程序放到系统环境变量中【例如:system32下】
  5. 安装最新版的浏览器【FF、chrome等】
  6. 下载Selenium Webdriver【下载standalone server】
  7. 代码测试

本地版:

[java] view plain copy
  1. import org.openqa.selenium.*;
  2. import org.openqa.selenium.firefox.*;
  3. import org.openqa.selenium.chrome.*;
  4. import org.openqa.selenium.htmlunit.*;
  5. import org.openqa.selenium.ie.*;
  6. //    WebDriver driver = new ChromeDriver();
  7. //    WebDriver driver = new FirefoxDriver();
  8. //    WebDriver driver = new HtmlUnitDriver();
  9. WebDriver driver = new InternetExplorerDriver();
  10. driver.get("http://www.dangdang.com");
  11. System.out.println(driver.getCurrentUrl());
  12. driver.quit();

远程版:

[java] view plain copy
  1. import org.openqa.selenium.*;
  2. import org.openqa.selenium.remote.DesiredCapabilities;
  3. import org.openqa.selenium.remote.RemoteWebDriver;
  4. DesiredCapabilities ffDesiredcap = DesiredCapabilities.firefox();
  5. DesiredCapabilities chromeDesiredcap = DesiredCapabilities.chrome();
  6. DesiredCapabilities ieDesiredcap = DesiredCapabilities.internetExplorer();
  7. WebDriver wd = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), ieDesiredcap);
  8. wd.get("http://www.google.com");
  9. Thread.sleep(1200);
  10. System.out.println(wd.getCurrentUrl());
  11. wd.quit();

上述测试都成功了,就说明你的环境已经搭建成功,依次你可以在多个系统、平台上搭建Selenium2环境。

 
 

注:

 

如果使用IDE则把selenium-standalone-server的jar包引用到项目build path,如果直接从命令行编译和执行的话,则必须指定该jar包的路径,否则编译会失败。

 
[java] view plain copy
  1. javac -classpath $HOME/path/to/selenium-server.jar Test.java
  2. java -classpath $HOME/path/to/selenium-server.jar Test
 

搭建Selenium-Grid环境

 

当所有测试机上的Selenium2环境搭建成功后,就可以开始启动Selenium-Grid2环境了。

 

首先启动一个hub

 
[java] view plain copy
  1. java -jar selenium-server-standalone-x.xx.x.jar -role hub

启动hub的机器可以不是测试机,任意一台机器有Java环境的机器都可以。这个是整个Selenium-Grid的中枢节点,所有的远程测试都会由经它后再被转发出去,然后在对应的测试机上执行测试。

 
 

启动测试代理node

 
[java] view plain copy
  1. java -jar selenium-server-standalone-x.xx.x.jar -role node

测试代理必须在测试机上启动【即之前搭建了Selenium2环境的机器上】,并且其注册的地址必须是hub所在的机器的ip和端口。一台测试机上可以启动多个代理,前提是要保证不使用相同的端口即可。【当然不建议这样做,尽量避免不稳定因素】

 
 

查看Selenium-Grid状态

 

当hub和所有的代理节点都启动成功后,可以通过浏览器查看当前Selenium-Grid的状态,直接访问地址http://localhost:4444/grid/console。 可以看到页面显示了可以支持测试的代理节点的数量和类型,这里显示的数量和类型和你启动代理节点时所带的配置参数有关。当启动代理节点时其实就是一个注册过程;启动时所带的参数会被hub记住作为注册信息,所以页面中所看到的信息就是各代理节点注册时信息的汇总。

文章转自新浪博客(风一样的自由):http://blog.csdn.net/five3/article/details/9671287

测试人员如何搭建Selenium-Grid2环境(参考Java)的更多相关文章

  1. selenium Grid2环境搭建和基本使用

    Selenium Grid简介 利用Selenium Grid可以使主节点(hub)的测试用例在不同主机即分支点(node)运行.可以使一份测试用例在不同环境下(操作系统.浏览器)执行自动化测试.Se ...

  2. 搭建selenium + Python环境的总结:

    安装Python+Selenium 写博客是一个不错的选择,首先,是担心自己忘掉,其次,可以供大家做一个参考: 其实,这是自己第一次搭建Python环境(之前用了一周的Idle),还是比较容易的吧: ...

  3. 搭建selenium自动化环境步骤

    1.下载pythonhttps://www.python.org/downloads/2.安装2.X或者3.X3.添加环境变量python和pip(与python一起安装)4.下载setuptools ...

  4. Windows搭建SkyWalking8.3环境进行JAVA应用性能监控及入门示例(使用Mysql持久化)

    下载SkyWalking 一.下载地址(点击) 选择tar 解压后进入config文件夹先配置一下Mysql数据源,打开application.yml文件 默认selector是h2我们改成mysql ...

  5. selenium grid 环境搭建

    一.selenium grid简介 selenium grid可以同时在不同机器上测试不同浏览器,包含一个hub和多个node.node会发送配置信息到hub,hub记录并跟踪每一个node的配置信息 ...

  6. 重装系统后,重新搭建Selenium Server+Firefox环境

    摘要:搭建Selenium自动化测试环境其实是非常简单的事情,在态度上我们不要把它当成难事:折腾起来是很愉快的,自然就成功了. 下面把这次安装的过程记录下来,一来是加深印象,二来可以给大家提供参考. ...

  7. 用docker搭建selenium grid分布式环境实践之路

    最近需要测试zoom视频会议,同时模拟100个人加入会议.经过了解,zoom提供了直接通过url链接加入会议的方式(只能通过chrome浏览器或者FireFox浏览器,因为用的协议是webrtc). ...

  8. Selenium----Selenium简单介绍以及Selenium IDE环境搭建,脚本录制

    1.selenium简单介绍 心得:作为一个新手开始了解这个工具,打算从录制脚本开始学习,“录制,看,学习,写”,总结网友说得打算先使用Selenium IDE录制学习,再使用Selenium RC开 ...

  9. [转载]使用VS2015搭建Lua开发环境

    参考原文请看: Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境(一) Lua学习笔记2:Windows7下使用VS2015搭建Lua开发环境(二) 本篇主要分以下几个部分: 一 ...

随机推荐

  1. poj 2528

    Mayor's posters Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 56958   Accepted: 16464 ...

  2. slice,substr和substring的区别

    首先,他们都接收两个参数,slice和substring接收的是起始位置和结束位置(不包括结束位置),而substr接收的则是起始位置和所要返回的字符串长度.直接看下面例子: var test = ' ...

  3. 模拟placeholder支持ie8以下处理了密码框只读的问题

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. SQL探险

    两张表,取相同字段比较 相同则显示true  否则FALSE.

  5. 007商城项目:商品列表查询-需求分析,以及Spinmvc的访问知识

    我们之前已经整合了ssm框架并且调试已经好了,接下来我们实现商品列表的查询. 我们先进入到首页: 方法如下: 我们看到我们把所有的jsp页面都是放在: 这些页面都是放在WEB-IN下面的,也就是说这些 ...

  6. CentOS VMware 下SSH配置方法详解

    1.安装SSH[root@sample ~]# yum install ssh2.启动SSH[root@sample ~]# service sshd start3.设置开机运行[root@sampl ...

  7. 工作随笔——mysql子查询删除原表数据

    最近在开发的时候遇到一个mysql的子查询删除原表数据的问题.在网上也看了很多方法,基本也是然并卵(不是写的太乱就是效率太慢). 公司DBA给了一个很好的解决方案,让人耳目一新. DELETE fb. ...

  8. 不得不玩玩NHibernate

    1.0=>前言 放着好好的EF不用,为什么要来玩NHibernate了?那是因为现在的工作内容就是维护一个比较老的项目,第一版是公司找外包做的,跟数据库打交道这块用的NHibernate,虽然都 ...

  9. ul、li实现横向导航按钮

    好久没写博客了,主要是懒得呼气都不想呼,上周分给我一个新的任务,就是自己新建一个系统,快速极限开发,虽然之前自己也做过小的系统,但毕竟是自己做,随着自己的心意做,没有做其他的限制等,现在呢是给公司做, ...

  10. 【翻译】Windows 10 中为不同设备加载不同页面的3种方法

    在以前,为PC和手机做App是两个工程,PC和手机各一个.在Windows 10中会发现只有一个了,对于简单的页面变化可以使用VisualState来解决,但是比如网易云音乐这种PC版和手机版差异巨大 ...