本文不介绍压测的规范与技术指标,本文是演示针对Jmeter如何将压测过程中的数据指标,通过Prometheus采集存储,并在Granfan平台进行仪表盘展示;
介绍
系统压测属于日常项目开发中的一个测试环节,使用测试工具模拟真实用户行为,在已知的软硬件资源下,通过批量压测对项目的服务性能进行检验,从而了解系统接口稳定性、每秒并发瓶颈、错误率多少、响应时间、QPS、流量大小等等;也是为了项目上线后,通过对未来可能达到的系统上限与并发问题,提前进行预测与检验;防止真实上线后未经压力测试,无足够的性能压测评估,当大量请求到来时,可能引起未知的系统崩溃;通过压测,可以撑握系统峰值能力与并发能力,并提前通过风险策略与技术干预,降低系统宕机风险;因此对于企业来说,压测是系统测试与验收过程中必不可少的要求;
常见压测场景:
- 业务系统上线前压测检验
- 服务线上遇到性能瓶颈或问题,需要压测复现
- 对业务接口进行响应测试与并发测试,评估接口响应性能
- 对不同硬件资源条件下进行系统压测,评估服务软硬件性能
- 企业或合作方明确要求对系统软件验收压测
压测集成工具
Jmeter
JMeter 是一个开源的负载测试和性能测量工具,由Apache软件基金会开发。JMeter采用JAVA开发,它主要用于测试Web应用程序,但也可以测试各种服务。JMeter可以模拟多个用户同时发送请求到服务器,以测试其负载能力和性能。
JMeter 是一个强大的工具,适用于开发者和测试工程师用来确保他们的应用程序可以承受预期的用户负载。
主要特点:
- 多协议支持:支持HTTP, HTTPS, FTP, SOAP, REST, TCP等。
- 可扩展:可以通过插件扩展功能。
- 友好的GUI:提供图形用户界面,便于设计和执行测试。
- 结果分析:可以生成图形报告,帮助分析测试结果。
- 多线程框架:允许并发和同时抽样多个函数。
使用场景:
- 性能测试:测试应用程序在高负载下的表现。
- 负载测试:确定应用程序的最大操作能力。
- 压力测试:测试应用程序在超过正常负载条件下的表现。
官方网站:Apache JMeter - Apache JMeter™
Prometheus
Prometheus 是云原生计算基金会项目,是一个系统和服务监控系统。它以给定的时间间隔从配置的目标收集指标,评估规则表达式,显示结果,并可以在观察到指定条件时触发警报。
Prometheus监控系统包括丰富的多维数据模型、简洁而强大的PromQL查询语言、高效的嵌入式时间序列数据库以及与第三方系统的150多个集成;
Prometheus 与其他指标和监控系统的区别在于:
- 多维数据模型(由指标名称和键/值维度集定义的时间序列)
- PromQL,一种强大而灵活的查询语言,可以利用这种维度
- 不依赖分布式存储;单个服务器节点是自治的
- 用于时间序列收集的HTTP拉模型
- 通过批处理作业的中间网关支持推送时间序列
- 通过服务发现或静态配置发现目标
- 多种图形和仪表板支持模式
- 支持分层和水平联合
Github地址:GitHub - prometheus/prometheus: The Prometheus monitoring system and time series database.
Grafana
Grafana 开源是开源可视化和分析软件。它允许您查询、可视化、警报和探索您的指标、日志和跟踪,无论它们存储在何处。它为您提供了将时间序列数据库 (TSDB) 数据转换为富有洞察力的图表和可视化的工具。
Grafana支持非常多的数据源,同时又有强大的可视化、告警等非常强大的功能,因此在数据分析、指标追踪和数据查询等方面,需多的公司在运维指标、日志分析、大屏展示等有实际应用;在项目监控、运维、服务器指标等业务上,是一个强大可靠的分析平台;
注:相关软件从各自平台或官网下载即可。Jmeter安装比较简单,下载压测包后解压即可用(需安装jdk1.8+),Grafana和Prometheus安装过程参考《Grafana,Loki,Tempo,Prometheus,Agent搭建日志链路监控平台》,此处不在重述;
Jmeter集成插件
待上述软件安装后,我们通过一个简单示例演示Jmeter工具如何配置Prometheus插件与Prometheus采集指标;
Jmeter配置插件
启动Jmeter后,通过菜
集成JMeter、Prometheus与Grafana:构建压测性能监控平台

最低0.47元/天 解锁文章
470

被折叠的 条评论
为什么被折叠?



