小牛丨软件测试学习小牛丨软件测试学习
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
  • 性能测试精华文章

    • 性能测试精华文章
    • 1. 性能测试面试到底问什么
    • 2. JMeter 压测脚本怎么设计
    • 3. 并发用户数和 TPS 怎么理解
    • 4. 响应时间吞吐量错误率怎么分析
    • 5. 性能测试场景模型怎么设计
    • 6. 性能瓶颈定位思路
    • 7. 数据库性能问题怎么排查
    • 8. 服务器监控指标怎么看
    • 9. 性能测试报告怎么写
    • 10. 性能调优建议怎么表达
⌕
🛒项目实战📦资料包🛠测试神器AIAI路线CV简历测评🧭入行测评🧪测开测评🎯训练营🏆案例❤赞赏我

5. 性能测试场景模型怎么设计

性能测试不是随便开一批线程压接口,而是要根据业务流量和用户行为设计场景模型。场景模型决定压测是否真实,也决定测试结果是否有参考价值。很多性能测试结果不可信,不是工具问题,而是场景不合理:所有接口平均分配压力、没有思考时间、测试数据不真实、压测时长太短、没有预热、没有稳定运行阶段。

面试中问性能测试场景设计,重点是看你是否能从业务出发,把真实用户行为转成压测模型。

一、先明确测试目标

不同目标对应不同场景:

  • 验证系统是否满足预期 TPS;
  • 找系统最大承载能力;
  • 验证高峰期稳定性;
  • 验证长时间运行是否稳定;
  • 验证扩容效果;
  • 验证某个接口优化效果。

目标不同,压测策略也不同。

二、选择业务场景

不是所有接口都要压。

优先选择:

  • 高频访问接口;
  • 核心交易链路;
  • 资源消耗高接口;
  • 历史故障接口;
  • 新改造接口;
  • 依赖复杂接口。

例如电商系统中,商品查询、搜索、下单、支付回调通常比个人资料编辑更重要。

三、确定业务比例

真实场景中,不同操作比例不同。

例如:

浏览商品 60%
搜索商品 20%
加入购物车 10%
提交订单 8%
支付回调 2%

如果所有接口都按 20% 平均分配,场景就不真实。

业务比例可以来自线上日志、埋点数据、网关统计或业务预估。

四、确定负载模型

常见负载模型:

  • 基准测试:低压力下获取基准数据;
  • 负载测试:按预期压力运行;
  • 压力测试:持续加压找瓶颈;
  • 稳定性测试:长时间运行;
  • 峰值测试:模拟短时间突增流量;
  • 容量测试:找最大承载能力。

面试中要说明你做的是哪种测试。

五、并发和 TPS 目标

目标可以来自:

  • 当前线上峰值;
  • 未来业务增长预估;
  • 大促活动预估;
  • SLA 要求;
  • 历史访问数据。

例如:当前峰值 QPS 300,预计活动增长 3 倍,则压测目标可以设计到 900 QPS,并留一定冗余。

六、压测节奏设计

一个完整压测场景通常包含:

  1. 预热阶段;
  2. 加压阶段;
  3. 稳定运行阶段;
  4. 降压阶段。

预热可以让 JVM、缓存、连接池进入正常状态。稳定运行阶段用于观察指标是否持续稳定。

七、思考时间

真实用户操作之间有停顿。完全没有思考时间的脚本可能不真实。

例如用户浏览商品后不会立刻无限下单。

JMeter 可以用定时器模拟思考时间,例如随机等待 1-3 秒。

八、测试数据设计

场景模型必须考虑数据:

  • 不同用户;
  • 不同商品;
  • 不同订单;
  • 足够库存;
  • 避免缓存过度命中;
  • 避免重复使用优惠券;
  • 压测数据可清理。

如果所有线程查询同一个商品,可能测的是缓存热点,不是真实业务。

九、混合场景示例

电商下单压测:

场景目标:验证高峰期核心链路承载能力
压测时长:30 分钟
预热:5 分钟
稳定运行:20 分钟
降压:5 分钟
业务比例:浏览商品 60%,搜索 20%,加购 10%,下单 8%,支付回调 2%
指标目标:95 线 < 1s,错误率 < 0.1%,TPS 达到预估峰值
监控:应用 CPU、内存、数据库、Redis、MQ、网关

十、常见错误

  • 不基于业务流量设计;
  • 所有接口平均分配压力;
  • 没有预热;
  • 压测时间太短;
  • 没有思考时间;
  • 数据重复导致缓存失真;
  • 没有业务断言;
  • 只压单接口不看链路;
  • 不监控服务器指标。

十一、面试回答模板

如果面试官问“性能测试场景模型怎么设计”,可以这样回答:

我会先明确性能测试目标,是验证预期容量、找瓶颈还是做稳定性测试。然后选择核心业务场景,比如登录、查询、下单、支付,并根据线上日志或业务预估确定各场景比例,而不是平均分配压力。接着设计并发数、TPS 目标、压测时长、预热时间、稳定运行时间和降压阶段。脚本中会加入参数化、接口关联、业务断言和思考时间,保证压力更接近真实用户行为。执行时同步监控应用、数据库、缓存、MQ、网络等指标,最后根据响应时间、TPS、错误率和资源指标判断是否达标。

十二、练习清单

  1. 设计登录压测场景;
  2. 设计商品查询场景;
  3. 设计下单混合场景;
  4. 估算业务比例;
  5. 设计预热阶段;
  6. 设计稳定运行阶段;
  7. 设置思考时间;
  8. 准备压测数据;
  9. 设置业务断言;
  10. 准备场景设计回答。

性能场景设计的核心是真实性。压测模型越接近业务流量,测试结果越有价值。

配套刷题:

  • 性能测试面试题
相关推荐

下一步可以看这些

面试通关软件测试面试通关系列精华文章

把面试题、项目、简历和训练营串成一套求职准备路径。

入行路线零基础入行软件测试专题路径

从测评、学习路线、项目、简历到面试,按顺序入行。

进阶路线初中级测试进阶高级专题路径

接口自动化、性能测试、CI/CD、复杂业务质量保障进阶路线。

AI 方向AI 测试学习路线专题页

大模型评测、RAG 测试、Agent 测试和 AI 自动化路线。

求职结果Offer 案例 / 学员案例展示

看看真实学员 Offer 案例,判断目标和学习投入是否匹配。

资料 / 交流群添加小牛微信

备注:资料、简历、AI 或找工作,领取对应资料或进交流群。

添加小牛微信
Prev
4. 响应时间吞吐量错误率怎么分析
Next
6. 性能瓶颈定位思路