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个用户是有用户请求响应是失败的,然后我们从查看结果树可以看出响应数据:

看来,公司的项目性能有待提高呀。

百度,淘宝,等网址我就不测了,都是一样的测法,然后根据聚合报告去分析。以上是个人总结的压力测试,这只是简单的一个同时访问的网页的性能。

posted @ 2020-04-07 17:18  一只java小菜鸟  阅读(880)  评论(0编辑  收藏  举报