但我傾向于將 JUnitPerf 用作一種發現早期性能問題的簡單方法,而不是將其作為一種機制來衡量執行時間;像 profilers 這樣的工具更善于提供此類衡量。在本質上,可以認為 JUnitPerf 是一個早期的警告系統。
在清單 5 中,我定義了一個 JUnit 測試,該測試使用 JUnitPef 來驗證 BeerServicePerformanceTest
測試類中的 testLongRunningMethod
測試的執行時間。如果執行該測試方法所花的時間多于 1000 毫秒,則測試失敗。
清單 5. 使用 JUnitPerf 的基于性能的測試
|
使用精確計時作為方法執行時間的標準時要小心;測試的建立和銷毀時間包含在整個執行時間中。此外,在早期的性能測試中,精確測定執行速度在更大程度上是一門藝術而不是科學。
可隨意編寫所有需要的單元測試和組件測試,但如果要編寫一個提供某種類型的用戶界面的應用程序(例如 Web 應用程序),則需要測試表示層。以 Web 應用程序為例,需要驗證用戶場景的導航,另外還要驗證場景的功能是正常的。盡管如此,直到最近,這類測試都常被證明是一個負擔,需要購買工具來促進開發周期晚期的測試。此外,這些工具幾乎不能適合構建過程,即使測試構建得足夠早也是如此。
但近幾年來,一些著眼于功能測試的開放源碼工具脫穎而出;而且,能輕易地在開發生命周期的早期使用這些工具。工具如 Selenium 和 Watir 都是開放源碼的;另外,它們構建時考慮到了開發人員。除了用各種語言(例如 Java 編程和 Python)編程定義 Selenium 測試之外,Selenium 也提供了一種易于學習的表格驅動格式,此格式也能被非技術類型使用。
文章來源于領測軟件測試網 http://www.kjueaiud.com/