什么是API

API是Application Programming Interface的简写。

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

什么是API测试

图片.png

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协议,不然没法沟通交流

总结

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

什么是API测试的更多相关文章

  1. API测试

    API(Application Programming Interface)包含: 单元测试(Unit Testing).模块测试(Module Testing).组件测试(Component Tes ...

  2. 使用python+pychram进行API测试(接口测试)初级STEP 1

    花了一天时间安装了解了下最基本的python+pychram进行API测试,下面这个可以指导自己以后入门:基本的开发级别还需要学习 1.python下载地址:https://www.python.or ...

  3. Chrome Restful Api 测试工具 Postman-REST-Client离线安装包下载,Axure RP Extension for Chrome离线版下载

    [Postman for Chrome 离线下载] Postman-REST-Client离线安装包,可直接在Chrome浏览器本地安装使用,可模拟各种http请求,Restful Api测试, CS ...

  4. 接口API测试和返回值JSON解析的插件

    火狐插件1.   HttpRequest作用:接口API测试例子:http://192.168.10.61:8080/ZHCS/user/loginApp.do?phone=admin&pwd ...

  5. asp.net web api 测试帮助页面建立并测试

    asp.net web api 测试帮助页面建立并测试 现在使用WEB API来开发,越来越流行. 在开发过程中的测试调试,可以使用Fiddler等工具来帮助测试外,还有: 在asp.net 中有种方 ...

  6. Aliexpress API 测试工具

    Aliexpress API 测试工具 上回简单说了 Aliexpress API 的认证流程, 这回在奉送一个小工具, API 测试工具. 点我下载 做这一行,和做程序员的生活完全不搭调, 格格不入 ...

  7. API测试自动化——基于CDIF的SOA基本功能(实例篇)

    今天我们通过一些实例来体验一下API的自动化测试,感受一下基于CDIF的SOA的一些基本功能. 传统的测试工具在测试一个API的时候,必须手动填写这个API所需要接收的所有信息,比如一个查询航班动态的 ...

  8. 开源API测试工具 Hitchhiker v0.4更新 - 没有做不到,只有想不到

    Hitchhiker 是一款开源的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起管理Api. 详细介绍 ...

  9. 开源API测试工具 Hitchhiker v0.5更新 - 完善细节

    Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起管理Ap ...

  10. 开源API测试工具 Hitchhiker v0.6更新 - 改进压力测试

    Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试 ...

随机推荐

  1. motion移植

    一. 支持ffmpeg功能(使能motion中的视频编码功能)支持视频采集 —> ffmpeg不支持 —host   1. mkdir _install 2. ./configure —pref ...

  2. mybatis由浅入深day02_5resultMap总结

    5 resultMap总结 resultType: 作用: 将查询结果按照sql列名pojo属性名一致性映射到pojo中. 场合: 常见一些明细记录的展示,比如用户购买商品明细,将关联查询信息全部展示 ...

  3. remove()

    remove() 用于从列表中删除指定的元素 In [35]: l = ['a', 'b', 'c'] In [36]: l.remove('b') In [37]: l Out[37]: ['a', ...

  4. Oracle的闪回操作

    Oracle10g中引入了闪回技术,但这并不意味着所有的表都能闪回成功,当没有足够的磁盘空间,Oracle将使用回收站中的磁盘空间,而且位图连接索引和引用完整性约束也不受回收站的保护. recycle ...

  5. C#中的方法,方法的重载,以及几个关键字

    嘿嘿,今天来的早点啦,主要有问题解决不了,希望看到的亲们知道怎么整的给我说下,先谢谢哦:-D <一>首先复习了三元表达式:即  表达式1,表达式2,表达式3: 举例: bool resul ...

  6. PyQt4网格布局

    最通用的布局类别是网格布局(QGridLayout).该布局方式将窗口空间划分为许多行和列.要创建该布局方式,我们需要使用QGridLayout类. #!/usr/bin/python # -*- c ...

  7. 《转载》POI导出excel日期格式

    参考帖子: [1]http://www.ithao123.cn/content-2028409.html [2]http://javacrazyer.iteye.com/blog/894850 再读本 ...

  8. poj_3630 trie树

    题目大意 给定一系列电话号码,查看他们之间是否有i,j满足,号码i是号码j的前缀子串. 题目分析 典型的trie树结构.直接使用trie树即可.但是需要注意,若使用指针形式的trie树,则在大数据量下 ...

  9. 开源的PaaS方案:在OpenStack上部署CloudFoundry (五)常见问题

    部署CloudFoundry可能遇到的问题 1. Bosh 报告 OpenStack API Request Entity Too Large error 解决办法,修改/etc/nova/api-p ...

  10. jquery类似方法的比较(三)

    属性选择器 1.$("div[class|='test']")可以选择 class为test的div 和 class以“test-”开头的div. 2.$("div[cl ...