自動化測試是把以人為驅(qū)動的測試行為轉(zhuǎn)化為機器執(zhí)行的一種過程。通常,在設計了測試用例并通過評審之后,由測試人員根據(jù)測試用例中描述的規(guī)程一步步執(zhí)行測試,得到實際結(jié)果與期望結(jié)果的比較。在此過程中,為了節(jié)省人力、時間或硬件資源,提高測試效率,便引入了自動化測試的概念。
Watir 是一個使用 Ruby 實現(xiàn)的開源Web 自動化測試框架,相對于那些龐大的商業(yè)工具來說,它很小巧,也很靈活,提供的功能也足夠用。近抽時間試用了一下,感覺還不錯,準備下一步在公司推廣使用。因為 Watir 的網(wǎng)站上用戶手冊、示例代碼以及 FAQ 都維護的不錯,所以已有的東西我不重復了,在這里簡單介紹一下,如果同行們有興趣,可以一起研究一下。
Watir 是一個使用 Ruby 實現(xiàn)的開源Web 自動化測試框架,相對于那些龐大的商業(yè)工具來說,它很小巧,也很靈活,提供的功能也足夠用。近抽時間試用了一下,感覺還不錯,準備下一步在公司推廣使用。
因為 Watir 的網(wǎng)站上用戶手冊、示例代碼以及 FAQ 都維護的不錯,所以已有的東西我不重復了,在這里簡單介紹一下,如果同行們有興趣,可以一起研究一下。
1. 腳本示例
先丟一段腳本給大家看看使用 Watir 來書寫腳本是多么的方便。下面的例子是 Watir 自帶的一段測試 Google 的搜索功能的腳本,不過我只保留了主要的部分,以使它看起來更簡潔一些:
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("Programming Ruby")
puts "Test Passed. Found the test string: 'Programming Ruby'. Actual Results match Expected Results."
else
puts "Test Failed! Could not find: 'Programming Ruby'"
end
# End of test: Google search
這段腳本要做的事情是打開 Google 的主頁,然后在 Google 的那個文本框內(nèi)輸入“pickaxe”這個字符串,然后按下“Google 搜索”按鈕,之后驗證搜索結(jié)果的頁面中是否包含了“Programming Ruby”這個字符串,并根據(jù)結(jié)果使用 puts 函數(shù)在屏幕上打印不同的信息。腳本中“#”后面的綠色部分是注釋的內(nèi)容。簡單嗎?說實話要比那些商業(yè)工具錄制的腳本還要簡潔和簡單。
2. 所需要的環(huán)境
Ruby : 因為是使用 Ruby 實現(xiàn)的,腳本也是 Ruby 的腳本,所以需要在本機安裝 Ruby?梢渣c擊這里下載。根據(jù)文檔中說的,好選擇Ruby 1.8.2-14 或者更高的版本,我安裝的是Ruby 1.8.2-15 Stable Release。
Watir : 可以點擊從這里下載,我下載的是 Watir 1.4 ,是一個.zip 文件,解壓縮以后執(zhí)行 install.rb 可以了,具體的安裝和配置請參見 Watir 用戶手冊。不要怕,雖然是英文的,但是很簡單。
WINDOWS 2000 或 XP + IE 5.5 以上版本 : 根據(jù) Watir 網(wǎng)站上的描述,這是他們目前支持的環(huán)境。
3. 所需的知識背景
因為畢竟還是要寫代碼的,所以開發(fā)經(jīng)驗是必需的,任何語言的開發(fā)經(jīng)驗都可以——雖然 Ruby 是一個面向?qū)ο蟮哪_本語言,不過你可以暫時不理它那么多(別被面向?qū)ο、腳本語言之類的詞匯嚇倒),如果你寫過 VBScript 或者其他什么代碼那么 Watir 是很簡單的。不過,需要了解 Web 開發(fā),比如 HTML 的基本語法,因為在開發(fā)腳本時需要根據(jù) Web 頁面的源代碼來確定對 Web 對象的識別方式——當然,也可以借助其他工具來實現(xiàn),例如 Mozilla Firefox 中提供的“DOM 查看器”(可以在 Mozilla Firefox“工具”菜單下找到,具體的使用方法參見 Mozilla Firefox 幫助)。
另外,測試和自動化測試方面的基本知識還是要有的。
4. 腳本的生成
錄制功能別想了,Watir 沒有提供這項功能。如果你非用錄制不可,那選擇其他吧。不過我自己的使用來看,Watir 的腳本寫起來比用 QTP 或者 Rational 的工具錄制還要方便和快捷。
5. 對象的識別、操作和自動驗證
Watir 提供了對多種常見 Web 對象的識別和操作的支持,例如 Hyperlinks 的點擊、Checkboxes 的選中和清除、Radio Buttons 的選中和清除、下拉框和列表框的選擇、文本框的輸入、各種按鈕的點擊以及 Frame 的訪問、彈出窗口的控制等。當然,既然可以識別和操作這些對象,也可以訪問這些對象,使測試結(jié)果的驗證自動化。具體信息可以參見 Watir 用戶手冊。
6. 其他特性
如果你熟悉了 Ruby ,再結(jié)合其他一些工具,可以在 Watir 框架的基礎上擴展出很多特性。例如:外部文件或的讀取、模塊化的開發(fā)、可重用的函數(shù)庫、數(shù)據(jù)驅(qū)動、關鍵字驅(qū)動、腳本的版本化控制以及測試結(jié)果的管理,等等。數(shù)據(jù)庫
7. 相關鏈接
Watir 主頁:http://wtr.rubyforge.org/
Ruby中文手冊:http://www.ruby-cn.org/doc.html
Ruby主頁:http://ruby-lang.org/en/
如前面所說的,Watir 的用戶手冊、FAQ等方面維護的很不錯,如果完整的看完 Watir 主頁上的 sample test 和 User’s Guide 基本上可以用 Watir 開始測試 Web 應用了。如果有興趣進一步研究,可以參考一下 Technical Doc ,也可以讀一下 Watir 自帶的幾個示例。