目录
前言
聚合报告实战与参数详解
响应断言实战(Response Assertion)
断言持续时间(Duration to assert)
前言
性能测试关键指标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秒,则认为是超过系统耗时,不符合要求;
文章来源:https://www.toymoban.com/news/detail-752506.html
总结文章来源地址https://www.toymoban.com/news/detail-752506.html
- 断言类型很多,常规响应断言(Duration Assertion)与断言持续时间(Response Assertion)基本就足够使用了。
- 常规业务里面会有状态码断言,还有RT响应时间要求,这样的话聚合报告的异常错误率就会更满足业务需求
到了这里,关于Jmeter5.x聚合报告详解与断言实战案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!