Selenium2.0之grid学习总结
2014-09-08 10:55
337 查看
一)介绍:
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
![](http://img5.ph.126.net/cUVIb8RK2fwws6tPszyl_Q==/1114640907791588115.jpg)
hub将会使用默认的4444端口启动。如果需要更改默认端口,可以通过添加参数启动。同样可以通过访问http://localhost:4444/grid/console查看hub的状态:
![](http://img1.ph.126.net/QCHUPUVj2McASDddR2L5Lw==/2614902533659401001.jpg)
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进行通信:
而对于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:
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。不过我们可以通过命令行来进行更改。
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
![](http://img5.ph.126.net/cUVIb8RK2fwws6tPszyl_Q==/1114640907791588115.jpg)
hub将会使用默认的4444端口启动。如果需要更改默认端口,可以通过添加参数启动。同样可以通过访问http://localhost:4444/grid/console查看hub的状态:
![](http://img1.ph.126.net/QCHUPUVj2McASDddR2L5Lw==/2614902533659401001.jpg)
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学习总结
- Selenium2.0之grid学习总结
- Selenium2.0之grid学习总结 (4)
- Selenium2.0之WebDriver学习总结(2)
- Selenium2.0之WebDriver学习总结(1)
- Selenium2.0之WebDriver学习总结(3)
- Selenium2.0之WebDriver学习总结(一)
- Selenium2.0之WebDriver学习总结(1)
- Selenium2.0之WebDriver学习总结(2)
- Selenium2.0之WebDriver学习总结(2)
- Selenium2.0之WebDriver学习总结(1)
- Selenium2.0之WebDriver学习总结(二)
- Selenium2.0之WebDriver学习总结(1)
- Selenium2.0之WebDriver学习总结(2)
- Selenium Webdriver 学习总结-Selenium Grid & Webdriver(九)
- Selenium2.0之WebDriver学习总结(3)
- Selenium2.0之WebDriver学习总结(2)
- Selenium2.0之WebDriver学习总结(一)
- Selenium2.0之WebDriver学习总结(2)
- Selenium2.0之WebDriver学习总结