当前位置: 首页 > news >正文

性能测试-jmeter11-报告分析

课程:B站大学
记录软件测试-性能测试学习历程、掌握前端性能测试、后端性能测试、服务端性能测试的你才是一个专业的软件测试工程师

性能测试-jmeter聚合报告

  • Jmeter聚合报告
    • 聚合报告指标
    • 重点关注的性能指标:
    • HTML测试报告
  • 分布式总结
    • jmeter直连数据库,使用jdbc(mysql)
    • 逻辑控制器
      • 一、IF控制器
      • 三、ForEach控制器
    • 定时器![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ab4f8b1126e84f22a3ab7bc00cac6e6e.png)
      • 一、同步定时器(集合点)——模拟高并发抢购场景
      • 二、常数吞吐量定时器 —— 精确控制请求速率
    • 分布式压力测试
    • 测试报告
  • 实践是检验真理的唯一标准


Jmeter聚合报告

​聚合报告(Aggregate Report)​​ 是 JMeter 中最常用、最重要的 ​​监听器(Listener)​​ 之一,它会在性能测试结束后,​​汇总并展示所有请求的统计信息​​,以表格形式呈现关键性能指标,帮助测试人员快速分析系统性能表现。

在这里插入图片描述

聚合报告指标

列名(中文)列名(英文)说明
LabelLabel请求的名称,通常是取样器(Sampler)的名称,如 “首页请求”、“登录接口”
# SamplesSamples该请求总共发送的样本数(即请求次数)
AverageAverage平均响应时间(单位:毫秒),所有成功请求的平均处理时间
MinMin最小响应时间(单位:毫秒),所有请求中最快的响应时间
MaxMax最大响应时间(单位:毫秒),所有请求中最慢的响应时间
90% Line90% Line90% 百分位响应时间,表示 90% 的请求响应时间都小于等于该值,是重要的用户体验指标
95% Line95% Line95% 百分位响应时间,同上,更严格的性能标准
99% Line99% Line99% 百分位响应时间,最严格的用户体验指标之一
Std. Dev.Std Dev响应时间的 标准偏差,数值越小表示响应时间越稳定、波动越小
Error %Error %错误率,请求失败的百分比(如连接超时、HTTP 5xx/4xx 错误),越低越好,理想为 0%
ThroughputThroughput吞吐量,单位通常是 请求/秒(requests/sec) 或 KB/sec,表示服务器每秒处理的请求数,反映系统处理能力
Received KB/secReceived KB/sec平均每秒从服务器接收的数据量(KB/秒),衡量带宽使用
Sent KB/secSent KB/sec平均每秒向服务器发送的数据量(KB/秒)

重点关注的性能指标:

响应时间

  • 观察当前的最大最小值的波动范围
  • 如果波动范围不大,以平均响应时间作为最终的性能响应时间结果
  • 如果波动范围很大,以90%(经验)的响应时间作为最终性能响应时间结果

注意事项​​

  • 1、不要在测试运行时使用 GUI 模式 + 聚合报告​​:会影响测试结果,推荐使用命令行模式运行测试,事后分析
  • 2、合理设置测试时长和并发量​​:确保测试结果具有代表性
  • 3、多次测试取平均值​​:避免偶发性网络或环境问题影响判断

HTML测试报告

执行该命令是必须在jmx文件目录下
常用命令:

jmeter -n -t [jmx file] -l [result file] -e -o [html report folder]eg: jmeter -n -t hello.jmx -l result.jtl -e -o ./report

参数描述:

  • -n: 非GUI模式执行JMeter
  • -t [jmx file]: 测试计划保存的路径及.jmx文件名, 路径可以是相对路径也可以是绝对路径
  • -l [result file]: 保存生成测试结果的文件, jtl文件格式
  • -e: 测试结束后, 生成测试报告
  • -o [html report folder]: 存放生成测试报告的路径, 路径可以是相对路径也可以是绝对路径

注意: result.jtl和report会自动生成, 如果在执行命令时result.jtl和report已存在, 必须先用删除, 否则在运行命令时就会报错
此处我们可以配合sh文件实现脚本参数动态配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
后续我们采用nginx反向代理服务器放在云服务器,sh文件自动调用jmx 的方式,暂时先做些简单的,后续我会和大家分享性能测试真实业务场景

分布式总结

jmeter直连数据库,使用jdbc(mysql)

在这里插入图片描述

逻辑控制器

在这里插入图片描述
以下是您提供的 JMeter 控制器相关内容,整理为 ​​布局美观、排版清晰的 Markdown 格式​​,包含 ​​IF控制器、循环控制器、ForEach控制器​​ 三部分,结构分明、重点突出,适合用于技术文档、笔记或演示材料:

一、IF控制器

功能
用于条件判断,​​仅当条件满足时,才会执行后续脚本​​。

⚠️ 注意:JMeter 中 IF 控制器 ​​没有 ELSE 分支​​。如果需要实现多分支逻辑,需通过编写多个 IF 语句实现。

