IronRuby – 編寫自動化測試指令碼

來源:互聯網
上載者:User
文章目錄
  • 運行環境
  • 找到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視窗輸出是亂碼,不知道有誰知道如何更改這個視窗的字元編碼?

注意的地方
  1. 檔案使用UTF-8或者UTF8 without BOM格式 
  2. 必須調用Playback.Initialize()
  3. 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

 歡迎轉載,轉載請註明:轉載自敏捷個人網站

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.