Watir - Ruby的開源Web自動化測試架構

來源:互聯網
上載者:User
Watir 是一個使用 Ruby 實現的開源Web 自動化測試架構,相對於那些龐大的商業工具來說,它很小巧,也很靈活,提供的功能也足夠用。最近抽時間試用了一下,感覺還不錯,準備下一步在公司推廣使用。因為 Watir 的網站上使用者手冊、範例程式碼以及 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 唯一的那個文字框內輸入“pickaxe”這個字串,然後按下“Google 搜尋”按鈕,之後驗證搜尋結果的頁面中是否包含了“Programming Ruby”這個字串,並根據結果使用 puts 函數在螢幕上列印不同的資訊。指令碼中“#”後面的綠色部分是注釋的內容。簡單嗎?說實話要比那些商業工具錄製的指令碼還要簡潔和簡單。 2.       所需要的環境Ruby : 因為是使用 Ruby 實現的,指令碼也是 Ruby 的指令碼,所以需要在本機安裝 Ruby。可以點擊這裡下載。根據文檔中說的,最好選擇Ruby 1.8.2-14 或者更高的版本,我安裝的是Ruby 1.8.2-15 Stable Release。Watir : 可以點擊從這裡下載,我下載的是 Watir 1.4 ,是一個.zip 檔案,解壓縮以後執行 install.rb 就可以了,具體的安裝和配置請參見 Watir 使用者手冊。不要怕,雖然是英文的,但是很簡單。WINDOWS 2000 或 XP + IE 5.5 以上版本 : 根據 Watir 網站上的描述,這是他們目前支援的環境。 3.       所需的知識背景因 為畢竟還是要寫代碼的,所以開發經驗是必需的,任何語言的開發經驗都可以——雖然 Ruby 是一個物件導向的指令碼語言,不過你可以暫時不理它那麼多(別被物件導向、指令碼語言之類的詞彙嚇倒),如果你寫過 VBScript 或者其他什麼代碼那麼 Watir 就是很簡單的。不過,需要瞭解 Web 開發,比如 HTML 的基本文法,因為在開發指令碼時需要根據 Web 頁面的原始碼來確定對 Web 對象的識別方式——當然,也可以藉助其他工具來實現,例如 Mozilla Firefox 中提供的“DOM 查看器”(可以在 Mozilla Firefox“工具”菜單下找到,具體的使用方法參見 Mozilla Firefox 協助)。另外,測試和自動化測試方面的基本知識還是要有的。 4.       指令碼的產生錄製功能就別想了,Watir 沒有提供這項功能。如果你非用錄製不可,那就選擇其他吧。不過就我自己的使用來看,Watir 的指令碼寫起來比用 QTP 或者 Rational 的工具錄製還要方便和快捷。 5.       對象的識別、操作和自動驗證Watir 提供了對多種常見 Web 對象的識別和操作的支援,例如 Hyperlinks 的點擊、Checkboxes 的選中和清除、Radio Buttons 的選中和清除、下拉框和列表框的選擇、文字框的輸入、各種按鈕的點擊以及 Frame 的訪問、快顯視窗的控制等。當然,既然可以識別和操作這些對象,也可以訪問這些對象,使測試結果的驗證自動化。具體資訊可以參見 Watir 使用者手冊。 6.       其他特性如果你熟悉了 Ruby ,再結合其他一些工具,可以在 Watir 架構的基礎上擴充出很多特性。例如:外部檔案或資料庫的讀取、模組化的開發、可重用的函數庫、資料驅動、關鍵字驅動、指令碼的版本化控制以及測試結果的管理,等等。 7.       相關連結Watir 首頁:http://wtr.rubyforge.org/Ruby中文手冊:http://www.ruby-cn.org/doc.htmlRuby首頁:http://ruby-lang.org/en/       就 如前面所說的,Watir 的使用者手冊、FAQ等方面維護的很不錯,如果完整的看完 Watir 首頁上的 sample test 和 User’s Guide 基本上就可以用 Watir 開始測試 Web 應用程式了。如果有興趣進一步研究,可以參考一下 Technical Doc ,也可以讀一下 Watir 內建的幾個樣本。當然,也可以在這裡留言或者email我,大家一起討論。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.