0


Jmeter5.x聚合报告详解与断言实战案例

前言

    性能测试关键指标TPS,QPS,RT的初步认知,Jmeter5.x常用聚合报告中每个参数的含义讲解;压测结果响应断言与持续时间断言运用;

聚合报告实战与参数详解

性能测试专业名词

TPS:每秒事务数(Transactions Per Second), 进行压测的可以是一个接口、多个接口、一个业务流程;如,订单查询接口,下单流程等

QPS:每秒查询数(Queries Per Second),指一台服务器每秒能够响应客户端的查询次数;针对简单查询操作的数据统计,不包括描述增删改等业务操作;假设只做单纯的查询操作,那么可以理解为TPS = QPS。

RT:服务器响应时间(Response Time),即客户端请求服务端整体耗时时间,最优时间是在毫秒级别内;

专题课程测试接口文档

实战案例解析

压测接口:课程列表接口 (接口文档参考:专题课程测试接口文档)

参数设置:线程数300,循环压测,持续时间20s;

压测结果聚合报告

参数设置:线程数1500,循环压测,持续时间20s;压测结果聚合报告

参数设置:线程数3000,循环压测,持续时间20s;压测结果聚合报告

聚合报告参数解读

lable:sampler的名称
Samples(样本):一共发出去多少请求,例如10个用户,循环10次,则是 100
Average(平均值):平均响应时间
Median(中位数):中位数,也就是 50% 用户的响应时间

90% Line(90%百分位):90% 用户的响应不会超过该时间 (90% of the samples took no more than this time. The remaining samples at least as long as this)
95% Line(95%百分位):95% 用户的响应不会超过该时间
99% Line(99%百分位):99% 用户的响应不会超过该时间
min(最小值):最小响应时间
max(最大值):最大响应时间

Error%(异常占比):错误的请求的数量/请求的总数
Throughput(吞吐量):吞吐量——默认情况下表示每秒完成的请求数(Request per Second) 可类比为qps
Received KB/Sec:每秒接收数据量
Sent KB/Sec:每秒发送数据量

通常 吞吐量 与 异常占比 是聚合报告的主要关注点和接口问题的直接反馈;

总结:

    测试人员做项目性能测试,需要逐步将线程数增加,根据聚合报告汇总出线程数最佳的环境;在互联网大厂性能压测也是不断调整压测数值,获取最优和最差,中间数值进行总结汇报。参数调高,造成服务器过载,响应时间相应会逐步增加,错误率也相对会增加,吞吐量也会逐步下降,直至压测崩溃领临界值;为了达到最佳吞吐量,最佳响应时间,且必须是错误率是0,此时线程数则是最佳的。

响应断言实战(Response Assertion)

    **断言assert**指测试计划根据程序设置,过滤出满足条件的响应数据;是当用户定义的约束条件不满足时触发异常;通俗的说,**判断程序结果是否符合预期**

使用场景

    多处场景可以使用,但建议在测试计划中使用较简单的断言,如,响应断言;因为使用复制断言会消耗压测机器的性能,导致测试结果存在偏差;

    在项目中,存在业务代码和状态代码之分,通常是根据状态代码来判断数据操作是否成功;用户A和用户B进行登录操作,响应状态状态码都是200,但是用户A由于密码错误,业务状态码是-1,此时则需要断言来过来出此异常请求;再如,下单接口,返回状态码200成功,还需要判断业务状态码是否返回成功标识,等等场景;

  • 测试字段(选择哪些字段进行断言)- **响应文本 Text response: **响应服务器返回的文本内容- 响应代码 Response Code: 断言Http 响应码是否符合预期,比如 200- 响应消息 Response Message : 验证响应消息是否按预期显示- 响应标头 Response Headers : 断言查看特定的 HTTP 标头是否存在- 文档(文本)Document (text): 基本不用,高负载可能会占用大量内存导致OOM- URL样例 URL Sampled : 针对请求的 URL 使用以确保它符合预期

  • 模式匹配的规则- 包括 Contains: 响应内容【包含】需要匹配,支持正则表达式。- 匹配 Matches: 响应内容要【完全匹配】需要匹配代表响应成功,大小写不敏感,支持正则表达式。- 相等 Equals: 响应内容要【完全等于】需要匹配代表响应成功,大小写敏感,内容是字符串- 字符串Substring: 响应内容【包含需要匹配】的内容才代表响应成功,大小写敏感,内容是字符串- 不相等 Not: 取反操作,不相等- OR: 应用 OR 组合中的每个断言,将多个断言模式进行OR连接

以上为Jmeter响应断言测试字段和模式匹配的规则列表,加粗部分为常用部分;

案例实战

判断订单列表接口中返回数据包含“Jmeter5.x性能测试”数据;

符合要求响应数据结果

将测试模式的值改为“Jmeter5.x性能测试test”,不符合要求的数据响应结果

且聚合报告中各项参数也产生变化,错误率达到百分百;

断言持续时间(Duration to assert)

持续时间断言(Duration to assert):用于判断服务器的响应时间,作用对象是服务器。规定时间内响应成功才算符合要求的请求;

一般是验证接口多大概率满足业务需求;错误率同时会纳入聚合报告,做数据统计说明;

持续时间(Duration in milliseconds):响应时间设置(单位毫秒),如果响应时间大于设置的响应时间,断言失败,否则成功

场景一:下单接口进行100笔订单的并发测试,在1秒内下单成功并做出响应的只有90笔,那么下单接口成功率只有90%;而其余10笔订单超过1秒,则认为是超过系统耗时,不符合要求;

总结

  • 断言类型很多,常规响应断言(Duration Assertion)与断言持续时间(Response Assertion)基本就足够使用了。
  • 常规业务里面会有状态码断言,还有RT响应时间要求,这样的话聚合报告的异常错误率就会更满足业务需求
标签: java 后端 jmeter

本文转载自: https://blog.csdn.net/u011673769/article/details/127445125
版权归原作者 ♂老码♂ 所有, 如有侵权,请联系我们删除。

“Jmeter5.x聚合报告详解与断言实战案例”的评论:

还没有评论