FEATURED · 精选文章

【Jmeter实战】从0到1完成一次性能测试

发布时间 / 2026/8/29 20:31:07
来源 / 创域科博编辑部
栏目 / 资讯中心
【Jmeter实战】从0到1完成一次性能测试 摘要本文以加解密服务为实战对象完整记录了一次性能测试的全过程包括需求分析、场景设计、脚本开发、压测执行、监控分析和性能调优适合性能测试初学者和希望规范流程的测试工程师参考。目录一、项目背景与测试目标1.1 项目背景1.2 性能测试目标1.3 业务场景二、测试工具与环境2.1 工具选型2.2 环境配置三、测试场景设计3.1 基准测试3.2 负载测试3.3 压力测试3.4 稳定性测试四、脚本开发与参数化4.1 脚本结构4.2 关键参数化4.3 断言五、压测执行与监控5.1 执行过程5.2 监控指标六、结果分析与问题定位6.1 优化前存在的问题6.2 性能瓶颈分析问题1并发时响应时间超标问题21000并发以后错误率飙升问题32000并发以后TPS上不去6.3 调优措施6.4 优化后的测试结果汇总一、项目背景与测试目标1.1 项目背景系统名称加解密服务架构简述前端 → 微服务 → 业务应用层测试环境k8s环境256G/48核 * 5个节点1.2 性能测试目标指标目标值并发用户数6000平均响应时间≤ 20ms99%响应时间≤ 15msTPS≥ 6000错误率≤ 0.0001%1.3 业务场景本次重点测试以下核心业务加密接口和解密接口二、测试工具与环境2.1 工具选型用途工具压测工具JMeter 5.5服务器监控top / docker stat2.2 环境配置角色配置压测机128C256G应用服务器48C256G × 5k8s部署网络内网万兆三、测试场景设计3.1 基准测试目的验证单用户下接口响应是否正常并发1用户持续时间5分钟3.2 负载测试目的找到系统性能拐点并发梯度500 → 1000 → 2000 → 3000 → 5000 → 5500 → 6000每轮持续时间20分钟3.3 压力测试目的验证系统极限承载能力并发6000 → 7000持续时间各20分钟3.4 稳定性测试目的验证长时间运行是否存在内存泄漏并发6000持续时间12小时四、脚本开发与参数化4.1 脚本结构测试计划 ├── 线程组并发用户 ├── HTTP请求头管理器 ├── HTTP请求加密/解密接口 ├── JSON断言 ├── 查看结果树调试阶段使用 ├── 聚合报告调试阶段使用 └── 常数吞吐量控制器4.2 关键参数化参数来源说明number9位随机整数6000个测试账号token平台生成管理员生成长认证token4.3 断言断言响应码200响应体包含status: 0五、压测执行与监控5.1 执行过程启动Prometheus Grafana监控使用linux命令监测目标微服务及相关依赖服务运行基准测试确认脚本无误按梯度执行负载测试记录每轮TPS、RT、错误率5.2 监控指标层级关键指标应用CPU、内存、TPS、RT、错误率六、结果分析与问题定位6.1 优化前存在的问题1接口单发RT大于20ms;2) k8s内部有负载均衡策略但k8s流量入口traefik服务未做负载均衡3加解密服务有写日志的操作IO成为另一个瓶颈6.2 性能瓶颈分析问题1并发时响应时间超标现象99%RT超过目标20ms排查应用服务CPU使用率达85%原因order表user_id字段缺少索引问题21000并发以后错误率飙升现象1000并发以后返回大量报错排查IO瓶颈导致traefik服务自动重启原因traefik服务自身bug问题32000并发以后TPS上不去现象2000并发以后TPS增长缓慢排查未对traefik服务做负载均衡原因k8s内部本身有负载均衡策略但存在多个traefik实例时需在k8s外部对多个traefik配置负载均衡策略6.3 调优措施1、升级网关服务traefik,增加网关服务实例同时安装nginx对traefik进行负载均衡2、升级加解密服务去除服务调用日志纪录库表的动作3、请求分流指定几个特定的网关对加解密服务进行分流避免影响其他服务的调用6.4 优化后的测试结果汇总并发数TPS平均RT99%RT错误率1000100214ms13ms0%2000200316ms16ms0%3000300115ms15ms0%5000502117ms16ms0%6000600118ms16ms0.000001%
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