路漫漫其修远兮,吾将上下而求索
watir的测试用例
上一篇 /
下一篇 2009-12-14 14:33:42
/ 个人分类:Ruby_Watir
I think this http://www.ibm.com/developerworks/cn/opensource/os-cn-watir/index.html is very useful link.
运用 Ruby 单元测试框架来管理和调用测试用例
Ruby 提供了完善的单元测试框架。在 Watir 程序开发中,测试人员可以通过继承该框架,很方便地编写自动测试用例以及测试用例集 (Test Suites) 。以下是一些在 Watir 程序开发过程中常用到的类和模块
- Test::Unit::Assertions,该模块提供了多种断言 (Assert) 方法,可用于测试结果的验证,如操作对象的状态的判定(如页面某对象是否存在,是否可用),或者消息显示是否与期望值匹配等
- assert($ie.area(:alt, 'Table Buttons').exists?)
- assert($ie.radio(:name, "box1").enabled?)
- assert_match(test.html/, browser.link(:class_name, 'test').href)
- assert_equal( ie.text_field(:id, "text2"), "Hello World" )
- 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 浏览器
end
def test_testcase1 # 测试用例 1
$logger.log( “ Test Case 1 ” )
$browser.button(:type, ‘ submit ’ ).click
...
end
def test_testcase2 # 测试用例 2
$logger.log( “ Test Case 2 ” )
$browser.inputfield(:id, ‘ j_username ’ ).click
...
end
end |
- Test::Unit::TestSuite 为测试用例集,用户可以将逻辑相近的测试用例添加到某测试用例集中,当运行该集合时,其中的每个测试用例会被按序调用。
require 'test/unit/testsuite'
require 'TC_MyTest1'
require 'TC_MyTest2'
class TS_MyTests
def self.suite
suite = Test::Unit::TestSuite.new # 创建一个测试用例集实例
suite << TC_MyTest1.suite # 将 TC_MyTest1 加入测试用例集
suite << TC_MyTest2.suite # 将 TC_MyTest2 加入测试用例集
...
return suite
end
end
Test::Unit::UI::Console::TestRunner.run(TS_MyTests) # 运行测试用例集 |
- Test::Unit::UI::Console::TestRunner 用于运行测试用例或测试用例集,
- Test::Unit::TestResult 用于结果报告,所提供的接口可用于统计测试用例中运行成功 , 失败 , 出错的个数。在 Eclipse 输出窗口的 Test::Unit 栏,我们可以看到测试用例的运行结果。
收藏
举报
TAG: