Bootstrap

JMeter中的性能指标

TPS/QPS

Transaction Per Second 每秒处理的事务数
在性能测试领域里,衡量一个系统性能的好坏,主要看的是单位时间内,系统可以处理多少业务量。

各个系统的业务各不相同,为了方便使用统一指标来衡量业务的性能。用事务来代表业务操作,一个事务可以代表一个业务,也可以代表多个业务操作。

事务是用户定义的,想测试什么业务的性能,就把该业务加到事务中。

 

聚合报告

参数说明:

  • Label:HTTP请求的名字
  • Sample(样本):发了多少个请求
  • Average:平均响应时间(单位:毫秒)。默认是单个Request的平均响应时间,当使用了Transaction Controller时,也可以以Transaction为单位显示平均响应时间;
  • Medium(中位数):中位数响应时间,50%请求响应的时间(ms)
  • 90%line:90%的请求响应不会超过该时间(ms)
  • 95%line:95%的请求响应不会超过该时间(ms)
  • 99%line:99%的请求响应不会超过该时间(ms)
  • error%:出现错误的请求数/请求总数百分比值(请求错误、断言失败都会提现在这里的错误率);
  • Min:最小响应时间
  • Max:最大响应时间
  • through:吞吐量,表示每秒完成的请求数(request per second),注:through不是指每秒请求事务数。
  • received KB/sec:每秒从服务器接受的数据
  • sent KB/sec:每秒从客户端发送到服务器的数据

注意:

  • JMeter中的时间,一般单位都是ms;
  • 中位数、90%line等line的计算方式:把所有请求的响应时间进行排序,取50%、90%位置的响应时间,即50%或90%的用户不超过该值;
  • JMeter插件里的吞吐量都是指TPS(每秒完成的请求数)这里提供一个参考:Jmeter的Throughput和平均响应时间计算方法整理 - 雾火 - 博客园
  • received KB/sec、sent KB/sec反而表示了吞吐量
  • 平均数更容易受所有线程响应时间值的影响,和每一个数据都有关,会随之变化而变化
  • 中位数不易受线程组中其他线程响应时间值的影响,所以当线程组中的有比较极端的值出现时,偏大或者偏小,用中位数来表示整体数据的集中趋势就比较合适;
     

不同的接口放同一个线程和放不同线程的特点:
放同一个线程;则接口的tps即聚合报告里的吞吐量都是一致的,原因:同一个线程里也是按顺序执行,先执行完一个接口才会执行下一个接口;如操场里再跑道里跑步,后面的人只能跟着前面的人走。

放不同的线程:则接口间的性能互不影响

;