Skip to content

API_Protocol_Testing 面试专题手册

💡 本章节共收录 929 道面试真题,建议每天复习 10-20 题。


Q1: Postman如何配置环境变量发起GET请求?请描述步骤。

【核心解析】 创建环境并定义变量(如base_url);在请求URL中使用{{变量}};设置请求方法为GET;添加参数或Headers;发送请求并验证响应;环境切换便于多环境测试


Q2: 接口测试需要关注哪些方面?你是如何设计接口测试用例的?

【核心解析】 HTTP方法、状态码、请求参数校验;接口文档一致性;鉴权与权限;异常场景(参数缺失、非法值);响应数据格式与字段验证;性能与安全性;前后端联动测试


Q3: 优惠券领取接口,设计测试用例。

【核心解析】 功能:正常领取、重复领取、过期;参数校验:用户ID、优惠券ID;边界:库存为0;安全:防刷;性能:并发


Q4: 做过接口测试吗?用过哪些测试工具?

【核心解析】 工具:Postman、JMeter、SoapUI;测试内容:请求响应、状态码、参数校验、鉴权


Q5: 对于接口文档缺失的问题,开发那边有什么规范吗?

【核心解析】 推动开发补充文档;使用抓包工具分析;与开发沟通确认;建立接口规范流程;引入API管理平台


Q6: GET和POST的区别是什么?

【核心解析】 GET幂等;POST不幂等;GET参数在URL;POST在body;GET有长度限制;POST更安全


Q7: 针对一个模块的某个接口,请设计测试用例,涵盖功能、业务规则、异常、临界值、权限、性能、兼容性、安全性等方面。

【核心解析】 功能验证(正常请求);业务规则(状态流转);异常(参数缺失、非法值);临界值(边界数据);权限(不同角色);性能(并发、响应时间);兼容性(不同客户端);安全(SQL注入、XSS)


Q8: GET和POST的区别是什么?

【核心解析】 GET参数在URL,POST在body;GET幂等,POST不幂等;GET有长度限制,POST无;GET可缓存,POST不可;安全性:POST相对安全


Q9: 在这个项目中你是如何处理接口鉴权的?

【核心解析】 鉴权方式(Token、OAuth、JWT);测试策略(有效/无效token、过期、权限不足);自动化测试中的鉴权处理;安全测试(重放攻击、越权)


Q10: 项目中的测试接口有哪些?Fiddler、Postman、JMeter在项目中怎么用的?

【核心解析】 接口类型(REST、SOAP);工具用途(Fiddler抓包、Postman手动测试、JMeter性能测试);参数化与断言;环境管理


Q11: 如果需要测试需要登录的接口,如何实现权限认证?

【核心解析】 获取token或session;在请求头中携带认证信息;处理token过期与刷新;使用Mock模拟认证服务;测试不同角色权限


Q12: 做接口测试时为什么要验签?

【核心解析】 防止数据篡改;验证请求合法性;确保数据完整性;防止重放攻击;符合安全规范


Q13: GET和POST的区别?

【核心解析】 GET参数在URL,POST在body;GET有长度限制,POST无;GET不安全,POST相对安全;GET幂等,POST不幂等;GET可缓存,POST通常不缓存


Q14: 接口测试和普通功能测试的区别?

【核心解析】 接口测试关注数据交互与协议;功能测试关注用户界面与业务流程;接口测试更底层,可提前介入;接口测试自动化程度高;接口测试可覆盖异常场景


Q15: 影响接口测试效率的主要挑战有哪些?如何应对?

【核心解析】 接口文档不完整;参数组合爆炸;依赖服务不稳定;数据准备复杂;断言不准确;自动化维护成本高;应对策略(契约测试、Mock、数据工厂)


Q16: 请简述 TCP 和 UDP 的区别及典型应用场景。

【核心解析】 TCP面向连接、可靠传输、有序、流量控制;UDP无连接、不可靠、低延迟;TCP适用于文件传输、网页浏览;UDP适用于视频直播、在线游戏


Q17: 请解释滑动窗口机制及其解决的问题,并说明滑动窗口与拥塞控制的区别。

