jmeter-性能测试学习笔记—结果分析
在网上收集了很多jmeter工具做性能测试,但还是不怎么了解去分析性能测试的结果,然后自己用现在做的项目做了一个简单的的压力测试,就是同一时间多个用户进行并发访问该页面,然后对结果做了一些简单的分析:
一、用百度的网页测试200个用户在10秒之内同时访问百度的网页,每个用户只访问一次:www.baidu.com
1、首先点击测试计划,右键,添加线程组,如图:
线程组页面如图:
线程数:就是模仿用户并发的数量,Ramp-up:运行线程的总时间,单位是秒,循环次数:就是每个线程循环多少次。
我现在的线程数是200,就是相当于有200个用户,运行线程的总时间是10秒。也就是说在这10秒中之内200个用户同时访问,一秒钟有20个用户同时访问,每个用户循环一次,也就是访问一次。
2、点击测试计划,右键添加HTTP请求的默认值:如图
HTTP请求默认值界面:
协议:web的请求头是什么就是什么,这里拿百度做参考,输入https,服务器或IP:就输入百度的地址就可以了
3、添加HTTP请求,鼠标右键点击线程组,添加HTTP请求:
HTTP页面:
协议和ip地址可以不用输入,因为在HTTP的默认值我们已经添加了,这里只需要在路径加/表示是在根目录,不填写IP地址就使用的默认的。
4、添加聚合报告,查看结果树,用表格查看结果,右键点击线程,添加监听器,如图:
下面就可以通过这三者进行分析:
查看结果树:
通过察看结果树,我们可以看到每个请求的结果,其中红色的是出错的请求,绿色的为通过。
Thread Name:线程组名称
Sample Start: 启动开始时间
Load time:加载时长
Latency:等待时长
Size in bytes:发送的数据总大小
Headers size in bytes:发送数据的其余部分大小
Sample Count:发送统计
Error Count:交互错误统计
Response code:返回码
Response message:返回信息
Response headers:返回的头部信息
这里绿色的就说明请求是通过的,返回值是200,如果出现红色的×就说明请求失败,这时候可以通过右边的取样器结果和响应数据来查看结果。
聚合报告分析:
这里可以看到很多数据,相关名词解释如下:
Sample:本次测试场景共运行多少线程;
Average:平均响应时间;
Median:统计意义上的响应时间中值;
90% line:所有线程中90%的线程响应时间都小于xx的值;
Min:响应最小时间;
Max:响应最大时间;
Error:出错率;
Throughput - 吞吐量以“requests/second、requests /minute、 requests /hour”来衡量。 时间单位已经被选取为second,所以,显示速率至少是1.0,即每秒1个请求。 当吞吐量被保存到CVS文件时,采用的是requests/second,所以30.0 requests/second 在CVS中被保存为0.5
Kb/sec - 以Kilobytes/seond来衡量的吞吐量
200个用户在10秒中同时访问百度的页面,平均响应时间是85毫秒,最大的响应时间841毫秒,最小的响应时间是37毫秒,错误率为0,说明百度网页 的性能还是不错的,每个页面都能很快的得到响应,不用1秒钟。
用表格查看结果:
名词解释如下:
Sample:每个请求的序号
Start Time:每个请求开始时间
Thread Name:每个线程的名称
Label:Http请求名称
Sample Time:每个请求所花时间,单位毫秒
Status:请求状态,如果为勾则表示成功,如果为叉表示失败。
Bytes:请求的字节数
样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数
平均:每个线程请求的平均时间
最新样本:表示服务器响应最后一个请求的时间
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
在这里面可以看到,线程组名称,每个线程响应时间,返回结果是否成功,字节数等。
如何只清楚部分数据:
点击左边要清楚的选项,比如,清楚上一次百度页面测试的聚合报告,点击聚合报,然后点击工具栏的扫把图标即可,这个只是清楚你选择的内容。
如果要清楚整个线程的结果数据,就直接选择该线程组,点击有两把扫把的图标即可。
二、用淘宝的页面来测试200个用户在10秒钟之内同时访问该网址:www.taobao.com
可以重新走上面的步骤,在建一个线程组,也可以直接把聚合报告结果清楚掉,把IP地址更换成淘宝地址,然后运行即可。
200个用户在10秒中同时访问淘宝的网页,得到的聚合报告结果如下:
平均的响应时间是283毫秒,最大的响应时间是547毫秒,最小的响应时间是246毫秒,错误率为0,比百度的网页的响应时间要快点。
三、用公司目前做的项目做了一个压力测试,同样是200用户在10秒中之内访问该网页,得到结果如下:
平均的响应时间是16754毫秒也就相当于是16秒,最大的响应时间是47秒,最小的响应时间是564毫秒。
从百度,淘宝,公司项目来做比较,我们公司项目的性能还是有待提高,同样是200个用户在10秒钟之内访问,虽然都得到了响应,但是等待的时间很长。
然后从这三者在增加线程数去做比较,增加到500个用户10秒钟之内同时访问:
公司的项目最大响应时间是122秒,最小响应时间是542毫秒,且有百分之14.14的错误率,也就是说500个用户是有用户请求响应是失败的,然后我们从查看结果树可以看出响应数据:
看来,公司的项目性能有待提高呀。
百度,淘宝,等网址我就不测了,都是一样的测法,然后根据聚合报告去分析。以上是个人总结的压力测试,这只是简单的一个同时访问的网页的性能。