参数
•​​判断条件​​:支持两种写法:
•直接判断(示例):“name==”{baidu}"(需根据实际语法调整,但非官方推荐方式)
•​​推荐使用 JEXL3 函数​​(更灵活、可读性更强,官方推荐方式)。
二、循环控制器
功能
控制脚本语句​​循环执行多次​​,适用于需要对特定请求或代码块重复执行的场景。
参数
•​​循环次数​​:用户自定义的整数,指定该控制器下的子节点请求需要重复执行的次数。
与线程组循环次数的对比
•​​线程组的循环次数​​:对线程组内的​​所有子节点请求统一控制​​(即所有请求共享相同的循环次数)。
•​​循环控制器的循环次数​​:控制粒度更细,​​仅针对该控制器下的子节点请求生效​​。
📌 关键规则:若线程组的循环次数为 m,循环控制器的循环次数为 n,则循环控制器子节点的请求​​实际运行总次数 = m × n​​。
(例如:线程组循环 3 次,循环控制器设置循环 2 次,则该控制器下的每个请求会执行 3×2=6 次)

三、ForEach控制器

功能
类似于编程语言中的 For 循环,​​需与“用户定义的变量”或“正则表达式提取器”配合使用​​,用于循环读取这些组件中提取的参数数据(如从接口响应提取的一组值),并逐一遍历处理。

用户定义的变量(关联前提)
当通过“用户定义的变量”提供数据时,其​​参数名需遵循固定格式​​:

•格式要求​​:固定前缀 + 连续的数字后缀(例如:param1, param2, param3…)。

这种格式用于标识一组有序的参数,便于 ForEach 控制器按顺序读取。

引用时的配置项(关键参数)
在 ForEach 控制器的配置界面中,需设置以下信息:

1.参数名的前缀​​:用户定义的变量或提取器中参数的共同前缀(例如:若参数名为 param1, param2,则前缀为 param)。
2​​索引号的范围​​:

•最小值(不包含)​​:循环起始的索引数字(不包含该值,例如填 1表示从 param1开始)。

•​​最大值(包含)​​:循环结束的索引数字(包含该值,例如填 3表示到 param3结束)。

🔴 注:图中“索引号的最小(不包含)、最大值(包含)”被黄色圆圈标记,为核心需关注的配置项。

3.循环读取的变量值要保存的新的参数名​​:每次循环读取到的参数值,会被保存到一个新的变量中(用户自定义名称,例如 currentParam),后续请求可通过该新变量名引用当前循环的值。

定时器在这里插入图片描述

核心指标:吞吐量=QPS * 60/虚拟用户数

一、同步定时器(集合点)——模拟高并发抢购场景

功能说明
同步定时器(Synch Timer)是 JMeter 中用于 ​​模拟绝对并发​​ 的核心元件,常用于电商大促(如双 11 抢购、抢红包)等需要 ​​大量用户在同一时刻发起请求​​ 的测试场景。其核心作用是:

​​当并发请求数未达到预设阈值时,暂缓请求发送;一旦达到目标并发数,所有请求将同时发出,形成瞬时高并发压力​​。

配置参数

