# 1. pytest 的 fixture 机制(作用域、依赖注入、conftest.py)如何支撑接口自动化的分层设计? A fixture 只能 function 级 B fixture 与分层无关 C conftest 无法组织作用域 D 用 scope 控制共享/隔离、依赖注入串联各层、conftest 分层组织,支撑接口自动化分层 ✓ 正确答案
# 2. 接口自动化框架的分层设计(用例层/业务层/请求封装层/数据层)与数据驱动如何实现? A 所有代码写在一个文件即可 B 业务层应写断言 C 数据驱动与分层无关 D 分请求封装/业务/用例/数据四层,职责分离,用 parametrize 或外部数据实现数据驱动 ✓ 正确答案
# 3. pytest 的 fixture 机制,scope(function/class/module/session)、依赖注入、conftest.py 的组织方式? A scope 只有 function 级 B scope 控制共享粒度、依赖注入自动串联、conftest 按层级组织,支撑测试依赖管理 ✓ 正确答案 C fixture 之间不能互相依赖 D conftest 只能放函数
# 4. pytest 参数化(parametrize)与 YAML/Excel 数据驱动的结合实践? A 数据只能写在代码里 B parametrize 无法结合数据文件 C 数据驱动使断言失效 D 用 fixture 读取 YAML/Excel 数据,parametrize 驱动每组数据成为用例,实现数据与代码分离 ✓ 正确答案
# 5. 接口关联(token/动态参数提取与传递)在自动化框架中的实现方案? A token 只在登录接口用 B 每次手动粘贴 token C 接口关联无法自动化 D 用上下文"提取→存储→注入",token 自动携带、动态参数用占位符替换,实现接口依赖传递 ✓ 正确答案
# 6. Allure 报告的集成方法与用例分级、失败截图/日志附件的最佳实践? A Allure 只显示通过率 B 失败附加无需 C 分级只有一种 D 用 @allure 装饰器分级、失败时自动附加请求/响应/日志/截图证据,报告可定位根因 ✓ 正确答案
# 7. 接口自动化的断言设计,状态码、响应体、Schema、数据库落库、上下游调用(mock)如何分层断言? A 只断言状态码即可 B 按状态码、响应体、Schema、落库、上下游调用分层断言,覆盖请求到协作的完整正确性 ✓ 正确答案 C 各层断言互斥 D Schema 断言无意义
# 8. 接口自动化的请求封装,requests/session 管理、鉴权(token 刷新)、环境切换(多环境配置)如何设计? A 环境 url 硬编码即可 B 每次新建连接即可 C token 永不刷新 D 用 Session 复用连接、鉴权拦截器自动携带/刷新 token、环境配置中心化切换 ✓ 正确答案
# 9. 接口自动化框架的全局请求钩子设计,日志、鉴权、签名与加解密如何通过 requests/httpx 适配器统一处理? A 每个用例手动处理鉴权 B 用 requests/httpx 的 hook 统一处理日志、鉴权、签名、加解密,业务层无感 ✓ 正确答案 C 钩子无法统一 D 签名需每个用例手写
# 10. pytest 的 mark 体系(smoke/regression/p0-p3)如何组织用例分级,CI 中按 mark 分阶段触发与报告聚合? A mark 只能有一个 B 分级与 CI 无关 C -m 无法选择用例 D 用自定义 mark 给用例分级,CI 用 -m 按阶段触发(冒烟/回归/优先级)并聚合报告 ✓ 正确答案
# 11. 接口自动化框架的演进路径,从脚本到平台(用例管理、调度、报告),平台化过程中的关键取舍? A 所有团队都应直接上平台 B 平台化无需维护 C 从脚本到框架到平台按需演进,平台化聚焦用例管理/调度/报告,权衡开发成本与收益 ✓ 正确答案 D 平台化最灵活
# 12. 异步接口的测试策略,任务提交后轮询结果、webhook 回调与消息队列消费三种模式如何设计断言与超时,避免测试不稳定? A 轮询/回调/消费三模式都用"等待条件或事件 + 合理超时"而非固定 sleep,并断言最终结果 ✓ 正确答案 B 异步测试无法稳定 C 超时越短越好 D 固定 sleep 即可
# 13. 接口自动化并行的数据隔离,pytest-xdist 下用例并发导致的数据冲突如何治理(独立数据、随机后缀、事务回滚)? A 用独立数据 + 随机后缀保证唯一 + 事务回滚/清理防残留,治理并发数据冲突 ✓ 正确答案 B 并发用例共享数据即可 C 唯一性冲突无需处理 D 事务回滚无法实现
# 14. 接口自动化的稳定性工程,网络抖动重试、幂等设计、环境依赖解耦如何减少误报,重试与断言超时的平衡? A 所有失败都重试 B 网络抖动有限重试、接口幂等可重复、环境依赖解耦,并平衡重试与断言超时,减少误报 ✓ 正确答案 C 重试次数越多越好 D 环境依赖无需处理
# 15. requests 库的 Session 复用、超时与重试机制对用例稳定性的作用? A 不设超时更稳 B Session 复用连接、合理超时防挂死、Retry 兜底瞬态失败,提升用例稳定性 ✓ 正确答案 C 每次新建连接更好 D 重试针对所有失败
# 16. pytest 的插件生态,pytest-xdist 并行、pytest-html/Allure 报告、pytest-rerunfailures 重试如何接入 CI? A 报告无法上传 CI B 插件只能本地用 C xdist 并行、html/Allure 报告、rerunfailures 重试在 CI 组合使用,并行+报告+重试形成完整体系 ✓ 正确答案 D 重试会掩盖所有问题
# 17. 接口自动化用例的失败定位,断言失败时如何自动附带请求/响应/耗时快照,缩短问题定位时间? A 请求封装层记录请求/响应/耗时快照,失败钩子自动附加,无需复现即定位 ✓ 正确答案 B 失败后需人工复现抓包 C 快照只附响应 D 敏感信息可全量打印
# 18. 接口自动化与前端联调,如何用接口 Mock 先行支撑前端开发,并在后端就绪后切换真实接口? A 按契约 mock 先行支撑前端,后端就绪后经配置切换真实接口,并用契约保证一致性 ✓ 正确答案 B mock 与真实无需一致 C 前端必须等后端 D 切换后无需验证
# 19. 接口自动化的契约与兼容性,接口变更时如何用 OpenAPI/Schema 对比与契约测试提前发现破坏性变更,与后端 CI 联动? A 接口变更无需关注 B 用 OpenAPI/Schema 对比 + 契约测试发现破坏性变更,接入后端 CI 自动阻断并联动前后端 ✓ 正确答案 C 契约无需版本管理 D 破坏性变更无法提前发现