【核心解析】 滑动窗口用于流量控制,解决发送方与接收方速率不匹配问题;拥塞控制用于网络拥塞避免;滑动窗口是端到端,拥塞控制是全局;两者协同工作


Q18: 以道具购买接口为例,设计接口测试用例。

【核心解析】 正常购买、余额不足、道具不存在、重复购买、并发购买、参数边界、鉴权失败


Q19: 如何基于输入与输出进行mock构造?

【核心解析】 定义接口规范;模拟返回数据;使用工具如Mockito;考虑异常场景


Q20: 请为登录接口设计测试用例,包括安全测试。

【核心解析】 正常流程:正确用户名密码;边界值:空、超长、特殊字符;异常场景:错误密码、用户不存在、锁定;安全测试:SQL注入、XSS、CSRF、弱密码检测、暴力破解防护;性能测试:并发登录响应时间


Q21: 接口测试通常关注哪些方面?请以购买物品接口为例说明。

【核心解析】 请求参数校验;响应状态码;业务逻辑(库存、金额);异常场景(参数缺失、超时);安全性(鉴权、SQL注入)


Q22: 针对道具购买接口,如何进行接口测试?断言如何设计?接口自动化框架如何搭建?

【核心解析】 接口测试:请求参数校验、响应状态码、返回数据格式;断言:状态码200、返回成功标识、道具数量增加、扣款正确;框架:分层设计(请求封装、用例管理、数据驱动、断言库);模块:配置、请求、数据、报告;请求封装:统一header、token管理;用例调用测试数据:Excel/JSON/DB


Q23: 在接口自动化测试中,如何处理token过期的情况?

【核心解析】 自动刷新token机制;捕获401状态码后重新登录获取新token;使用拦截器或装饰器;维护token有效期,提前刷新;存储token到全局变量或文件


Q24: 设计领取游戏奖励接口的测试用例(包含奖励ID和数量)。

【核心解析】 正常领取(有效ID和数量);边界值(数量为0、最大);异常ID(不存在、已过期);重复领取;并发领取;权限校验;参数类型错误


Q25: 猜一下微信朋友圈获取帖子列表的接口应该长什么样?

【核心解析】 RESTful风格;GET请求;参数:用户ID、分页(offset/limit)、时间戳;返回JSON:帖子列表、用户信息、点赞评论数;鉴权(token)


Q26: 举个例子说明如何Mock数据。

【核心解析】 使用Mock库(如Mockito、unittest.mock);场景:外部API不可用;定义返回数据;验证调用;结合依赖注入;示例:Mock数据库查询返回固定结果


Q27: 注册接口需要填写姓名、手机号、邮箱,请设计测试用例。

【核心解析】 等价类:有效/无效姓名、手机号、邮箱格式;边界值:字段长度限制;组合测试:不同字段组合;异常场景:重复注册、特殊字符;安全性:SQL注入、XSS;接口性能:高并发注册


Q28: 接口断言除了状态码还做了什么?

【核心解析】 响应体字段校验(类型、格式、值);业务逻辑校验(如金额计算);响应时间校验;错误码和错误信息校验;数据一致性校验(如数据库);鉴权校验


Q29: 接口自动化测试中,登录态依赖数据,环境隔离这种情况怎么处理?

【核心解析】 使用token/cookie管理登录态;通过接口预置登录态;数据隔离:独立测试账号、环境配置;Mock服务模拟依赖;数据清理与重置


Q30: HTTP常见的状态码有哪些?GET和POST有什么区别?

【核心解析】 200 OK;301/302重定向;400 Bad Request;401 Unauthorized;403 Forbidden;404 Not Found;500 Internal Server Error;GET幂等、参数在URL;POST非幂等、参数在Body


Q31: 你会使用Postman吗?请介绍其常用功能。

【核心解析】 发送HTTP请求;参数化;环境变量;断言;集合运行;导入导出;Mock Server;与CI集成


Q32: 收到一个接口测试任务,应该从什么方向来进行测试?

