watir中测试用例集的执行

上一篇 / 下一篇  2010-12-21 13:43:25 / 个人分类:ruby+watir

运用Ruby单元测试框架来管理和调用测试用例

Ruby提供了完善的单元测试框架。在Watir程序开发中,测试人员可以通过继承该框架,很方便地编写自动测试用例以及测试用例集(TestSuites)。以下是一些在Watir程序开发过程中常用到的类和模块

  • Test::Unit::TestCase定义了测试用例类,它包括两个非常有用的公共方法:setup(), teardown(),它们分别会在每个测试用例启动前和运行后被调用。所以Setup()通常用于准备测试环境和测试数据,如打开IE窗口,登录应用,打开数据文件之类操作;而teardown()则用于释放资源和还原测试环境,如关闭IE窗口,退出应用等。除此之外,用户可自定义其他测试用例方法,只要方法名遵守一定的命名规则,即以“ test_ ”为前缀,在程序运行时测试用例就会按照方法名的字母排列顺序被自动调用。比如在下面的样例代码中,方法被调用的顺序为:

    12.方法被调用的顺序
    方法被调用的顺序



    清单2.测试用例调用

require 'Watir'                                      #引入Watir

 require 'test/unit'                              #引入Test::Unit

 class TC_MyTest1 < Test::Unit::TestCase        #继承类Test::Unit::TestCase

 include Watir::Exception

 include Watir::ScreenCapture

 def setup

     getEnvInfor ( ‘ Env1 ’ )                     #获取环境信息

     if ! defined? $logger                    #初始化日志

              $logger = LoggerFactory.start_xml_logger(FILE_PREFIX)

              end

                      if !defined? $screen                     #初始化截屏对象

              $screen = Watir::ScreenCapture.new

              end

                              if!defined?$browser                #初始化IE浏览器

  $browser = Watir::IE.attach(:url, "https://localhost:9043/ibm/console")

              end

              login($USERNAME, $PASSW0RD)                   #登录应用

 end

 

 def teardown

   logout()                                     #退出应用

   $browser.close if defined? $browser            #关闭IE浏览器

 enddef test_testcase1#测试用例1

 $logger.log( “ Test Case 1 ” )

 $browser.button(:type, ‘ submit ’ ).click

     ...

 enddef test_testcase2#测试用例2

 $logger.log( “ Test Case 2 ” )

 $browser.inputfield(:id, ‘ j_username ’ ).click

 ...

 end

 

 end

  • Test::Unit::TestSuite为测试用例集,用户可以将逻辑相近的测试用例添加到某测试用例集中,当运行该集合时,其中的每个测试用例会被按序调用。

 

 

$:.unshift File.join(File.dirname(__FILE__),'../','testcase')  加载测试用例的路径

require 'test/unit/testsuite'

 require 'TC_MyTest1'

 require 'TC_MyTest2'

 require 'TC_MyTest3'

 

 class TS_MyTests

 def self.suite

   suite = Test::Unit::TestSuite.new          #创建一个测试用例集实例

 

   suite << TC_MyTest1.suite                      TC_MyTest1加入测试用例集

 

   suite << TC_MyTest2.suite                      

   suite <<TC_MyTest3.suite   

   return suite

  end

 end

 

写入run.rb执行即可。


TAG:

 

评分:0

我来说两句

Open Toolbar