API 测试教程 - 初学者指南


什么是 API?

API(应用程序编程接口)是允许两个不同的软件系统进行通信和共享数据的计算机接口。执行 API 的软件系统具有许多功能/子程序,这些功能/子程序可以由另一个软件系统执行。在两个软件系统之间,API 描述了可以发出的请求类型、如何发出请求、可以使用的数据格式等等。

左移测试

左移测试是现在 API 测试面试中最常见的问题之一。几乎每个遵循敏捷方法的项目都包含这种形式的测试。

在引入左移测试之前,软件测试仅在开发完成后并向测试人员提供代码后才进行。这种策略导致了最后一刻的匆忙以赶上截止日期,以及产品质量的显著下降。

除此之外,所需的工作(当在生产前的最后阶段发现错误时)是巨大的,因为开发人员必须重复设计和编码阶段。

API 测试包括什么?

API 测试是一种软件测试,它验证应用程序编程接口 (API)。API 测试的目的是确保编程接口的功能、可靠性、速度和安全性。API 测试使用软件来发出 API 调用、获取输出并记录系统的响应,而不是使用典型的人工输入(键盘)和输出。API 测试不同于 GUI 测试,因为它不关注应用程序的外观和感觉。它主要关注软件架构的业务逻辑层。

API 自动化是指需要使用启用 API 的应用程序的测试。要测试 API,您需要执行以下操作。

  • 使用测试工具来驱动 API。

  • 编写自己的代码来测试 API。

您将在本 API 测试课程中了解有关以下内容的更多信息。

  • API 测试环境设置

  • API 输出的不同类型

  • API 测试用例是一组用于测试 API 的场景。

  • API 测试方法

  • API 测试和单元测试之间存在区别。

  • 如何运行 API 测试

  • API 测试最佳实践

  • 通过 API 测试检测到的错误类型

  • 如何自动化 API 测试

  • API 测试挑战

API 测试环境设置

  • API 测试与其他软件测试方法的不同之处在于没有 GUI,但您必须构建一个初始环境,该环境使用一组指定的参数执行 API,然后检查测试结果。

  • 因此,为 API 自动化测试设置测试环境似乎有点困难。

  • 应设置数据库和服务器以满足应用程序的需求。

  • 安装完成后,应使用 API 函数验证 API 是否正常运行。

API 输出的不同类型

API 输出可能是 -

  • 任何类型的信息

  • 当前状态(例如通过或失败)

  • 调用另一个 API 函数。

在本 API 测试课程中,我们将查看上述每种类型的示例。

任何类型的信息

例如,有一个 API 方法可以添加两个整数。

Long add(int a, int b)

必须将数字作为输入参数输入。最终结果应为两个整数值的总和。必须将此输出与预期结果进行比较。

需要进行以下调用,例如

add (1234, 5656)

如果数字超过整数限制,则必须处理异常。

当前状态(例如通过或失败)

查看下面的 API 方法 -

  • Lock()

  • Unlock()

  • Delete()

它们可以返回任何结果作为输出,例如 True(成功时)或 False(失败时)。更精确的测试用例是在任何脚本中运行函数,然后检查数据库或应用程序 GUI 中的变化。

正在调用另一个 API/事件。

在这种情况下,调用了其中一个 API 函数,然后该函数又调用了另一个函数。

例如,第一个 API 方法可用于从表中删除特定记录,然后此函数调用另一个函数来刷新数据库。

API 测试用例

API 测试用例基于

  • 根据输入条件返回的值:这很容易测试,因为可以描述输入并验证结果。

  • 不提供任何信息:当没有返回值时,必须检查系统的 API 行为。

  • 激活另一个 API/事件/中断:如果 API 的输出导致事件或中断,则应监视事件和中断侦听器。

  • 更新数据结构:更新数据结构将对系统产生影响或后果,应予以验证。

  • 修改特定资源:如果 API 请求更改了特定资源,则应通过访问这些资源来检查。

