引入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);
// 高并發測試
public void testgetequipeventalertlistbypage() throws throwable {
equipmentquerybean equipmentquerybean = new equipmentquerybean();
// 生成所有測試線程
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 equipmentquerybean equipmentquerybean;
public faultservicethread(ifaultservice faultservice,
equipmentquerybean equipmentquerybean) {
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;
最新内容請見作者的github頁:http://qaseven.github.io/