使用 Coded UI 進行 UI 的自動化測試

jopen 10年前發布 | 23K 次閱讀 Coded UI 測試工具

介紹

曾經有一段時間,人們習慣于在MS Excel里面編寫單元測試用例,然后開發人員就按照單元測試用例一步一步的來實現用例。這通常是很耗時的漫長的過程,尤其是如果應用很大或者UI很復雜的話。

這一套單元測試的執行過程常常成為瓶頸,因為任何代碼修改都會帶來手工執行大量單元測試,以確保新的修改沒有破壞原有功能。

如今是個快節奏時代,人們希望工作能夠無需人工介入、自動化的快速完成。每個人都喜歡執行一個命令就能把工作搞定,而且在執行期間不需要人工介入。需要做的僅僅是檢查一下最終的輸出結果。

當這個世界正在邁向自動化時,自動化測試也不甘落后,不論是在功能測試方面還是UI測試方面。每天我們都能聽說自動化測試方面涌現出的新軟件。

本文提供了一些信息給那些想用Coded UI自動測試框架來進行應用界面自動化的.Net開發者。

什么是Coded UI?

最近我一直在尋找一個自動化的用戶接口測試的解決方案。用戶接口測試需要用戶多次進行手工輸入操作,這是一個既枯燥又費時的過程。因此,我想尋找一種更智能的自動化UI測試的方案,這種UI測試在不需要人工干預下,能夠被保存,記錄并提供支持 ,快速測試代碼的改變。

Coded UI 采用用戶接口來驅動應用的進行自動化測試。這些測試包括UI控制的功能性測試。他們使你可以驗證整個應用的功能是否正確,其中包括了用戶接口。Coded UI尤其適合用于用戶接口中存在校驗或者其它的登錄方式的測試,比如網頁。Coded UI也可以用于人工測試用例的自動化。

Coded UI 測試幫助用戶測試應用程序的用戶接口。這些測試允許用戶驗證應用程序的功能。Coded UI 多數時間用于幫助驗證在UI層本身的有效邏輯。它能夠驗證值對用戶接口的控制的正確性。

其它方案

市場有許多自動化用戶接口的方案,比如HP的QuickTest Professional, IBM Rational Functional Tester. 其它著名的,易于使用的開源工具解決用戶接口自動化問題的有Selenium,也能夠記錄測試,需要的時候回放。市場上還有來自Microsoft的也能不需要太多努力做同樣的事。用Visual Studio Microsoft還有Coded UI的方案用于單元測試。

Coded UI適合在哪兒用?

大多數安裝了Visual Studio的開發者都喜歡在Visual Studio的環境里進行單元測試,而不是使用第三方工具。由微軟提供的Coded UI,在Visual Studio環境里可謂上手即用。在開發者的機器上無需另外安裝任何東西。一旦你安裝了Visual Studio的Premium版或者Ultimate版,你就同時也安裝好了Coded UI。

Coded UI可用性

為了使用Coded UI,需要安裝Visual Studio 2010/2012/2013的Premium版或者Ultimate版。

Coded UI 測試的組成

Coded UI 測試的組成容易理解。它可分成下列文件:

UIMap.uitest

這個文件是UIMap類的XML表示。UIMap類包括視窗,控件,屬性,方法,斷言和動作。

UIMap.cs

對UIMap的自定義部分都存在這文件里。如果修改直接存在UIMap.designer.vb文件的話,那些修改都會在記錄結束后丟失,因為這個文件重新創建了。

給每個在測應用程序中的每個模塊創建一個獨立的UIMap文件。

UIMap.Designer.cs

這是部分類表達各種類。這各種類是給多樣的控件和他們的范圍,屬性,方法的類。

提示:不要直接修改 UIMap.Designer.cs。加入你這樣做,這個修改會被覆蓋掉。

CodedUITest.cs

這類表示的實際的CodeUI測試類,方法調用,和斷言調用,所有的方法和斷言默認都是從UIMap.Designer.cs文件調用的。這類有具有【codedUITest]屬性TestClass和包含具有【TestMethod]屬性的多種方法。

Coded UI的特性/好處

  • 進行用戶界面測試的同時進行校驗.

  • 生成VB.Net/C#代碼.

  • 測試用例可以被記錄和重放.

  • 集成了ALM Story

    • 能夠作為每日構建的一部分來運行.

  • 根據需要進行高級擴展.

  • 和Visual Studio集成在一起,所以無需單獨購買許可.

  • Coded UI對Web和Windows應用同樣適用.

  • 著名的Microsoft支持.

創建Coded UI測試

Coded UI測試可以用下列方式創建

  • 使用MTM進行快速自動構建

  • 從現有的記錄(從手動測試中記錄下來的操作)中創建Coded UI

  • 在Coded UI Test Builder創建的底稿的基礎上創建一個新的Coded UI測試.

  • 自己寫Coded UI.

