接口(api)测试是啥?如何进行接口(api)测试?
首先我们需要了解一下接口(api)是什么?
按照官方的定义,api是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件
得以访问一组例程的能力,而又无需访问源码,或者理解内部工作机制的细节。
重点就是函数,可以访问,不需了解细节。
举个实际生活中的例子,张三李四去银行办业务,柜员就相当于一个接口,他们要办什么业务只需要跟柜员说一声,
柜员就能熟练地给他们办好,而不用去跟张三李四解释这个业务他是怎么去操作的。张三也不关心办这个银行卡是
怎么办的,李四也不关心这个收入证明是怎么来的,他们只需要等柜员办好拿着银行卡你收入证明屁颠屁颠地回去。
接口的本质是啥?
接口的本质就是一个url,域名(ip)+端口+资源定位符,就是能够通过接口访问一个远程服务器上的资源,就是数据的传送和接收。
接口的工作原理是啥?
工作原理就是通过一定的请求方式(get,post,put,delete等),向服务器发送携带相关信息的请求,并得到相应的回应。
为啥要做接口测试?
1.接口测试能够更早的发现bug,它不需要等功能完全开发好才进行测试,而只需要在相关接口开发完成,就可介入测试,
比普通的功能测试更早。
2.能够发现更底层的bug,相对于前端来说,接口处于更底层
3.做一些前端无法做到的测试,对于一些金额,数量,前端无法填入负数,但是接口可以填入。
4.对于一些加密数据,需要检查接口的返回是否有加密
5.接口测试很方便进行集成,利于回归测试
接口测试关心的点
1.接口的功能是否完整,能否满足需求。比如柜员窗口支持的业务是否和窗口提示的一样。
2.接口的参数校验。就像你办业务,柜员校验你的身份证,银行卡一样。
3.接口的异常处理。就像办业务时,遇到各种异常情况,柜员的处理一样。
4.接口的性能。就像柜员办理业务的效率。
接口测试质量评估标准
1.业务功能覆盖是否完整
2.业务规则覆盖是否完整
3.参数验证是否达到要求(边界、业务规则)
4.接口异常场景覆盖是否完整
5.接口覆盖率是否达到要求
6.代码覆盖率是否达到要求
7.性能指标是否满足要求
8.安全指标是否满足要求
接口测试都要掌握哪些知识?
1.了解系统及内部各个组件之间的业务逻辑交互;
2.了解接口的I/O(input/output:输入输出);
3.了解协议的基本内容,包括:通信原理、三次握手、常用的协议类型、报文构成、数据传输方式、常见的状态码、URL构成等;
4.常用的接口测试工具,比如:jmeter、loadrunner、postman、soapUI等;
5.数据库基础操作命令
如何获取接口相关信息?
1.接口文档
2.抓包,使用fiddle或者charles,或者浏览器的开发者模式
3.看项目的日志
4.看项目源码