监听器
监听器(Listeners)是一种展示采样结果的测试元件,采样结果可以通过树、表格、图片加以展示,或者简单地写入某个结果文件之中。
一、jmeter--Aggregate Graph监听器
使用场景:Aggregate Graph监听器可以看到表格显示的结果与图形结果,如下图,图形结果记录的是响应时间
参数说明:
文件名:结果文件存储到磁盘的路径与文件名
仅日志错误:是否仅记录错误事物
seccess:记录成功事物
Configure:弹出配置窗口进行配置
Label:请求别名
Samples:执行了多少次取样
Average:平均响应时间,单位毫秒
Median:响应时间中间件
90%line:90%事物响应时间
Min:最小响应时间
Max:最大响应时间
Error:出错率
Throught:吞吐量,可以理解成TPS
二、Backend Listener
利用JMeter监听器Backend Listener,配合使用InfluxDB+Grafana展示实时性能测试数据
关于JMeter实时测试数据
JMeter从2.11版本开始,命令行模式下执行测试的时候会有summary的实时结果输出:
在进行长时间的测试后,这个信息会越来越多,而且这些数据在测试完成之后进行读取和分析也很不直观,如果能有一个实时的图形结果来展示这些测试数据(不用等到测试完成后在JMeter里面创建图形查看),对执行测试的测试人员来说,这样的实时图形(对整个测试过程的性能数据监控)定会提供强大的帮助和数据支持。
JMeter 2.13版本刚好提供了这样的功能,只需要在脚本中加入监听器【Backend Listener】即可。
Backend Listener
该监听器可将测试过程中实时结果数据写到时序DB(InfluxDB,graphite等),本文以InfluxDB为例来保存数据,该监听器配置如下:
具体的参数配置和说明可见JMeter官网
InfluxDB&Grafana
InfluxDB:存储实时数据的DB,安装和配置都很easy,具体可以参考InfluxDB documentation.
Grafana:DB中存储的实时数据可以在浏览器(通过Grafana或Influga)查看,本文中以Grafana为例来说明如何进行图表实时展示,关于Grafana的安装和配置,可参考Grafana Docs。
如何实现
1.前提条件
-
JMeter版本2.13或以上
-
InfluxDB和Grafana已安装,并且相应服务已启动(本文所使用系统为CentOS 6.5)
2.InfluxDB配置
-
进入InfluxDB管理页面:http://<ip of InfluxDB>:8083
-
新建DB:CREATE DATABASE jmeter
-
修改配置文件:/etc/influxdb/influxdb.conf
-
-
重启InfluxDB服务:service influxdb restart
3.JMeter数据写入InfluxDB
-
脚本里添加监听器:Backend Listener
-
配置graphiteHost,graphitePort:<ip of InfluxDB>,2003
-
执行测试
-
此时查看InfluxDB数据:
-
4.Grafana展示InfluxDB数据
-
新增Data Source,DB指向步骤2中新建的DB:jmeter
-
-
新增点击”Test Connection“确保连接到InfluxDB已经ok。
-
至此,JMeter数据写入InfluxDB,通过Grafana前端展示的整个过程已配置成功,接下来,就可以在Grafana上施展拳脚,自定义自己想要的图形展示了(具体的图形配置和如何展示,可以参考Grafana的官方文档)
-
总结
使用Backend Listener这个插件,可以不用等待整个测试执行完成之后才来查看测试结果和数据,在整个测试过程中,数据可以实时输出并以动态图表的形式在前端展示,极大方便了性能测试人员对实时性能测试数据的监控,加上Grafana强大的图表展示,每个测试人员都可以搭建出自己喜欢的图形化页面,并实时与其他人员共享,完成对整个性能测试过程中的实时数据监控。
附:Grafana非常漂亮的实时监控图表展示
jmeter 中jsr232 listener例子
目的,自己写listener是为了将测试结果格式化输出到指定的地方,便于后续阅读和整理。
此处只是简单的格式化到日志中,便于进一步整理,留有测试记录使用。
如何使用, 在jmeter中添加jsr223 listener, 语言选择javascript类型。 将如下代码加入到脚本框中。
当每次执行测试后, 打开右上角的日志(黄色的三角叹号),则可以看到日志的打印。便于上下滚动查看测试结果,比 treeview 批量浏览数据时更方便。
如下是输出的日志示例。 还可以统计出错误的用例以及执行的用例等。自行添加即可。
Response Time Graph
测试计划-线程组-右键添加-监听器-Response Time Graph
在做压力测试的时候可以看到各个请求的响应时间点。
各词解释:
Graph setting 图片设置
Interval:横坐标的刻度
Title 标题 默认
Line setting 线条设置 默认
Graph size 图片尺寸 默认
X Axis 横坐标 默认
Y Aixs 纵坐标
Scale maximum value 纵坐标长度
increment scale 纵坐标的刻度
Legend 字体设置 默认
Simple Data Writer
此监听器可以将请求过程中的数据写入到一个文件,可以当做脚本运行的简易日志
Summary Report
所有数据写入一个文件:保存测试结果到本地。
文件名:指定保存结果。
仅日志错误:仅保存日志中报错的部分。
Successes:保存日志中成功的部分。
Configure:设置结果属性,即保存哪些结果字段到文件。一般保存必要的字段 信息即可,保存的越多,对负载机的IO会产生影响。
Label:取样器名称(或者是事务名)。
#Samples:取样器运行次数(提交了多少笔业务)。
Average:请求(事务)的平均响应时间,单位为毫秒。
Min:请求的最小响应时间,单位为毫秒。
Max:请求的最大响应时间,单位为毫秒。
Std.Dev:响应时间的标准方差。
Error%:事务错误率。
Throughput:吞吐率(TPS)。
KB/sec:每秒数据包流量,单位是KB。
Avg.Bytes:平均数据流量,单位是Byte。
保存响应到文件
说明:
文件名称前缀:设置响应文件所在路径(路径必须已存在)和文件前缀,上图为例,不勾选任何上述任何复选框的情况下,如果设置文件名称前缀为:D:dirresponse.txt 和d:dir,将分别生成下图文件
Save Failed Responses only:只保存失败的响应
Save Successful Responses only:只保留成功的响应
Don't add number to prefix:不添加数字到文件名前缀
Don't add suffix:不添加文件后缀,即扩展名(注:默认情况下,jmeter会根据服务器返回的结果自动生成合适类型的文件,比如服务器返回json格式的内容,jmter会自动生成.json文件)
Add timestamp:添加时间戳到文件前缀
注意:
默认的,该监听器会为所有sampler的每次请求分别建立一个单独的文件来保存响应结果,如果只想保存某个请求的返回结果咋办?把监听器拖动到某个请求作用域下,如下,只会保存HTTP请求2的响应结果
Jmeter 图形结果分析
图表底部参数的含义如下:
样本数目:总共发送到服务器的请求数。
最新样本:代表时间的数字,是服务器响应最后一个请求的时间。
吞吐量:服务器每分钟处理的请求数。
平均值:总运行时间除以发送到服务器的请求数。
中间值:代表时间的数字,有一半的服务器响应时间低于该值而另一半高于该值。
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
查看结果树
邮件观察仪
邮件观察仪:在线程跑失败或者成功时,可以设置是否发送邮件给对应的人员。
1.添加一个邮件观察仪
2.填写基本内容
Message中
From代表,发件人
Address代表 收件人
Success Limit 代表成功次数大于x时发送邮件
Failure Limit 代表失败事务大于4时,发送邮件
SMTP sever
Host 填写邮件服务器名称
Login发件人的邮箱地址
点击TestMail 测试下是否可以发送成功,就可以投入使用了
来源:https://blog.csdn.net/lxgails00/article/details/38707493
来源:https://blog.csdn.net/lienfeng6/article/details/78284857?locationNum=1&fps=1
https://blog.csdn.net/lienfeng6/article/details/78284238
https://blog.csdn.net/ydppqh/article/details/47016767