腾讯测试开发面经合集:网络协议、Python 注解与性能测试
- 轮次
- 面试合集
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
面经 01
面试岗位:测试开发岗 | 面试时间:2026 年 10 月 9 日
- 操作系统、网络传输协议和网络七层模型怎么理解?
- 问语言 Python、Java 的区别感受。
- 你知道 Python 中的注解吗?
- 你做过性能测试吗,知道哪些工具,你是怎么做的性能测试?
- 讲一下你对于性能测试的理解。
面经 02
面试岗位:腾讯云测试开发工程师 | 面试时间:2026 年 8 月 19 日
- 简单介绍一下项目经历。
《参考解析》
操作系统、网络传输协议与网络七层模型怎么答
这题是在看你能不能把知识串成一条线,最好按「分层 + 数据流」讲。七层模型从下到上是物理、数据链路、网络、传输、会话、表示、应用,实际工程里更常用 TCP/IP 四层(链路、网络、传输、应用)来对应。讲传输层要区分 TCP 与 UDP:TCP 面向连接、有确认重传与拥塞控制,用三次握手建立、四次挥手释放(挥手多一次是因为 TCP 全双工,一端先关只表示不再发数据,需要等对端把剩余数据发完);UDP 无连接、开销小,适合直播、DNS 这类能容忍丢包的场景。再落到具体协议:HTTP 在应用层基于 TCP,DNS 常用 UDP,TLS 夹在应用与传输之间。操作系统侧串起进程与线程、内存管理、IO 模型(阻塞、非阻塞、多路复用 epoll)、零拷贝,说明一次网络请求在操作系统里经历了哪些系统调用与上下文切换。测试岗答题时多补一句可观测性:这些层次分别对应哪些排查手段(netstat/ss 看连接、tcpdump 抓包、strace 看系统调用、top/perf 看资源)。
Python 注解与 Python、Java 的差异
Python 的「注解」有两个容易混的含义,要主动分开。一是函数注解(type hints):def f(x: int) -> str,它只是元数据,运行时不做强制校验,靠 typing 加 mypy、pyright 这类静态检查器在开发期发现问题,也常被框架用 inspect.signature 读取来做依赖注入与参数校验(FastAPI、pydantic 就是这么用的)。二是装饰器(@decorator),本质是把函数作为参数传入并返回新函数,用来做日志、计时、缓存、权限校验,理解它要讲清闭包与 functools.wraps。Java 的注解是编译期/运行期可保留的元数据(RetentionPolicy 决定生命周期),配合反射与注解处理器(APT)在编译期生成代码或运行期做框架装配,如 Spring 的 @Autowired。语言差异上:Python 动态类型、解释执行、开发快、GIL 限制多线程 CPU 并行,适合脚本、测试框架与胶水层;Java 静态类型、编译成字节码跑在 JVM、并发与工程化生态成熟,适合大型服务。测试岗可以补一句选型参考:测开脚手架与用例层多选 Python,被测服务与压测工具链常是 Java。
性能测试:工具、指标与做法
先明确性能测试的目标不是「跑一遍」,而是回答容量与瓶颈问题,所以要先把场景和指标定出来。常见工具:压测端用 JMeter、Locust、wrk、k6、Gatling,监控端用 Prometheus 加 Grafana、Arthas、top/pidstat/iostat、链路追踪(SkyWalking、Jaeger),数据库侧看慢查询与连接池。指标分四类:吞吐(TPS/QPS)、延迟(平均与 P95、P99,绝不能只看平均)、错误率、资源(CPU、内存、IO、网络、GC、连接数)。做法按步骤走:①定目标,明确预期并发、数据量与 SLA;②建模型,让压测流量贴近真实配比(读写比例、参数分布、用户思考时间),避免只压一个接口;③阶梯加压找拐点,从低并发逐步加,记录吞吐与延迟的拐点,拐点处就是容量上限,再确认是应用瓶颈、数据库瓶颈还是压测机自身瓶颈;④定位瓶颈,自下而上排(先看压测机与网络,再看应用与 GC,最后看数据库与下游依赖);⑤回归验证,优化后在同一模型下复跑并对齐基线。测试岗还要说清与功能测试的衔接:性能问题常由数据量与并发组合暴露,用例要覆盖大数据量下的关键链路,并把结果沉淀成可重复执行的压测脚本与基线看板,而不是一次性报告。