
我们平时在使用JMeter做性能测试,压测的时候,通常使用非GUI方式来测试。
经过实践,我们发现此种方式对于测试结果的实时展示存在如下问题:一是查看实时测试结果,通过控制台查看日志方式,结果较多时不方便查看且不便于分享给其他人员;二是压测时间较长时,如稳定性测试,自带HTML报告需等待整个测试完成且解析速度很慢。
为了解决以上问题,我们采用了开源工具JMeter+InfluxDB+Grafana来实现压测可视化实时监控。
此方案可以在Jmeter测试计划中去除SummaryResults,把测试结果发送到数据库中持久化,这样我们就可以通过SQL查询数据库来创建展示图表。
参考方案如下:


JMeter引入Backend Listener,用于在压测过程中实时发送统计指标数据给时序数据库InfluxDB,通过配置Grafana(开源的WEB可视化看板)数据源连接到InfluxDB,我们就可以创建炫酷的可视化看板,并可以实时获取到测试指标数据。
接下来就分享如何一步步完成上述方案的实现。
1. InfluxDB的安装部署
InfluxDB:是一款用Go语言编写的开源分布式时序、事件和指标数据库,无需外部依赖。该数据库现在主要用于存储涉及大量的时间戳数据,如DevOps监控数据,APP metrics, loT传感器数据和实时分析数据。
下载安装
#wget https://dl.influxdata.com/influxdb/releases/influxdb-1.6.4.x86_64.rpm
#rpm –ivh influxdb-1.6.4.x86_64.rpm
InfluxDB配置
修改InfluxDB配置文件(/etc/influxdb/influxdb.conf)
vi /etc/influxdb/influxdb.conf
influxdb.conf中的大多数设置都被注释掉了;所有注释掉的设置将确定为内部默认值。如果配置文件中的任何未注释的设置都会覆盖内部默认值。
请注意,本地配置文件不需要包含每个配置设置。
Jmeter使用graphite协议去写入数据到InfluxDB,因此,需要在InfluxDB配置文件启用它,如下图所示:
[graphite]]
enabled = true
bind-address = ":2003"
database = "jmeter"
retention-policy = ""
protocol = "tcp"
batch-size = 5000
batch-pending = 10
batch-timeout = "1s"
consistency-level = "one"
separator = "."
udp-read-buffer = 0
修改后,使用以下命令加载InfluxDB启动
使用配置文件启动InfluxDB:
1.使用以下-config选项将进程指向正确的配置文件
influxd -config /etc/influxdb/influxdb.conf
2.启动
service influxdb start
说明:
1、新版InfluxDB无管理界,HTTP API 监听默认端口是 8086,方案中通过此端口往influxdb写入数据就是通过8086端口。如果需要更改这些默认设定,修改 InfluxDB 的配置文件 /etc/influxdb/influxdb.conf 后重启 InfluxDB 就可以了。
2、安装成功后,就可以创建对应的数据库,为了保证数据库的数据量不会无限大,可以配置策略,删除超过一定时间的数据。
InfluxDB操作
[root@pt ]# influx #登录数据库
Connected tohttp://localhost:8086 version 1.6.4
InfluxDB shell version: 1.6.4
> show databases #查看所有数据库
name: databases
name
----
_internal
> CREATE DATABASE "jmeter"#创建数据库
> use jmeter #切换数据库
Using database jmeter
> CREATE USER"admin" WITH PASSWORD 'admin' WITH ALL PRIVILEGES # 创建管理员权限的用户
2.JMeter配置
创建一个测试计划,并添加Backend Listener
设置InfluxDB IP及端口设置InfluxDBIP及端口
设置InfluxDB新创建的用户和数据保存的库

3.grafana的安装部署
Grafana是一套开源的WEB可视化平台,拥有丰富素材的开源图标展示工具,利用它,我们可以实时的展示存在influxdb数据库中的性能数据,达到可视化。
下载安装
wgethttps://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.3.2-1.x86_64.rpm
rpm –ivh grafana-5.3.2-1.x86_64.rpm
启动
service grafana-server start
使用浏览器打开 http://IP:3000/login,访问Grafana主页,默认用户和密码都是admin

配置数据源
登录Grafana成功后,首先需要添加数据源,这里选择influxdb,具体如下:

单击 save&test,确保可以连接上InfluxDB

当然grafana不仅仅只支持influxdb数据库,还支持其他的,根据实际情况选择。添加数据源成功后,然后你就可以添加模板到dashboard进行展示了。
Grafana导入模板

如果你需要其他的Grafana的dashboard的模版,可以到官方看板模板库下载:https://grafana.com/dashboards
4.监控效果如下:

实时展示了活跃的线程数目、tps、交易成功率、总共发送的请求数目、交易失败率、95%响应时间、平均时间等的性能指标。
以上就是今天要跟小伙伴们分享的内容,大家有所收获吗?还有哪些感兴趣的内容,可以评论中留言给我哦~




