# 测试开发面试题全攻略
大家好,我是小林。
测试开发这个岗位,说难不难,说简单也绝对不简单。它既要求你懂测试的基本功——会设计用例、会提 Bug、懂测试流程,同时还要求你有开发能力——能写框架、会写代码、搞得定自动化。
很多同学在准备面试的时候会发现,面试官问的东西特别杂,有时候问你一个登录功能怎么测,有时候又问你 RestAssured 和 HttpClient 有什么区别,有时候直接上来就是"说说你们的性能测试是怎么做的"。
为了帮大家把这些散乱的考点梳理清楚,我整理了四个方向的面试题,分别是业务测试、Java 自动化测试、Python 自动化测试和性能测试。
- 👉 业务测试面试题
- 👉 Java 自动化测试面试题
- 👉 Python 自动化测试面试题
- 👉 性能测试面试题
这四个方向基本覆盖了测试开发面试 80% 以上的高频考点,下面我来一个一个说。
# 业务测试:地基不牢,地动山摇
不管你是专攻自动化还是性能测试,业务测试的基本功永远是面试官最先考察的。这部分内容看起来"基础",但很多工作了好几年的人回答起来也会有漏洞。
业务测试面试题涵盖的范围其实很广:
- 软件测试基础:黑盒白盒的区别、等价类和边界值怎么用、缺陷的生命周期、冒烟测试和回归测试分别是什么……这些是必考题,答不好印象会大打折扣。
- Web 测试:从登录功能、购物车、支付流程,到跨浏览器兼容性测试,都是高频场景题。考察的是你能不能把一个功能点说全、说透,而不是只会说"输入正确账号密码能登录"这种流水账。
- App 测试:中断测试、弱网测试、安装卸载升级、ANR 和 Crash 怎么分析,这些是 App 测试特有的考点,和 Web 测试有很大区别。
- H5 和小程序测试:现在很多产品形态是混合开发,H5 和小程序的测试重点又和纯 Native 不一样,面试官考这块是在看你有没有实际项目经验。
- 接口测试:RESTful API 的基础、HTTP 状态码的含义、Postman 怎么用、如何判断一个 Bug 是前端还是后端的问题……这部分是业务测试和自动化测试的交叉地带,非常重要。
业务测试这块的准备建议是:不要死背答案,要真的去理解每个测试点背后的逻辑。比如为什么要测"支付中断"这个场景?因为用户在弱网环境下支付的时候,如果系统没有做好幂等处理,就可能出现钱扣了但订单没生成,或者钱没扣但订单生成了这种严重问题。理解了背后的原因,面试的时候才能举一反三,不会被面试官追问两三句就答不上来了。
# Java 自动化测试:企业级框架的硬核考察
Java 自动化测试在大厂里非常主流,主要原因是很多公司的后端本身就是 Java 技术栈,测试团队用 Java 做自动化和开发协作起来更顺畅。
这部分面试题分成了三块:接口自动化(高优)、Web 自动化(中等)、App 自动化(低优),优先级是明确区分的,面试重点也不一样。
接口自动化是重中之重,基本上每次面试都会问。典型问题包括:
框架是怎么搭的?用了哪些技术栈?这道题没有标准答案,但你要能说出一个完整的技术组合,比如 RestAssured + TestNG + Maven + Allure,并且能解释清楚每个组件的职责。接口关联怎么做、Token 怎么管理、数据驱动怎么实现、Mock 测试怎么做……这些都是必须会的。
有一个问题很多同学会卡住:并发测试怎么做。很多人只知道 JMeter 做并发,但其实 TestNG 本身支持多线程并发执行,而且通过 CountDownLatch 可以模拟真正的瞬时并发。面试官如果问到这个,说明他对技术细节很在意,你最好能给出一个具体的实现思路。
Web 自动化考的是 Selenium 那套东西。POM 页面对象模式是核心,几乎每次都会问——什么是 POM?为什么要用?怎么实现?除此之外,元素定位方式的选择、动态等待机制、iframe 和弹窗的处理、失败截图这些都是必考点。
App 自动化面试问的相对少一些,但如果岗位是移动端测试开发,Appium 的工作原理、元素定位方式、WebView 和 Native 的切换这些必须搞清楚。
# Python 自动化测试:上手快、生态好,但要答得深
Python 自动化测试的入门门槛比 Java 低很多,但这并不意味着面试就好过。恰恰相反,因为很多人都会,所以面试官往往会问得更深,更在意你有没有真正做过完整的项目。
这套面试题同样分接口、Web、App 三块,技术栈换成了 Python 生态的:
接口自动化是 Requests + Pytest + Allure 这套组合,这是目前最主流的 Python 接口测试方案。面试重点落在框架设计上——分层怎么做、fixture 怎么用、如何管理多个环境的配置、如何实现数据库校验……这些问题考的不是你会不会写代码,而是你有没有做过系统性的框架设计。
Pytest 的 fixture 是高频考点,很多人用过但说不清楚。它的核心价值在于依赖注入和生命周期管理——session 级别的 fixture 可以让整个测试会话只登录一次,function 级别的 fixture 可以在每个测试前后自动创建和清理数据。用 yield 实现前置后置,是写测试代码时非常优雅的方式。
Web 自动化这块有个问题你一定要准备:Selenium 和 Playwright 有什么区别?如何选择? 这道题在 2024 年之后越来越常见,因为 Playwright 确实在自动等待、执行速度、网络拦截等方面比 Selenium 有明显优势。你要能说出两者的优缺点以及不同场景下的选择策略,而不是只会说"我只用过 Selenium"。
App 自动化方面,Python 版本的 Appium 框架设计思路和 Java 基本一致,但 Python 生态里还有个 uiautomator2,对 Android 设备执行速度更快,也是加分项。
# 性能测试:有体系有深度,才能说服面试官
性能测试是一个很有意思的方向,听起来和"写代码"关系不大,但真正做好性能测试需要你懂监控、懂 JVM、懂数据库、懂中间件,知识面要求反而比纯功能测试宽得多。
这套面试题分成了四大块:JMeter 工具使用、性能测试基础理论、性能监控、以及性能瓶颈分析和调优。
JMeter 这块是最基础的入门,面试官一般会直接问操作层面的问题:参数关联怎么做、分布式压测怎么配置、聚合报告里各个指标是什么含义……这些如果没有真正上手用过 JMeter,靠背答案很容易被追问倒。
基础理论这块看似简单,但很多人说不清楚。TPS 和 QPS 是一回事吗?响应时间为什么要看 90 分位而不是平均值?性能拐点是什么、怎么找?全链路压测和普通压测有什么本质区别?这些问题考的是你对性能测试的系统性理解,而不是工具使用。
性能监控这块在中大厂面试里越来越重要。Grafana + Prometheus + Exporter 这套监控体系的工作原理、Linux 常用的性能监控命令(top、free、iostat、netstat……)、如何监控 JVM 的 GC 情况、如何定位内存泄漏……这些都是必须要会的。
瓶颈分析和调优是性能测试里含金量最高的部分,也是面试时最能拉开差距的地方。很多人压测完只会说"TPS 是多少",但不会说"为什么 TPS 上不去"、"我是怎么找到瓶颈的"。
一个典型的排查思路是:先看压力机本身有没有问题 → 再看网络带宽是否打满 → 再看服务器 CPU/内存 → 再看数据库慢查询和连接池 → 最后分析应用代码层面的线程阻塞、GC 频繁等问题。这个逐层排查的思路,配上具体的工具命令和实际案例,才能让面试官相信你真的做过性能测试,而不是纸上谈兵。
调优的优先级也很关键:先做数据库优化(加索引、优化 SQL),再做缓存优化(Redis),然后是代码层面的优化,最后才是架构改造和硬件升级。每次优化之后都要压测验证效果,这是闭环的必要步骤。
# 最后说几句
这四个方向说白了对应的是测试开发岗的四条腿:你懂业务吗、你会写自动化吗、Java 还是 Python、性能测试会做吗。不同公司的侧重点不一样,有些公司更看重自动化框架的设计能力,有些公司更在意性能测试的实战经验,所以准备面试之前最好先根据 JD(岗位描述)判断一下对方的侧重点在哪,有的放矢。
不过有一点是通用的:光靠背答案是没用的。面试官一追问就会露馅。最好的准备方式是把题目里的每个知识点都落地到项目场景里,能说出"我们项目里遇到了什么问题、我是怎么解决的",这才是有说服力的回答。
希望这四套面试题能帮你把知识点串联起来,面试顺利!
🔗测试开发训练营 (opens new window):针对面试求职的测试开发训练营,大厂导师 1v1 私教,帮助学员从 0 到 1 拿到测开满意的 offer
- ✅直播授课+实时互动答疑,课程到就业贯穿企业级案例,由测试开发导师全程主讲,绝无其他助理老师代课。
- ✅大厂测试开发导师一对一求职陪跑,覆盖课程答疑+简历打磨+面试模拟面试+面试复盘等求职辅导
最新的图解文章都在公众号首发,别忘记关注哦!!如果你想加入百人技术交流群,扫码下方二维码回复「加群」。
