• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 認識p-unit:一款開源的性能測試工具

    發表于:2008-05-21來源:作者:點擊數: 標簽:性能測試工具開源認識
    p-unit 是一款開放源碼的 性能測試 框架,和 JUnit 不同,JUnit 關注的是測試案例的正確性,而 p-unit 不僅關注測試案例的正確性,還收集測試案例的性能參數,默認情況下,p-unit 收集測試案例的時間和內存消耗情況,可以產生文件,圖片,和 PDF 格式的報表。
     p-unit 是一款開放源碼的性能測試框架,和 JUnit 不同,JUnit 關注的是測試案例的正確性,而 p-unit 不僅關注測試案例的正確性,還收集測試案例的性能參數,默認情況下,p-unit 收集測試案例的時間和內存消耗情況,可以產生文件,圖片,和 PDF 格式的報表。此外,p-unit 還支持參數化測試,多線程測試以及不同 Java 虛擬機性能之間的比較。

        p-unit 簡介

        或許我們已經習慣了使用 JUnit 來寫單元測試來保證代碼質量(我也一直這么做),但可能經常碰到這樣的問題:

        1.程序多線程下正確性如何?
        2.如何測試程序的性能?
        3.當有多個方案可以選擇時,技術上如何比較不同方案的性能?

        對于問題 1,我們或許聽天由命?或是憑借人工分析,或是根據用戶反饋?很多軟件單線程下的單元測試覆蓋率相當高,從而保證了代碼的健壯性。然而多線程測試時常被忽略,這并不代表多線程測試不重要,相反,修正一個用戶報告的多線程 BUG 往往比單線程的要高出很多,因為測試案例經常不是 100% 可重現的。這更要求程序員開發階段充分的重視。目前多線程單元測試力度不夠的一個重要原因是沒有一個像 JUnit 那樣易用的測試工具,另外重復寫測試案例往往不被程序員接受。

        對于問題 2,一個成熟的關心性能的產品往往有一個性能測試平臺。這個測試平臺應該關注的是測試業務邏輯本身,而無需關心如何運行測試案例。你是否為寫這樣的測試平臺痛苦過?以及花費時間在產生一些直觀的報表上面?

        對于問題 3,我們往往寫一個原型來比較不同產品之間的性能,如何比較執行速度和內存消耗?或是選擇最適合你的虛擬機?

        p-unit 就是這么一款開源的性能測試軟件,它能幫助你很好的解決上述問題。p-unit 可以:

        *多線程支持:同一個測試案例可以單線程執行,也可以多線程執行,測試案例開發者只需寫一套測試案例。
        *參數化測試案例:很多測試案例,需要測試同一功能在不同數量級上的性能表現。
        *不同虛擬機性能測試:只需指定虛擬機路徑,即可測試同一個測試案例在不同虛擬機上的表現,報表上可以非常直觀顯示性能差別。
        *事件機制構架:punit 是基于事件機制構架的,如果用戶想定制報表,只需實現事件響應器,并注冊該響應器到 punit 核心即可。

        多線程執行測試案例

        在了解如何多線程執行測試案例之前,我們先了解一下如何利用 p-unit 單線程執行測試案例。不同于 JUnit, p-unit 測試用例無需繼承任何測試類或是實現接口,即可執行 test 開始的方法。盡管 JUnit 4 中加入了注釋(Annotation) 的特性,但測試方法前綴為 "test" 仍然是測試者們的首選。因此如果你的 JUnit 測試案例遵循的是 test 命名規則,那么 p-uni t可以兼容運行 JUnit 測試案例。

        下面的代碼清單 1 是一個最為普通的測試案例:

        清單 1. 測試案例 1



    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>