|
程式在進行開發的過程中,通常首先追求的是功能的正確性,在功能正確之下,若有必要,則再進行效能(performance)與負載能力(scalability)的提昇,然而在提昇效能與負載的同時,必須保證原來的功能不被破壞。 JUnitPerf 基於JUnit的測試基礎之上,以 Decorator 模式 裝飾 JUnit 測試,JUnitPerf包括了兩種JUnit Decorator:
它首先運行JUnit測試,接著量測JUnit測試所花費的時間,預設情況下,TimedTest會等待所量測JUnit測試結束後,決定所花費的時間是否超出預期,如果是則測試失敗,您也可以設定當所花費時間超出預期時,立即發出信號表示測試失敗,並中斷測試。
可以用以模擬同時間多個使用者使用某個功能時的負載測試。
有了JUnitPerf,在您為了提昇效能或負載能力而進行程式碼重構時,不至於破壞程式原有的功能,就如同JUnit測試驅動的過程,逐步調整程式是必 要的,JUnitPerf不是評測工具(Profiler),而是重構工具,您應當使用評測工具先找出程式的瓶頸,在瓶頸處先為其撰寫JUnitPerf 測試。 一開始,您撰寫一個預期達到的值,測試會失敗,接著您開始針對程式碼或相關部份進行調校,然後運行測試,讓測試的效能結果逐步符合預期,從而解決評瓶頸,接下來,再使用評測工具找出下一個瓶頸進行解決。 在撰寫此文時,JUnitPerf的版本是JUnitPerf 1.9,必須搭配JUnit 3.5或更高的版本來使用。 |
|