从功能测试 12K 到性能测试 25K,我整理了面试必问的 30 个高频考点 + 避坑指南

做了两年功能测试,去年成功转性能测试,薪资从 12K 涨到 25K。这段时间面了七八家公司,踩了很多坑,也整理了厚厚的一本面试笔记。

今天把最核心的高频考点和真实面经分享出来,想转性能测试或者准备跳槽的朋友建议收藏,面试前过一遍至少能帮你多拿 3K。


:bar_chart: 先看真实数据:为什么性能测试这么值钱?

先给大家看几组行业数据,都是 2025-2026 年的最新统计:

  • 全国软件测试人才缺口超 30 万,但缺口集中在有技术能力的复合型测试,初级功能测试已经很卷了

  • 薪资分化非常明显:

    • 功能测试:月薪 8-15K,3-5 年经验年薪 14-22 万
    • 自动化测试:月薪 15-30K,3-5 年经验年薪 22-35 万
    • 性能测试:平均月薪 17.1K,3-5 年经验年薪 30-50 万,比功能测试高出 30%-50%
  • 大厂性能测试岗基本都要笔试 + 实操,能答到瓶颈分析层面的候选人很少,通过率不到 20%

说白了,功能测试谁都能做,但能独立做性能压测、会瓶颈定位的人,一直是稀缺资源。


:memo: 性能测试面试高频考点整理

:small_blue_diamond: 第一类:基础概念题(必问,答不对直接挂)

1. 性能测试有哪些类型?分别是什么目的?

  • 负载测试:验证系统在预期负载下的性能表现
  • 压力测试:超出正常负载,测试系统的极限和崩溃点
  • 容量测试:确定系统最大能承载的用户量 / 数据量
  • 稳定性测试(耐久测试):长时间运行,看有没有内存泄漏、性能衰减
  • 基准测试:建立性能基线,作为后续优化的参照
  • 并发测试:多用户同时访问,验证并发场景下的正确性

2. 性能测试核心指标有哪些?

  • 外部指标:响应时间、吞吐量(QPS/TPS)、并发用户数、错误率
  • 服务器指标:CPU 利用率、内存占用、磁盘 IO、网络带宽

3. 负载测试和压力测试的区别? 这是最高频的基础题,别搞混。负载测试是 “正常工作负载下表现怎么样”,压力测试是 “极限压力下能撑多久、什么时候崩”。


:small_blue_diamond: 第二类:流程与方法题(考察有没有真实项目经验)

4. 完整的性能测试流程是什么? 标准七步走:

  1. 需求分析 → 明确测试目标、范围、场景、验收指标
  2. 环境搭建 → 尽可能贴近生产环境(硬件、网络、数据量)
  3. 脚本开发 → 录制 / 编写脚本,参数化、关联、断言
  4. 场景设计 → 基准场景、混合场景、峰值场景、稳定性场景
  5. 压测执行 → 逐步加压,监控各项指标
  6. 瓶颈分析 → 定位性能瓶颈,给出优化建议
  7. 报告输出 → 总结测试结果,给出性能结论

5. 并发用户数怎么确定? 不是拍脑袋定的,一般有几种方法:

  • 参考生产环境的历史峰值数据(最准确)
  • 按业务预估:日活用户的 5%-10% 作为峰值并发
  • 二八原则:80% 的请求集中在 20% 的时间里,换算峰值

:small_blue_diamond: 第三类:瓶颈分析题(拉开差距的关键)

这部分是重灾区,很多人只会跑脚本不会分析,一深入问就露馅。

6. 压测时 QPS 上不去,可能是什么原因?怎么排查? 从外到内逐层排查:

  • 先看压测机本身:CPU / 内存是不是打满了?带宽够不够?
  • 再看网络:有没有丢包、延迟?防火墙有没有限流?
  • 应用层:线程池够不够?GC 是不是频繁?代码有没有慢查询、锁竞争?
  • 数据库层:连接池满了没?有没有慢 SQL?索引建对了没?锁等待?
  • 中间件:MQ、缓存有没有瓶颈?

7. 接口响应时间很长,怎么定位是哪一步慢?

  • 先用工具看耗时分布:DNS 解析、建连、首字节、内容传输分别占多久
  • 服务端看调用链:通过 APM 工具(SkyWalking、Pinpoint)看每个方法的耗时
  • 数据库看慢查询日志:定位是不是 SQL 的问题
  • 逐步拆分:前端→网关→应用→缓存→数据库,一层一层掐时间

8. 全链路压测怎么做?有什么难点? 核心难点:环境一致性、数据构造、链路梳理、脏数据隔离、监控覆盖。一般大厂才会做全链路,中小公司大多做单系统压测。


:small_blue_diamond: 第四类:工具与实操题

9. JMeter 的工作原理是什么?

  • 多线程模型,每个线程模拟一个用户
  • 取样器(Sampler)发请求,断言验证结果
  • 监听器收集结果,定时器模拟思考时间
  • 配置元件管理公共参数,前置 / 后置处理器处理请求前后逻辑

10. JMeter 怎么做分布式压测?

  • 一台控制机(Master),多台执行机(Slave)
  • 控制机分发脚本,执行机实际发请求
  • 结果汇总回控制机统一展示
  • 注意所有机器要在同一网段,防火墙放开端口

:bulb: 我的面试经验:这几个坑千万别踩

  1. 别只会说工具,要说思路:面试官不关心你会不会点 JMeter 的按钮,关心的是遇到问题你怎么分析
  2. 一定要结合真实项目说:每个问题最好都能带上你做过的项目例子,“我之前在 XX 项目里遇到过 XX 问题,当时是这么排查的…”,说服力完全不一样
  3. 不知道就说不知道:性能测试领域很广,没人什么都懂,瞎编很容易被追问露馅
  4. 提前准备一个你最熟悉的性能项目:几乎所有面试都会让你 “讲一个你做过的性能测试项目”,这个一定要提前梳理清楚背景、目标、你做了什么、结果怎么样

聊到这里也说句实在话,性能测试做好了,不管是涨薪还是跳大厂都挺有优势的。现在信息技术大厂前端、后端、测试岗位缺口都不小,性能测试、自动化测试尤其缺人,全国多地有岗,待遇和稳定性都还不错,有想看看大厂机会的可以走这个内推渠道:https://jsj.top/f/o38ijj反馈比自己投快很多,也能提前知道岗位的具体要求。


:pushpin: 最后给想转性能测试的朋友几点建议

  1. 别光看理论,一定要动手实操:搭个环境自己跑几遍 JMeter,比看十篇教程都有用
  2. 补开发基础:至少会看 Java/Python 代码,能看懂日志,不然瓶颈分析根本做不了
  3. 学数据库:SQL 优化、索引原理、慢查询分析,这些是性能瓶颈的重灾区
  4. 从简单项目入手:先做单接口压测,再做混合场景,最后再碰全链路

性能测试不是终点,是测试人职业上升的一个台阶。功能测试做久了容易陷入重复劳动,早点往性能、自动化、测试开发方向转,职业寿命会长很多。

你们面试的时候遇到过什么奇葩的性能题?评论区分享一下,我整理到笔记里。