有效的API测试的关键

API端点使网站运行。简而言之,它们是数据通过的渠道。登录功能?经常用于身份验证的API调用。点击网页的新部分?通常是API调用内容。显然,API是任何Web应用程序中至关重要的一部分。我们测试这些端点的方式非常重要。在API Fortress,我们希望保持有效API测试所遵循的最佳实践。

规则1:保持干燥
DRY是“不要重复自己”的首字母缩写词。这个简单的想法构成了良好编程的核心原则。当我们编写测试时,即使在API Fortress的可视化编写器中,我们仍然在编程,应该尽一切努力遵循编写优秀代码的原则。假设我有一个提供用户数据的端点。提供用户数据的关系数据库有十个条目,我想编写测试来验证每个条目被调用时的响应。没有“所有用户”路线,因为我们的组织没有真正的业务需求。访问每个端点中数据的唯一方法是发送多个调用,一个用于数据库中的每个条目。如何在不重复代码的情况下完成此任务?

该问题的非DRY解决方案是为用户端点中的每个单独用户编写请求和断言。当然,这会奏效。但是,如果我们谈论的是一个有十个条目的端点,我们谈论的是分别写十次相同的测试。如果我们在基本测试结构中有5个断言,那么我们将查看50个单独的断言。

我们如何才能使此测试符合DRY标准?好吧,我们知道所有用户的架构都应该匹配。如果模式相同,则验证该模式的断言也应该相同。我们可以利用API Fortress中的循环组件并迭代端点中的每个用户,而不是一遍又一遍地重写相同的测试。我们可以将用户列表作为静态数据集(CSV,XML,JSON等)传递,并引用每个用户,而无需手动重写我们的测试。现在我们的测试很好而且干燥。

规则2:明确您的意图
规则1(保持干燥)是一项易于定义的技术规则。规则2有点模糊。在编写API测试时,重要的是要明确您的意图,以便下一个使用此测试的人确切知道您编写它的原因。这可以通过多种方式完成。首先,利用API Fortress中的注释组件,我们可以通过明文写出来明确表达我们的意图。记录良好的代码是沟通意图的重要组成部分。

规则3:对待您正在像消费者那样进行测试的API
如果您正在测试API,请确保按照消费者的要求对待它。有时,在编写测试套件的过程中,我们过分关注我们所知道的正确响应。为了正确审核我们的API端点,我们需要介绍用户可能引入的那种错误。有一会儿,我们需要脱掉开发人员/测试人员的帽子并像用户一样思考。毕竟,在现场环境中,事物很少以可预测的方式破坏,因此测试就好像我们已经在那里一样非常重要。

规则4:尽可能消除尽可能多的固定数据源
在实时环境中,API端点通常依赖于其他API的输出。确保此关系完好无损的唯一方法是创建一个调用第一个API的集成测试,然后利用该调用的结果来访问第二个API。当我们开始使用来自第一个API的静态预期数据测试第二个API时,我们不再从整体上测试环境。在可能的情况下,我们应该遵循实际的用户流程并创建集成测试,而不是在真空中测试单个端点。

测试是开发周期中不可或缺的一部分。测试API端点是整体测试策略中非常重要的一部分。在开发环境中进行单元测试是一个很好的起点,但是如果不测试分段或实时设置中端点之间的交互,则会在新版本中出现无法预料的问题。这里讨论的规则当然不是开发API测试策略时唯一要考虑的事项,但它们是一个很好的起点。继续测试!

你可能感兴趣的:(有效的API测试的关键)