<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    多線程測試工具groboutils的使用

     一直使用junit做為服務測試框架,感覺不錯。最近有人反映在高并發的情況下,存在服務調不到。無奈再次打開單元測試模擬高并發的情況,卻發現junit不支持并發測試
      引入groboutils jar包,其實我主要使用MultiThreadedTestRunner類和TestRunnable類。
      原有的junit框架不做改變,導入GroboTestingJUnit-1.2.1-core.jar包
      代碼如下
    public class FaultServiceTest extends TestCase {
    /**
    * @param args
    * @throws FaultException
    * @throws ExpParamNotFoundException
    * @throws ParseException
    */
    private IFaultService faultService;
    private static final int NUM_THREAD = 100; // 測試線程總數
    public FaultServiceTest() {
    super();
    IInitService initService = (IInitService) CustomBeanFactory
    .getBean("initService");
    initService.initSiteDatabase();
    this.faultService = (IFaultService) CustomBeanFactory
    .getBean("faultService");
    }
    public FaultServiceTest(String name) {
    super(name);
    IInitService initService = (IInitService) CustomBeanFactory
    .getBean("initService");
    initService.initSiteDatabase();
    this.faultService = (IFaultService) CustomBeanFactory
    .getBean("faultService");
    }
    // 高并發測試
    public void testGetEquipEventAlertListByPage() throws Throwable {
    EquipmentQueryBean equipmentQueryBean = new EquipmentQueryBean();
    // 生成所有測試線程
    TestRunnable[] test = new TestRunnable[NUM_THREAD];
    long start = System.currentTimeMillis();
    for (int i = 0; i < test.length; i++) {
    test[i] = new FaultServiceThread(faultService, equipmentQueryBean);
    }
    // 生成測試線程運行器
    MultiThreadedTestRunner mttr = new MultiThreadedTestRunner(test);
    // 運行測試線程
    mttr.runTestRunnables();
    long used = System.currentTimeMillis() - start;
    System.out.printf("%s 調用花費 %s milli-seconds.\n", NUM_THREAD, used);
    }
    public static Test suite() {
    TestSuite test = new TestSuite("HealthService接口類測試");
    test.addTest(new FaultServiceTest("testGetEquipEventAlertListByPage"));
    return test;
    }
    /*
    * 測試線程類定義
    */
    private static class FaultServiceThread extends TestRunnable {
    private IFaultService faultService;
    private EquipmentQueryBean equipmentQueryBean;
    public FaultServiceThread(IFaultService faultService,
    EquipmentQueryBean equipmentQueryBean) {
    super();
    this.faultService = faultService;
    this.equipmentQueryBean = equipmentQueryBean;
    }
    @Override
    public void runTest() throws Throwable {
    faultService.getEquipEventAlertListByPage(equipmentQueryBean);
    }
    }

     運行代碼,并發數開到100個后觀察運行時間發現運行運行時間到了12秒了,看來問題出在DAO。需要進行sql代碼優化了
      導入的測試包有:
    import net.sourceforge.groboutils.junit.v1.MultiThreadedTestRunner;
    import net.sourceforge.groboutils.junit.v1.TestRunnable;
    import junit.framework.Test;
    import junit.framework.TestCase;
    import junit.framework.TestSuite;

    posted on 2013-11-13 10:19 順其自然EVO 閱讀(440) 評論(0)  編輯  收藏 所屬分類: jmeter and badboy

    <2013年11月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲欧洲精品一区二区三区| 男人j进入女人j内部免费网站| 亚洲综合久久综合激情久久| 又粗又硬免费毛片| 18禁免费无码无遮挡不卡网站| 好男人资源在线WWW免费| AV激情亚洲男人的天堂国语| 亚洲午夜电影在线观看高清| 亚洲国产精品特色大片观看完整版 | 中出五十路免费视频| 亚洲精品动漫免费二区| 亚洲精品在线不卡| 日产亚洲一区二区三区| 国产aⅴ无码专区亚洲av| 亚洲另类激情专区小说图片| 国产精品国产免费无码专区不卡 | 亚洲狠狠婷婷综合久久久久| 免费在线观看的黄色网址| 四虎免费大片aⅴ入口| 野花高清在线观看免费完整版中文| 51精品视频免费国产专区| 国产麻豆一精品一AV一免费| 中文字幕在线视频免费观看| 一级毛片人与动免费观看| 精品国产日韩亚洲一区在线| 亚洲s码欧洲m码吹潮| 亚洲中文字幕精品久久| 亚洲精品无码久久久久APP| 亚洲精华液一二三产区| 亚洲AV噜噜一区二区三区| 亚洲成在人线在线播放无码| 亚洲熟妇无码av另类vr影视| 亚洲精品无码中文久久字幕| 亚洲欧美日本韩国| 国产成人人综合亚洲欧美丁香花 | 在线观看免费精品国产| 国产极品美女高潮抽搐免费网站| 国产精品冒白浆免费视频| 国产无遮挡裸体免费视频| 亚洲高清无码综合性爱视频| 奇米影视亚洲春色|