亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
JUnitPerf 使用手冊
作者:網絡轉載 發布時間:[ 2013/1/18 14:31:06 ] 推薦標簽:

編寫有效的JUnitPerf測試

Timed Tests

Waiting Timed Tests

默認情況下TimedTest測試中如果實際測試時間超過了預期時間則繼續執行JUnit的測試。這種waiting timed test總是允許JUnit測試累積所有的測試結果,直到測試完成并且檢查完所有的測試結果。

如果測試執行中等待測試完畢的用例直接或間接地派生多個線程,那么此次測試只有等到所有的線程執行完畢才會返回到timed test中。另外一方面該測試將無限期地等待。一般來說,單元測試應該等待所有派生的線程執行完畢,例如使用Thread.join()方法,以便準確地判斷結果。

Non-Waiting Timed Tests

此外,TimedTest還提供了一個構造方法,當實際時間超過預期時間時立即表示未通過。這種類型的測試如果執行時間超過了預期的大時間則不等待測試繼續執行完畢。這種類型的測試比上一種方式更加有效,根據需要這種測試可節約時間,將不再等待程序執行并且立即標識測試未通過。然而,跟上面一種類型不同的是,這種類型的測試如果中間有測試不通過的話不繼續執行后面的測試了。

Load Tests

Non-Atomic Load Tests

默認情況下,如果LoadTest擴展出來的測試直接或間接地派生線程,它不會強制這種線程并發執行(正如在事務中定義的一樣)。這種類型的測試假設它擴展的測試在當返回控制時交互地完成。例如如果擴展測試的派生線程和控制返回沒有等待派生進程執行完畢,那么擴展測試假定為一次性地完成了。

而一般來講,單元測試中為了準確地判斷結果,應該等待派生的線程也執行完畢,例如使用Thread.join()方法然而在某些情況下并不是一定要這樣的。例如,對于EJB分布式的查詢結果,應用服務器可能派生一個新的線程去處理這個請求。如果新的線程在同一個線程組中運行decorated測試(默認情況),那么一個非原子的壓力測試僅僅等待壓力測試直接派生的線程執行完畢而新生成的線程則會被忽略掉。

總之,非原子壓力測試僅僅等待壓力測試中直接派生的線程執行完畢來模仿多個并發用戶。

Atomic Load Tests

如果多個線程規定一個decorated測試成功地執行,這意味著只有所有decorated測試中的線程執行完畢這個decorated測試才被認為是完成了。可以使用setEnforceTestAtomicity(true)來強迫執行這種測試()。這將有效地促使這種測試等待屬于decorated測試的線程組的所有線程執行完畢。原子性壓力測試也會把任何過早退出的線程當成是失敗。如果一個線程突然崩潰,那么屬于同一線程組的其他線程會立即停止執行。

如果decorated測試派生的線程屬于同一個線程組,默認情況下線程執行decorated 測試,這樣原子壓力測試將無限期地等待派生的線程執行完畢。

總之,原子壓力測試將等待所有屬于同一線程組的線程執行完畢,壓力測試直接派生的線程,來模仿多個用戶并發。

局限性

JUnitPerf已知有以下缺陷:

·         TimedTest返回的時間是測試用例的testXXX()方法的時間,包括setUp(), testXXX()和 tearDown()三個方法的總時間,這是任何測試實例中所能提供的小的測試粒度。因此期望的時間也應該考慮set-up 和tear-down的運行時間。(譯者注:或者可以自己在JUnit測試用例使用System.currentTimeMillis()方法來計算某個步驟的執行時間)

·         JUnitPerf并不是一個完整的壓力和性能測試工具,并且它也不會用來取代其它類似的工具。它僅僅用來編寫本地的單元性能測試來幫助開發人員做好重構。

·         The performance of your tests can degrade significantly if too many concurrent users are cooperating in a load test. The actual threshold number is JVM specific.

