文章目錄
- 運行環境
- 找到CodedUI的自動化測試相關類庫
- 測試案例
- 編寫函數
- 完整代碼
- 運行測試案例
- 注意的地方
- 之前寫的IronRuby相關blog
在使用VS2010的CodedUI來做自己的自動化測試架構中我介紹過,我將使用IronRuby來編寫自動化測試指令碼,由於對IronRuby不熟悉,在開發中遇到過一些問題。我對這些問題之前也進行了blog分享,本篇我將給大家介紹一下如何使用IronRuby和CodedUI提高的自動化測試類別庫來編寫我們自己的自動化測試指令碼,後期會在OpenExpressApp主題中再介紹編寫OpenTest.UI的一些過程,感興趣的可以關注下。
運行環境
.Net Framework 4
找到CodedUI的自動化測試相關類庫
CodedUI自動化相關測試類別庫放置在 Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\ 檔案夾中,具體每個程式集的內容我並不是很清楚,有對微軟自動化測試架構感興趣的可以去看看下,我現在還用不到就不研究了:)
這裡假定我們放到目錄D:/GZJ/OpenExpressApp/Tool/OpenTest/dll
測試案例
這裡我們拿一個大家都知道的window內建的記事本來做測試,路徑為:C:/Windows/system32/calc.exe
編寫函數
由於尋找button等功能可以複用,編寫幾個函數:
def window(title)win = WinWindow.newwin.SearchProperties["Name"] = titlewinenddef button(parent, title)btn = WinButton.new(parent);btn.SearchProperties["Name"] = titlebtnend
完整代碼
$LOAD_PATH << 'D:/GZJ/OpenExpressApp/Tool/OpenTest/dll'require "Microsoft.VisualStudio.TestTools.UITest.Extension.dll"require "Microsoft.VisualStudio.TestTools.UITest.Extension.IE.dll"require "Microsoft.VisualStudio.TestTools.UITest.Extension.IE.Communication.Interop.dll"require "Microsoft.VisualStudio.TestTools.UITest.Extension.MSAA.dll"require "Microsoft.VisualStudio.TestTools.UITest.Extension.Uia.dll"require "Microsoft.VisualStudio.TestTools.UITest.Framework.dll"require "Microsoft.VisualStudio.TestTools.UITesting.dll"require "Microsoft.VisualStudio.TestTools.UITest.Playback.dll"require "Microsoft.VisualStudio.TestTools.UITesting.dll"include Microsoft::VisualStudio::TestTools::UITestinginclude Microsoft::VisualStudio::TestTools::UITesting::WinControlsdef window(title)win = WinWindow.newwin.SearchProperties["Name"] = titlewinenddef button(parent, title)btn = WinButton.new(parent);btn.SearchProperties["Name"] = titlebtnendPlayback.Initialize() #注意必須加這句,不然提示Playback的錯誤app = ApplicationUnderTest.Launch('C:/Windows/system32/calc.exe')calc_window = window("計算機")btn_1 = button(calc_window, "1")btn_2 = button(calc_window, "2")btn_add = button(calc_window, "+")btn_equal = button(calc_window, "=")btn_value = WinEdit.new(calc_window)Mouse.Click btn_1Mouse.Click btn_addMouse.Click btn_2Mouse.Click btn_equalputs "1+2=3:太高科技了,電腦算對了" if btn_value.Text.to_i == 3Keyboard.SendKeys("C");Keyboard.SendKeys("2");Keyboard.SendKeys("*");Keyboard.SendKeys("2");Keyboard.SendKeys(".");Keyboard.SendKeys("2");Keyboard.SendKeys("{ENTER}");puts "2*2.2=4.4:受不了了,連小數和乘法都會了" if btn_value.Text.to_f == 4.4app.closePlayback.Cleanup()運行測試案例
運行後你可以看到,代碼會把計算機開啟,然後根據指令碼編寫意圖點擊和按鍵,最終輸出結果。
在NetBeans下查看測試結果:
在Dos視窗輸出是亂碼,不知道有誰知道如何更改這個視窗的字元編碼?
注意的地方
- 檔案使用UTF-8或者UTF8 without BOM格式
- 必須調用Playback.Initialize()
- CodeUI的dll必須引用完整
之前寫的IronRuby相關blog
- IronRuby - 快速在半小時學習Ruby基礎知識
- IronRuby - 檔案編碼惹的禍
- IronRuby - 使用NetBeans編寫IronRuby代碼
- IronRuby - 怎麼就沒有好用的IDE呢??
- IronRuby - 如何在VS2010下調試IronRuby代碼
- 使用VS2010的CodedUI來做自己的自動化測試架構
以上代碼下載:http://files.cnblogs.com/zhoujg/TestCalc-Ruby.Net4.rar
推薦:你可能需要的線上電子書
敏捷個人sina微刊:http://kan.weibo.com/kan/3483302195814612
歡迎轉載,轉載請註明:轉載自敏捷個人網站