JMeter+InfluxDB+Grafana实现可视化实时监控
一、简介
我们在使用JMeter进行接口自动化和性能测试的时候,非常依赖测试执行完成后的Report报告,而且报告太过粗糙,视图简陋难看;如果是做长时间的压力测试及自动化脚本执行,很难及时察看执行过程中的测试状况;实现可视化实时监控后可以优化解决我们遇到的这些问题。
优点:
1、实时数据
2、清晰美观的图表
3、能够储存和对比多个测试报告
4、能够向图表添加注释
简单介绍实现原理
1、influxdb是一种时序数据库,用来存放监控数据;我们需要搭建这个时序数据库服务,用来存放监控jmeter执行结果。
2、搭建好influxdb后,我们需要在jmeter中连接influxdb,将jmeter执行结果数据储存到influxdb;jmeter连接influxdb是通过“监听器”中的“后端监听器”建立连接的。
3、Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示。我们最后利用grafana连接influxdb数据库,将Jmeter执行结果分析成美观的视图页面。
二、indluxdb安装和部署
官网:https://www.influxdata.com/get-influxdb/
1、修改influxdb.conf配置文件
修改原因:Jmeter使用graphite协议去写入数据到InfluxDB,因此,需要在InfluxDB配置文件启用它。
打开influxdb.conf配置文件,修改内容如下:
ps:可以在文档中ctrl+f查找graphite,然后找到对应数据进行增加和修改(注意格式,参考原文档中格式)
[[graphite]] # Determines whether the graphite endpoint is enabled. # 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
3、启动InfluxDB服务
需要使用已配置的配置文件的话,需要指定conf配置文件进行启动;启动命令:influxd --config influxdb.conf
ps:直接使用Influxd.exe启动服务会使用默认配置
出现如下信息启动成功
如果出现下列情况,启动失败;还需要修改influxdb.conf配置文件,修改内容:bind-address = "0.0.0.0:8088"
ps:修改influxdb.conf配置文件后,再次运行 influxd --config influxdb.conf 命令。
4、操作influDB数据库
启动InfluxDB服务,窗口不要关闭。再启动一个cmd窗口,执行如下命令:influx
ps:InfluxDB自带一个客户端程序influx,可用来连接InfluxDB数据库,进行增删改查等操作数据库,语法和sql语法相同。
> show databases # 查看所有数据库 > create database "jmeter" # 创建数据库 > use jmeter # 切换数据库 > create user "admin" with password "admin" with all privileges # 创建管理员权限的用户
三、jmeter连接Influxdb
1、jmeter中通过Backend Listener连接Influxdb
ip通常是本机127.0.0.1
2、运行jmeter脚本,查询influDB数据库
influx连接数据库后,需要切换到我们创建的jmeter库中;使用查询命令:select * from jmeter
ps:JMeter和influDB连接正常的话,执行查询语句会显示查询到数据,显示空的说明连接又有问题,需要检查前面的连接步骤,重新尝试。
四、Grafana安装和部署
1、Grafana安装
官方下载地址:https://grafana.com/grafana/download?platform=windows
安装成功之后,如图所示:
2、启动Grafana服务
控制面板—管理工具—服务
3、登陆Grafana
打开浏览器访问http://localhost:3000,默认端口是3000;Grafana的默认登录名和密码admin/admin,第一次登录会提示修改密码。