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

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

 

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

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

 

(二)單獨(dú)使用Cucumber

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

    由于Cucumber和Watir沒(méi)有必然聯(lián)系,因此兩者均可單獨(dú)使用,下面讓我們用Cucumber來(lái)寫一個(gè)非常簡(jiǎn)單的單元測(cè)試。 定義一個(gè)需要測(cè)試的Calculator類如下:

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

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

 

    用于測(cè)試Calculator類的add方法的feature文件如下:
復(fù)制代碼

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'

復(fù)制代碼

    對(duì)應(yīng)的step文件為:
復(fù)制代碼

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

復(fù)制代碼

    在以上的step文件中,第1,2行分別require了自定義的Calculator類和rspec(用于assertion,參考第13行的“should”), 第5行新建了一個(gè)@calculator實(shí)例變量,第9行完成兩個(gè)數(shù)相加(3+5),第13行為測(cè)試斷言。運(yùn)行cucumber命令,輸出結(jié)果如下:
復(fù)制代碼

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

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