【核心解析】 功能测试(参数校验、业务逻辑);异常测试(边界、空值、非法);安全测试(鉴权、越权);性能测试;幂等性;兼容性


Q33: 接口测试中HTTP和HTTPS的区别是什么?

【核心解析】 HTTPS加密传输;SSL/TLS证书;端口443 vs 80;安全性;性能开销


Q34: 针对设备控制接口做接口自动化,考虑哪些关键点?

【核心解析】 正常/异常参数;必传/非法/空值;安全(token、越权);幂等性;并发


Q35: 接口测试有了解吗?你是如何设计接口测试用例的?

【核心解析】 接口文档分析;功能测试(正常场景、参数边界、异常);安全测试(鉴权、SQL注入、XSS);性能测试(响应时间、并发);幂等性测试


Q36: 常见的HTTP状态码有哪些?

【核心解析】 2xx成功(200 OK、201 Created);3xx重定向(301、302、304);4xx客户端错误(400 Bad Request、401 Unauthorized、403 Forbidden、404 Not Found、405 Method Not Allowed);5xx服务器错误(500 Internal Server Error、502 Bad Gateway、503 Service Unavailable)


Q37: 你了解HTTP协议和WebSocket协议的区别吗?

【核心解析】 HTTP是请求-响应模式,无状态;WebSocket是双向通信,有状态;WebSocket适用于实时场景;HTTP开销大;WebSocket握手后长连接


Q38: HTTP协议中GET和POST请求方式的区别及应用场景是什么?

【核心解析】 GET参数在URL,POST在body;GET幂等,POST不幂等;GET有长度限制,POST无;GET用于查询,POST用于创建/更新;安全性:POST相对更安全


Q39: 你对接口测试的了解程度如何?

【核心解析】 接口测试定义、目的;常用工具(Postman、JMeter);测试内容(参数校验、响应、鉴权、异常场景)


Q40: 公司里的接口自动化框架的结构是怎样的?

【核心解析】 分层:数据层、业务层、用例层;使用pytest+requests;数据驱动;CI集成


Q41: HTTP和HTTPS的区别是什么?

【核心解析】 HTTPS有SSL/TLS加密;默认端口不同;安全性;性能开销


Q42: GET和POST的区别是什么?

【核心解析】 GET参数在URL,POST在body;GET幂等,POST不幂等;GET有长度限制;安全性


Q43: 接口测试用例的设计思路是什么?如何测试依赖第三方系统的接口?

【核心解析】 接口文档分析;参数校验(必填、类型、边界);业务逻辑覆盖;异常场景(超时、返回错误);鉴权与安全;Mock第三方服务;契约测试


Q44: JMeter中如何实现接口关联?请说明具体步骤。

【核心解析】 后置处理器提取响应数据(JSON Extractor/正则提取器);保存为变量;后续请求引用${变量名};跨线程组使用__setProperty()和__P();Debug Sampler验证


Q45: HTTP常见错误码的含义是什么?

【核心解析】 200 OK;201 Created;301/302重定向;400 Bad Request;401 Unauthorized;403 Forbidden;404 Not Found;500 Internal Server Error;502 Bad Gateway;503 Service Unavailable


Q46: 你是如何进行接口测试的?追问:如何设置入参,除了mock还有什么别的方式?追问:fox平台除了接口测试还有什么高级的功能?追问:比如一个接口它有很多状态,你要怎么测试它的所有情况?

【核心解析】 使用Postman、JMeter、Fox平台;入参:参数化、数据驱动;Mock:模拟依赖;Fox功能:测试计划、CI集成;状态测试:状态转换图、组合测试


Q47: 关于登录和用户管理的接口,你是用YAML做数据驱动的。请描述一下你的YAML文件里定义了哪些字段?你是如何做断言的?怎么判断测试用例通过还是失败?

【核心解析】 YAML字段:url, method, headers, body, expected_status, expected_response;断言:状态码、JSON字段、响应时间;通过/失败:断言结果与预期匹配


Q48: 在接口自动化测试中,封装requests库有哪些好处?如何实现?

【核心解析】 提高代码复用性;统一异常处理;增强安全性(统一认证);便于日志记录;支持多环境切换;提高可维护性;便于集成CI/CD