這個白皮書的范圍僅限于“在Coded UI Test Builder創建的底稿之上創建一個新的Coded UI測試”。

小貼士: 盡量使用Coded UI Test Builder。

Coded UI Test Builder

每一個Coded UI測試的生成都需要遵從下列步驟.

  • 記錄/停止/暫停

  • 編輯記錄下來的步驟

  • 添加斷言

  • 生成代碼

創建Coded UI 測試

創建新的Coded UI 項目

要開始使用Coded UI,首先我們需要創建一個測試項目,用來保存所有Coded UI測試。創建一個新的Coded UI項目包含下列步驟

  • 打開Visual Studio 2012

  • 選擇 File > New > Project

  • 選擇需要的語言模板 (C# or VB.Net). 我們選擇了C#.

  • 選擇Coded UI Project

  • 輸入一個名字

  • 點擊 OK 按鈕

添加 Coded UI 測試

Visual Studio默認配置為創建Coded UI 測試使用 "Generate a new Coded UI Test from scratch using Coded UI Test Builder"

提示在測試的應用程序中,當你創建UI控件時盡量使用有意義的名稱,從而對于自動生成的控件顯得更加有意義和可用。

一旦 Coded UI 測試工程創建完成,將會自動打開生成Coded UI 測試代碼的對話框,請給出以下選項的設置。

  • 記錄操作,編輯UI地圖或添加斷言

  • 使用一個已經存在的操作記錄

默認情況下 選擇記錄操作,編輯UI地圖或添加斷言,無需做任何操作,然后點擊 "ok"

Coded UI Test Builder

選擇了上述選項后,Coded UI Test Builder就會被打開,同時Visual Studio窗口被最小化。這意味著我們已經為記錄操作做好了準備。

正如之前描述的,Coded UI Test Builder基于下列4個操作來做記錄

  1. Record Steps

  2. Update or Delete Steps

  3. Verify Results (Add Assertions)

  4. Generate Code

小貼士: 如果用戶界面(UI)變化了,就重新記錄測試方法或斷言方法,或者重新記錄一個既有測試方法中受影響的部分。

記錄一個序列的操作.

記錄一個操作主要需要下列幾步.

  • Start Recording, 通過選擇Record按鈕即可.

  • Pause Recording, 用來處理記錄過程中的其它操作,即Generate Code.

  • Edit/Delete 操作, 以防錯誤的操作被記錄。

  • Generate code為記錄下來的操作創建編號。會給每一個記錄下來的操作都生成編號。

  • Add Assertions 用來校驗結果。

小貼士: 創建斷言最好使用Coded UI Test Builder,因為它會在UIMap.Designer.cs文件中自動添加一個斷言方法。

為記錄動作做計劃

任何事情的成功都取決于它計劃得有多好。較好地計劃最大限度保證了任務成功完成。這樣總是比較好,在開始記錄動作之前,我們計劃好所有的所有要計劃的步驟。

這里我們將要使用應用程序Windows計算器來記錄步驟。我們要自動地加和減兩個數字。在記錄加和減兩個數字的時候,下面的步驟將會用到。

。點擊“開始記錄”控件

。到開始,點擊執行

。在執行窗口,輸入”calc"

。停止記錄,看記錄的步驟

。刪除錯誤的步驟(存在的話)

。產生代碼;提供和動作相匹配的名字。比如,打開計算器。

提示:當你產生一個方法時候,使用一個有意義的方法的名字,代替默認名字。

有意義的名字幫助識別方法的木的。

。重新記錄,提供第一個數字,暫停記錄產生代碼

。重新記錄,提供操作(加或者減),暫停記錄,產生代碼

。重新記錄,提供第二個數字,暫停記錄,產生代碼。

。加斷言

提示: 產生你的測試作為一系列記錄的方法

提示: 可以的時候,限制每個方法小于10個動作。這模塊化的方法讓UI改變時候容易替換方法。

結論

我們已經看到了Coded UI可以使開發者的生活變得多么輕松,尤其是遇到每次都需要進行很多輸入的復雜頁面的時候。這時,測試用例只需要被記錄一次,就可以按照需要執行任意多次。使用Coded UI比使用其它工具的好處是,它能自動適配Web頁面和Windows窗口應用。Coded UI測試可以用Visual Studio 2010來運行,也可以用任何版本的VS來運行,它們的功能正變得越來越強大。無需多說,Coded UI是一個由技術領導者提供的強大工具,想要體驗Coded UI測試的強大,我們應該開始在項目中使用它看看它能帶來多少ROI,我確信Coded UI不會讓你失望。

參考文章和延伸閱讀…

http://msdn.microsoft.com/en-us/library/dd286726.aspx

http://msdn.microsoft.com/en-us/library/dd286681(v=vs.100).aspx

http://msdn.microsoft.com/en-us/library/ee624082.aspx

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!