API自动化测试

在进入API测试教程之前,让我们先看一下

什么是API?

API(应用程序编程接口)是一种接口,可实现两个独立软件系统之间的通信和数据交换。在两个软件系统之间。

什么是API测试?

API测试是一种验证应用程序编程接口(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的输出可以是

  1. 任何类型的数据
  2. 状态(通过或失败)
  3. 调用另一个API函数

让我们看一下本API测试教程中上述每种类型的示例

任何类型的数据

示例:有一个API函数,将两个整数相加。

Long add(int a, int b)

这些数字必须作为输入参数给出,需要用预期的结果来验证输出。

调用需要执行如下操作

add (1234, 5656)

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

状态(例如通过或失败)

考虑以下API函数-

  1. Lock()
  2. Unlock()
  3. Delete()

它们返回任何值,例如True(在成功的情况下)或False(在错误的情况下)作为输出。

更准确的测试用例是,可以调用任何脚本中的函数,然后检查数据库或应用程序GUI中的更改。

调用另一个API/事件

Approach of API Testing image
Approach of API Testing image

在本例中,我们调用其中一个API函数,而该API函数又将调用另一个函数。

例如,第一个API函数可用于删除表中的指定记录,而此函数又调用另一个函数来刷新数据库。

API测试测试用例:

API测试的测试用例基于

  • 基于输入条件的返回值:测试相对容易,因为可以定义输入,并且可以对结果进行验证
  • 不返回任何内容:当没有返回值时,要检查的系统上API的行为
  • 触发其他一些API/事件/中断:如果API的输出触发了一些事件或中断,则应该跟踪这些事件和中断监听器
  • 更新数据结构:更新数据结构会对系统产生一些结果或影响,应该进行身份验证
  • 修改某些资源:如果API调用修改了某些资源,则需要通过访问相应的资源进行验证

API测试方法

API测试方法是一种预定义的策略或方法,QA团队将执行该策略或方法,以便在构建就绪后执行API测试。API测试方法有助于更好地理解测试用例的功能、测试技术、输入参数和执行情况。

以下几点有助于用户做API测试方法:

Learn API testing in 10 minutes!!!
Learn API testing in 10 minutes!!!
  1. 了解API程序的功能并明确定义程序的范围
  2. 应用等价类、边界值分析和错误猜测等测试技术,并为API编写测试用例
  3. 接口的输入参数需要进行适当的规划和定义
  4. 执行测试用例,并比较预期结果和实际结果。

API测试与单元测试的区别

单元测试 API测试
开发人员执行 测试人员执行
测试单独的功能 测试端到端功能
开发人员可以访问源代码 测试人员不能访问源代码
涉及UI测试 仅测试API函数
仅测试基本功能 所有功能问题都经过测试
范围有限 范围更广

如何测试API

API自动化测试除通常的SDLC流程外,至少应涵盖以下测试方法

  • 调用测试:测试组应该手动执行API中记录的一组调用,比如验证API公开的特定资源是否可以适当地列出、创建和删除
  • 可用性测试:此测试验证API是否功能正常且用户友好。并且API是否也能与另一个平台很好地集成
  • 安全测试:此测试包括需要哪种类型的身份验证,以及敏感数据是否通过HTTP加密或两者都加密
  • 自动化测试:API测试应最终创建一组脚本或可用于定期执行API的工具
  • 文档:测试团队必须确保文档足够,并提供足够的信息来与API交互。文档应该是最终交付成果的一部分

API测试的最佳实践:

  • API测试用例应按测试类别分组
  • 在每个测试之上,应该包括被调用的API的声明。
  • 参数选择应该在测试用例本身中明确提到
  • 确定API函数调用的优先级,以便测试人员可以轻松地进行测试
  • 每个测试用例都应该尽可能地自包含并独立于依赖项
  • 在开发中避免“调用链”
  • 在处理一次性调用函数(如-Delete、CloseWindow等…)时必须格外小心
  • 应执行调用排序,并做好计划
  • 要确保完整的测试覆盖范围,为API的所有可能输入组合创建API测试用例。

API测试检测到的错误类型

  • 未能正常处理错误条件
  • 未使用的标志
  • 功能缺失或重复
  • 可靠性问题。难以连接并从API获取响应。
  • 安全问题
  • 多线程问题
  • 性能问题。API响应时间非常长。
  • 向调用者发出不适当的错误/警告
  • 不正确处理有效参数值
  • 响应数据的结构不正确(JSON或XML)

API测试面临的挑战

API测试的挑战包括:

  • Web API测试的主要挑战是参数组合、参数选择和调用排序
  • 没有可用的GUI来测试应用程序,这使得很难给出输入值
  • 对于测试人员来说,在不同的系统中验证和验证输出并不困难
  • 要求测试人员了解参数选择和分类
  • 需要测试异常处理功能
  • 编码知识对于测试人员是必要的

结论:

API由一组表示业务逻辑层的类/函数/过程组成。API测试是软件工程中不可缺少的测试。

IT赶路人

专注IT知识分享