一篇文章入门API测试

什么是API

API是Application Programming Interface的简写。

实现了两个或多个独立系统或模块间的通信和数据交换能力。

什么是API测试

API测试是不同于UI级自动化测试,其主要关注在系统架构的业务逻辑层,所以其主要关注不在于UI操作或用户感观上,更重调用逻辑关系。

与UI级自动化测试通过控制键盘输入和鼠标等操作不同的是:API测试,我们是通过工具或代码方式去调用特定的API,获取输出,并记录系统的响应。

API测试需要与应用程序的API进行交互,为了测试这些API,我们可以:

  • 使用测试工具来进行测试
  • 自己写代码的方式进行测试

API测试准备工作

首先你得获取目标测试系统的API相关文档,例如API对应的参数格式、期望返回结果等(一由开发提供文档,二自己抓包分析)

就我们所处国内的实际情况,在大部分情况下,开发都没有成型的文档。所以作为测试人员,你应该具备以下技能:

  • 优先去推动开发生成一份合适的API说明文档
  • 掌握抓包分析工具,能够自己去抓包分析形成API文档
  • 至少把http协议掌握,了解其报文结构
  • 对用户业务熟悉,能把API级业务逻辑和用户业务结合起来

API主要测试什么

API级测试至少应该覆盖以下测试要点:

  • 验证API所暴露的资源是否恰当的列出、创建、修改、和删除
  • 验证API是否功能可用以及用户友好,是否便于与其他平台集成
  • 安全测试,验证API是否包含了必要的认证以及敏感数据是否做了脱敏处理,是否支持加密或明码的http访问
  • 自动化测试,将API高度业务场景化,实现自动化测试
  • 文档,形成足够的文档,确保API质量的可维护行

API测试要注意什么

在API测试过程中要重点关注什么呢?

  • API测试用例要进行分类分组
  • 每个API测试用例都应该参数化
  • 在测试执行时,优先执行API测试
  • 测试用例应该尽可能做到可独立执行
  • 为了确保覆盖率,应该为API的所有可能输入进行测试数据规划

API测试能发现什么bug

在API测试时,一般会发现哪类型的bug呢?

  • 无法正确处理错误的深入条件
  • 缺少或重复功能
  • 可靠性问题
  • 安全问题
  • 多线程问题
  • 性能问题
  • 响应数据结构不规范问题
  • 有效参数值不能正确处理

API测试有哪些工具

  • SoapUI
  • JMeter
  • PostMan
  • 自己写代码

其他工具不推荐了,笔者首推SoapUI或自己写代码

API测试你可能遭遇哪些大坑

  • 无效的测试数据规划,导致你的参数穷举组合
  • 因为没有界面,开发又不提供文档的情况下,大部分人无从下手,会一脸懵逼
  • 平时测试大都关注正常的正常的情况,但要注意异常处理API必须进行测试,你懂的
  • 代码你要会点代码,会点HTTP协议,不然没法沟通交流

总结

把日常接口测试工作进行了大概的总结,希望对入门接口测试的朋友们有点效果,没效果那也没办法了,只能这样了。

原文发布于微信公众号 - 开源优测(DeepTest)

原文发表时间:2018-06-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏开源优测

一篇文章让你入门API测试

什么是API API是Application Programming Interface的简写。 实现了两个或多个独立系统或模块间的通信和数据交换能力。 什么是...

38510
来自专栏云计算与大数据

研发:git flow 研发工作流程

git flow命令仓库:https://github.com/heidsoft/gitflow

1183
来自专栏开源优测

一篇文章入门API测试

API是Application Programming Interface的简写。

1983
来自专栏aCloudDeveloper

一文掌握 Linux 性能分析之 CPU 篇

平常工作会涉及到一些 Linux 性能分析的问题,因此决定总结一下常用的一些性能分析手段,仅供参考。

910
来自专栏Java架构

干货:大型互联网公司分布式缓存的优秀实践和线上案例在此我在推荐一个学习架构框架的学习体系:

3266
来自专栏喔家ArchiSelf

老曹眼中的缓存技术

缓存是系统快速响应中的一种关键技术,是一组被保存起来以备将来使用的东西,介于应用开发和系统开发之间,是产品经理们经常顾及不到的地方,算是技术架构中的非功能性约束...

1312
来自专栏翻译社

6个虚拟机备份和恢复的最佳实践

虚拟机的体系结构与传统的本地环境大不相同,需要不同的数据备份技术。本文将介绍一些备份虚拟机的最佳实践。

3046
来自专栏Janti

spring boot之从零开始开发自己的网站

2942
来自专栏IMWeb前端团队

webpack 学习小结

webpack 学习小结 1 前言 打包,本质来说就是把许多零散的文件有序的合并成为一个文件,达到前端优化的效果 它的前世今生就不说了,感兴趣的同学可以去学习相...

2397
来自专栏带你撸出一手好代码

使用Java内置的Http Server构建Web应用

一、概述 使用Java技术构建Web应用时, 我们通常离不开tomcat和jetty之类的servlet容器,这些Web服务器功能强大,性能强劲,深受欢迎,是运...

3007

扫码关注云+社区