20. 第三方接口和外部依赖怎么测试
很多业务系统依赖第三方接口和外部服务。
支付、短信、邮件、地图、物流、风控、征信,都可能调用第三方接口。
一、第三方接口测试的核心问题
第三方接口测试要解决:
- 正常调用是否成功;
- 异常调用是否有处理;
- 接口返回是否正确;
- 接口超时是否有处理;
- 接口失败是否有重试;
- 接口限流是否有处理;
- 接口变更是否有适配;
- 接口安全是否有保障。
第三方接口不可控,测试要考虑多种场景。
二、正常调用要测试
第三方接口正常调用要验证:
- 接口地址是否正确;
- 接口参数是否正确;
- 接口返回是否正确;
- 业务逻辑是否正确处理返回;
- 数据是否正确保存。
比如支付接口:
- 支付接口地址是否正确;
- 支付参数是否包含订单信息;
- 支付成功返回是否正确处理;
- 支付成功订单状态是否更新;
- 支付流水是否正确保存。
三、异常调用要测试
第三方接口异常调用要验证:
- 参数错误是否被拦截;
- 权限不足是否被拦截;
- 接口返回失败是否有处理;
- 接口返回异常数据是否有处理。
比如短信接口:
- 手机号格式错误是否被拦截;
- 短信模板不存在是否被拦截;
- 短信发送失败是否有提示;
- 短信接口返回异常是否有处理。
四、接口超时要测试
第三方接口超时要验证:
- 接口超时是否有重试;
- 接口超时是否有降级;
- 接口超时是否有告警;
- 接口超时后业务状态是否正确。
比如支付接口:
- 支付接口超时是否有重试;
- 支付接口超时是否显示处理中;
- 支付接口超时是否有告警通知;
- 支付接口超时订单状态是否保持待支付。
五、接口失败要测试
第三方接口失败要验证:
- 接口失败是否有重试;
- 接口失败是否有降级;
- 接口失败是否有补偿;
- 接口失败是否有告警;
- 接口失败后业务流程是否正确。
比如物流接口:
- 物流查询失败是否有重试;
- 物流查询失败是否显示暂不可查;
- 物流查询失败是否有补偿任务;
- 物流查询失败是否有告警;
- 物流查询失败订单发货状态是否保持。
六、接口限流要测试
第三方接口限流要验证:
- 接口调用频率是否超限;
- 接口限流是否有处理;
- 接口限流是否有降级;
- 接口限流是否有告警。
比如短信接口:
- 短信发送频率是否超过接口限制;
- 矟信接口限流是否有队列延迟;
- 短信接口限流是否有降级处理;
- 短信接口限流是否有告警通知。
七、Mock 和沙箱要使用
第三方接口测试通常需要 Mock 或沙箱:
- 使用沙箱环境测试;
- 使用 Mock 接口测试异常场景;
- 使用 Mock 接口测试性能;
- 使用 Mock 接口测试并发。
比如支付沙箱:
- 使用支付沙箱测试支付成功;
- 使用支付沙箱测试支付失败;
- 使用支付沙箱测试支付超时;
- 使用 Mock 接口测试支付并发。
八、接口变更要关注
第三方接口变更要验证:
- 接口升级是否有适配;
- 接口参数变更是否有适配;
- 接口返回变更是否有适配;
- 接口废弃是否有替代方案。
比如短信接口升级:
- 短信接口参数新增是否适配;
- 短信接口返回字段变更是否适配;
- 短信接口废弃是否有新接口替代。
九、接口安全要关注
第三方接口安全要验证:
- 接口调用是否有签名校验;
- 接口参数是否有加密;
- 接口返回是否有校验;
- 接口密钥是否安全存储;
- 接口调用是否有日志记录。
比如支付接口:
- 支付请求是否有签名校验;
- 支付参数是否有加密;
- 支付返回是否有验签;
- 支付密钥是否安全存储;
- 支付调用是否有日志记录。
十、面试回答模板
可以这样回答:
第三方接口测试我会从正常调用、异常调用、超时处理、失败处理、限流处理、Mock 沙箱、接口变更和接口安全几个方面展开。正常调用测接口地址参数返回、业务处理、数据保存;异常调用测参数错误、权限不足、返回失败、异常数据处理;超时测重试、降级、告警、业务状态;失败测重试、降级、补偿、告警、业务流程;限流测频率限制、队列延迟、降级、告警;Mock 沙箱测沙箱环境、Mock 异常、Mock 性能、Mock 并发;接口变更测升级适配、参数返回变更、废弃替代;接口安全测签名校验、参数加密、返回验签、密钥存储、日志记录。
这个回答能体现你有完整的第三方接口测试思路。
十一、下一步建议
建议你把一个熟悉的第三方接口功能按上面维度重新整理:
- 正常调用测试点;
- 异常调用测试点;
- 超时处理测试点;
- 失败处理测试点;
- Mock 沙箱测试点;
- 接口安全测试点。