·         在壓力測試中如果有太多的用戶并發運行則測試情況會越來越糟。應該參照JVM的規范來指定用戶數。

技術支持

如果您有任何關于JUnitPerf的疑問,需要改進的要求,成功的經歷或者bug,或者當有新的版本發布時得到通知請發email給mike@clarkware.com。您的個人信息不會被公開。

您也可以通過郵件列表(http://groups.yahoo.com/group/junitperf/)的方式來討論有關JUnitPerf并且在有新的版本發布時收到通知。

捐助

您可以通過購買《Pragmatic Project Automation》(http://www.pragmaticprogrammer.com/sk/auto/)一書的方式支持JUnitPerf的繼續開發。

培訓與指導

可以通過訪問站點http://clarkware.com/courses/TDDWithJUnit.html了解有關快速地創建測試代碼的方法。

這里也提供有關JUnit的指導(http://clarkware.com/mentoring.html)來幫助你改進測試。

如果想獲得更多的信息請與我聯系(mailto:mike@clarkware.com)。

許可信息

JUnitPerf is licensed under the BSD License.

感謝

非常感謝Ervin Varga在線程健壯性和原子性測試方面給予的幫助。他在這些方面提出使用線程組來捕獲和處理線程的異常,此外在TimeTest和TestFactory中提出了如果執行時間超時則立即標識為失敗的實現方式。非常感激他對JUnitPerf的親睞和建議。

翻譯

MSN:wyingquan at hotmail dot com  完成時間:2005-4-19

相關資源及參考文檔

·         JUnit PrimerMike Clark, Clarkware Consulting, Inc.

本文簡單闡述了如何使用JUnit測試框架來編寫和運行簡單的測試用例及套件。

·         Continuous Performance Testing With JUnitPerfMike Clark (JavaProNews, 2003)

本文講解了如何編寫JUnitPerf測試來不時地檢查性能和可測性等情況。

·         Test-Driven Development: A Practical Guide David Astels (Prentice Hall, 2003)

包括一章由本文作者編寫的如何使用JUnitPerf來持續進行性能測試。

·         Java Extreme Programming CookbookEric Burke, Brian Coyner (O@#Reilly & Associates, 2003)

其中有一張專門講述了JUnitPerf的用法。

·         Java Tools for Extreme Programming: Mastering Open Source Tools Including Ant, JUnit, and CactusRichard Hightower, Nicholas Lesiecki (John Wiley & Sons, 2001)

包含一章描述了如何與HttpUnit一起使用JUnitPerf。

上一頁1234下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 天堂资源地址在线 | 精品欧美一区二区在线观看 | 久久久久88色偷偷免费 | 日韩在线www | 91大片| 成人福利在线视频免费观看 | 98bb国产精品视频 | 日韩精品久久不卡中文字幕 | www在线观看视频 | 久久精品久久精品国产大片 | 久久久免费的精品 | 成人羞羞视频播放网站 | 丝瓜色板 | 九九99九九在线精品视频 | 日本特级淫片 | 欧美在线一区二区 | 思99re久久这里只有精品首页 | 婷婷精品视频 | 黄色毛片黄色毛片 | 丁香综合在线 | 国产精品久久亚洲一区二区 | 亚洲欧美精品一区天堂久久 | 成人午夜免费视频免费看 | 日日天干夜夜人人添 | 免费人成年短视频在线观看网站 | 欧美午夜不卡 | 国产精品久久久久久久 | 直接看黄 | 欧美日韩不卡中文字幕在线 | 久久久免费观成人影院 | 动漫精品一区二区三区视频 | 亚欧乱色视频 视频在线 | 久久精品vr中文字幕 | 蕾丝视频永久在线入口香蕉 | 九九在线视频 | 美女一级ba大片免色野外 | 日本三级带日本三级带黄国产 | 色偷偷88欧美精品久久久 | 欧美日韩在线一区二区三区 | 久久精品网站免费观看 | 国产成人亚洲综合小说区 |