java selenium grid,Selenium Grid简介与使用【转】

简介

Selenium

Grid是一种自动化的测试辅助工具,Grid通过利用现有的计算机基础设施,能加快Web-app的功能测试。利用Grid,可以很方便地同时在多台机器上和异构环境中并行运行多个测试事例。

Selenium Grid基于Web-app测试工具Selenium,它可以让您同时并行运行多个Selenium Remote

Control。比较好的一点事,它使所有这些Selenium Remote

Control显示为一个,这样您在测试中就可以不必操作具体的计算机。

Selenium Grid因为是基于Selenium RC的,所以它同时支持RC的其它所有语言,如:Ruby, Java,

Python, C#, PHP, ...

还有最后一点,Selenium Grid简单易用。

原理图

 a4c26d1e5885305701be709a3d33442f.png

使用

下面,我们就介绍下如何使用Selenium Grid。

准备:

1. 下载安装ant

http://apache.mirrormax.net/ant/binaries/apache-ant-1.7.0-bin.zip

解压包到你选择的任意目录,然后将 你的解压路径/apache-ant-1.7.0/bin 添加的Path变量中。

最后验证安装:

$ ant -version

Apache Ant version 1.7.0 compiled on December 13 2006

2. 下载安装JDK 1.6

http://www.java.com/en/download/index.jsp

安装后添加java的bin目录到path变量,然后验证:

$java -version

java version "1.6.0"

Java(TM) SE Runtime Environment (build 1.6.0-b105)

Java HotSpot(TM) Server VM (build 1.6.0-b105, mixed mode)

3. 下载Selenium Grid

http://selenium-grid.seleniumhq.org/download.html

其中,zip是Windows平台的,tar.bz2用于其他平台。下载后解压缩,然后验证:

$cd

$ant sanity-check

运行:

1. 运行Selenium Grid

$ ant launch-hub

通过浏览器访问Selenium Grid控制台验证Selenium Grid启动成功:

http://localhost:4444/console

2. 运行Selenium Remote Control

与Grid在同一台机器上,只要指定不同的端口号,就可以运行多个RC在同一台机器上:

$ant -Dport=5556 launch-remote-control

$ant -Dport=5557 launch-remote-control

$ant -Dport=5558 launch-remote-control

运行后,通过访问Grid控制台,验证RC注册成功:

localhost

5555

*firefox

localhost

5556

*firefox

localhost

5557

*firefox

localhost

5558

*firefox

与Gird不在同一台机器上,假设环境如下图:

a4c26d1e5885305701be709a3d33442f.png

我们三台机器,一台机器hub.thoughtworks.com运行grid,其它两台rc1和rc2分别运行两个RC.则我们需要在启动RC时,使用下列命令指定相应的参数:

$ant -Dport=

-Dhost=

-DhubURL=

-Denvironment="Firefox on Windows" launch-remote-control

其中,-Dport指定RC的端口号,-Dhost指定RC所在机器的Host名。-DhubURL指定Grid机器的URL,-Denvironment标示RC的浏览器和操作平台,具体可参考Grid控制台说明。

URL可以使Host Name,也可以是TCP/IP。

按照上图所示参数运行完毕后,通过Grid控制台验证成功结果如下:

Host

Port

Environment

rc1.seleniumhq.org

5555

Firefox on Windows

rc1.seleniumhq.org

5556

Firefox on Windows

rc2.seleniumhq.org

5555

Firefox on Mac

rc2.seleniumhq.org

5556

Firefox on Mac

3. 调用

下面是调用代码,运行的话需要写main函数或者与TestNG结合

// seleniumHost Grid地址, seleniumPort Grid端口号,

browser 浏览器, website

被测对象。 import static

com.thoughtworks.selenium.grid.tools.ThreadSafeSeleniumSessionStorage.session; import static

com.thoughtworks.selenium.grid.tools.ThreadSafeSeleniumSessionStorage.startSeleniumSession; import static

org.testng.AssertJUnit.assertEquals; import static

org.testng.AssertJUnit.assertTrue; import

org.testng.annotations.AfterMethod; import

org.testng.annotations.BeforeMethod; import

org.testng.annotations.Parameters; public class FlickrTestBase

{ public

static final String TIMEOUT =

"30000"; protected

void startSession() throws Exception

{ startSeleniumSession("localhost", 4444, "*iexplore", "http://www.google.cn"); session().setTimeout(TIMEOUT); } protected

void closeSession() throws Exception

{ closeSeleniumSession(); } protected

void runFlickrScenario(String searchString)

{ session().open("/"); assertTrue(session().getLocation(),

session().getLocation().startsWith("http://www.google.cn")); session().type("q",

searchString); session().click("btnG"); session().waitForPageToLoad(TIMEOUT); assertTrue(session().isTextPresent(searchString.split("

")[0])); } public

static void main(String[] args) throws Exception

{ FlickrTestBase gt = new

FlickrTestBase(); gt.startSession(); gt.runFlickrScenario("selenium"); } } // seleniumHost Grid地址, seleniumPort Grid端口号, browser 浏览器, website

被测对象。

import static

com.thoughtworks.selenium.grid.tools.ThreadSafeSeleniumSessionStorage.session;

import static

com.thoughtworks.selenium.grid.tools.ThreadSafeSeleniumSessionStorage.startSeleniumSession;

import static org.testng.AssertJUnit.assertEquals;

import static org.testng.AssertJUnit.assertTrue;

import org.testng.annotations.AfterMethod;

import org.testng.annotations.BeforeMethod;

import org.testng.annotations.Parameters;

public class FlickrTestBase {

public

static final String TIMEOUT = "30000";

protected

void startSession() throws Exception {

startSeleniumSession("localhost", 4444, "*iexplore", "http://www.google.cn");

session().setTimeout(TIMEOUT);

}

protected

void closeSession() throws Exception {

closeSeleniumSession();

}

protected

void runFlickrScenario(String searchString) {

session().open("/");

assertTrue(session().getLocation(),

session().getLocation().startsWith("http://www.google.cn"));

session().type("q", searchString);

session().click("btnG");

session().waitForPageToLoad(TIMEOUT);

assertTrue(session().isTextPresent(searchString.split("

")[0]));

}

public

static void main(String[] args) throws Exception {

FlickrTestBase gt = new FlickrTestBase();

gt.startSession();

gt.runFlickrScenario("selenium");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值