极客视点
极客时间编辑部
极客时间编辑部
113243 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/05:38
登录|注册

你应该知道的自动化API测试知识

讲述:丁婵大小:7.74M时长:05:38
你好,欢迎收听极客视点。
如今,API 日渐成为应用程序开发的核心。作为 Web 组件间通信的主要模式,API 被用于跨系统之间的数据连接和传输以及业务互联。这意味着,产品上线前,通过 API 测试可以提高软件质量,并将重大安全风险降到最低。最近,工程师肖恩·希金斯(Sean Higgins)介绍了工程师必须了解的自动化 API 的知识,包括可测试的 API 类型、API 的测试策略等等,InfoQ 对其进行了翻译,如下。

什么是 API 测试?

API 测试是直接在 API 上执行的软件测试类型,用它来验证该 API 是否满足预期的功能、安全性、可靠性和性能需求。一般测试 API 通过向 API 后端发送直接请求来进行测试,无需加载或与用户界面交互。
对软件质量而言,API 测试至关重要,因为它可以在短时间内验证构建中的程序的逻辑。而且,通过设置自动化的 API 测试,你可以:
确保所有服务都按预期运行;
确认所有端点是否安全,不受未授权用户和未经身份验证用户的影响;
提高功能性和非功能性测试的覆盖率;
能及时地给开发团队提供反馈,这样就能更快地发布产品;
无论应用程序的端点托管在何处(从 AWS Lambda 云端到本地设备),所有端点都能测试。

有哪些可以测试的 API 类型?

在选择 API 测试的自动化工具时,了解正使用的 API 技术和测试的最佳方式,这些很重要。当下,最常见的 Web 服务 API 包括:

哪种类型的 API 测试可以自动化呢?

你可以为 API 执行不同类型的测试。虽然由于 API 的测试范围有所不同,但大多数测试可分为以下几类:
功能测试:侧重于测试应用程序代码库中的特定功能。其目的是确保 API 功能在预期的参数范围内,如果不在预定范围内,则适当的处理错误。理想情况下,这类测试包括的测试用例会支持对 HTTP 响应代码、错误代码和响应功能的验证。
负载测试:这种类型的测试是为了测试一个特定单元或整个代码库能够承载多少负载。对于设计用来处理大量数据或多个用户的应用程序来说,这种测试尤其必要。为保证峰值性能,你要确定 API 是否能够实际支持预期的负载量,例如 500 个请求、5 千个请求、5 万个请求甚至 10 万个请求。
安全性测试:安全性测试非常重要,因为它有助于确保 API 的代码实现免受安全漏洞的影响。基于这个原因,开发人员应该确保他们的 API 测试用例集中包含验证授权、加密机制、访问控制、会话管理等等。API 安全验证和审查流程有时还会涉及模糊测试(fuzz testing)和渗透测试(Penetration testing),这两种测试都可以确保 API 不受外部安全漏洞的影响。
验证测试:这是在 API 实现中最后执行但却非常重要的测试之一。这类测试会对产品开发、API 行为和整体效率等重要方面进行验证。这种类型的测试服务验证 API 开发和实现是否符合标准的一致性以及是否符合预期的用户需要和需求。
运行时 / 错误检测:与上述各类测试不同,以上测试主要关注在特定场景中运用该 API 后得到的结果,而这类测试关注的是 API 本身如何运行。这包括监控代码实现、执行、错误检测和资源泄漏中的异常。

API 的测试策略

不仅仅只是针对 API 测试,总体而言,当使用自动化测试时,最大的好处之一是它能配置你的 test suite 来自动提供输出,这样你就不必人为地去观察系统的响应。
自动 API 测试可以根据输入条件返回以下三类输出中的任何一种:
布尔状态——通过或失败
任何类型的数据或信息
对另一个 API 函数或事件的调用
但是,在直接对 API 进行测试时,有时候设定具体的通过或失败场景可能并不容易。
有些情况下,可能没有输出或发生一些不可预知的事情。但是,通过比较测试后产生的响应数据或调用另一个 API 后的行为,测试人员就能为他们的测试例创建明确的验证场景。
执行全面而严格的 API 测试是一个可靠的办法,它能确保你的应用程序可以端到端地正常运行。然而,为确保代码更改不会破坏 API 本身并保证 API 能正常投入使用,可以考虑将自动化的 API 测试集成到你的 CI/CD(持续集成 / 持续部署)流水线管道中。
以上就是今天的内容,希望对你有所帮助。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
大纲
固定大纲
什么是 API 测试?
有哪些可以测试的 API 类型?
哪种类型的 API 测试可以自动化呢?
API 的测试策略
显示
设置
留言
收藏
51
沉浸
阅读
分享
手机端
快捷键
回顶部