在进入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的输出可以是
- 任何类型的数据
- 状态(通过或失败)
- 调用另一个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测试方法
API测试方法是一种预定义的策略或方法,QA团队将执行该策略或方法,以便在构建就绪后执行API测试。API测试方法有助于更好地理解测试用例的功能、测试技术、输入参数和执行情况。
以下几点有助于用户做API测试方法:
- 了解API程序的功能并明确定义程序的范围
- 应用等价类、边界值分析和错误猜测等测试技术,并为API编写测试用例
- 接口的输入参数需要进行适当的规划和定义
- 执行测试用例,并比较预期结果和实际结果。
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测试是软件工程中不可缺少的测试。