jmeter -- influxdb+grafana压测结果可视化

文章目录

  • 1. 工具及原理
  • 2. influxdb使用
    • 2.1 参考文档
    • 2.2 创建influxdb-jmeter数据库
  • 3. jmeter配置
  • 4. grafana可视化
    • 4.1 安装配置
    • 4.2 grafana可视化

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配置

jmeter -- influxdb+grafana压测结果可视化_第1张图片

  • 添加监听器–>后端监听器
  • 设置后端监听器实现: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可视化

jmeter -- influxdb+grafana压测结果可视化_第2张图片

  • transaction:展示事物控制器中的请求,没有事物控制器则下拉选项为空
  • 页面内容刷新默认为off,展示最近5min,需根据需要右上角手动设置

你可能感兴趣的:(性能测试,jmeter)