Ruby+Watir搭建自動化測試框架
首先下載Ruby安裝包,關于windows下面的安裝包是以exe格式的在官網有下載,這里我就不多說了,版本是1.8.6的吧,好像現在已經由1.9版本的,安裝步驟很簡單,這里就略了;接下來就是安裝watir,
訪問Watir官方網站:
http://wtr.rubyforge.org/install.html
按照網站上的描述進行如下操作:
1. 必須先完成Ruby的安裝;
2. 打開“運行”,輸入cmd進入控制臺;
輸入下面代碼;
gem update --system
gem install watir
gem install firewatir
以上過程中安裝watir是通過網絡安裝,為什么會推薦大家網絡安裝恩,主要是方便,其實也可以下載watir安裝包.所以必須保證網絡通暢,如果選擇下載安裝,只要保證ruby\rubygems和watir包是最新就可以了,因為大多情況下出現安裝不成功的原因都是因為在windows下出現版本不一致的問題,所以這里提一下,安裝完就可以測試哈,這里我推薦一個比較簡單的的工具SciTE,這個工具你用過就知道很棒的,他里面嵌入了N多種語言的編譯和運行環境,而且比較小,值得一用的.
在安裝完之后,可以在SciTE工具下新建一個helloworld.rb文件,內容請輸入:puts "hello world!" ,然后保存,很簡單的一個腳本就可以測試ruby是否安裝成功,不過一定主要ruby的腳本后綴是rb,所以保存時要以rb為后綴.這個時候我們可以直接按鍵盤上的F5來運行ruby腳本,發現在右邊的輸出欄上顯示hello world! ,這樣就說明ruby安裝是成功的,但是并不證明watir是搭建成功的,所以還需要驗證waitr,對于waitr的具體功能我們在下節會詳細介紹的.
接下來我們新建一個腳本為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
以上腳本主要是描述使用谷歌老做一個搜索"Ruby"字符的功能,如果程序運行成功,并跳出IE瀏覽器的操作流程,說明Ruby+Watir的環境是搭建成功的.
注: 在網絡我發現大多數情況下,關于這個腳本的開頭引入的庫我不是太理解,因為我這里加了一個個引入require ‘rubygems'的庫,因為通常不加入這個的話,是運行不成功的,會提示我們的watir加載不成功的......
介紹ruby和waitr
Ruby的特性:
計算機編程語言的發展總是與飛速變化的世界息息相關的,Ruby是為了適應變化、提高和完善編程藝術而出現的。
l 完全開源
l 多平臺 Ruby可以運行在 Linux, UNIX, Windows, MS-DOS, BeOS,OS/2…
l 多線程 線程就是指能在一個程序中處理若干控制流的功能。與 OS 提供的進程不同的是,線程可以共享內存空間。
l 完全面向對象
l 不需要內存管理具有垃圾回收(Garbage Collect,GC)功能,能自動回收不再使用的對象。
l 解釋執行 其程序無需編譯即可輕松執行。
l 功能強大的字符串操作/正則表達式
l 具有異常處理功能
l 可以直接訪問OS Ruby可以使用(UNIX的)絕大部分的系統調用。單獨使用Ruby也可以進行系統編程。
l 動態類型語言Ruby的變量沒有類型,因此不必為類型匹配而煩惱。
l 動態語言 程序運行中,可以新加入屬性,行為,也可以重寫方法。
l 支持操作符重寫
l 支持無限精度的數字 例如計算400的階乘也輕而易舉。
l 豐富的庫函數
l 用模塊進行混合插入(Mix-in) Ruby舍棄了多重繼承,但擁有混合插入功能。使用模塊來超越類的界限來共享數據和方法等。
l 語法簡單 它是腳本語言,沒有指針,學習曲線比較低。
總結來說Ruby 吸取了 perl 的正則表達式, python 的簡單性可讀性,smalltalk 的純面向對象語法和單繼承,LISP 的無窮嵌套的語法,Java的線程…
介紹Watir
Watir封裝了對web頁面元素識別的機制,測試者可以利用Ruby在這個框架下根據對象的屬性識別,而后寫ruby代碼控制測試邏輯,加入檢查點等等以達到自動化測試目的, 并且有可以隨意自由定制框架和測試邏輯的優點。
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/