開發環境:
Widnows8
Microsoft Visual Studio Ultimate 2012
1. 新建一個 Windows Forms Application
Figue1 Create a new Windows Forms Application
2. 設計界面如(Figue2)所示
Figue2 Form UI
界面很簡單,含有兩個Label:
Label1.Text = “Username”;
Label2.Text = “Password”;
三個輸入框:
tbUsername,tbPassword,tbResult
一個按鈕:
btnLogin
添加代碼邏輯,實現用戶點擊Login按鈕時,把用戶輸入的用戶名,密碼輸出到tbResult里:
private void btnLogin_Click(object sender, EventArgs e)
{
tbResult.Text = "Username is "+tbUsername.Text + Environment.NewLine + "Password is "+tbPassword.Text;
}
上述步驟完成后,編譯剛新建的這個項目,找到Bin目錄,把生成的.EXE文件發送快捷方式到桌面,方便后邊使用.
3.添加CodeUI測試項目
Figue3 Add new Project
4.步驟三點擊OK后彈出如下窗口
Figue4 Generate Code for Coded UI Test
5. 保持默認,直接點擊OK按鈕
Figue5 UIMap - Coded UI Test Builder
如上圖所示,共顯示四個按鈕,依次分別表示:
開始錄制Start Recoding(Alt + R),
顯示錄制的步驟Show Recorded Steps(Alt + S),
添加斷言Add Assertion(Alt + U),
生成代碼Generate Code(Alt + G)
6.點擊錄制,開始錄制
點擊錄制按鈕后開始錄制,
打開桌面上的應用程序(第一步,第二步創建的簡單的WinForm應用程序),
然后在tbUsername框中輸入"Username",
按下Tab鍵,繼續在tbPassword文本框中輸入Password
鼠標點擊Login按鈕,如圖6所示
Figue6 typing when Recording
上述步驟中包括鼠標事件,鍵盤事件均被錄制成了一個一個的步驟Step,你可以點擊"顯示錄制的步驟"按鈕查看錄制了哪些步驟
Figue7 Recorded Steps
上述Steps列表中的條目可以右鍵進行刪除,比如Click ‘Minimize’ button這個是我最小化當前Windows Live Writer窗口時錄制下來的,這個其實不必要的
7.結束錄制直接點擊*生成代碼*按鈕即可,在隨后彈出來的提示框中輸入方法名稱,如圖8所示
Figue8 Generate Code
點擊"Add and Generate"按鈕后,VS自動生成如下單元測試代碼:
[TestMethod]
public void CodedUITestMethod1()
{
// To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items.
// For more information on generated code, see http://go.microsoft.com/fwlink/?LinkId=179463
this.UIMap.RecordedMethod3();
}
這里我們添加一個步驟:驗證tbResult的內容正是我們想要的內容,即增加一個斷言Assertion
此時UIMap工具中查看錄制步驟的按鈕置灰不可用,原來置灰的新增斷言按鈕現在可用了,如下圖箭頭所指
Figue9 Add Assertion
鼠標點擊"新增斷言"按鈕,保持鼠標按下的狀態,將其十字標拖至tbResult控件上
如下圖10所示
Figue10 To generate assertions for your UI controls, click the crosshairs icon and drag it to the control that you want to verify is correct.
在添加斷言窗口找到tbResult的Text屬性,右鍵添加斷言
Figue11 Right Client on Text Property to add assertion
保持下圖中的默認內容不變,直接點擊OK按鈕
Figue12 Add assertion for Text
再次擊點生成代碼按鈕,彈出提示框(Figue14)
Figue13 Click Generate Code button for Generating assertion Codes
在彈出的提示框中輸入斷言代碼的方法名稱,點擊Add and Generate按鈕,回到VS找到它:)
Figue14 Generate assertion codes
原方法變成如下所示
[TestMethod]
public void CodedUITestMethod1()
{
// To generate code for this test, select "Generate Code for Coded UI Test" from the shortcut menu and select one of the menu items.
// For more information on generated code, see http://go.microsoft.com/fwlink/?LinkId=179463
this.UIMap.RecordedMethod3();
this.UIMap.AssertMethod2();
}
8.運行單元測試
鼠標停留在CodedUITestMethod1塊內右鍵選擇Run Tests,或者使用組合快捷鍵,Ctrl + R,T運行單元測試
稍微有點慢,耐心等候,期間最好不用動鼠標和鍵盤,它就會把剛才錄制的過程再重復一遍.
至此,我們完成了一個簡單的自動化測試的小例子.















