OK,Let's get starting
原文共四章,很短總共就十六頁
第一章 《概述,什么是JRUnit》
jrunit通過向基于junit的測試框架加入對基準(benchmark)的支持,以及對junit框架本身的擴展,從而為基于分布式的客戶端/服務器模式的(client/server)測試提供支持。需要強調的是,jrunit不是用來替代junit的,而是對junit的一個擴展,使其對企業應用方面有更好的支持。
說到基于C/S的測試,junit本身有著不少明顯的局限性,使它在這方面不是很好用。一個最顯著的地方是,junit被設計成所有的test都在一個單獨的類、一個單獨的進程內運行。另一個局限是,所有的測試都是原子的、與任何外圍代碼都沒有關系,因此每個測試的生命周期都是相互獨立的。這些特征對于低級別的代碼單元很好用,但換上C/S模式的測試時則不盡然。
由于C/S架構代碼的特殊性,它們對于測試有著額外的要求。首先是對客戶端和服務器端測試的生命周期,或者說狀態,必須能進行管理。這一點很重要,因為在客戶端進行測試并且連接服務器之前,服務器必須已經創建并初始化完畢;同樣服務器不能在客戶端完成所有測試之前關閉。此外還必須能夠將服務器和客戶端的所有測試結果整合成為一份單一的結果格式。最后,所有這些都能夠從單點驅動,這樣就能夠在一次構建中,把它們包含進自動化測試中去。(Finally, need to be able to have all this driven fromasinglepointsocanbeincludedwithinanautomatedtestrunfromabuild.)
jrunit通過允許多個test case以及客戶端和服務器,在多個不同的進程上同步運行但是由一個中央driver進行控制,來解決上述問題。這個driver控制所有test case的整個生命周期。所有由driver產生的test case都被放入一個harness中,由harness向driver匯報執行情況。而這個driver本身就是一個TestCase類,所以可以直接從IDE或者JUNIT中調用。
jrunit還提供額外的benchmark插入(hook)到測試代碼中。這些benchmark hook能讓jrunit框架收集統計數據,即關于不同測試代碼段運行所花費的時間的統計。這些數據可以被記錄在許多持久性存儲中(a number of persistent store)并實時查看;或者也可以記錄一段時間內的數據,來看看一段時期內隨著代碼的變更,性能是如何受到影響的。
文章來源于領測軟件測試網 http://www.kjueaiud.com/