Ruby Watir提供WEB對象支持
Ruby Watir是一款基于Ruby語言的自動化測試框架,這款框架的功能也是異常強大的,它可以靈活方便的幫助我們完成各種需求。#t#
Watir是基于Ruby這種面向?qū)ο蟮哪_本語言的,它用的是一種純粹的編程語言,并且它是一個開源的產(chǎn)品,同時它還允許對網(wǎng)頁 上的對象的直接操作,例如html和JavaScript 。不過Watir僅僅是對IE進行控制的,如果想要操控其他的瀏覽器例如Firefox或Safari就需要安裝相應(yīng)的Watir庫,參考這里。總之,Watir是一個面向瀏覽器來開發(fā)和運行的一個自動化測試工具。
Ruby簡介
ruby 是一種完全的面向?qū)ο蟮恼Z言,語法簡單,是解釋執(zhí)行的腳本語言,代碼的可讀性高,號稱“最接近自然語言的編程語言”。Ruby語言起源于日本,它的研發(fā)者是日本人松本行弘(Matsumoto Yukihiro)。松本行弘在1993年開始著手Ruby語言的研發(fā)工作,他開發(fā)Ruby語言的初衷是為了提高編程的效率。ruby語言的一些特點包括(1)動態(tài)載入??梢栽谶\行時候重定義自己,類也可以在運行時繼承或取消繼承。 (2)自動內(nèi)存管理機制。 (3)多精度整數(shù)。 (4)迭代器和閉包。 (5)開源項目。有大量活躍的社區(qū)支持Ruby語言。
構(gòu)建環(huán)境
因為Ruby Watir是由Ruby實現(xiàn)的,所需要的腳本也是Ruby的腳本,所以你需要在本機先安裝Ruby。安裝在Windows上面的Ruby可以點擊這里下載,我安裝的是1.8.6版本的,也就是***版的。當(dāng)你完成Ruby的安裝后,打開命令行窗口,輸入gem install watir 就會將watir安裝到相應(yīng)的文件夾下面,這個命令是將整個watir及相關(guān)的一些文檔和文件一起安裝,如果只想安裝某個特定的gem的話,后面可以加上參數(shù)- -ignore-dependencies 。這樣開發(fā)環(huán)境就很簡單的搭建完成。
腳本示例
下面是我寫的一個應(yīng)用watir對passport測試站點自動注冊郵箱的一個例子,在搭建完環(huán)境以后你可以將下面的代碼拷貝到Ruby自帶的解釋器SciTE中保存為test_passport.rb, 只要是后綴名為.rb就可以,然后點F5運行調(diào)試就能看到結(jié)果。下面的代碼只是實現(xiàn)了最基礎(chǔ)的一些功能,主要是通過這個例子能夠?qū)uby Watir有個直觀的認(rèn)識。
- require 'watir'
- include Watir
- #生成一個隨機的郵件地址
- @mail_address=Array.new(3){(rand
(122-97)+97).chr}.join+Array.new(6)
{(rand{10}*10).to_i.abs}.join+"@easi.com"- #密碼這一塊為了方便管理可以寫死一個好
記得密碼,例如‘123456‘- @mail_pwd="123456"
- ie=IE.new
- #passport測試站點
- ie.goto ('accountservices.
passport-int.net/reg.srf?')- #選中radio button
- ie.radio(:name,"HasEmail").set
- #點擊continue按鈕
- ie.button(:name, “Continue").click
- ie=IE.attach(:title, “Sign Up")
- #在text field中填寫所需要的信息
- ie.text_field(:name,"p4181")
.set(@mail_address)- puts 'Email address: '+@mail_address
- ie.text_field(:name,"p3e8").set(@mail_pwd)
- puts 'Password: '+@mail_pwd
- ie.text_field(:name,"p10000000").set(@mail_pwd)
- #在下拉列表中選中需要的選項
- ie.select_list(:name,"p200000000000bb8")
.select("Mother's birthplace")- ie.text_field(:name,"p200000000000bb9"
).set("11111")- ie.text_field(:name,"p10000002").set("0")
- ie.button(:name,” Continue").click
- ie.text_field(:name,"p1000000e").set
(@mail_address)- ie.button(:name, “Continue").click
- ie.button(:name,” Continue").click
- ie=IE.attach(:title, “Account Services")
- ie.goto ("http://login.live-int
.com/logout.srf?")- ie.close
上面這段腳本主要做的事情就是通過‘goto‘語句來到一個測試passport的注冊站點,然后通過查找指定頁面元素的填上所需要的信息例如用戶名,密碼等,在通過點擊幾次確定以后,就完成注冊,其間用puts語句在屏幕上打印注冊完成所用的用戶名和密碼。腳本中#后面的綠色語句都是注釋。通過這個例子可以很直觀的看到Ruby Watirr用來做web測試的易用性,而且語句非常接近自然語言,十分容易上手。
對象的識別、操作和自動驗證
Ruby Watir提供了對多種常見 Web 對象的識別和操作的支持,例如 Hyperlinks 的點擊、Checkboxes 的選中和清除、Radio Buttons 的選中和清除、下拉框和列表框的選擇、文本框的輸入、各種按鈕的點擊以及 Frame 的訪問、彈出窗口的控制等。當(dāng)然,既然可以識別和操作這些對象,也可以訪問這些對象,使測試結(jié)果的驗證自動化。具體信息可以參見 Watir 用戶手冊。
知識背景
編寫Ruby Watir腳本時為了確定頁面上的元素,需要察看網(wǎng)頁的源文件,所以在編寫watir自動化測試腳本僅僅需要了解HTML的基礎(chǔ)知識和基本編程基礎(chǔ)。為了方便查找和定義頁面元素可以安裝IE Developer Toolbar, 這個工具可以幫你輕松定位網(wǎng)頁上的每個元素。下載地址可以從微軟網(wǎng)站上去找。