接口测试
一、什么是接口测试(接口返回的数据都是json格式的)
1)接口一般来说有两种:程序内部的接口和系统对外的接口
最常用的两种接口就是webservice接口和http api接口
说白了接口测试就是功能测试,基本上测的都是程序对外部的接口,就是各种操作数据库;
2)前端和后端通过接口进行交互:通用的数据类型json
前端(客户端):一般是HTML、css写的
后端(服务端、server端):一般是java、php、Python开发的
二、接口如何测试
测试接口,必须得有接口文档,包括:
1、url
2、请求方式post、get
如果是get请求,直接用浏览器就能发不需要借助工具
post请求和get请求的区别:
1)、最大的区别:
http请求包括请求头和请求体
get请求只有请求头,没有请求体:get请求的参数放在url或cookie里面
post请求有请求头和请求体,请求参数放到请求体里面;
2)、post请求不一定比get请求安全,通过抓包get和post请求的数据都可以抓到
3)、get请求参数有限制这种说法目前已不准确:get请求浏览器已无限制无所谓了;
4)、get请求主要是用来获取数据,post请求用来发送数据;
3、入参(请求参数)
4、返回参数
5、请求、返回示例
6、状态码
三、接口测试的必要性
接口测试可以发现一些页面上操作发现不了的bug,越早发现bug,解决bug的成本越低;
检查系统的安全性、稳定性
检查系统的异常处理能力
前端随便变了,接口测试好了,后端不用变
四、接口测试流程
1、需求评审,熟悉业务和需求
2、开发提供接口文档
3、编写接口测试用例
4、用例评审
5、提测后开始测试
6、提交测试报告
四、http状态码
每发出一个http请求后都会有一个响应,http本身会有一个状态码来标示这个请求是否成功,常见的状态码:
1、200 2开头的都表示这个请求发送成功,常见的是200就代表这个请求是ok的,服务器也返回了
2、300 3开头的表示重定向,常见的是302,把这个请求重定向到别的地方了(类似电话的呼叫转移)
3、400 400表示客户端发送的请求有语法错误,401表示访问的页面没有授权,403表示没有权限访问这个页面,404表示没有这个页面;
4、500开头的表示服务器异常
五、接口用例设计
1、通过性验证:保证接口功能好使,也就是正常的
2、通过性测试:按照接口文档上的参数,正常传入,是否可以返回正确的结果;
3、参数组合:根据接口文档各个参数之间的组合也需要验证
4、接口安全验证:绕过验证、绕过身份授权、参数是否加密、密码安全规则验证;
5、异常验证:必传非必传、参数类型、入参长度;
6、根据业务逻辑来设计用例;
六、cookie、session、接口签名
1、cookie:存在本地的一个键值对;
2、session:存在服务端的一个键值对;cookie和session相辅相成
3、接口签名:为了防止别人恶意刷请求,它是一个加密后的字符串;