0%

JMeter+InfluxDB+Grafana构建性能测试平台

环境
CentOS 8
JMeter 5.3
InfluxDB 1.8.0
Grafana 7.0.0

整体架构

JMeter

https://jmeter.apache.org/

JMeter是Apache组织开发的性能测试工具

InfluxDB

https://www.influxdata.com/

InfluxDB是一个由InfluxData开发的开源时序型数据库

在这里用于存储JMeter产生的压测数据

Grafana

https://grafana.com/

Grafana是一个多平台的数据分析解决方案

在这里作为压测结果的可视化前端

构建使用

InfluxDB + Grafana

官网提供了各自安装的详细方法,这边已经打包了一个开箱即用的环境,可以通过以下方式一键安装

依赖
Docker Engine 17.06.0+
Docker Compose 1.14.0+

集成工具
Grafana 7.0.0
InfluxDB 1.8
Apache JMeter Dashboard

1
2
3
# 未安装 docker compose 需要先安装 docker compose
curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
1
2
3
4
# Grafana + Influxdb + JMeterDashboard 集成环境
git clone https://github.com/Sinute/jmeter-grafana-influxdb.git
cd jmeter-grafana-influxdb
./build.sh

JMeter

JMeter如何使用不是这边的重点不再赘述

为了将结果上报 InfluxDB ,需要新增一个 BackendListener

执行测试,访问 http://localhost:3000 , 默认用户名密码 admin:admin

进阶

分布式性能测试

当压测需要的并发数比较大,或者压测机性能较弱时,可以考虑分布式测试方案。

jmeter-server

1
./jmeter-server -Jserver.rmi.ssl.disable=true -Djava.rmi.server.hostname=hostname -Jserver.rmi.localport=port

jmeter-client

1
2
# jmeter/bin/jmeter.properties
remote_hosts=hostname:port,hostname-x:port-x

最后通过 jmeter-client 启动测试

系统性能采集

可以通过 node_exporter + prometheus + grafana 的方式构建系统监控平台,达到监控被压测服务器的目的。具体原理和 influxDB + grafana 类似,网上也有不少教程,有兴趣可以自行查找,这边不多展开。