性能测试监听的主要任务是获取运行状态,收集测试结果。测试结果有事物响应时间,吞吐量及服务器硬件性能(CPU,内存,磁盘等),JVM使用情况,数据库性能状态等。在Jmeter中监听器承担测试监听工作,Jmeter的监听器可以统计吞吐量,响应时间等指标。
Jmeter监听器
Jmeter监听器比较多,长时间执行测试计划使用监听器主要有Summary Report 或者Aggregate Report
1>Summary Report
它以表格的形式显示取样结果,如下图,如果不同的取样器(不同的请求)拥有相同名字,那么在Summary Reprot 中会统计到同一行。因此在给取样器取别名时最好不要为空,建议按照业务功能来取名。
对于上图的显示结果,可做如下说明:
Label:取样器别名,例如我们操作了登录,可以设置为登录操作。
#样本:取样器运行次数。
平均值:请求(事务)的平均响应时间。
最小值:请求的最小响应时间。
最大值:请求的最大响应时间。
标准偏差:响应时间的标准偏差。
异常:事务错误率
吞吐量:吞吐率,即常说的TPS
接收:每秒接收数据包流量,单位是KB
发送:每秒发送数据包流量,单位是KB
平均字节数:平均数据流量,单位是Byte
如果你想保存测试结果,可以在下图处指定结果保存路径。如果你在测试计划中加入了多个监听器,请牢记保存测试结果只在一个监听器中设置;如果多个监听器中进行设置会重复写,写的内容其实是一样的,这完全没有必要而且影响负载机性能。
查看导出的测试结果日志,如下图
在Summary Report 界面中可以设置结果属性(保存哪些结果字段),单击配置进到下图界面。其中可以看到只有部分默认被选中,这些字段能够说明基本测试结果,在长时间运行时只记录这些字段即可,并且有利于提高负载机性能,产生的IO越大,写磁盘是物理操作,对负载机的IO会产生影响,千万别让负载机IO产生性能瓶颈。
2>Aggregate Report
Aggregate Report 以表格的形式显示取样结果,说明如下。
如下图:
Lable:请求别名
#样本:执行多少次取样。
平均值:平均响应时间,单位为毫秒。注意这个平均值是将所有请求的响应时间取平均值。
中位数:响应时间中间值。
90%百分位:90%事务响应时间范围。
最小值:最小响应时间。
最大值:最大响应时间。
异常%: 出错率。
吞吐量:吞吐量,可以理解为TPS。
接收:数据接收传输量,单位KB
发送:数据发送传输量,单位KB
3>开源监听插件
总的来说,Jmeter的监听器还算完整,但相比一些商业性能测试工具来讲,图像化结果还是有所欠缺。作为开源性能测试工具,开源社区弥补了这个缺口。Jmeter Plugins增加了众多监听器,种类丰富,图形美观,功能强大,而且还可以监听服务器硬件性能。(CPU,内存)
建议负载发生与监控进行分开,负载工具进统计TPS与响应时间。
Influx+Grafana 实时监听
非GUI方式运行Jmeter来制造负载时,对于测试结果的监听十分简陋的,仅仅是在控制台打印,后者存到文件,并不能实时地监控到结果,这种状况当然是不能忍的。
要实现InfluxDB和Grafana的实时监听,你需要确保你的数据收集、存储和展示流程设置正确。下面是一些步骤和建议,帮助你建立一个从数据写入到实时图表显示的工作流:
1. 设置 InfluxDB
安装与配置:首先确保你已经正确安装并配置了InfluxDB。
创建数据库:为你的应用创建一个新的数据库或使用现有的数据库。
写入数据:使用客户端库(如Python, Go等语言提供的官方或第三方库)、HTTP API或其他方式将时间序列数据写入InfluxDB。
2. 配置数据采集
Telegraf 或其他采集器:如果你需要从多个来源收集数据,可以考虑使用Telegraf或者其他类似的数据采集工具。它可以帮助你自动化数据收集过程,并将数据发送到InfluxDB。
3. 设置 Grafana
安装与配置:下载并安装Grafana,根据官方文档进行基本配置。
添加 InfluxDB 数据源:在Grafana中添加InfluxDB作为数据源。这通常包括输入InfluxDB的URL、数据库名称、认证信息等。
4. 创建仪表盘
设计面板:在Grafana中创建新的仪表板,并添加各种类型的面板(如图形、表格等)来可视化你的数据。
查询构建:利用Grafana内置的查询编辑器编写针对InfluxDB的查询语句,以获取你想要展示的数据。你可以使用InfluxQL或Flux(取决于你的InfluxDB版本),构建实时更新的查询。
5. 实现实时刷新
启用实时功能:确保Grafana面板设置中的“Live”选项已开启。这会让Grafana通过WebSockets连接到InfluxDB,实现实时数据更新。
调整刷新间隔:根据需求调整Grafana仪表板的自动刷新间隔,以控制页面刷新频率。对于真正的实时监控,尽量减少这个间隔时间,但也要考虑到性能影响。
6. 测试与优化
验证数据流:检查整个数据路径是否工作正常,从数据生成、传输到最终在Grafana上的显示。
性能优化:如果遇到延迟或其他性能问题,考虑优化查询、索引策略或者增加硬件资源。
完成上述步骤后,你应该能够看到来自InfluxDB的数据在Grafana上以近乎实时的方式更新。
阅读后若有收获,不吝关注,分享,在看等操作!!!