参数名称说明注意事项
并发数(Expected Number of Users)期望的 绝对并发用户数(即同时发起请求的用户数量)需根据测试目标设置(例如:模拟 1000 人同时抢红包,则填写 1000
超时时间(Timeout in milliseconds)当等待时间超过该值时,即使未达到预设并发数,也会 立即发送已到达的请求必须设置!但建议不要过短(例如至少 1000ms),否则可能因短暂网络延迟导致请求提前发送,无法形成真正的并发效果

📌 ​​典型应用​​:在抢购测试中,通过设置并发数为目标用户量(如 1 万),并合理配置超时时间,可模拟真实用户集中点击抢购按钮的场景,验证系统在高并发下的稳定性。

二、常数吞吐量定时器 —— 精确控制请求速率

这个配置只能控制请求的发送速率,不能控制发送时间;而且Jmeter按照这个速率发送请求后,不能证明性能是否有问题。

功能说明
常数吞吐量定时器(Constant Throughput Timer)用于 ​​精确控制测试脚本的吞吐量(即单位时间内发送的请求数)​​,确保测试过程以 ​​固定的速率​​ 发送请求,常用于模拟稳定的业务负载(如每分钟处理 3000 笔订单)或验证系统在不同吞吐量下的性能表现。

核心配置与公式

  1. ​​吞吐量计算逻辑​​
    •目标吞吐量单位​​:每分钟请求数(Requests/Minute),需根据业务需求换算。

•​​关键公式​​:

•若需达到 ​​QPS(每秒请求数)​​,则目标吞吐量 = QPS × 60(例如:目标 5 QPS → 填写 5 × 60 = 300)

•图片中公式 () * 10 = QPS为示例逻辑(实际需根据上下文调整,核心是明确 QPS 与分钟级吞吐量的换算关系)。

吞吐量速率(单位:分钟) = QPS × 60​​(明确分钟级吞吐量与 QPS 的转换关系)。

​​配置参数​​

参数名称说明设置建议
目标吞吐量(Target Throughput (in samples per minute))核心参数!设置每分钟需要处理的请求数(单位:Samples/Minute根据目标 QPS(每秒请求数) 换算:
例如目标为 10 QPS → 填写 10 × 60 = 600(即每分钟 600 次请求)。
计算吞吐量的方式(Calculate Throughput based on)指定吞吐量的计算范围(如基于当前线程、所有线程等)根据测试场景选择:
- 默认 “仅当前线程” 适合单用户/单线程场景;
- 其他选项(如“所有线程”)适用于多线程协同的复杂场景。

📌 ​​使用场景举例​​:若需模拟系统每秒处理 10 个请求(10 QPS),则目标吞吐量应设置为 10 × 60 = 600(每分钟 600 个请求);若需每分钟处理 3000 个订单,则直接填写 3000。

分布式压力测试

在这里插入图片描述
应用场景:在测试时,一台测试机无法模拟要求的负载量,使用多台测试机进行模拟

•原理:一台控制机和多台代理机

•控制机发布请求指令给代理机

•代理机向服务器发送请求,收到服务器返回的响应

•控制机会对所有代理机的测试数据进行汇总和统计

测试报告

在这里插入图片描述

实践是检验真理的唯一标准


文章转载自:

http://sPVNQCtv.jmnfh.cn
http://RtcDsquP.jmnfh.cn
http://BPEFJUyk.jmnfh.cn
http://iAhtEcOB.jmnfh.cn
http://n17uV2O6.jmnfh.cn
http://mmU4JYSj.jmnfh.cn
http://GEGzKjIp.jmnfh.cn
http://gCsSf4jP.jmnfh.cn
http://Mgqz4t1D.jmnfh.cn
http://4GhNvW0L.jmnfh.cn
http://5YADvSkx.jmnfh.cn
http://YJYLnco0.jmnfh.cn
http://RimKE5xm.jmnfh.cn
http://LxXqcL7d.jmnfh.cn
http://bMiMZfYd.jmnfh.cn
http://E21oqhKF.jmnfh.cn
http://Y4pUaNDq.jmnfh.cn
http://1qMEqqa4.jmnfh.cn
http://Grff28P1.jmnfh.cn
http://EOD1UlSr.jmnfh.cn
http://7fjzihT2.jmnfh.cn
http://4EMzaFef.jmnfh.cn
http://iTzr4t8h.jmnfh.cn
http://CxDgkwf2.jmnfh.cn
http://EK6HyAlK.jmnfh.cn
http://gMF1Otdw.jmnfh.cn
http://6R4LzIBB.jmnfh.cn
http://5xOTFW3V.jmnfh.cn
http://nKSWk6xY.jmnfh.cn
http://sK5g8sok.jmnfh.cn
http://www.dtcms.com/a/384806.html

相关文章:

  • 《从请假到云原生:读懂工作流引擎选型与实战》
  • JDBC插入数据
  • Qoder 全新「上下文压缩」功能正式上线,省 Credits !
  • FPGA时序约束(五)--衍生时钟约束
  • 【C语言】第八课 输入输出与文件操作​​
  • 滤波器模块选型指南:关键参数与实用建议
  • 现有的双边拍卖机制——VCG和McAfee
  • Linux 系统、内核及 systemd 服务等相关知识
  • 企业级 Docker 应用:部署、仓库与安全加固
  • 倍福TwinCAT HMI如何关联PLC变量
  • 2025.9.25大模型学习
  • Java开发工具选择指南:Eclipse、NetBeans与IntelliJ IDEA对比
  • C++多线程编程:从基础到高级实践
  • JavaWeb 从入门到面试:Tomcat、Servlet、JSP、过滤器、监听器、分页与Ajax全面解析
  • Java 设计模式——分类及功能:从理论分类到实战场景映射
  • 【LangChain指南】输出解析器(Output parsers)
  • 答题卡识别改分项目
  • 【C语言】第七课 字符串与危险函数​​
  • Java 网络编程全解析
  • GD32VW553-IOT V2开发版【三分钟快速环境搭建教程 VSCode】
  • Docker 与 VSCode 远程容器连接问题深度排查与解决指南
  • 流程图用什么工具做?免费/付费工具对比,附在线制作与下载教程
  • IT运维管理与服务优化
  • javaweb XML DOM4J
  • 用C#生成带特定字节的数据序列(地址从0x0001A000到0x0001C000,步长0x20)
  • 解析预训练:BERT到Qwen的技术演进与应用实践
  • PCB 温度可靠性验证:从行业标准到实测数据
  • 机器人要增加力矩要有那些条件和增加什么
  • MongoDB 在物联网(IoT)中的应用:海量时序数据处理方案
  • 6U VPX 板卡设计原理图:616-基于6U VPX XCVU9P+XCZU7EV的双FMC信号处理板卡