Q49: requests库都有哪些HTTP方法?

【核心解析】 get, post, put, delete, patch, head, options;对应HTTP方法;参数传递方式


Q50: get方法发送请求需要使用json方法吗?

【核心解析】 不需要;get请求参数通过params传递;json方法用于post请求发送JSON数据


Q51: Postman与JMeter在接口测试方面有什么区别?

【核心解析】 Postman侧重手动测试和调试,支持集合运行;JMeter侧重性能测试,支持多线程并发;Postman界面友好,适合快速验证;JMeter可做负载测试,支持分布式;Postman参数传递更直观,JMeter需配置


Q52: 接口测试中如何处理鉴权(如token、cookie)?

【核心解析】 获取token:登录接口返回;在请求头中设置Authorization;处理token过期:自动刷新机制;cookie管理:保持会话;使用环境变量或全局变量存储;测试不同角色权限


Q53: Postman中如何实现接口之间的参数传递?

【核心解析】 使用环境变量或全局变量;在Tests脚本中设置pm.environment.set;引用变量{{variable}};通过JSON提取响应数据;使用Collection Runner时变量作用域


Q54: 是否使用过契约测试(如Pact)?

【核心解析】 契约测试概念与目的;Pact框架使用;消费者驱动契约;服务提供者验证;集成测试与契约测试结合;优势与挑战


Q55: 接口测试一般关注哪些点?你用过Postman吗?

【核心解析】 请求与响应结构;状态码与错误处理;参数校验与边界;鉴权与安全;性能与并发;数据一致性;Postman使用(集合、环境、断言、自动化)


Q56: 如何用 Python + Requests 实现一个简单的接口自动化脚本?

【核心解析】 使用requests库发送HTTP请求;处理请求参数、headers和cookies;断言响应状态码和body;使用unittest或pytest组织用例;数据驱动测试


Q57: Postman中如何进行参数传递?比如登录后获取token,并用于后续购物车接口的访问?

【核心解析】 使用Postman的环境变量或全局变量存储token;在登录接口的Tests脚本中设置变量pm.environment.set('token', responseBody.token);后续接口在请求头中添加Authorization: Bearer {{token}};也可使用Pre-request Script自动获取token


Q58: Postman中常用的断言有哪些?

【核心解析】 Status code: 200;Response body contains string;JSON value check;Response time less than;Header check;使用pm.test和pm.expect语法


Q59: Postman中如何进行参数化?

【核心解析】 使用数据文件(CSV/JSON);在Collection Runner中导入数据文件;在请求中使用{{变量名}}引用;也可使用Pre-request Script动态生成数据


Q60: POST和GET的区别是什么?

【核心解析】 GET用于获取资源,参数在URL中;POST用于提交数据,参数在请求体中;GET幂等,POST不幂等;GET有长度限制,POST无;GET安全性较低


Q61: GET和POST请求有什么区别?

【核心解析】 GET参数在URL中,长度受限,幂等,用于查询;POST参数在body中,无长度限制,非幂等,用于创建/修改;安全性(GET参数可见,POST相对安全);缓存(GET可缓存,POST通常不缓存)


Q62: HTTP和HTTPS有什么区别?

【核心解析】 HTTPS使用SSL/TLS加密,HTTP明文;HTTPS默认端口443,HTTP80;HTTPS需要证书;HTTPS更安全但性能略低


Q63: 当无法获取订单数据时,如何开展测试?请结合Mock技术说明。

【核心解析】 使用Mock模拟接口返回;定义Mock数据的边界与异常场景;确保Mock与真实环境一致性;结合契约测试验证接口交互;使用工具如MockServer或WireMock


Q64: 除了接口测试,你还测过什么?

【核心解析】 UI测试;性能测试;安全测试;兼容性测试;单元测试;集成测试;端到端测试


Q65: 解释RESTful风格,HTTP有哪些请求方法?

【核心解析】 RESTful:资源导向、无状态、统一接口;GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS;GET幂等、POST不幂等;状态码使用


Q66: GET和POST的区别是什么?

