一、JMeter 介绍
Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
Apache jmeter 可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,java 对象,数据库和查询FTP服务器等等)的性能进行测试。它可以用于对服务器、网络或对象模拟繁重的负载来测试它们的强度或分析不同压力类型下的整体性能。你可以使用它做性能的图形分析或在大并发负载测试你的服务器/脚本/对象。
二、JMeter 下载安装
1)JMeter安装
1. http://jmeter.apache.org/下载最新版本的JMeter,解压文件到任意目录
2. 安装JDK,配置环境变量JAVA_HOME.
3. 系统要求:JMeter2.11 需要JDK1.6以上的版本支持运行
4. JMeter可以运行在如下操作系统上:Unix,Windows和Open VMS.
5. 避免在一个有空格的路径安装JMeter,这将导致远程测试出现问题。
2)JMeter插件安装
1. 插件下载地址: http://jmeter-plugins.org/downloads/all/
2. 插件下载后解压:找到JMeterPlugins-Extras.jar,把JMeterPlugins-Extras.jar放到apache-jmeter-2.12\lib\ext目录。
下载完成后就是:
点击bat文件运行Jmeter
打开之后就是这个样子
三、JMeter 的使用
使用JMeter对携程网进行http测试
测试步骤
本http性能测试主要为对携程网做测试,打开JMeter录制搜索脚本后如下图所示。
将语言设置为中文
输入携程网的网址
然后进行分别并发200次、400次、600次的比较。以期获得有价值的比较结果。
200:
400:
600:
在进行200以上的并发中得到了服务器500报错,意为服务器运行不正常,可见服务器对于一秒200进程的高并发操作出现了异常,服务器的稳定性、抗压性不太好。
图形结果对比
下图为200进程图形结果
下图为400进程图形结果
下图为600进程图形结果
图表底部参数的含义如下:
样本数目:总共发送到服务器的请求数。
最新样本:代表时间的数字,是服务器响应最后一个请求的时间。
吞吐量:服务器每分钟处理的请求数。
平均值:总运行时间除以发送到服务器的请求数。
中间值:代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
偏离表示服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布
|
200线程 |
400线程 |
600线程 |
样本数 |
200 |
600 |
1198 |
平均 |
19338 |
23268 |
27804 |
偏离 |
4208 |
7193 |
10015 |
吞吐量 |
373.448 |
95.105 |
108.21 |
中值 |
20267 |
23110 |
26929 |
将图表数据导出制作成条形图可见,随着样本数以200为单位线性增加时,平均每线程处理时间和处理时间偏离值在线程数为600时明显上升,可见服务器的稳定性和并发容量已岌岌可危,而吞吐量在400线程时为峰值,在600线程时已萎缩,可见此时服务器已处于非常阻塞的状态,通过以上统计,可见秒级并发阈值在500线程左右。
聚合图结果对比
图表含义说明如下:
Min:是代表时间的数字,是服务器响应的最短时间。
Max: 是代表时间的数字,是服务器响应的最长时间。
Error%:请求的错误百分比。
KB/sec:是每秒钟请求的字节数。
我们选取了Min、Max、Error%和KB/sec进行对比,可见600并发进程的明显处理效果落后,最大、最小响应时间、响应错误率、每秒种请求的字节数明显上升,系统承载力、资源使用率、并发容量明显不济,与图形结果所得出的结果基本一致,验证了500进程数为系统秒级阀值的结论具有一定可靠性和科学性。
最后,经过使用JMeter对起点携程网的搜索功能进行http压力测试,可得起点携程网的系统瓶颈及最大使用极限在每秒并发400进程左右,在同类站点中表现尚可。