环境
CentOS 8
JMeter 5.3
InfluxDB 1.8.0
Grafana 7.0.0
整体架构
JMeter
JMeter是Apache组织开发的性能测试工具
InfluxDB
InfluxDB是一个由InfluxData开发的开源时序型数据库
在这里用于存储JMeter产生的压测数据
Grafana
Grafana是一个多平台的数据分析解决方案
在这里作为压测结果的可视化前端
构建使用
InfluxDB + Grafana
官网提供了各自安装的详细方法,这边已经打包了一个开箱即用的环境,可以通过以下方式一键安装
依赖
Docker Engine 17.06.0+
Docker Compose 1.14.0+集成工具
Grafana 7.0.0
InfluxDB 1.8
Apache JMeter Dashboard
1 | # 未安装 docker compose 需要先安装 docker compose |
1 | # Grafana + Influxdb + JMeterDashboard 集成环境 |
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 | # jmeter/bin/jmeter.properties |
最后通过 jmeter-client 启动测试
系统性能采集
可以通过 node_exporter + prometheus + grafana 的方式构建系统监控平台,达到监控被压测服务器的目的。具体原理和 influxDB + grafana 类似,网上也有不少教程,有兴趣可以自行查找,这边不多展开。