接口分析
Posted hailin-521
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口分析相关的知识,希望对你有一定的参考价值。
1.接口测试流程:类似于功能测试流程
①需求分析与评审
②测试框架和技术选型
③测试计划与评审
④测试设计和评审
⑤测试实现和执行
⑥持续集成
典型 :
测试计划
测试设计
测试实现
测试执行
2.接口测试是集成测试的一种特殊测试类型
简版测试计划 :
测试进度计划表
任务 负责人 时间 工作量 目标
测试脚本 :
python /java 纯代码 实现
JMeter /SOAPUI 测试工具实现
3.接口测试顺序 :
外部接口、优先级高的内部接口、优先级低的内部接口
4.接口测试流程 :
①确定接口测试范围 测什么 接口文档 、代码分析统计 、线上日志分析统计、客户端抓包
②接口分析与设计 怎么测
③接口测试框架选择(可选) 手工、 半自动化 、全自动化
④接口测试脚本开发 构建请求 、参数化 、断言 、关联
⑤测试执行与报告 定时任务 、 报告可以根据模板自动生成
⑥持续集成 (可选)
5.接口类型分析
a.按接口调用方式 :
同步 : 必须等到返回数据 ,阻塞 ,超时机制 ,怎样处理超时
异步:非阻塞 , 相当于发短信 ,非实时 怎样去检测响应结果 ; 轮询 隔一段时间去检测
回调:双向调用
A -----------------------------> B method1()
method2() <------------------------- 双向 调用机制
b.按接口交互方式 :
实时 :要求响应速度高 测试的时候主要看性能 , 能否在规定时间内完成
非实时:比如文件上传,处理接口可以等一段时间
c.按接口数据量 :
大数据量 :批量数据
小数据量 :一般指的是小于100K 的数据包
d.按接口频率 :
周期 :定时任务
非周期:查询
e.按接口数据方向 :
单向 : 数据在接口中单向流动
双向:两个系统间数据有往来
f. 按接口数据读写 :
单独读或写 : 查询接口 、新增接口
读写 : 比如注册 , 查询有没有注册 ? 保存注册信息
g.按层级 :
直接接口
间接接口
h.按功能 :
功能接口 : 采购与库存
系统接口: 不同系统间的接口 第三方接口 微信 支付宝
i.按业务逻辑 :
业务接口 :关注业务是否实现
数据接口:获取数据 保存数据 测试的时候关注数据格式 、编码
j.按通信方式(协议)
各种协议接口 HTTP、 HTTPS 、FTP
IP
TCP UDP
HTTP DNS
SOAP REST
Web Service
H5 WebSocket
6.接口文档规范 :
①协议规范
②域名规范:每个接口都有一个唯一的域名跟端口
③版本控制规范
④API 路径规范
⑤命名规范 :域名规范 +API 路径规范 +版本控制规范
⑥请求参数规范 :
请求方法 :共有数据使用get 请求 ,私有数据使用POST
请求首部 :Accept : application/json
请求参数 :跟数据库字段名字保持一致 新增 、更新 、删除、逻辑判断
⑦返回数据规范
命名规范 :驼峰式
list
object :实体数据 json 键值对
status :sucess error
message :提示信息
⑧接口文档规范 :
文档名称
版本
编写人
修改日期
baseURL 地址
更新日志
接口详情
一个完整的接口有以下组成 :
请求地址 :
请求方式 :get post
请求参数 :id name
返回参数 :json .....
7.接口文档工具 :
开发人员可以使用word 编写 、
showdoc.cc https://www.showdoc.com.cn/ 注册账号登录进去写接口文档
swagger UI 相对于showdoc 功能更强大
8.接口侦听 、代理 、转发 (抓包:数据的截取)
常见的抓包工具 :WireShark Fiddler (代理 、抓http https 数据包)
9.协议分析工具的功能 :
侦听 :监听
代理:web客户端-----------------代理----------------------web 服务器
代理 :
HTTP代理 HTPPS 代理
SOCK4代理 仅TCP协议簇 SOCK5 TCP UDP协议簇
代理的作用 :模拟限速 、设置断点 (请求前 ,响应后 修改请求 响应 )
转发:
映射: 让发往目标网站的请求返回指定内容
修改host 、 反向代理 nginx
www.baidu.com---------------------返回www.sina.com
重写 :自动对请求和 响应进行篡改
比如修改请求的首部字段 User-Agent :
以上是关于接口分析的主要内容,如果未能解决你的问题,请参考以下文章