您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Watir
10分鐘學會自動化測試框架--Cucumber + Watir
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2014/3/26 13:05:08 ] 推薦標簽:Watir 測試框架 自動化

估計你早已厭煩了成百上千遍的網(wǎng)頁點擊測試,至少之前的我是這樣的,那么,讓自己的web測試自動化吧,本文使用Cucumber + Watir來完成自動化測試,從簡單例子入手,一步一步重構(gòu)成一個完整的自動化測試框架。

 

(一)Cucumber和Watir的關(guān)系

    Cucumber和Watir可以沒有任何關(guān)系,Cucumber只是一個BDD框架,而Watir只是一個Web Driver而已,兩者的共同點是均屬于Ruby世界。

 

(二)單獨使用Cucumber

    關(guān)于Cucumber的執(zhí)行過程請參考另一篇文章:行為驅(qū)動開發(fā): Cucumber的目錄結(jié)構(gòu)和執(zhí)行過程。

    由于Cucumber和Watir沒有必然聯(lián)系,因此兩者均可單獨使用,下面讓我們用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'

復制代碼

    對應(yīng)的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行完成兩個數(shù)相加(3+5),第13行為測試斷言。運行cucumber命令,輸出結(jié)果如下:
復制代碼

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下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd