Jmeter+Influxdb+Grafana搭建

背景

在无界面压测情况下,我们需要去额外搭建可视化观测平台。借助于Influxdb+Grafana,我们可以轻松让Jmeter的结果自动写入Influxdb,Influxdb实时存储运行结果,最后由Grafana作为展示

Jmeter

无界面运行需要修改配置(jmeter.properties)

  • jmeter.save.saveservice.response_data=true
  • jmeter.save.saveservice.output_format=csv
  • jmeter.save.saveservice.samplerData=true

注:如果jmeter运行内存过大导致卡死,可以修改jmeter.bat文件,把内存改大

复制代码
if not defined HEAP (
    rem See the unix startup file for the rationale of the following parameters,
    rem including some tuning recommendations
    set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
)

无界面运行命令

  • -n 无界面压测
  • -t 指定jmx脚本
  • -l 生成jtl测试报告,后面跟随目标路径
  • -e -o 直接生成报告html报告,后面跟随目标路径
复制代码
jmeter -n -t <jmx脚本> -l <路径>

Influxdb

下载地址:https://www.influxdata.com/downloads/

通过上述地址找到对应版本,通常我们下载v1.8版本就够用了,我用的是windows版本安装的https://dl.influxdata.com/influxdb/releases/influxdb-1.8.10_windows_amd64.zip

修改配置:

默认配置是#bind-address = "127.0.0.1"是用来监听本机的,意味着他只会和本机通信。如果Influxdb和Jmeter在同一机器上则无需修改。如果涉及分布式压测则一定需要修改下方配置

复制代码
# bind-address = "0.0.0.0:8088"

把可写入置为true,数据库名设置为jmeter

复制代码
[[graphite]]
  # Determines whether the graphite endpoint is enabled.
  # enabled = true
  # database = "jmeter"

启动服务:

安装地址cmd进入

输入命令启动服务
复制代码
influxd --config influxdb.conf

页面如上图所示,说明服务启动成功

新开一个命令行工具

输入命令登陆启动的服务器
复制代码
influx
创建对应的数据库(上面配置)的名字Jmeter
复制代码
#查看对应库是否存在
show databases
#创建对应库
create database jmeter

Grafana

下载地址:https://grafana.com/grafana/download

配置data sources

还需要添加一下数据库的账号密码和库名

配置模版

使用官方模版:https://grafana.com/grafana/dashboards/

搜索对应模版

copy模版ID

黏贴对应的ID

成功展示效果