題:
什麼是ASP.NET MVC應用程序的首選UI測試框架?
Blaise
2014-05-15 00:11:48 UTC
view on stackexchange narkive permalink

經過研究,我們發現:

  • Watin( http://watin.org/
  • CodedUI(Microsoft )
  • Coypu(基於硒)
  • TestStack.Seleno(也基於硒)

但是選擇太多,決定也很難

Stackoverflow的測試專家,能否與我們分享您在這些不同框架上的經驗?謝謝。

您想要什麼功能?例如,將需要與哪些其他軟件(構建系統,測試框架,報告生成器……)集成?請閱讀我們的[提示問題提示](http://meta.softwarerecs.stackexchange.com/questions/336/what-is-required-for-a-question-to-contain-enough-information)。
一 回答:
#1
+26
Yi Zeng
2014-05-15 04:12:59 UTC
view on stackexchange narkive permalink

首先,如果您要像最終用戶一樣測試Web UI,則是否使用ASP.NET MVC構建應用程序可能無關緊要。 (這僅表示您正在尋找我假設的.NET UI測試框架。)

我不確定您為何未列出 Selenium WebDriver本身,這將是我建議的那個。因為它在市場上占主導地位,所以您可以獲得有關它的所有支持/資源。這是許多其他框架所依賴的高度活躍的開源項目。 Watin和CodedUI是替代方案,而Coypu和TestStack.Seleno只是圍繞Selenium的高級框架。它支持Java,.NET,Ruby,Python,JavaScript綁定,其他語言的代碼也可以輕鬆移植到C#中。

  • Watin。該項目無效。在Selenium WebDriver剛剛發布的時代,它們都很流行,您可能很難做出決定。但現在已經不復存在了,Watin已經三年沒有發布任何東西了,現在不應該將其視為您的選擇之一。當時IE支持9,Firefox是4,Chrome是11。

  • CodeUI。不建議。優點是它不僅支持測試Web UI,而且還由Microsoft自己創建,並與Visual Studio緊密關聯。但是它不是開源的,資源和功能有限的小型社區更專注於Windows應用程序。

  • Coypu 是一個開源框架,同時包裝Selenium WebDriver和Watin(僅Coypu中的IE)。在某種程度上,它更像 Capybara,但對於.NET。我個人覺得這個主意很棒。

  • TestStack.Seleno也是一個不錯的選擇,它可以創建某種DSL來隱藏Selenium WebDriver命令並提供在Web UI測試項目中必不可少的Page Objects。此外,它可以與ASP.NET MVC應用程序緊密聯繫。但是這些都是硒水平之上的東西。它可以幫助您編寫Selenium代碼,無論如何您都可能想實現自己。

因此,我想說一下Coypu和TestStack。Seleno值得一看,但僅僅是小心。

  1. 那些框架依賴於硒,這可能是一個約束。例如,如果Selenium中存在嚴重錯誤,則測試可能會失敗。然後,Coypu開發人員需要先等待在Selenium中修復它,然後更新Coypu來為您解決問題。時間可能會有所不同,具體取決於項目的活躍程度。在此過程中,可能會引入更多僅影響Coypu用戶的錯誤。您實際上並不需要它們的DSL / Page Objects,而是實現了自己的獨特方式來支持測試應用程序。

  2. 即使它們是開源的,它們也可能沒有和硒一樣大的社區。在瀏覽器自動化級別以上發生的任何事情(即寫為Coypu或TestStack.Seleno的代碼)都很難為您提供幫助。例如,有很多其他封裝了Selenium的框架,例如Capybara,Watir WebDriver等,人們很難在StackOverflow上盡快獲得答案,因為很少有人使用它們。

  3. 沒人知道這些項目可以保持多長時間。還有一個名為 White的.NET UI測試框架,它是測試Web / WinForm / Silverlight應用程序的好項目,但已被TestStack(現在稱為 TestStack)棄用並接管。白色。您可以想像出,如果有人前一段時間使用White開發了一個大型測試項目,他們可能會遇到麻煩。

  4. DSL和頁面對像是您應該自己掌握的東西。對於某些開發人員來說,實現自己的應用程序比使用第三方庫更好/更可靠,因為他們可以完全控制內部功能。

  5. ol>

    Outro

    評估框架的最佳方法是使用每個框架為您的應用程序創建一個演示。然後,您可能會有一個偏好來幫助您做出決定。

    通常,我的建議是:要自動化Web UI,該選項將使用Selenium WebDriver,而不是Watin或CodedUI。對於高級支持框架,我個人不願意使用(即使用純Selenium WebDriver庫並在測試項目中編寫自己的支持類),但是如果願意,可以考慮使用Coypu和TestStack.Seleno。

編碼UI的問題在於,它將瀏覽器與其他任何應用程序一樣對待。硒是為網絡量身定制的,在很多方面都更好。即使是像啟動瀏覽器這樣簡單的事情也可能出錯,因為“編碼的用戶界面”會尋找類似於“ C:\ Program Files \ FireFox \ firefox.exe”的硬編碼內容。更糟糕的是,它依賴於瀏覽器的內部UI樹(您將在FireFoxMainPane和FireFoxDisplayBorder之內看到東西,直到到達實際的DOM)。這可能會因瀏覽器的新版本而中斷。您也不能使用JS查詢來查找元素...
非常好的總結。我希望我在開始使用Seleno之前已經讀過這篇文章,該版本實際上已被放棄(2016年5月6日最後一次提交),並且由於Selenium的更改(以及刪除過時的代碼),它現在無法使用。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...