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

您的位置:軟件測試 > 開源軟件測試 > 開源性能測試工具 >
認識 p-unit : 一款開源的性能測試工具
作者:網絡轉載 發布時間:[ 2012/12/6 15:41:27 ] 推薦標簽:

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

p-unit 簡介

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

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

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

public class SimpleTestClass {

 public void setUp() {
   SampleUtil.doSomething();
 }
 
 public void tearDown() {
   SampleUtil.doSomething();
 }
 
 public void testA() {
   System.out.println("testA");
   SampleUtil.doSomething();
 }
 
 public void testB() {
   SampleUtil.doSomething();
 }
 
 public void testC() {
   SampleUtil.doSomething();
 }

}

public class SampleUtil {
 private static Random _random = new Random();
  
 public static void consumeMemory(int length) {
  byte[] data = new byte[length];
  for(int i = 0, j = 0; i < data.length; ++i) {
    ++j;
  }
 }

 public static void consumeTime(int time) {
  ThreadUtil.sleepIgnoreInterruption(time);
 }
 
 public static void doSomething() {
  consumeTime(Math.abs(_random.nextInt()) % 500);
  consumeMemory(Math.abs(_random.nextInt()) % 100000);
 }
}

上一頁123下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 午夜伦理网 | 国产大陆精品另类xxxx | 国产白丝丝高跟在线观看 | 亚洲性视频在线 | 淫品色影院 | 韩国伦理片手机在线观看 | 怡红院视频在线 | 91短视频在线高清hd | 草草影院地址 | 国产成人啪午夜精品网站 | 欧美亚洲另类一区中文字幕 | 成人在线观看免费 | 在线看黄色网址 | 天天舔天天操天天干 | 手机免费看伦理片 | 蜜桃成人在线 | 在线观看免费黄色小视频 | 日本爽视频 | 成年人的天堂 | 国产黄色片一级 | 黄黄的网站在线观看 | 欧美日本黄色片 | 欧美成年视频 | 高清一区在线 | 国产成人18黄网站在线观看网站 | 国内成人精品视频 | 欧美一级欧美一级在线播放 | 成人动漫在线观看视频 | 9191亚洲高清国产 | 日韩亚洲一区中文字幕 | 看全色黄大色大片免费久久 | 日日天天夜夜 | 欧美日韩性视频 | 久久91亚洲精品中文字幕 | 欧美成人亚洲综合精品欧美激情 | 免费看黄无遮挡滚床单视频 | 久久亚洲女同第一区 | 深夜福利网址 | 欧美极品第一页 | www涩涩| 精品一区二区视频在线观看 |