API测试自动化:两全其美
以下是API级测试自动化可以理所当然地被认为是两全其美的一些原因:
与单元测试相比,范围更大
单元测试侧重于单个应用程序或应用程序层中的单个组件或小组组件的工作。但是分布式应用程序中的问题经常发生在一个应用程序(层)的范围结束而下一个应用程序的范围开始的地方。
不会在单元测试中发现这些问题,但API级别的集成测试旨在验证组件是否按照设计或请求进行交互。随着与外部组件正确集成的能力变得越来越重要,对适当的API测试策略的需求也会增加。
在分布式应用程序中进行集成测试时,测试环境管理是一个潜在的问题。同时安装所有组件并提供所需的测试数据可能是一项复杂的任务,尤其是当在不同团队甚至不同组织中开发组件时。在这种情况下,可以使用模拟、存根和服务虚拟化等方法来广泛执行集成测试,即使在关键依赖项难以按需访问时也是如此。
与端到端测试相比,提高了稳定性和执行速度
当将API级别的集成测试与端到端、用户界面驱动的测试进行比较时,API 测试的范围更窄。这是因为它们专注于两个组件或应用程序层之间的集成,而端到端测试涵盖应用程序或分布式系统的所有组件和层。
不过,API 测试在两个方面弥补了这种范围的损失。API 测试优于端到端测试的第一个方面是执行速度。由于端到端用户界面驱动的测试需要启动应用程序或浏览器,因此需要花费大量测试执行时间来等待屏幕或网页加载和呈现。更糟糕的是,加载的大部分数据对于测试来说通常是微不足道的(例如,想想网页上的广告横幅,当然,除非这些是测试的主题)。
API 测试通常由单独的请求-响应交互(例如JSON或XML格式)构建而成,这会导致更少的开销、更快的执行时间,从而缩短开发团队的反馈循环。
另一个支持API测试的因素是它们的内在稳定性。由于先进的前端框架,或者由于来自用户或其他利益相关者的快速更改请求,用户界面由于其动态性质而倾向于更改。但是API,尤其是当暴露给第三方时,通常具有更稳定的接口。因此,测试需要的维护更少,并且由于过时的测试而产生的假阴性更少。