本文共 2197 字,大约阅读时间需要 7 分钟。
目录
一、工具介绍
1. 背景:做过压测的同学都知道,一般我们用 JMeter 做压力测试时,都是使用 JMeter 的控制台,或者装个插件,或者用 JMeter 生成的HTML察看结果,这样也没太大问题,毕竟我们做压测着重关注TPS、响应时间、错误率。但是用这三种方式监控压测结果会面临一些问题:
- 在 GUI 用插件看曲线,做高并发时并不现实
- 在场景运行时间比较长的时候,采用生成 HTML 的方式,会出现消耗内存过大的情况
- 生成的结果保存之后再查看比较麻烦
而用Jmeter + InfluxDB + Grafana这套系统,来监控压测结果可以解决这些问题
2. 以下三个工具配合使用:
Jmeter:压测执行工具
InfluxDB:存储Jmeter压测结果数据
Grafana:以图形化的方式展示压测结果
3. 数据流转图:
运行Jmeter进行压测,把压测数据存放在InfluxDB中,然后Grafana定时去读取InfluxDB中的数据并展示出来,整个过程都是异步的方式进行数据传递。
二、InfluxDB安装及使用(Windows版)
1. 下载地址:
https://dl.influxdata.com/influxdb/releases/influxdb-1.8.4_windows_amd64.zip
2. 下载后直接解压,不用安装
3. 修改influxdb.conf配置文件
(1). 修改dir路径
如果不修改dir路径,压测数据会默认存储在C盘里,调整下数据存储位置:
其中:
meta 用于存储数据库的一些元数据
wal 目录存放日志文件
data 目录存放实际存储的数据文件
打开influxdb.conf配置文件,修改数据存储位置,不需要提前建好meta/data/wal目录,直接改配置文件内容即可。
(2). 修改[[graphite]]的内容
(3). 修改[http]的内容,主要是打开端口,jmeter写入数据和Grafana读取数据都会用上
8083:InfluxDB 的 Web 管理界面端口,web管理端 用户名和密码都是admin
8086:InfluxDB默认监听端口
8088:集群端口
4. 运行influxdb
直接打开influx.exe文件的话,不会读取我们更改的配置,需要指定influxdb.conf文件运行,配置的内容才能生效,在cmd窗口切换到influx.exe所在的目录,执行命令:
influxd --config influxdb.conf
出现下图信息,表示启动成功:
5. 创建数据库
启动成功后,点击influx.exe文件,出现一个新的命令行窗口,在窗口中输入命令:create database 数据库名 创建数据库,存储Jmeter压测结果数据,后面 Grafana也会用到该数据库读取数据。
三、Grafana安装及使用(Windows版)
1. 简介:Grafana是一个可视化面板工具,有非常漂亮的图表展示功能、有齐全的度量仪盘表和图形编辑器。
2. 下载地址:
3. 下载后直接解压
4. 运行Grafana,直接双击bin文件夹下的grafana-server.exe,进行运行,然后浏览器输入http://localhost:3000/login(端口号可在conf文件夹sample.ini的文件中修改http_post,去掉前面的分号生效,我们这里不操作修改) 登录账号密码都是:admin
四、Jmeter、InfluxDB、Grafana 三者关联使用
1. 登录Grafana,打开设置,添加数据源
2. 设置里面,name随便填写,type选择InfluxDB,HTTP选择InfluxDB所在的IP地址和在influxdb.conf中配置的端口,Details中配置我们前面新增的数据库,账号密码都是:admin
备注:下面的Min time interval 是Grafana多少时间去InfluxDB读取一次数据,而InfluxDB 5s去获取一次Jmeter得压测数据,建议Min time interval 也改成5s。
3. 点击Save & Test 按钮,出现下面提示表示配置成功
4. 导入图形化模板
官网有很多Jmeter模板供下载:
选择一款人气比较高的一款:
点击+ 选择导入,点击Upload .json File 按钮操作导入
5. Jmeter关联InfluxDB
(1). jmeter添加后端监听器
(2). 后端监听器配置的内容:
图中参数的意思:
influxdbUrl:http://localhost:8086 为influxdb所在服务器的IP地址,db=JmeterDb为刚才创建的数据库名称
summaryOnly:true 这里改成true,只存标题,如果要显示接口报错信息详细内容改成false
samplersRegex:.* 正则表达式,支持全部请求方法,可以改成仅支持post或者get方法
application: 可以看作为场景名称,取一个场景名
(3). 运行jmeter请求,可以在Granfan看到实时性能状况了
设置展示多长时间内的监控数据,以及页面多长时间自动刷新
可以自定义模板内容,比如把表头名称改成汉语
转载地址:https://blog.csdn.net/p302519898/article/details/127358189 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!