我们在使用JMeter进行接口自动化和性能测试的时候,很难及时察看执行过程中应用的性能状况和测试结果,非常依赖测试执行完成后的Report报告,如果是做长时间的压力测试及脚本执行,不能实时监控测试过程经常会出现一些问题。
本文我们将介绍如何使用JMeter+InfluxDB+Grafana
打造可视化实时监控。
简单介绍下原理实现:
1、influxdb是一种时序数据库,用来存放监控数据;我们需要搭建这个时序数据库服务,用来存放监控jmeter执行结果。
2、搭建好influxdb后,我们需要在jmeter中连接influxdb,将jmeter执行结果数据储存到influxdb;jmeter连接influxdb是通过“监听器”中的“后端监听器”建立连接的。
3、Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示。我们最后利用grafana连接influxdb数据库,将Jmeter执行结果分析成美观的视图页面。
百度网盘下载链接: https://pan.baidu.com/s/1ou-kyIL4zN-p9NDFGMIuOg 提取码: jtyi
官网:https://www.influxdata.com/get-influxdb/
ps:官网下载2.0版本缺少配置文件,百度网盘中放的是1.8版本的influxdb,修改配置配置文件后启动就能用。
下载解压influxdb后,可以看到indluxdb结构。
修改原因: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
需要使用已配置的配置文件的话,需要指定conf配置文件进行启动,启动命令:influxd --config influxdb.conf
ps:直接使用Influxd.exe启动服务会使用默认配置;
出现如下信息启动成功
如果出现下列情况,启动失败;还需要修改influxdb.conf配置文件,修改:bind-address = "0.0.0.0:8088"
ps:修改influxdb.conf配置文件后,再次运行 influxd --config influxdb.conf 命令。
启动InfluxDB服务,窗口不要关闭。再启动一个cmd窗口,执行如下命令:influx
ps:InfluxDB自带一个客户端程序influx,可用来增删改查等操作数据库,语法和sql语法相同。
创建一个“jmeter”库(用于储存jmeter测试结果)
> show databases # 查看所有数据库 > create datbase "jmeter" # 创建数据库 > use jmeter # 切换数据库 > create user "admin" with password "admin" with all privileges # 创建管理员权限的用户
ip通常是本机127.0.0.1
命令:select * from jmeter
ps:连接正常执行查询语句会显示数据的,显示空的说明连接失败了,检查前面连接步骤,重新尝试。
安装成功之后,如图所示:
打开浏览器访问http://localhost:3000,Grafana的默认登录名和密码admin/admin,第一次登录会提示修改密码。
注意:需要导入一个json文件或者使用模版id,通过这个模版展示可视化报告的样式。
模版下载方式:
1、百度网盘下载链接:https://pan.baidu.com/s/1XGyCQA6hTXXapP431_P-9w 提取码: 35a7
2、官网下载模板或提取模版id:https://grafana.com/dashboards
导入json模版文件或者使用模版id加载后继续创建
搭建完成,恭喜大佬!