安裝:從apache網(wǎng)站下載jmeter的zip包解壓,點(diǎn)擊\bin目錄下的jmeter.bat就可以啟動(dòng)jmeter了,當(dāng)然前提是你機(jī)子上安裝了jdk
用jmeter進(jìn)行接口測(cè)試:
新建一個(gè)項(xiàng)目JMeterTest,需要到\lib\ext目錄引入兩個(gè)包ApacheJMeter_java.jar,ApacheJMeter_core.jar,因?yàn)橐幌聹y(cè)試類(lèi)需要實(shí)現(xiàn)的接口依賴(lài)這兩個(gè)包.測(cè)試類(lèi)如下:
public static int count = 0;
public Object o = new Object();
@Override
public SampleResult runTest(JavaSamplerContext context) {
SampleResult sampleResult = new SampleResult();
String jmeter = context.getParameter("jmeterParameter");
// 計(jì)時(shí)開(kāi)始
sampleResult.sampleStart(); System.out.println(jmeter);
synchronized (o) {
try {
count++;
Thread.sleep(100);
System.out.println("Hello JMeter->" + count);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 計(jì)時(shí)結(jié)束
sampleResult.sampleEnd();
// 返回是否處理成功
sampleResult.setSuccessful(true);
return sampleResult;
}
}
點(diǎn)擊java請(qǐng)求,在右邊下拉框選擇com.ldh.JMeter,添加參數(shù)名稱(chēng)"jmeterParameter",值為"hello,world", 就可以在程序中通過(guò)context.getParameter("jmeterParameter")得到"hello,world".
線程數(shù)表示用來(lái)進(jìn)行測(cè)試的線程,Ramp-Up-Period表示在多少秒內(nèi)啟動(dòng)這幾個(gè)線程,循環(huán)次數(shù)表示每個(gè)線程運(yùn)行的次數(shù)
按上圖將該加的加完后,選擇運(yùn)行-啟動(dòng),就可以進(jìn)行測(cè)試了,測(cè)試完成后就可以從圖形結(jié)果,查看結(jié)構(gòu)樹(shù),聚合報(bào)告等查看結(jié)果了
對(duì)web進(jìn)行測(cè)試:
圖如下
生成的聚合報(bào)告如下:
圖表含義說(shuō)明如下:
Label:說(shuō)明是請(qǐng)求類(lèi)型,如Http,F(xiàn)TP等請(qǐng)求。
#Samples:也就是圖形報(bào)表中的樣本數(shù)目,總共發(fā)送到服務(wù)器的樣本數(shù)目。
Average:也就是圖形報(bào)表中的平均值,是總運(yùn)行時(shí)間除以發(fā)送到服務(wù)器的請(qǐng)求數(shù)。
Median:也就是圖形報(bào)表中的中間值,是代表時(shí)間的數(shù)字,有一半的服務(wù)器響應(yīng)時(shí)間低于該值而另一半高于該值。
90%line:是指90%請(qǐng)求的響應(yīng)時(shí)間比所得數(shù)值還要小。
Min:是代表時(shí)間的數(shù)字,是服務(wù)器響應(yīng)的最短時(shí)間。
Max: 是代表時(shí)間的數(shù)字,是服務(wù)器響應(yīng)的最長(zhǎng)時(shí)間。
Error%:請(qǐng)求的錯(cuò)誤百分比。
Throughput:也就是圖形報(bào)表中的吞吐量,這里是服務(wù)器每單位時(shí)間處理的請(qǐng)求數(shù),注意查看是秒或是分鐘。
KB/sec:是每秒鐘請(qǐng)求的字節(jié)數(shù)。