自动调试失败的API测试用例

时间:2018-10-16 10:54:19

标签: testing automated-tests

我们的应用程序具有35台Web服务器,并在其上执行大约100种不同的API。

这些API在内部相互调用并独立执行。 我们有大约30个API的自动化测试用例,但是我们的一些测试失败了,因为其他API依赖于被测API依赖。

那么我们如何通过自动化测试用例知道每次测试失败的原因?

示例场景:

我们有一个测试用例,用于验证API以获取用户的银行帐户余额。

现在,我们通过Rest Assured命中此API,并尝试声明期望的输出。该请求首先到达分类帐服务器,该分类帐服务器进一步在内部命中auth服务器以验证请求的真实性,然后命中,然后命中计数器服务器以记录fetchBalance请求,然后命中其他几台服务器以获取用户的正确余额,然后响应我们的要求。

但是问题是这种情况在任何情况下都可能中断,并且如果中断,则分类帐服务器将始终返回相同的错误字符串-“底层事物失败”。现在调试成为一个挑战。我们必须转到每台服务器,并且必须搜索日志以了解实际原因。

我想写一个解决方案,可以跟踪此请求的完整生命周期,并可以报告实际失败的地方。

2 个答案:

答案 0 :(得分:1)

对于此问题,您应该了解最常见的故障原因。然后您可以根据失败原因实施策略。

示例:如果向服务器发送了一个请求,则该API可能具有一些安全性验证,一些处理步骤以及与不同组件的集成。 如果您可以确定一些故障点,并可以针对这些故障点实施检查点。

  1. 请求在安全验证时失败。您有可能的错误代码,然后根据该错误代码编写逻辑
  2. 您在处理步骤中失败,可能是可能的原因
  3. 如果集成点出现故障,则还必须有一些错误代码。您可以围绕它们实施逻辑

答案 1 :(得分:0)

在每次与服务器交互之前验证数据状态。例如

assert expression1 : expression2

如果expression2失败,将在expression1执行的位置。 (这是一个Groovy示例,但是您可以根据需要进行修改。)

示例expression2消息可能类似于:“尝试发送“某某”请求时发生故障!”。