文章目录
1. 工具及原理
- jmeter压测,一般很难及时察看压测过程中应用的性能指标,总是需要等到测试完成后去看Report
- 使用Jmeter—>InfluxDb—>Grafana的组合工具方案,可以实时解决上述问题,具体原理:
- JMeter 3.2
Backend Listener
中引入的InfluxDBBackendListenerClient
允许使用UDP或HTTP协议将统计指标发送到InfluxDb数据库- Grafana通过配置获取InfluxDb中数据,实时可视化展示测试指标数据
2. influxdb使用
2.1 参考文档
- influxdb官网:https://www.influxdata.com/
- 相关API官网:https://docs.influxdata.com/influxdb/v1.7/
- github地址:https://github.com/influxdata/influxdb
- dockerhub地址;https://hub.docker.com/_/influxdb
2.2 创建influxdb-jmeter数据库
- 创建容器
# 创建网络
docker network create grafana
# 创建influxdb容器
docker run -d --name=influxdb \
--network grafana -p 8086:8086 \
-v ${PWD}/influxdb:/var/lib/influxdb \
influxdb:1.8
- 创建数据库
方式一:docker
docker exec -it influxdb influx
create database jmeter;
use jmeter;
# 查看数据表
show measurements;
方式二:curl
# 创建jmeter数据库
curl -i -X POST http://localhost:8086/query \
--data-urlencode "q=create database jmeter;"
# 查看jmeter数据库
curl -i -X POST http://localhost:8086/query \
--data-urlencode "q=show databases;"
3. jmeter配置
- 添加监听器–>后端监听器
- 设置后端监听器实现:
InfluxDBBackendListenerClient
- 修改参数:
- influxdbUrl: 改为真实的ip和db
- application:在grafana中区分展示
- summaryOnly:flase (Error展示具体错误原因)
- percentiles:50,90;95;99
- measurement:默认jmeter(同Measurement name)
4. grafana可视化
4.1 安装配置
- 创建容器
docker run -d --name grafana \
--network grafana -p 3000:3000 \
grafana/grafana:6.6.2
- 配置数据源
- 访问http://ip:3000,默认账号密码:admin/admin
- 配置数据库:Add data source–>InfluxDB–>
- Url: http://influxdb:8086(同容器Name和Port)
- Database:jmeter(同influxdb中创建的数据库)
- Min time interval:5s
- 导入Dashboard
- Import Dashboard
- Grafana.com Dashboard: https://grafana.com/grafana/dashboards/5496
- Name: Apache JMeter Dashboard
- DB name: 选择 InfluxDB
- Measurement name: 自动带出jmeter(类似于table name)
4.2 grafana可视化
- transaction:展示事物控制器中的请求,没有事物控制器则下拉选项为空
- 页面内容刷新默认为off,展示最近5min,需根据需要右上角手动设置