Chinaunix首页 | 论坛 | 博客
  • 博客访问: 311380
  • 博文数量: 163
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: -40
  • 用 户 组: 普通用户
  • 注册时间: 2017-03-08 00:28
文章分类

全部博文(163)

文章存档

2015年(2)

2014年(35)

2013年(28)

2012年(30)

2011年(22)

2010年(14)

2009年(8)

2008年(13)

2007年(11)

分类: 系统运维

2012-01-18 16:58:20

Selenium Grid Parallel Test(C#)

Author: Mars (hnynes)
Email:  hnynes@gmail.com
MSN:    hnynes@gmail.com

前段时间由于项目中用到了Selenium Grid Test,只是(parallel)并行测试却一直没有做成功.
昨天查了一个参数,感觉好像是并行了,但是testcase并未全部通过,感觉可能
还是不太对,今天又查了些资料,自己手写了一个,终于成功.

关键词: Selenium,Selenium Grid,Gallio,Parallel

参考链接:


http://blog.csdn.net/Evelyn_Guan/article/details/6338293


上面给出了主要参考链接,当然还有很多其它的参考资料,这几个是对最后成功测试有直接指导作用的文章,列于此,仅供参考了.

环境搭建
    本人使用的机器系统环境
    Windows XP Professional SP3

    环境工具软件
    1. IE6
    2. Java SDK  (官网可能会有Oracle的协议需要同意)
      
    3. Apache Ant
      
    3. Selenium Grid
      
    4. Gallio
      
    由于有些地址可能会无法访问,我给出我的华为网盘的外链,不需要注册即可直接下载.
   
      apache-ant-1.8.2-bin.zip
      selenium-grid-1.0.8-bin.zip
      jdk-6u30-windows-i586.exe
      GallioBundle-3.3.458.0-Setup-x86.msi
    

    Java环境
    jdk-6u30-windows-i586.exe
    安装的时候需要记住你安装的路径,因为还需要配置环境变量的
    比较旧的版本,还要求安装的路径不能含有空格
    配置java环境变量
    JAVA_HOME = D:\Program Files\Java\jdk1.6.0_30
    CLASSPATH = ;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar
    在环境变量PATH的值的最后加上 ;%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin

    Apache Ant
    解压Apache Ant到本地的任意路径,配置环境变量
    在环境变量PATH最后加上 ;D:\Program Files\selenium\apache-ant-1.8.2\bin

    然后重启计算机
    登录后,验证java与ant环境变量是否生效
    打开系统命令行cmd 输入 java -version
    回车后,系统会显示机器上安装的java的版本相关的信息,若没有,则可能是配置的路径不正确,
    请核对后,重新配置,并重启机器
    在cmd下输入 ant -version
    回车后会显示ant的版本相关信息.

    解压Selenium Grid到任意路径 如: D:\Program Files\selenium\selenium-grid-1.0.8
    编译Selenium
    在cmd下输入 cd D:\Program Files\selenium\selenium-grid-1.0.8
    在cmd下输入 ant sanity-check
    回车,最后若显示BUILD SUCCESSFUL,则Selenium Grid则配置成功

    启动selenium grid hub
    在cmd下输入 cd D:\Program Files\selenium\selenium-grid-1.0.8
    在cmd下输入 ant launch-hub
    这里会默认使用4444作为hub的端口,因此若要使用其它端口,需要带其它参数,可自已找些资料解决这个问题
    
    启动selenium remote control
    在cmd下输入 cd D:\Program Files\selenium\selenium-grid-1.0.8
    在cmd下输入 ant launch-remote-control -Dhost=localhost -Dport=5555 -DhubURL="" -Denvironment="*iexplore"
    
    打开IE,然后在地址栏输入/console
    若能看到已经打开的5555端口,至此,自动化测试环境的搭建就完成了.
    当testcase连接上selenium grid hub,发送请求时,hub会将请求分配给对应浏览器的remote control处理.
    
代码实例 C#
    在这个单元,提几个注意点,其它的看代码吧,我有给出我的代码工程链接,自己下载研究吧.
    引用Gallio,MbUnit
    代码中需要加using MbUnit.Framework;
    在AssemblyInfo.cs加上如下代码
    [assembly: DegreeOfParallelism(2)]
    [assembly: Parallelizable(TestScope.All)]
    若要单实例测试,则将上面的[assembly: DegreeOfParallelism(2)]改为[assembly: DegreeOfParallelism(1)]即可
    
    若要并行则[assembly: DegreeOfParallelism(2)] 括号中的数值表示用多少线程来执行请求,也就是我们的并行度
    只要数字大于1即可
    另外还需要在每个测试类的[TestFixture] 下面加上[Parallelizable]

    给出代码链接:
    由于本人不是做C#开发的,写得有些粗浅了,关键是要能用,能达到我们测试的目的.

Gallio驱动脚本
  在cmd下输入d:
    在cmd下输入cd D:\Program Files\Gallio\bin      (Gallio安装路径)
    在cmd下输入Gallio.Echo.exe /r:IsolatedProcess /rd:E:\wswork\code\vs2008\MyTest1\bin\Debug\reports E:\wswork\code\vs2008\MyTest1\bin\Debug\MyTest1.dll /rt:Html /rnf:FareRule-{0}-{1}
    
    现在还有一个遗留的问题:
    对于奇数个线程的情况,会出现有时使用偶数个,有时使用奇数个的现象
    
    另外若运行后有错误,当再次运行时,建议重启hub与remote control,防止出现其它不可预知的现象.

若您在使用上述方案时,有bug,欢迎指正.谢谢.  hnynes@gmail.com
阅读(2884) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~