接口和接口测试
1.接口分类
内部接口:开发的接口给内部系统使用。(正例)
外部接口:
1.被测项目调用外部项目的接口。(正例)
2.被测项目提供给外部项目调用的接口。(正例,鉴权反例,参数反例,业务反例,兼容性用例)
2.为什么要做接口测试?
1.前后端分离架构:联调问题(1.接口变更,2.字符串1和数字的1,3.参数长度限制,4.鉴权)
2.安全考虑:前端的功能测试很容易被绕过。需要做接口层面的验证。
3.什么时候做接口测试?
接口测试的介入时间:需求评审澄清之后,前后端开发会对接接口文档,达成一致之后已经输出了接口文档。
接口测试的测试时间:后端开发把接口开发完成之后,并且达到提测的要求,就可以开始进行接口测试了。
4.接口测试的周期
接口数量不多,一个人就可以完成,可能是一周就可以了。----可用jmeter 线程组
接口数据巨大,需要多个测试协同测试,可能需要1-2个月。----可用jmeter 测试片段+线程组
5.接口测试的重点:
1.接口参数,
2.接口返回数据的正确性,
3.鉴权,
4.异常时的容错处理或错误提示。
5.兼容性。
6.目前市面上的接口设计架构
1.基于SOAP架构:基于XML的一种接口规范。一般使用webservice协议。比较旧的方式,目前银行普遍在使用。
接口地址:https://......?wsdl (以wsdl为结尾)
2.基于RPC架构,基于阿里的dubbo://协议的接口架构。接口地址:dubbo://.......
thrift,RMI,Hessian
3.基于restful架构,基于http协议。接口地址:http://.......
常用方法: get(查询),post(提交),put(修改),delete(删除)
重点:http协议
占比较高80%-90%
请求
请求行:请求方式,请求路径,协议
请求头:
User-Agent:客户端的类型
Accept:客户端接收的数据类型
X-Requested-With:异步请求(ajax,局部刷新)
Content-Type:(内容的格式)
application/json json
application/x-www-form-urlencoded 表单
...
Cookie:cookie信息
请求数据:...
响应
响应行:协议,响应码,响应信息
响应头:(同请求)
响应数据:
7.接口测试流程
1.拿到api接口文档(swagger,showdoc,word,抓包或录制),熟悉接口业务,说明,鉴权,入参,出参,错误码等等。
2.编写接口测试计划、用例和评审
接口测试用例设计思路:
正例:正确输入必填的参数,接口正常返回。
反例:
鉴权反例:必填,错误,过期.....
参数反例:必填,类型异常,长度异常,错误码异常(根据业务定)
其他场景反例:分页,黑名单,接口调用次数限制,接口调用时间的限制。接口服务费。
兼容性用例:多版本的兼容,多端的兼容。
3.使用接口测试工具执行接口测试
4.输出接口测试报告。