天天看點

使用Coded UI進行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就會被打開,同時visual studio視窗被最小化。這意味着我們已經為記錄操作做好了準備。

  正如之前描述的,coded ui test builder基于下列4個操作來做記錄

  record steps

  update or delete steps

  verify results (add assertions)

  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不會讓你失望。