测试人员如何搭建Selenium-Grid2环境(参考Java)
Selenium对于我们进行web自动化测试有很大的帮助,如果要进行大范围的测试覆盖,就不能仅仅在一两台机器上跑了;同样Selenium-Grid也给我们提供了这样的帮助,我们可以借助Selenium-Grid很容易的实现分布式测试环境的搭建。不同于其它一些通用的分布式程序【如:hudson】,Selenium-Grid是专门针对Selenium的自动化分布式测试解决方案。
其优点是:
- 快速搭建分布环境【通过简单的参数配置】
- 自动分配测试脚本【针对不同环境】
- 只需一份测试代码【目标测试机不需要有测试代码】
搭建Selenium2环境
在搭建Selenium-Grid之前,首先要搭建每台测试机上的Selenium环境【准确点说应该是代理节点的环境】。这里以Java为例:
- 安装Java【下载】
- 配置Java环境变量【这里】
- 下载ie、chrome的driver程序【如果要测试其它浏览器还需额外下载;FF驱动默认在webdriver中,无需下载】
- 把ie、chrome的driver程序放到系统环境变量中【例如:system32下】
- 安装最新版的浏览器【FF、chrome等】
- 下载Selenium Webdriver【下载standalone server】
- 代码测试
本地版:
- import org.openqa.selenium.*;
- import org.openqa.selenium.firefox.*;
- import org.openqa.selenium.chrome.*;
- import org.openqa.selenium.htmlunit.*;
- import org.openqa.selenium.ie.*;
- // WebDriver driver = new ChromeDriver();
- // WebDriver driver = new FirefoxDriver();
- // WebDriver driver = new HtmlUnitDriver();
- WebDriver driver = new InternetExplorerDriver();
- driver.get("http://www.dangdang.com");
- System.out.println(driver.getCurrentUrl());
- driver.quit();
远程版:
- import org.openqa.selenium.*;
- import org.openqa.selenium.remote.DesiredCapabilities;
- import org.openqa.selenium.remote.RemoteWebDriver;
- DesiredCapabilities ffDesiredcap = DesiredCapabilities.firefox();
- DesiredCapabilities chromeDesiredcap = DesiredCapabilities.chrome();
- DesiredCapabilities ieDesiredcap = DesiredCapabilities.internetExplorer();
- WebDriver wd = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), ieDesiredcap);
- wd.get("http://www.google.com");
- Thread.sleep(1200);
- System.out.println(wd.getCurrentUrl());
- wd.quit();
上述测试都成功了,就说明你的环境已经搭建成功,依次你可以在多个系统、平台上搭建Selenium2环境。
注:
如果使用IDE则把selenium-standalone-server的jar包引用到项目build path,如果直接从命令行编译和执行的话,则必须指定该jar包的路径,否则编译会失败。
- javac -classpath $HOME/path/to/selenium-server.jar Test.java
- java -classpath $HOME/path/to/selenium-server.jar Test
搭建Selenium-Grid环境
当所有测试机上的Selenium2环境搭建成功后,就可以开始启动Selenium-Grid2环境了。
首先启动一个hub:
- java -jar selenium-server-standalone-x.xx.x.jar -role hub
启动hub的机器可以不是测试机,任意一台机器有Java环境的机器都可以。这个是整个Selenium-Grid的中枢节点,所有的远程测试都会由经它后再被转发出去,然后在对应的测试机上执行测试。
启动测试代理node:
- 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)的更多相关文章
- selenium Grid2环境搭建和基本使用
Selenium Grid简介 利用Selenium Grid可以使主节点(hub)的测试用例在不同主机即分支点(node)运行.可以使一份测试用例在不同环境下(操作系统.浏览器)执行自动化测试.Se ...
- 搭建selenium + Python环境的总结:
安装Python+Selenium 写博客是一个不错的选择,首先,是担心自己忘掉,其次,可以供大家做一个参考: 其实,这是自己第一次搭建Python环境(之前用了一周的Idle),还是比较容易的吧: ...
- 搭建selenium自动化环境步骤
1.下载pythonhttps://www.python.org/downloads/2.安装2.X或者3.X3.添加环境变量python和pip(与python一起安装)4.下载setuptools ...
- Windows搭建SkyWalking8.3环境进行JAVA应用性能监控及入门示例(使用Mysql持久化)
下载SkyWalking 一.下载地址(点击) 选择tar 解压后进入config文件夹先配置一下Mysql数据源,打开application.yml文件 默认selector是h2我们改成mysql ...
- selenium grid 环境搭建
一.selenium grid简介 selenium grid可以同时在不同机器上测试不同浏览器,包含一个hub和多个node.node会发送配置信息到hub,hub记录并跟踪每一个node的配置信息 ...
- 重装系统后,重新搭建Selenium Server+Firefox环境
摘要:搭建Selenium自动化测试环境其实是非常简单的事情,在态度上我们不要把它当成难事:折腾起来是很愉快的,自然就成功了. 下面把这次安装的过程记录下来,一来是加深印象,二来可以给大家提供参考. ...
- 用docker搭建selenium grid分布式环境实践之路
最近需要测试zoom视频会议,同时模拟100个人加入会议.经过了解,zoom提供了直接通过url链接加入会议的方式(只能通过chrome浏览器或者FireFox浏览器,因为用的协议是webrtc). ...
- Selenium----Selenium简单介绍以及Selenium IDE环境搭建,脚本录制
1.selenium简单介绍 心得:作为一个新手开始了解这个工具,打算从录制脚本开始学习,“录制,看,学习,写”,总结网友说得打算先使用Selenium IDE录制学习,再使用Selenium RC开 ...
- [转载]使用VS2015搭建Lua开发环境
参考原文请看: Lua学习笔记1:Windows7下使用VS2015搭建Lua开发环境(一) Lua学习笔记2:Windows7下使用VS2015搭建Lua开发环境(二) 本篇主要分以下几个部分: 一 ...
随机推荐
- MongoDB集群架构及搭建
MongoDB分布式集群 MongDB分布式集群能够对数据进行备份,提高数据安全性,以及提高集群提高读写服务的能力和数据存储能力.主要通过副本集(replica)对数据进行备份,通过分片(shardi ...
- 解决编译apache出现的问题:configure: error: APR not found . Please read the documentation
今日编译apache时出错: #./configure --prefix……检查编辑环境时出现: checking for APR... no configure: error: APR not fo ...
- Meet python: little notes 4 - high-level characteristics
Source: http://www.liaoxuefeng.com/ ♥ Slice Obtaining elements within required range from list or tu ...
- nfs客户端报错解决Stale file handle
NFS故障: 场景:客户端挂载是好的.服务端磁盘满了,重新给挂了一快.客户端df -h nfs挂载消失. 客户端报错:Stale file handle 现象如下: [root@test63-spri ...
- Java 基础【10】 I/O流概念分析整理
转载地址:http://blog.csdn.net/yuebinghaoyuan/article/details/7388059 java.io 中的流,可以从不同的角度进行分类. 按照数据流的方向不 ...
- web 前端常用组件【01】Pagination 分页
分页组件几乎是一般网站都会涉及到的组件,网上有很多这样的插件,自己挑来跳去选择了这一款. 官方Demo网址:http://mricle.com/JqueryPagination 功能强大,可扩展性比较 ...
- Hashtable Dictionary List 谁效率更高
一 前言 很少接触HashTable晚上回来简单看了看,然后做一些增加和移除的操作,就想和List 与 Dictionary比较下存数据与取数据的差距,然后便有了如下的一此测试, 当然我测的方法可能不 ...
- java并发:线程同步机制之计数器&Exechanger
第一节 CountDownLatch (1)初识CountDownLatch (2)详述CountDownLatch CountDownLatch是通过一个计数器来实现的,计数器的初始值为线程的数量. ...
- ModernUI教程:如何从MUI样式中派生自定义样式
下面的步骤用来说明怎么样去创建一个基于MUI的自定义样式.让我们创建一个字体颜色显示为红色的按钮样式. 可视化显示如下: 因为我们并没有明确生命继承自MUI风格,它还是采用WPF的默认风格.我们需要设 ...
- java的HashCode方法
总的来说,Java中的集合(Collection)有两类,一类是List,再有一类是Set. 前者集合内的元素是有序的,元素可以重复: 后者元素无序,但元素不可重复. 要想保证元素不重复,可两个元素是 ...