testing - 自动调试失败的 API 测试用例
问题描述
我们的应用程序有 35 个 Web 服务器和大约 100 个不同的 API 在其上执行。
这些 API 在内部相互调用并独立执行。我们有大约 30 个 API 的自动化测试用例,但我们的一些测试失败了,因为其他 API 失败,而被测 API 依赖于这些 API。
那么我们如何通过我们的自动化测试用例知道每次测试失败的原因呢?
示例场景:
我们有一个测试用例来验证 API 以获取用户的银行账户余额。
现在我们通过 rest Assured 访问这个 API 并尝试断言预期的输出。该请求首先到达账本服务器,该服务器进一步在内部命中 auth 服务器以验证请求的真实性,然后命中,然后命中计数器服务器以记录 fetchBalance 请求,然后命中其他几个服务器以获取用户的正确余额,然后响应我们的要求。
但问题是这可能会在任何情况下中断,如果它中断,分类帐服务器总是返回相同的错误字符串 - “Something failed underhood”。现在调试成为一个挑战。我们必须去每台服务器,必须搜索日志才能知道实际原因。
我想编写一个解决方案,可以跟踪此请求的完整生命周期并报告它实际失败的位置。
解决方案
对于这个问题,您应该了解最常见的失败原因。然后您可以根据失败原因实施策略。
示例:如果您向服务器发送了一个请求,API 可能有一些安全验证和一些处理步骤以及与不同组件的集成。如果您可以识别一些故障点并可以针对该故障点实施检查点。
- 安全验证请求失败。您有可能的错误代码,然后根据该代码编写逻辑
- 您在处理步骤失败可能有原因
- 如果集成点出现故障,则还必须有一些错误代码。您可以围绕它们实现逻辑
推荐阅读
- nlp - 使用 HuggingFace 库构建语言模型(即下一个单词预测器)
- javascript - 在 forEach 完成之前返回的数据
- python - 如何通过导入填充全局命名空间?
- javascript - JSON.parse() 行为不同的原因是什么?
- php - 注意:检查 PHP 数组中的值是否存在于数据库中时,数组到字符串的转换
- c# - 如何在协程中使用缓动来更改浮点值?
- flutter - 改变抽屉颜色不显示颜色悬停
- c++ - 如何打开特定窗口到 wxWidgets 上的特定按钮?
- javascript - 在不使用异步等待的情况下等待 API 调用。调用完成后需要维护用户启动的执行上下文
- node.js - NestJS - 如何使用不同的配置多次注册动态模块提供程序?