Ruby+Watir搭建自動(dòng)化測試框架
首先下載Ruby安裝包,關(guān)于windows下面的安裝包是以exe格式的在官網(wǎng)有下載,這里我就不多說(shuō)了,版本是1.8.6的吧,好像現在已經(jīng)由1.9版本的,安裝步驟很簡(jiǎn)單,這里就略了;接下來(lái)就是安裝watir,
訪(fǎng)問(wèn)Watir官方網(wǎng)站:
http://wtr.rubyforge.org/install.html
按照網(wǎng)站上的描述進(jìn)行如下操作:
1. 必須先完成Ruby的安裝;
2. 打開(kāi)“運行”,輸入cmd進(jìn)入控制臺;
輸入下面代碼;
gem update --system
gem install watir
gem install firewatir
以上過(guò)程中安裝watir是通過(guò)網(wǎng)絡(luò )安裝,為什么會(huì )推薦大家網(wǎng)絡(luò )安裝恩,主要是方便,其實(shí)也可以下載watir安裝包.所以必須保證網(wǎng)絡(luò )通暢,如果選擇下載安裝,只要保證ruby\rubygems和watir包是最新就可以了,因為大多情況下出現安裝不成功的原因都是因為在windows下出現版本不一致的問(wèn)題,所以這里提一下,安裝完就可以測試哈,這里我推薦一個(gè)比較簡(jiǎn)單的的工具SciTE,這個(gè)工具你用過(guò)就知道很棒的,他里面嵌入了N多種語(yǔ)言的編譯和運行環(huán)境,而且比較小,值得一用的.
在安裝完之后,可以在SciTE工具下新建一個(gè)helloworld.rb文件,內容請輸入:puts "hello world!" ,然后保存,很簡(jiǎn)單的一個(gè)腳本就可以測試ruby是否安裝成功,不過(guò)一定主要ruby的腳本后綴是rb,所以保存時(shí)要以rb為后綴.這個(gè)時(shí)候我們可以直接按鍵盤(pán)上的F5來(lái)運行ruby腳本,發(fā)現在右邊的輸出欄上顯示hello world! ,這樣就說(shuō)明ruby安裝是成功的,但是并不證明watir是搭建成功的,所以還需要驗證waitr,對于waitr的具體功能我們在下節會(huì )詳細介紹的.
接下來(lái)我們新建一個(gè)腳本為a.rb:
require ‘rubygems'
require ‘watir’ # the watir controller
# open the IE browser
ie = Watir::IE.new
# Step 1: go to the test site: http://www.google.com
ie.goto (http://www.google.com)
# Step 2: enter ‘pickaxe’ in the search text field
ie.text_field(:name, “q”).set(”pickaxe”) # q is the name of the search field
# Step 3: click the ‘Google Search’ button
ie.button(:name, “btnG”).click # “btnG” is the name of the Search button
# Actual Result: Check that the ‘Programming Ruby’ link appears on the results page
if ie.contains_text(”Ruby”)
puts “Test Passed. Found the test string: ‘Programming Ruby’. Actual Results match Expected Results.”
else
puts “Test Failed! Could not find: ‘Ruby’”
end
# End of test: Google search
以上腳本主要是描述使用谷歌老做一個(gè)搜索"Ruby"字符的功能,如果程序運行成功,并跳出IE瀏覽器的操作流程,說(shuō)明Ruby+Watir的環(huán)境是搭建成功的.
注: 在網(wǎng)絡(luò )我發(fā)現大多數情況下,關(guān)于這個(gè)腳本的開(kāi)頭引入的庫我不是太理解,因為我這里加了一個(gè)個(gè)引入require ‘rubygems'的庫,因為通常不加入這個(gè)的話(huà),是運行不成功的,會(huì )提示我們的watir加載不成功的......
介紹ruby和waitr
Ruby的特性:
計算機編程語(yǔ)言的發(fā)展總是與飛速變化的世界息息相關(guān)的,Ruby是為了適應變化、提高和完善編程藝術(shù)而出現的。
l 完全開(kāi)源
l 多平臺 Ruby可以運行在 Linux, UNIX, Windows, MS-DOS, BeOS,OS/2…
l 多線(xiàn)程 線(xiàn)程就是指能在一個(gè)程序中處理若干控制流的功能。與 OS 提供的進(jìn)程不同的是,線(xiàn)程可以共享內存空間。
l 完全面向對象
l 不需要內存管理具有垃圾回收(Garbage Collect,GC)功能,能自動(dòng)回收不再使用的對象。
l 解釋執行 其程序無(wú)需編譯即可輕松執行。
l 功能強大的字符串操作/正則表達式
l 具有異常處理功能
l 可以直接訪(fǎng)問(wèn)OS Ruby可以使用(UNIX的)絕大部分的系統調用。單獨使用Ruby也可以進(jìn)行系統編程。
l 動(dòng)態(tài)類(lèi)型語(yǔ)言Ruby的變量沒(méi)有類(lèi)型,因此不必為類(lèi)型匹配而煩惱。
l 動(dòng)態(tài)語(yǔ)言 程序運行中,可以新加入屬性,行為,也可以重寫(xiě)方法。
l 支持操作符重寫(xiě)
l 支持無(wú)限精度的數字 例如計算400的階乘也輕而易舉。
l 豐富的庫函數
l 用模塊進(jìn)行混合插入(Mix-in) Ruby舍棄了多重繼承,但擁有混合插入功能。使用模塊來(lái)超越類(lèi)的界限來(lái)共享數據和方法等。
l 語(yǔ)法簡(jiǎn)單 它是腳本語(yǔ)言,沒(méi)有指針,學(xué)習曲線(xiàn)比較低。
總結來(lái)說(shuō)Ruby 吸取了 perl 的正則表達式, python 的簡(jiǎn)單性可讀性,smalltalk 的純面向對象語(yǔ)法和單繼承,LISP 的無(wú)窮嵌套的語(yǔ)法,Java的線(xiàn)程…
介紹Watir
Watir封裝了對web頁(yè)面元素識別的機制,測試者可以利用Ruby在這個(gè)框架下根據對象的屬性識別,而后寫(xiě)ruby代碼控制測試邏輯,加入檢查點(diǎn)等等以達到自動(dòng)化測試目的, 并且有可以隨意自由定制框架和測試邏輯的優(yōu)點(diǎn)。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/