zoukankan      html  css  js  c++  java
  • selenium并行的使用

    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://seleniumhq.org/docs/05_selenium_rc.html#c
    http://code.google.com/p/design-of-selenium-tests-for-asp-net/
    http://blog.csdn.net/Evelyn_Guan/article/details/6338293
    http://www.seleniumwiki.com/software-testing/selenium-grid/installing-selenium-grid-with-mbunit-and-gallio/

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

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

        环境工具软件
        1. IE6
        2. Java SDK  (官网可能会有Oracle的协议需要同意)
           http://download.oracle.com/otn-pub/java/jdk/6u30-b12/jdk-6u30-windows-i586.exe
        3. Apache Ant
           http://apache.mirrors.hoobly.com//ant/binaries/apache-ant-1.8.2-bin.zip
        3. Selenium Grid
           http://release.seleniumhq.org/selenium-grid/selenium-grid-1.0.8-bin.zip
        4. Gallio
           http://mb-unit.googlecode.com/files/GallioBundle-3.3.458.0.zip
        由于有些地址可能会无法访问,我给出我的华为网盘的外链,不需要注册即可直接下载.
        http://dl.dbank.com/c0o3fmsxft
          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 FilesJavajdk1.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 Filesseleniumapache-ant-1.8.2in

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

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

        启动selenium grid hub
        在cmd下输入 cd D:Program Filesseleniumselenium-grid-1.0.8
        在cmd下输入 ant launch-hub
        这里会默认使用4444作为hub的端口,因此若要使用其它端口,需要带其它参数,可自已找些资料解决这个问题
        
        启动selenium remote control
        在cmd下输入 cd D:Program Filesseleniumselenium-grid-1.0.8
        在cmd下输入 ant launch-remote-control -Dhost=localhost -Dport=5555 -DhubURL="http://localhost:4444" -Denvironment="*iexplore" 
        
        打开IE,然后在地址栏输入http://localhost:4444/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] 

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

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

  • 相关阅读:
    Scrapy框架基础使用
    python爬虫练习--爬取今日头条街拍图片
    python爬虫练习--爬取所有微博
    python爬虫练习--爬取猫眼热映口碑榜
    python练习---校园管理系统
    python爬虫练习--爬取猫眼top100电影信息
    基础篇-Python的urllib库
    1--爬虫环境安装篇
    Confluence 如何查看页面 ID
    导入 Gradle 项目到 IntelliJ IDEA
  • 原文地址:https://www.cnblogs.com/wcLT/p/3425461.html
Copyright © 2011-2022 走看看