文章目录
Jmeter+prometheus+grafana性能测试
背景
在现代社会中,人们对于应用程序的响应速度和性能体验提出了越来越高的要求。无论是电子商务网站、社交媒体平台还是企业级软件系统,都需要能够承受大量用户的访问和操作。如果系统在高负载情况下出现响应延迟、崩溃或数据丢失等问题,将严重影响用户体验和客户满意度,甚至可能导致业务损失,因此有必要在系统上线前提前评估系统的性能。
目标
当前我们的系统主要是文件表单操作,因此对系统的磁盘要求比较高,为了保证各接口性能稳定性、高可用性,进行性能测试,主要评估系统性能、分析性能变化趋势、定位系统瓶颈风险、协助规划系统容量。
设计思路
性能测试集成得流程图
原理
jmeter
基于协议,通过多线程的方式模拟用户并发,在不同场景下施压服务器
- 基于协议:包括http,https,tcp,udp,socket,websocket,基于协议发起请求
- 多线程:通过多线程的方式,模拟并发用户,施压服务器
- 涉及场景:jmeter 方法,元件;设计用户使用系统的关联,思考时间,集合点,对结果进行断言
可以收集到服务器的性能测试指标: 统计 TPS、响应时间、线程数、错误率等信息;Jmeter通过监控工具node-exporter可以将统计出的结果实时异步发送到 prometheus 中
-
Prometheus是一套开源的监控+预警+时间序列数据库的组合,本身不具备收集监控数据功能,需要使用http接口来获取不同的export收集的数据,存储到时序数据库中。
-
grafana:监控大屏, 一个web端的展示平台, 通过更换模板展示不同的效果,可以直接拉取influxdb数据显示出来在页面图标里,直观并美观。
案例
20个用户并发提交表单演示
启发
- 性能测试是基于现有生产环境的用户行为来设计性能场景,因此在做性能测试前需要先做好调研。
- 针对不同的性能测试场景,应该选择适用的工具。
来设计性能场景,因此在做性能测试前需要先做好调研。 - 针对不同的性能测试场景,应该选择适用的工具。
- 性能结果的分析,需要具备大量的理论知识,对被测试者提出了很大的挑战。