【核心解析】 GET参数在URL,POST在body;GET幂等,POST不幂等;GET有长度限制,POST无;GET可缓存,POST通常不缓存;安全性:POST更安全


Q67: 你用过哪些接口测试工具?

【核心解析】 Postman、SoapUI、JMeter、curl、Swagger、RestAssured、Python requests


Q68: HTTP与HTTPS的区别是什么?

【核心解析】 HTTPS使用SSL/TLS加密传输,HTTP明文;HTTPS默认端口443,HTTP默认80;HTTPS需要证书,安全性更高;HTTPS性能略低但可接受;HTTPS可防止中间人攻击


Q69: 游戏中的接口测试如何进行?

【核心解析】 测试登录、匹配、支付、数据上报等接口;验证请求参数、响应数据、状态码;使用抓包工具(如Charles)捕获游戏请求;模拟异常场景(断网、超时、重复请求)


Q70: TCP和UDP的区别是什么?UDP为什么快?

【核心解析】 TCP面向连接,可靠传输,有流量控制和拥塞控制;UDP无连接,不可靠,开销小;UDP快是因为不需要建立连接、确认重传、排序等机制


Q71: GET和POST有什么区别?

【核心解析】 GET参数在URL中,POST在请求体;GET有长度限制,POST无;GET幂等,POST不幂等;GET可缓存,POST通常不缓存;安全性上POST略高


Q72: GET和POST请求有什么区别?

【核心解析】 GET参数在URL中,POST在请求体中;GET有长度限制,POST无;GET幂等,POST不幂等;GET可缓存,POST通常不缓存;安全性POST略高


Q73: TCP的GET和POST的区别?

【核心解析】 GET和POST是HTTP方法,TCP是传输层;HTTP基于TCP;区别同HTTP层面


Q74: requests库有哪些方法?

【核心解析】 get、post、put、delete、head、options、patch;对应HTTP方法;参数传递


Q75: 使用requests发送GET请求时,需要使用json方法吗?

【核心解析】 不需要;GET请求参数通过params传递;json方法用于POST请求发送JSON数据


Q76: 设计查询用户名接口的测试用例。

【核心解析】 正常查询;空参数;特殊字符;SQL注入;权限校验;性能测试


Q77: Apifox和Postman的区别?

【核心解析】 Apifox集成了API文档、调试、Mock、自动化测试;Postman侧重调试和协作;Apifox更贴合国内团队协作;Postman生态更丰富


Q78: 接口测试中,如果接口返回异常,你会如何排查?

【核心解析】 检查请求参数和URL;查看服务器日志;抓包分析(Fiddler/Charles);确认网络环境;验证后端服务状态;对比正常与异常响应


Q79: GET和POST请求的区别是什么?在测试中如何应用?

【核心解析】 用途:GET获取资源,POST提交数据;参数位置:GET在URL,POST在body;安全性:POST更安全;长度限制:GET有,POST无;缓存:GET可缓存;幂等性:GET幂等;测试重点:GET验证参数传递,POST验证数据提交和状态变化


Q80: 接口测试怎么做?请描述流程和重点。

【核心解析】 接口文档分析;设计测试用例(参数校验、业务逻辑、异常场景);工具选择(Postman/JMeter);执行测试;断言响应;自动化集成


Q81: 如何对接口进行测试?测试的意义是什么?

【核心解析】 接口测试覆盖请求/响应、参数校验、异常处理、性能、安全;意义在于提前发现集成问题、保障数据一致性、提升测试效率;工具(Postman、JMeter);自动化回归


Q82: HTTP请求有哪些方法?请详细说明POST和GET的区别及用法。

【核心解析】 GET用于获取资源,参数在URL;POST用于提交数据,参数在body;安全性(GET明文);幂等性(GET幂等,POST不幂等);缓存;应用场景


Q83: 接口自动化测试中,测试失败如何排查?

【核心解析】 检查请求参数/Header;查看响应状态码和Body;抓包对比;日志分析;环境/数据问题;断言逻辑错误


Q84: 请详细说明HTTP GET和POST请求的区别。