API 测试方法

API 测试方法是在构建完成后 QA 团队将用于执行 API 测试的预定方法或技术。此测试不包括源代码。API 测试方法有助于更好地理解功能、测试方法、输入参数和测试用例执行。

以下几点将帮助用户实施 API 测试策略 -

  • 了解 API 程序的功能并准确定义程序的范围

  • 使用等价类、边界值分析和错误猜测等测试方法为 API 编写测试用例。

  • 必须仔细考虑和描述 API 的输入参数。

  • 执行测试场景并将预期结果与实际结果进行比较。

API 测试与单元测试

下表重点介绍了 API 测试和单元测试之间的主要区别 -

单元测试API 测试
由开发人员执行。由测试人员执行。
对不同的函数进行测试。从头到尾测试功能。
开发人员可以访问源代码。测试人员无法访问源代码。
UI 测试也是流程的一部分。仅对 API 函数进行测试。
仅测试最基本的功能。彻底检查所有功能问题。
范围有限。更广泛的范围
通常在签入之前执行。构建完成后运行。

如何运行 API 测试?

除了标准的 SDLC 流程之外,API 自动化测试还应至少包含以下测试方法。

  • **发现测试** - 测试组应手动执行 API 中定义的一组调用,例如确认 API 可访问的给定资源可以根据需要列出、创建和销毁。

  • **可用性测试** - 可用性测试确保 API 既实用又友好。以及 API 与其他平台的交互效率如何?

  • **安全测试** - 安全测试涉及确定需要哪种形式的身份验证以及敏感数据是否通过 HTTP 或两者都加密。

  • **自动化测试** - API 测试应导致建立一组脚本或工具,可用于定期运行 API。

  • **文档** - 测试团队必须确保文档完整且足以与 API 交互。最终输出应包括文档。

API 测试最佳实践

  • API 测试用例应分类组织。

  • 每个测试的顶部都应包含被调用的 API 的声明。

  • 测试用例中应明确说明参数的选择。

  • 对 API 函数调用进行优先级排序,以便测试人员可以轻松地对其进行测试。

  • 每个测试用例应尽可能独立,并且没有依赖项。

  • 在您的开发中,避免“测试链”。

  • 在使用一次性调用函数(如 Delete、CloseWindow 等)时,需要更加小心。

  • 应执行并精心计划调用顺序。

  • 为 API 的所有可能输入组合创建 API 测试用例,以确保全面测试覆盖率。

通过 API 测试检测到的错误类型

  • 无法优雅地处理错误情况

  • 从未使用过的标志

  • 缺少或重复的功能

  • 可靠性问题 连接到 API 并接收响应很困难。

  • 安全问题

  • 多线程问题

  • 性能问题。API 响应时间非常长。

  • 向调用方发送不正确的错误/警告

  • 错误处理有效的参数值

  • 响应中的数据组织不正确(JSON 或 XML)

如何自动化 API 测试

后续课程提供逐步指南以实现 API 测试自动化。

  • REST Assured API 测试

  • 如何使用 Postman 测试 API

  • 如何使用 UFT 测试 API?

API 测试挑战

API 测试有许多缺点,包括 -

  • 参数组合、参数选择和调用顺序是 Web API 测试中的三个主要问题。

  • 该程序没有图形用户界面 (GUI) 用于测试,因此无法提供输入数据。

  • 测试人员在独立的系统上验证和确认结果比较困难。

  • 测试人员必须了解参数选择和分类。

  • 需要测试异常处理方法。

  • 测试人员需要具备编码技能。

结论

业务逻辑层由 API 中的一组类、函数和方法表示。如果 API 未经充分测试,可能会在 API 应用程序和调用应用程序中都产生问题。在软件工程中,测试是必不可少的。

更新于: 2021年11月29日

8K+ 浏览量

开启你的 职业生涯

完成课程获得认证

立即开始
广告