2013-06-21 143 views
8

您好我正在尋找使用編碼的UI測試(CUIT)來測試應用程序。我嘗試過錄制選項,但這對我來說不夠靈活。如果你在不同尺寸的屏幕上使用它,它會中斷。手編碼的UI測試

我知道你可以手工編寫測試代碼,但是我找不到任何如何編寫基本測試的好例子。在這裏有一些使用CUITe的例子,但這些帖子是從2011年開始的,我不確定它們與微軟對CUIT的新升級之間的相關性如何。

這些測試需要與Visual Studio 2012 Ultimate中的構建環境集成,這就是爲什麼我不使用Selenium。

和代碼示例或鏈接到很好的教程,將不勝感激,但特別是我在尋找關於如何啓動手動編碼我CUITs

爲例
+2

您是否嘗試過的工作的書的折扣代碼直接與UI自動化框架?這是Coded UI測試的基礎。我喜歡它的這個教程:http://blog.functionalfun.net/2009/06/introduction-to-ui-automation-with.html – SlightlyCuban

+0

集成到你的編譯環境如何? – Arran

+0

我們正在考慮將它添加到構建配置中,就像您將自動執行單元測試一樣。我仍在等待訪問權限,以便能夠編輯構建配置文件,但希望它們不會太長 –

回答

5

CodePlex上的代碼首先編碼的UI測試API項目(http://codeduicodefirst.codeplex.com/)包括您可以下載的項目演示 - 應用程序和測試。它旨在構建CUIT測試,而不依賴於錄製/回放。

如果您要在純代碼基礎上工作,那麼您需要的最大的事情就是避免依賴CUIT記錄創建的自動生成的對象映射。 Code-First項目使用映射到單個頁面對象的類來解決此問題 - 如果我沒有記錯的話,您需要擴展項目代碼以使用桌面應用程序。我不以任何方式附屬於這個項目 - 它只是我發現的唯一一個手工編碼資源,而CUITe在一段時間內還沒有更新,這是我看到的最後一個)。

+1

上次更新時間爲2012年3月,已下載3次(!)次... – Jowen

1

不是很多開發人員都知道這一點,但它可以創建與CodedUI代碼第一次測試。這不是被鼓吹,這是不好的imo。 我認爲錄製選項是脆弱的。它使用鼠標座標,這意味着當UI改變時您必須重新創建測試...

可維護的方法是使用Page Object pattern(也可用於其他常用工具,如Selenium)。這將創建一個UI的抽象,從而爲您提供更多的靈活性和強大的輸入。

你得到容易,可讀性和最全的維護碼:

var storeHyperlink = new HtmlHyperlink(_browserWindow); 
storeHyperlink.SearchProperties[HtmlHyperlink.PropertyNames.Id] = "StoreLink"; 
Mouse.Click(storeHyperlink); 

Read more

+0

很好的答案和鏈接 - 謝謝@Jowen – user1191559

0

不知道是否有人仍然希望找出如何最好的牌代碼的編碼的UI測試,但IMO打算到記錄和回放路線後來都會令人失望!最好的方法是創建一個自動化框架,該框架定義您想與之交互的單個對象,並讓頁面對象處理您的業務邏輯。如果您正在測試Web應用程序,則可以使用通用UITestControls或HtmlControls來定義對象。例如:

public static UITestControl EditBox_Password 
{ 
    get 
    { 
     if (mEditBox_Password == null || ! mEditBox_Password.Exists) 
     { 
      mEditBox_Password = new UITestControl (browserWindow); 
      mEditBox_Password.TechnologyName = "Web"; 
      mEditBox_Password.SearchProperties.Add (UITestControl.PropertyNames.ControlType , "Edit"); 
      mEditBox_Password.SearchProperties.Add (UITestControl.PropertyNames.Name , "TxtPassword"); 
     } 
     return mEditBox_Password ; 
    } 
} 

如果您正在測試基於Windows的應用程序,那麼您可以使用WinControls或WpfControls來定義對象。

我最近買了一本關於亞馬遜(手編碼編碼的用戶界面)的書,它明確定義瞭如何設置框架並創建一個易於維護的代碼。不知道這是否是提供任何書店,但這裏是Amazon上的鏈接,如果你想看看

https://www.amazon.com/dp/1547000856/ref=sr_1_1?s=books&ie=UTF8&qid=1496767488&sr=1-1&keywords=1547000856

我希望這是有幫助的。

更新時間:剛剛GOOGLE了它並沒有在http://www.arkenstone-ltd.com/testing-with-coded-ui/