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: