您的位置:软件测试 > 开源软件测试 > 开源功能测试工具 > Watir
10分钟学会自动化测试框架--Cucumber + Watir
作者:网络转载 发布时间:[ 2014/3/26 13:05:08 ] 推荐标签:Watir 测试框架 自动化

估计你早已厌烦了成百上千遍的网页点击测试,至少之前的我是这样的,那么,让自己的web测试自动化吧,本文使用Cucumber + Watir来完成自动化测试,从简单例子入手,一步一步重构成一个完整的自动化测试框架。

 

(一)Cucumber和Watir的关系

    Cucumber和Watir可以没有任何关系,Cucumber只是一个BDD框架,而Watir只是一个Web Driver而已,两者的共同点是均属于Ruby世界。

 

(二)单独使用Cucumber

    关于Cucumber的执行过程请参考另一篇文章:行为驱动开发: Cucumber的目录结构和执行过程。

    由于Cucumber和Watir没有必然联系,因此两者均可单独使用,下面让我们用Cucumber来写一个非常简单的单元测试。 定义一个需要测试的Calculator类如下:

1classCalculator
2def add num1, num2
3num1+num2
4end
5end

1classCalculator
2def add num1, num2
3num1+num2
4end
5end

 

    用于测试Calculator类的add方法的feature文件如下:
复制代码

1Feature: Unit testforCalculator
2
3Scenario: Add two numbers
4Given I have a calculator created
5WhenI add '3' and '5'
6ThenI should get the result of '8'

复制代码

    对应的step文件为:
复制代码

1require File.join(File.dirname(__FILE__), "../calculator")
2require 'rspec'
3
4Given /^I have a calculator created$/do
5@calculator = Calculator.new
6end
7
8When/^I add '([^"]*)' and '([^"]*)'$/do|num1, num2|
9@result = @calculator.add(num1.to_i, num2.to_i)
10end
11
12Then/^I should get the result of '([^"]*)'$/ do |expected_result|
13@result.should == expected_result.to_i
14end

复制代码

    在以上的step文件中,第1,2行分别require了自定义的Calculator类和rspec(用于assertion,参考第13行的“should”), 第5行新建了一个@calculator实例变量,第9行完成两个数相加(3+5),第13行为测试断言。运行cucumber命令,输出结果如下:
复制代码

1Feature: Unit testforCalculator
2
3Scenario: Add two numbers             # features/Calculator.feature:4
4Given I have a calculator created   # features/step_definitions/calculator_step.rb:4
5WhenI add '3' and '5'              # features/step_definitions/calculator_step.rb:8
6ThenI should get the result of '8' # features/step_definitions/calculator_step.rb:12
7
81 scenario (1 passed)
93 steps (3 passed)
100m0.002s

上一页1234下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd