jmeter 入门
JMeter最早是为了测试Tomcat的前身JServ的执行效率而诞生的。它的测试能力也不再仅仅只局限于对于Web服务器的测试,而是涵盖了数据库、JMS、WebService、LDAP等多种对象的测试能力。
JMeter的安装非常简单,从官方网站上下载,解压之后即可使用。运行命在%JMETER_HOME%/bin下,对于Windows用户来说,命令是jmeter.bat。
JMeter的主要测试组件总结如下:
1.测试计划是使用JMeter进行测试的起点,它是其它JMeter测试元件的容器。
2.线程组代表一定数量的并发用户,它可以用来模拟并发用户发送请求。实际的请求内容在Sampler中定义,它被线程组包含。
3.监听器负责收集测试结果,同时也被告知了结果显示的方式。
4.逻辑控制器可以自定义JMeter发送请求的行为逻辑,它与Sampler结合使用可以模拟复杂的请求序列。
5.断言可以用来判断请求响应的结果是否如用户所期望的。它可以用来隔离问题域,即在确保功能正确的前提下执行压力测试。这个限制对于有效的测试是非常有用的。
6.配置元件维护Sampler需要的配置信息,并根据实际的需要会修改请求的内容。
7.前置处理器和后置处理器负责在生成请求之前和之后完成工作。前置处理器常常用来修改请求的设置,后置处理器则常常用来处理响应的数据。
8.定时器负责定义请求之间的延迟间隔。
AggregateReport[聚合报告]
AggregateReport是JMeter常用的一个Listener。共有10个字段,含义分别如下。
1.Label:每个JMeter的element(例如HTTPRequest)都有一个Name属性,这里显示的就是Name属性的值
2.Samples:表示你这次测试中一共发出了多少个请求,如果模拟10个用户,每个用户迭代10次,那么这里显示100
3.Average:平均响应时间——默认情况下是单个Request的平均响应时间
4.Median:中位数,也就是50%用户的响应时间(ms)
5.90%Line:90%用户的响应时间(ms)
6.Min:最小响应时间
7.Max:最大响应时间
8.Error%:本次测试中出现错误的请求的数量/请求的总数
9.Throughput:吞吐量——默认情况下表示每秒完成的请求数(RequestperSecond)
10.KB/Sec:每秒从服务器端接收到的数据量
ViewResultsTree[查看结果树]
通过这个Listener,我们可以看到很详细的每个transaction它所返回的结果,其中红色是指出错的transaction,绿色则为通过的。
如果你测试的场景会有很多的transaction完成,建议在这个Listener中仅记录出错的transaction就可以了。要做到这样,你只需要将Log/Display:中的Errors勾中就可以了。
图形结果:
样本数目:总共发送到服务器的请求数。
最新样本:代表时间的数字,是服务器响应最后一个请求的时间。
吞吐量:服务器每分钟处理的请求数。
平均值:总运行时间除以发送到服务器的请求数。
中间值:时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
----------------------------------------------------------------------------------
添加线程组:右击测试计划->添加->线程组,线程数为5,Ramp-Up=20,循环次数=3;
用5个线程,这5个线程20秒内启动完,仅做三次。
添加循环控制器:右击线程组->添加->逻辑控制器-->循环控制器
每个线程循环2次,这样就相当与对服务器2*5=10次请求
添加取样器:右击线程组->添加->Sample->HTTP请求,Web服务器127.0.0.1[不要加http了,斜杠等],端口80,协议http,路径/index.jsp;
添加monitor,右击线程组->添加->monitor->图形结果(第二个),然后再添加一个Summaryreportmonitor,然后再添加一个AggregateReport[聚合报告]