如何为与数据库无关的 Webservice api 构建自动化测试

How to build automation test for Webservice api that's independence with Database

我是自动化测试术语的新手。目前我有一个项目想应用 Cucumber 来测试 Rest Api。但是当我尝试根据当前数据断言这个 api 的端点时,所以我想知道如果我改变环境或者将来测试数据库有任何变化会发生什么,所以我的测试用例将是潜在的失败。

编写独立于数据库的测试的最佳实践是什么。

或者我需要 运行 我的测试使用空的分隔数据库并在 运行 测试之前执行一些脚本来初始化数据库?

如果您要断言出现的响应值(例如:汽车数量),实际上不可能使其独立于数据库。我想你能明白为什么?我在类似情况下会做的是这样的。

  • 使用 API 并获取数据库中的汽车数量(例如:544)并将其分配给变量。
  • 使用 API 将另一辆车添加到数据库。
  • 然后再次检查数据库中的汽车总数并断言(应该是 544 + 1 否则失败)

希望对您有所帮助。

为了使您的测试值得信赖,它们不应依赖于数据库中是否存在测试数据。您应该控制这些数据。因此,为了使其独立于数据库的当前状态:插入预期数据作为测试的先决条件(设置)。 (并在测试结束时再次删除它)。如果数据库连接实际上不是测试的一部分,您还可以存根或模拟数据库的结果(这将使您的测试更快,因为您没有使用数据库连接)。