用JMeter进行性能测试
简介: JMeter 可以用于测试静态或者动态资源的性能(文件、 Servlets 、 Perl 脚本、 java 对象、数据库和查询、 ftp 服务器或者其他的资源)。 JMeter 用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可 以用 JMeter 提供的图形化界面分析性能指标或者在高负载情况下测试服务器 / 脚本 / 对象的行为
安装:从apache网站下载jmeter的zip包解压,点击\bin目录下的jmeter.bat就可以启动jmeter了,当然前提是你机子上安装了jdk
用jmeter进行接口测试:
新建一个项目JMeterTest,需要到\lib\ext目录引入两个包ApacheJMeter_java.jar,ApacheJMeter_core.jar,因为一下测试类需要实现的接口依赖这两个包.测试类如下:
public class JMeter extends AbstractJavaSamplerClient {
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");
// 计时开始
sampleResult.sampleStart();
System.out.println(jmeter);
synchronized (o) {
try {
count++;
Thread.sleep(100);
System.out.println("Hello JMeter->" + count);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
// 计时结束
sampleResult.sampleEnd();
// 返回是否处理成功
sampleResult.setSuccessful(true);
return sampleResult;
}
}
将JMeterTest打成jar包放到\lib\ext目录下,点击jmeter.bat启动jmeter,启动后如下图所示:
点击java请求,在右边下拉框选择com.ldh.JMeter,添加参数名称"jmeterParameter",值为"hello,world",就可以在程序中通过context.getParameter("jmeterParameter")得到"hello,world".
线程数表示用来进行测试的线程,Ramp-Up-Period表示在多少秒内启动这几个线程,循环次数表示每个线程运行的次数
按上图将该加的加完后,选择运行-启动,就可以进行测试了,测试完成后就可以从图形结果,查看结构树,聚合报告等查看结果了
对web进行测试:
图如下
生成的聚合报告如下:
图表含义说明如下:
Label:说明是请求类型,如Http,FTP等请求。
#Samples:也就是图形报表中的样本数目,总共发送到服务器的样本数目。
Average:也就是图形报表中的平均值,是总运行时间除以发送到服务器的请求数。
Median:也就是图形报表中的中间值,是代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
90%line:是指90%请求的响应时间比所得数值还要小。
Min:是代表时间的数字,是服务器响应的最短时间。
Max: 是代表时间的数字,是服务器响应的最长时间。
Error%:请求的错误百分比。
Throughput:也就是图形报表中的吞吐量,这里是服务器每单位时间处理的请求数,注意查看是秒或是分钟。
KB/sec:是每秒钟请求的字节数。
上一篇: JMeter 的下载和使用(性能测试)
下一篇: 二分查找的实现及边界问题讨论