JMeter 简单分析结果树、聚合报告以及图形结果

结果树

  • 取样器结果:返回值报200,表示执行接口调试成功
  • 请求:发送的数据
  • 响应数据:返回的数据
  • Thread Name:线程组名称
  • Sample Start: 启动开始时间
  • Load time:加载时长
  • Latency:等待时长
  • Size in bytes:发送的数据总大小
  • Headers size in bytes:发送数据的其余部分大小
  • Sample Count:发送统计0
  • Error Count:交互错误统计
  • Response code:返回码
  • Response message:返回信息
  • Response headers:返回的头部信息

聚合报告

  • Label:HTTP Request name属性值。
  • Samples:测试的过程中一共发出了多少个请求即总线程数,(如果模拟10个用户,每个用户迭代10次,这里就显示100),对应图形报表中的样本数目。
  • Average:单个Request的平均响应时间,计算方法是总运行时间除以发送到服务器的总请求数,对应图形报表中的平均值。
  • Median:50%用户的响应时间。
  • 90%Line:90%用户的响应时间。
  • Min:服务器响应的最短时间。
  • Max:服务器响应的最长时间。
  • Error%:本次测试中出错率,请求的数量/请求的总数。
  • Throughput:吞吐量,默认情况下表示每秒完成的请求数。
  • KB/Sec:每秒从服务器接收到的数据量,即每秒钟请求的字节数,时间单位均为ms。

图形结果

  • 样本数目:总共发送到服务器的请求数。
  • 最新样本:代表时间的数字,是服务器响应最后一个请求的时间。
  • 吞吐量:服务器每分钟处理的请求数。
  • 平均值:总运行时间除以发送到服务器的请求数。
  • 中间值:有一半的服务器响应时间低于改值而另一半高于该值。
  • 偏离:表示服务器响应时间变化、离散程度测量值的大小。

Question:
怎样计算Ramp-up period时间?

  • Ramp-up period是指每个请求发生的总时间间隔,单位是秒。如果Number of Threads设置为5,而Ramp-up period是10,那么每个请求之间的间隔就是10/5,也就是2秒。Ramp-up period设置为0,就是同时并发请求。

测试报告分析思路:

  • 一、压测结果指标:
    Samples:表示一共发出的请求数
    Average:平均响应时间,默认情况下是单个Request的平均响应时间(ms)
    Error%:测试出现的错误请求数量百分比。若出现错误就要看服务端的日志,配合开发查找定位原因
    Throughput:简称TPS,吞吐量,默认情况下表示每秒处理的请求数,也就是指服务器处理能力,TPS越高说明服务器处理能力越好

  • 二、压测结果分析:
    1)Error%:确认是否允许错误的发生或者错误率允许在多大的范围内;
    2)Throughput:吞吐量每秒请求的数大于并发数,则可以慢慢的往上面增加;若在压测的机器性能很好的情况下,出现吞吐量小于并发数,说明并发数不能再增加了,可以慢慢的往下减,找到最佳的并发数;
    3)压测结束,登陆相应的web服务器查看CPU等性能指标,进行数据的分析;
    4)最大的TPS:不断的增加并发数,加到TPS达到一定值开始出现下降,那么那个值就是最大的TPS。
    5)最大的并发数:最大的并发数和最大的TPS是不同的概率,一般不断增加并发数,达到一个值后,服务器出现请求超时,则可认为该值为最大的并发数。
    6)压测过程出现性能瓶颈,若压力机任务管理器查看到的CPU、网络和CPU都正常,未达到90%以上,则可以说明服务器有问题,压力机没有问题。
    7)影响性能考虑点包括:数据库、应用程序、中间件(tomcat、nginx)、网络和操作系统等方面。

  • 三、性能测试关注点
    客户端响应时间是否满足要求
    服务器资源使用情况是否合理
    应用服务器和数据库资源使用是否合理
    最大访问数,最大业务处理量是多少
    系统可能存在的瓶颈在哪里
    能否支持7*24小时的业务访问
    架构和数据库设计是否合理
    内存和现成资源是否可以被正常回收
    如果系统出现不稳定情况,其可恢复性如何

一般常识

CPU、TPS存在明显波动则存在瓶颈
并发时服务日志级别需调整为error级别
通常请求由一个线程负责执行,占用一个逻辑CPU
若并发量增加而CPU使用率未增加则存在瓶颈
CPU负荷集中在应用服务器和数据库服务器上
内存负荷集中在应用服务器和数据库服务器上
(CPU是负责运算和处理的,内存是交换数据的)
磁盘负荷集中在数据库/文件服务器上
对外网络流量集中在负荷均衡器(nginx、LVS)上

比如:
针对这个接口对500,800,1000,1500个线程(即用户)进行测试,Ramp-up period(in seconds)的值设为0,即同时并发请求,循环1次。
1、根据聚合报告以及图形结果各项参数指标分析
(1)每间隔一秒钟并发的线程数越多,接口99%Line参数值先增加后减小,1500个线程时基本达到峰值;
(2)每间隔一秒钟并发的线程数越多,吞吐量先减后增,每秒钟完成的请求数减幅较大。
2、根据图形结果分析
(1)随着发送到服务器的请求数越来越多,偏离数量越来越大,服务器越来越不稳定;
(2)发送到服务器的请求数增加,吞吐量(即服务器每分钟处理的服务器的请求)先减少后增加。

总结:

一般情况下,当用户能够在2秒以内得到响应时,会感觉系统的响应很快;当用户在2-5秒之间 得到响应时,会感觉系统的响应速度还可以;当用户在5-10秒以内得到响应时,会感觉系统的 响应速度很慢,但是还可以接受;而当用户在超过10秒后仍然无法得到响应时,会感觉系统糟透了,或者认为系统已经失去响应,而选择离开这个Web站点,或者发起第二次请求。

你可能感兴趣的:(软件测试)