【核心解析】 GET参数在URL中,POST在请求体;GET幂等,POST不幂等;GET有长度限制,POST无;GET用于查询,POST用于创建/修改;安全性POST略高


Q85: 你觉得测试一个接口需要从哪些方面进行验证?请举例说明。

【核心解析】 功能正确性:参数校验、返回值;异常场景:边界值、错误参数;安全性:鉴权、SQL注入;性能:响应时间、并发;兼容性:不同协议版本


Q86: 请设计酒店下单接口的测试用例。

【核心解析】 正常流程:选择酒店、房型、日期、支付;异常:库存不足、价格变动、参数缺失;边界:入住天数、人数限制;安全:订单篡改;性能:高并发下单


Q87: 接口测试主要关注哪些点?

【核心解析】 请求参数校验;响应状态码与数据格式;鉴权与安全;异常处理;性能与并发;接口文档一致性


Q88: GET和POST的区别是什么?

【核心解析】 GET参数在URL,POST在请求体;GET幂等,POST不幂等;GET有长度限制,POST无;GET可缓存,POST通常不缓存;安全性POST更优


Q89: HTTP和HTTPS的区别是什么?

【核心解析】 HTTPS有SSL/TLS加密;默认端口不同;安全性HTTPS更高;性能HTTPS略慢;证书验证


Q90: Cookie和Session的区别是什么?

【核心解析】 Cookie存储在客户端,Session在服务端;Cookie大小有限;Session更安全;Cookie可持久化,Session通常会话结束失效


Q91: 请解释HTTP协议中GET和POST的区别,以及HTTP状态码403和504的含义。

【核心解析】 GET请求数据在URL中,幂等,用于获取资源;POST请求数据在body中,非幂等,用于提交数据;403表示禁止访问;504表示网关超时


Q92: 请解释网络七层模型和TCP/IP四层模型,并说明为什么要有这些分层,以及IPv4和IPv6的区别。

【核心解析】 OSI七层:物理、数据链路、网络、传输、会话、表示、应用;TCP/IP四层:网络接口、网际、传输、应用;分层降低复杂度、便于标准化;IPv4 32位,IPv6 128位,IPv6提供更多地址和更好安全性


Q93: 请解释HTTP状态码403和504的含义,以及常见的处理方式。

【核心解析】 403 Forbidden:服务器拒绝请求,通常权限不足;504 Gateway Timeout:网关超时,上游服务器未响应;处理:检查权限配置、网络连接、服务状态


Q94: 请解释网络七层模型和TCP/IP四层模型,并说明HTTP协议属于哪一层。

【核心解析】 OSI七层:物理、数据链路、网络、传输、会话、表示、应用;TCP/IP四层:网络接口、网际、传输、应用;HTTP属于应用层


Q95: 请解释IPv4和IPv6的区别,以及为什么需要IPv6。

【核心解析】 IPv4 32位地址,约43亿个;IPv6 128位地址,几乎无限;IPv6提供更好的安全性、自动配置、多播等;解决IPv4地址枯竭问题


Q96: 请解释HTTP状态码403和504的含义,以及常见的处理方式。

【核心解析】 403禁止访问;504网关超时;处理:检查权限、网络、服务


Q97: 请解释网络七层模型和TCP/IP四层模型,并说明HTTP协议属于哪一层。

【核心解析】 OSI七层;TCP/IP四层;HTTP属于应用层


Q98: 请解释IPv4和IPv6的区别,以及为什么需要IPv6。

【核心解析】 IPv4 32位;IPv6 128位;IPv6解决地址枯竭


Q99: GET和POST方法的区别和使用场景,它们在请求格式上有什么区别?

【核心解析】 GET参数在URL,POST在body;GET幂等,POST不幂等;GET有长度限制,POST无;GET用于查询,POST用于创建/修改;安全性:POST相对安全;缓存:GET可缓存


Q100: 登录的时候用的POST还是GET?为什么?

【核心解析】 POST;因为登录涉及敏感信息,POST参数在body中更安全;GET参数在URL中可能被缓存或记录;POST不幂等,符合登录语义