中级面试题
接口自动化测试框架如何处理返回的参数信息
面试题目
接口自动化测试框架如何处理返回的参数信息?
公司
- 大众外包
招聘类型
社招
题目解析
面试官主要考察对于接口自动化测试框架的熟练程度,以及在接口自动化测试中是如何做断言的。
答案
- 如果响应信息有几百个响应字段,那么只断言关键的业务字段信息以及响应体的接口和类型是否符合要求,需要使用 jsonschema 工具。
- 如果响应信息的层级嵌套比较深,或者字段的位置可能会发生变化。在提取单个业务字段的时候,需要使用 jsonpath 提取器进行辅助提取响应信息,完成断言。
- 如果响应信息需要结合数据库,应该如何断言,需要接口自动化测试框架支持数据库查询功能,比如输入一个 sql 语句,返回查询结果。即可辅助完成断言,实现方式有多种,可以使用 pymysql 工具。
接口自动化测试验证哪些内容
面试题目
接口自动化测试验证哪些内容?
公司
- metaapp
招聘类型
社招
题目解析
接口自动化测试需要验证接口的功能、性能以及数据的正确性,确保系统稳定可靠。
答案
接口自动化测试验证内容包括:
- 响应状态码:确保返回正确的 HTTP 状态码。
- 响应数据:验证返回的 JSON 或 XML 数据结构和内容是否正确。
- 数据一致性:检查数据库操作结果是否符合预期。
- 性能:验证响应时间和并发处理能力。
- 异常处理:测试错误请求的处理。
接口自动化测试用例有多少
面试题目
- 重点题目
接口自动化测试用例有多少?
公司
- 小鹏汽车
招聘类型
社招
题目解析
接口自动化测试用例数量取决于项目的复杂度和接口的数量,需要覆盖正常、异常及边界情况。
面试官主要考察接口自动化测试的相关经验是否丰富。回答具体的数字的话,一定要注意,因为可能会引申出来其他的问题。
接口自动化测试的计算比例为:实现的接口/总接口数量。数据一定要合理化处理!
答案
完成了总体的一半接口的覆盖,大概用例数量为 500 条。
接口自动化框架构成
面试题目
- 重点题目
接口自动化框架构成?
公司
- 小鹏汽车
- 小米外包
- 其他公司
招聘类型
社招
题目解析
接口自动化框架的构成需涵盖测试的执行、管理和结果分析,以确保自动化测试的高效性和可维护性。
答案
接口自动化框架的主要构成包括:
- 测试用例管理:编写和组织测试用例。
- 请求发送模块:负责发送HTTP请求(如GET、POST等)。
- 响应验证模块:解析和验证返回数据。
- 日志和报告模块:记录执行过程并生成测试报告。
- 数据库模块:用于数据库断言和验证。
接口自动化是场景集还是单元集
面试题目
- 重点题目
接口自动化是场景集还是单元集?
公司
- 字节外包(12~14K)
- 其他公司
招聘类型
社招
题目解析
面试官主要的考察点在于接口自动化测试选择了哪些用例实现。通常是单用例和场景集都会实现,会以场景集为主。
答案
在实现接口自动化测试用例的过程中,主要优先考虑场景集的用例,原因是可以结合 CICD 完成一些准入的标准要求,再完成场景集用例的基础之上,会针对于一些和第三方对接的接口完成单元集的用例,原因是和第三方对接如果异常处理做的不够好,容易导致内部系统崩溃,通常第三方接口是比较容易出现异常情况的。
接口自动化怎么做
面试题目
- 重点题目
接口自动化怎么做?
公司
- 小鹏汽车
- 小米外包
- 优酷外包
- 其他公司
招聘类型
社招
题目解析
接口自动化测试包括编写测试用例、发送请求、验证响应和生成报告等步骤。
答案
接口自动化步骤:
- 确定测试需求:分析接口文档,明确测试目标。
- 编写测试用例:使用工具(如Postman、JMeter或者代码)编写用例。
- 发送请求:通过代码或工具自动化发送API请求。
- 验证响应:检查状态码、响应数据和数据库。
- 生成测试报告:记录结果和日志
在写接口脚本时,各种请求怎么封装的,请求是如何切换的
面试题目
- 重点题目
在写接口脚本时,各种请求怎么封装的,请求是如何切换的?
公司
- 小米
- 其他公司
招聘类型
社招
题目解析
封装请求可以提高接口自动化测试脚本的复用性,切换请求类型则根据需求动态调整。
答案
在接口脚本中,将发请求的方式请求封装成独立的方法,通过传递不同的请求参数和 URL 调用。请求切换通过传递请求类型参数动态切换。
自动化中出现了接口依赖怎么处理
面试题目
- 重点题目
自动化中出现了接口依赖怎么处理?
公司
- metaapp
- 其他公司
招聘类型
社招
题目解析
接口依赖是指一个接口的测试需要依赖另一个接口的返回值或操作结果,需通过合理设计解决。
答案
处理接口依赖的方法:
- 提取依赖数据:调用前置接口,解析响应中的依赖数据(如Token、ID)。
- 参数传递:将提取的数据传递给后续接口作为参数。
- 使用全局变量或配置文件:保存依赖数据,便于后续接口调用使用。