一、启动Grid,顺序执行测试案例:

进入到Selenium Grid的根目录,

ant launch-hub。启动Hub服务。运行后查看http://localhost:4444/console ,检查Hub服务是否启动成功。

 

Hub启动成功后,首先来试运行一下,在一个新终端窗口中,执行命令:ant run-demo-in-sequence

通过Remote-Control,Selenium测试案例将被顺序执行,Hub只启动一个selenium-RC,这些测试案例都是在一个selenium-RC中运行。这样并不让人感到激动,因为通过正常的Selenium-RC,一样可以办到,对吧。

但这仅仅是一个起步,你的目标可能是想并行地运行测试案例。

python selenium执行后不关闭浏览器_selenium

此时可用的Remote Controls:

Host

Port

Environment

localhost

5555

*firefox

 

二、 与Grid在同一台机器上,只要指定不同的端口号,可以运行多个RC在同一台机器上,并行运行测试案例:

        分别在3个终端进入到Selenium Grid的根目录,执行如下操作:  

        ant -Dport=5556 launch-remote-control
  ant -Dport=5557 launch-remote-control
  ant -Dport=5558 launch-remote-control

  运行后,通过访问Grid控制台,验证RC注册成功,下图可以看到开启了3个remote-control(5555端口是之前执行用例时默认启动的):

 

python selenium执行后不关闭浏览器_selenium_02

 

注意:同一台机器上启动的Client的端口号不可重复

 然后,我们来看看并行执行测试案例,在一个新终端窗口中,执行命令:ant run-demo-in-parallel

通过Remote-Control,Selenium测试案例将被并发执行,这些测试案例都由Hub进行资源分配,在不同的selenium-RC中运行,达到并发效果。

可以从Hub控制台看到调动了4个selenium-RC来同步工作。

python selenium执行后不关闭浏览器_Grid_03

此时可用的Remote Controls:

Host

Port

Environment

localhost

5555

*firefox

localhost

5556

*firefox

localhost

5557

*firefox

localhost

5558

*firefox

 

三、与Grid不在同一台机器、不同操作系统、甚至不同浏览器下,运行Selenium Remote Control:

ant -Dport="5555" –Dhost=remote-control的IP地址

参数解释:  

 -Dport:Client的端口号  

 -Dhost:Client的hostname,如果没有可以用IP代替 

 -DhubURL:Hub控制台的URL

Denviroment参数,则在不同机上默认用*firefox执行用例。

 -DseleniumArgs:SeleniumRC启动的参数

  launch-remote-control:表示启动一个Client

 启动其它Client同理:参考上述参数,

注意:启动client后,再次查看http://localhost:4444/console ,发现Available Remote Controls列表出现刚启动的Client。

 

假设环境如下图:

 

 

python selenium执行后不关闭浏览器_自动化测试_04

 

  我们三台机器,一台机器hub.thoughtworks.com运行grid,其它两台rc1和rc2分别运行两个RC.则我们需要在启动RC时,使用下列命令指定相应的参数:
        ant -Dport=<port> -Dhost=<hostname> -DhubURL=<hub url> -Denvironment="Firefox on Windows" launch-remote-control
  其中,-Dport指定RC的端口号,-Dhost指定RC所在机器的Host名。-DhubURL指定Grid机器的URL,-Denvironment标示RC的浏览器和操作平台。

       

   具体可参考Grid控制台说明,也可以查看grid_configuration.yml配置文件。

python selenium执行后不关闭浏览器_Grid Hub_05


  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

这样,Selenium Hub会确保提供给测试案例使用的Remote-Control。需要注意的是,Remote Control的环境参数可以随意注册,即使FireFox浏览器工作在Linux下,你也可以向Hub注册,说它工作在OS X下。这就意味着Hub不会检验注册信息的正确性,你南大要自行保证这一点。

 可以在不同平台下执行测试案例,在一个新终端窗口中,执行命令:ant  run-demo-for-multiple-environments

 

四、Selenium Grid的一些缺点:

一些目前已知的会影响使用的问题(可以通过重启服务来解决)。 

Hub监控页面不能快速地更新链接到它上面的Client资源

如果Selenium脚本运行被意外终止,或者remote-control被关闭,Client资源不会被释放。