我的测试学习站TEST LEARNING HUB
开始学习
首页/精华文章/1. 性能测试面试到底问什么

1. 性能测试面试到底问什么

性能测试面试最容易被误解。很多同学以为面试官问性能测试,就是问你会不会用 JMeter、会不会加线程组、会不会看聚合报告。实际上,工具只是入门。真正的性能测试面试,重点看你是否理解性能目标、场景建模、指标含义、压测执行、监控分析、瓶颈定位和报告表达。

面试官真正想确认的是:你能不能从业务角度设计压测场景,能不能解释并发用户数、TPS、响应时间、错误率,能不能根据 CPU、内存、数据库、网络、线程池、连接池等指标判断瓶颈,能不能把测试结论讲清楚,而不是只会点按钮跑脚本。

一、性能测试面试的核心问题

性能测试面试通常围绕六个问题展开:

  1. 为什么要做性能测试?
  2. 压测目标是什么?
  3. 压测场景怎么设计?
  4. 脚本怎么准备?
  5. 执行过程中看哪些指标?
  6. 发现瓶颈后怎么分析?

如果你能按这个链路回答,面试基本不会太散。

二、性能测试关注哪些指标

常见指标包括:

  • 并发用户数;
  • TPS/QPS;
  • 响应时间;
  • 平均响应时间;
  • 90 线、95 线、99 线;
  • 错误率;
  • CPU 使用率;
  • 内存使用率;
  • 磁盘 IO;
  • 网络 IO;
  • 数据库连接数;
  • 慢 SQL;
  • GC;
  • 线程池;
  • 连接池。

面试中不要只说“看响应时间”,要把业务指标和资源指标结合起来。

三、并发用户数问什么

并发用户数不是注册用户数,也不是在线用户数。它更接近同一时间正在对系统发起请求或保持操作压力的用户数。

面试官可能问:

  • 并发用户数怎么估算?
  • 1000 用户在线等于 1000 并发吗?
  • JMeter 线程数是不是并发用户数?
  • 并发用户数和 TPS 有什么关系?

回答重点:并发用户数要结合业务访问量、活跃比例、操作频率和场景模型估算。

四、TPS/QPS 问什么

TPS 是每秒事务数,QPS 是每秒请求数。

如果一个业务事务包含多个接口,那么 TPS 和 QPS 不一定相等。

例如下单事务包含创建订单、计算优惠、提交订单三个接口,那么一个下单 TPS 可能对应多个接口请求。

面试中要说明你关注的是业务吞吐量,而不是只看工具里的请求数。

五、响应时间问什么

响应时间常看:

  • 平均响应时间;
  • 最大响应时间;
  • 最小响应时间;
  • 90 线;
  • 95 线;
  • 99 线。

平均值可能掩盖长尾问题,所以性能分析中经常关注 95 线或 99 线。

例如:平均响应时间 200ms,但 99 线达到 5 秒,说明少部分用户体验很差。

六、错误率问什么

错误率反映请求失败比例。

错误可能来自:

  • HTTP 500;
  • HTTP 502/503/504;
  • 连接超时;
  • 业务错误码;
  • 断言失败;
  • 数据冲突;
  • 限流;
  • 依赖服务异常。

压测时不能只看请求是否返回,还要看业务是否成功。

七、场景设计问什么

性能测试不是随便开 1000 线程压接口。

要先明确:

  • 压测目标;
  • 业务场景;
  • 用户比例;
  • 请求频率;
  • 数据准备;
  • 压测时长;
  • 预热时间;
  • 稳定运行时间;
  • 退出标准。

比如电商系统中,浏览商品、搜索、加购、下单、支付的比例不一样,不能平均分配压力。

八、瓶颈定位问什么

性能瓶颈可能出现在:

  • 应用服务器 CPU;
  • JVM GC;
  • 数据库慢 SQL;
  • 数据库连接池;
  • Redis 热 key;
  • MQ 积压;
  • 网络带宽;
  • 线程池耗尽;
  • 第三方接口;
  • Nginx 或网关限流。

面试中要体现定位链路:先看现象,再看资源指标,再结合日志和链路分析。

九、工具只是载体

常见性能工具:

  • JMeter;
  • LoadRunner;
  • Locust;
  • Gatling;
  • nmon;
  • top;
  • vmstat;
  • iostat;
  • Grafana;
  • Prometheus;
  • SkyWalking;
  • Arthas。

会工具很重要,但面试更看重你是否能解释压测结果。

十、面试回答模板

如果面试官问“性能测试面试到底问什么”,可以这样回答:

性能测试面试重点不是会不会点 JMeter,而是能不能完整说明性能测试流程。我一般从目标、场景、脚本、执行、监控、分析六步讲。首先明确压测目标,比如系统要支持多少 TPS、响应时间 95 线控制在多少、错误率不能超过多少;然后根据真实业务比例设计场景,比如登录、查询、下单、支付的比例;接着准备脚本、参数化和关联数据;执行时观察 TPS、响应时间、错误率,同时监控 CPU、内存、磁盘 IO、网络、数据库、连接池、线程池和 GC;如果出现响应时间升高或错误率上升,再结合日志、慢 SQL、链路追踪定位瓶颈,最后输出报告和优化建议。

十一、常见追问

追问:性能测试和压力测试区别?

性能测试关注系统在预期负载下是否满足指标;压力测试关注不断加压直到系统瓶颈或崩溃点。

追问:TPS 上不去可能是什么原因?

可能是应用 CPU、线程池、数据库慢 SQL、连接池、锁竞争、网络、限流或依赖服务瓶颈。

追问:只会 JMeter 算会性能测试吗?

不算完整。JMeter 是工具,性能测试还要懂场景、指标、监控、分析和报告。

十二、练习清单

  1. 解释并发用户数;
  2. 解释 TPS/QPS;
  3. 解释响应时间 95 线;
  4. 解释错误率;
  5. 设计登录压测场景;
  6. 设计下单压测场景;
  7. 用 JMeter 写脚本;
  8. 看 CPU 和内存;
  9. 分析慢 SQL;
  10. 写性能测试报告。

性能测试面试的核心是分析能力。工具会用只是开始,能设计场景、解释指标、定位瓶颈,才是真正的性能测试能力。

配套刷题: