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

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

上述代碼的執行結果為:


清單 8. p-unit 參數化測試案例輸出

[solo] Started running samples.ParamTestClass
samples.ParamTestClass
testA(10) - [57936.0bytes,447.0ms]
testA(20) - [33128.0bytes,61.0ms]
testB(10) - [24832.0bytes,137.0ms]
testB(20) - [0.0bytes,63.0ms]
testC(10) - [83560.0bytes,468.0ms]
testC(20) - [16528.0bytes,47.0ms]
total: 6, failures:0 (GREEN) 1450.0ms
 


從上述結果看出,每個方法被執行了 2 次,每次傳入不同的參數。多線程運行參數化測試程序?相信讀者已經明白怎么去實現了,只需將 PUnitSoloRunner 替換成 PUnitConcurrentRunner。

運行環境測試案例

隨著 Java 開源,出現了更多的 Java 運行環境,除了 SUN 的參考實現外,BEA、IBM 均有自己的 Java 運行環境,更有如 Apache Harmony 的開源運行環境(盡管現在 Apache Harmony 尚不能稱為 Java 運行環境)。運行環境測試案例,為運行環境開發者以及選擇運行環境,都能提供一定的幫助。比如說下面的例子是測試 java.util.ArrayList 和 java.util.Vector 在兩個不同運行環境的表現。測試案例寫法和普通的測試案例完全一樣,我們只需告訴 p-unit 不同的運行環境的 Java 路徑以及正確的 classpath,然后調用 runVMs 函數即可:


清單 9. p-unit 運行環境測試案例

public static void main(String[] args) {
 PUnitSoloRunner runner = new PUnitSoloRunner();
 runner.addPUnitEventListener(new OverviewReporter(new ImageRender()));
 runner.runVMs(ListTestClass.class, new VM[] { VMConfig.HARMONY, VMConfig.SUN });
}

public class VMConfig {
 private static String CLASSPATH = " -cp correct_classpath_including_all_jars_and_path";
 private static String HARMONY_PATH = "harmony_path\bin\java" + CLASSPATH;
 private static String SUN_PATH = "sun_path\bin\java" + CLASSPATH;
 public static VM HARMONY = new VM(HARMONY_PATH, "HARMONY");
 public static VM SUN = new VM(SUN_PATH, "SUN");
}

public class ListTestClass {
 
    private static final int LIST_COUNT = 100000;
    private static Object element = new Object();
 private Random indexGenerator = new Random();;
  
    public void testInsertArrayList() {       
        ArrayList arrayList = new ArrayList(LIST_COUNT);
        insertSequence(arrayList);
        insertRandom(arrayList);
    }
   
    public void testInsertVector() {
     Vector vector = new Vector(LIST_COUNT);
     insertSequence(vector);
     insertRandom(vector);
    }
   
    public void insertSequence(List list) {
        for (int i = 0; i < LIST_COUNT; ++i) {
            list.add(element);
        }
    }
   
    public void insertRandom(List list) {
        for (int i = 0; i < LIST_COUNT; ++i) {
            list.add(indexGenerator .nextInt(LIST_COUNT),element);
        }
    }
   
}
 


上述代碼的運行結果如下:

圖 1. 運行環境測試案例結果

從上圖中可以很直觀的看出,筆者使用的 HARMONY 版本在該測試案例中速度更快(左圖),但內存消耗更多(右圖)。下一節將講述如何輸出報表,但或許你已經注意到了,代碼非常簡單。

從上面的實例中我們已經看到 p-unit 的輸出結果的兩種形式,控制臺和報表圖片。默認情況下,p-unit 將輸出到控制臺。p-unit 采用事件機制,在運行器的每個節點都會提供通知事件。所有的輸出都是通過注冊事件響應器來實現的。這也表明了結果輸出和運行器完全隔離,用戶也可以定制自己的報表。p-unit 有 4 種內建輸出,分別為控制臺、文件、圖片報表以及 PDF 報表。上一節的例子中我們已經看到圖片報表,其代碼為:


清單 10. 添加 p-unit 總體圖片報表

runner.addPUnitEventListener(new OverviewReporter(new ImageRender()));
 


p-unit 內建的報表有分三種不同的粒度:總體級別(OverviewReporter),TestSutie 級別(TestSuiteReporter),以及測試案例類級別(TestClassReporter)。這三種級別都可以輸出圖片格式或是 PDF 格式,因此,總共有六種類型的輸出。上述的代碼是輸出總體級別的圖片。由于事件監聽器是互相獨立的,因此你可以既選擇輸出圖片又選擇輸出 PDF 文件,只需再添加事件監聽器即可:


清單 11. 添加多個 p-unit 事件監聽器

runner.addPUnitEventListener(new OverviewReporter(new ImageRender()));
runner.addPUnitEventListener(new OverviewReporter(new PDFRender()));


總結

至此,你是否基本理解了 p-unit 的概念呢?簡單,易用,關注多線程,關注性能,這是 p-unit。此外 p-unit 還有很多很好的小特性,如 Alphabetical 接口來保證執行測試函數的先后順序等。使用 p-unit,讓你的代碼更健壯!

上一頁123下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 国内国语一级毛片在线视频 | 欧美视频网站免费看 | 久久久久久久久久免费视频 | 美女国内精品自产拍在线播放 | 亚洲欧美日本韩国 | 久久网免费视频 | 在线 色 | 蕾丝视频永久在线入口香蕉 | 成年网站免费 | 欧美性大战久久久久久久蜜桃 | 老司机午夜性大片 | 一二三四在线视频播放社区 | 成人黄色毛片 | 日本三级免费网站 | 日韩不卡一区二区 | 精品黄色 | 欧美天堂色 | 美女很黄很黄免费的 | 午夜一区二区三区 | 日韩欧美亚洲每日更新网 | 无遮挡动漫黄漫网站在线观看 | 亚洲综合激情六月婷婷在线观看 | 欧美另类丰满熟扫乱xxxxx | 夜间福利影院 | 欧美一级特黄刺激大片视频 | 一级理论片免费观看在线 | 成人男女网18免费视频 | 日本a∨网站 | 免费午夜网站 | 夜夜爽夜夜操 | 免费看黄色的网址 | 欧美日本二区 | 国产综合色在线视频区色吧图片 | 精品福利在线观看 | 国产精品久久毛片蜜月 | 韩国成人理伦片免费播放 | 日韩免费视频播播 | 日本亚洲天堂网 | 羞羞网站在线观看 | 小处雏一区二区三区精 | 成人18网站 |