当前位置:网站首页>接口测试的概念、目的、流程、测试方法有哪些?
接口测试的概念、目的、流程、测试方法有哪些?
2022-07-29 23:10:00 【软件测试老莫】
目录
1、接口测试概念
接口测试是测试系统组件间接口的一种测试。
接口测试主要用于检测外部系统与系统之间 间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程 程,以及系统间的相互逻辑依赖关系等。
2、接口测试目的
- 核心:保证系统的稳定
- 手段:持续集成
- 目的:提高测试效率,提升用户体验,降低产品研发成本
3、接口测试一般流程
- 列出需求
- 安排资源,编写接口用例 -> 用例评审
- 编写接口测试代码 -> 代码评审codeReview
- 执行接口测试
4、接口测试关注点
- 功能:功能实现,实现与设计一致, 接口通过性测试
- 健壮性: 边界值,容错性
- 性能: 并发及压测
- 稳定性: 长期运行的稳定性
- 安全性: SQL注入, session依赖, 数字签名, http接口的安全性
5、常见接口种类
- Http/Https接口: 通过http/https协议传送接口数据(通常按字符串/二进制传输), 如常见的网页表单, https安全性更好
- RESTful Api: REST表述性状态传递. 一种设计风格,基于http/https协议, 把一切接口视为资源, 接口要分版本,在统一的域名下管理, 不同的方法(get/post..)做不同的事,通常请求及响应使用json格式
- Web Service: SOAP简单面向对象协议, 基于http实现的一种RPC方案.接口返回一些对象,可以直接通过操作对象,实现我们需要的业务处理.使用xml格式传输数据
- RPC接口: RPC为远程方法调用, 有不同的实现方案,基于TCP/Http协议的都有. RPC可以想我们本地导入和调用对象一样使用. Dubbo接口也是一种RPC接口.
6、常见接口数据类型
- 请求数据类型(Content-Type):application/x-www-form-urlencoded: 常规只有文本的网页表单application/json: RESTful Api常用格式, 结构清晰, 含有多层嵌套multipart/form-data: 既有文本,又有上传文件或附文本框的混合数据表单text/xml: xml格式, RPC接口常用格式
- 响应数据类型string/html: 返回字符串或网页源码json: RESTful Api常用响应格式, 结构清晰xml: RPC接口常用格式
7、常见接口安全验证方式
- Auth_1.0/Auth_2.0: 通用接口授权方式
- Session依赖: 需要登录之后才能进行接口操作
- Token验证: 先要使用自己的appid/appsecret通过获取token接口验证身份获取一个token(令牌,有一定有效期), 然后带着token访问接口
- 数字签名: 将原本的参数按一定规则进行组合,配合时间戳或appsecret, 通过加密算法生成一个签名sign, 携带签名进行接口请求
8、常见接口请求方法
- GET: 获取资源
- POST: 修改资源
- PUT: 上传资源
- DELETE: 删除资源
- HEAD: 只请求页面首部
- PATCH: 补丁
- OPTIONS: 运行客户端查看服务器性能
......
9、常见状态码(RESTful规范)
- 200元: 成功200 OK - [GET]:获取资源成功201 CREATED - [POST/PUT/PATCH]:创建/修改成功202 Accepted - [*]:任务接受204 NO CONTENT - [DELETE]:删除成功
- 300元: 重定向301 Moved Permanently: 永久重定向302 Found: 临时重定向
- 400: 资源错误400 INVALID REQUEST - [POST/PUT/PATCH]:用户请求错误401 Unauthorized - [*]:没有权限(鉴权失败, 接口层)403 Forbidden - [*] 资源禁止访问(服务器层,没有访问权限)404 NOT FOUND - [*]:资源不存在405 Method Not Allowd: 访问的方法不允许, 如用POST访问只支持GET请求的接口406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)410 Gone -[GET]:资源被永久删除422 Unprocesable entity - [POST/PUT/PATCH] 当创建对象时,发生验证错误
- 500系: 服务器内部错误(接口崩溃或有Bug)500 INTERNAL SERVER ERROR - [*]:服务器发生错误
10、接口业务类型
- 返回数据型接口: 只从数据库读取数据
- 业务操作型接口: 需要写数据库(接口测试需要要涉及参数化或环境清理)
11、快速上手接口测试
获取接口文档#
- Wiki
- Word文档
- Postman导出
- 抽象接口定义
- 接口管理平台
12、接口文档分析
- 功能分析: 是否能满足业务(是否缺少某个前端需要的参数), 是否能满足所有业务场景(是否有漏开发接口, 比如只开发了单品接口,没开发套餐接口)
- 设计分析: 是否有不规范字段(如,nickname, passwd);不规范格式(如sex,用男,女而不是1,2);是否有易混淆字段(如amount和total);是否有单词拼错;是否有和数据库字段对应但名称不一样的(易错)
- 接口分析: 协议类型(http要考虑安全);请求方法(是否规范);请求编码格式(表单/Json/xml, 很多接口文档不声明,导致测试调试不通);接口授权方式;接口业务类型(关系到是否需要做参数化或环境清理); 返回值类型及结构(关系到怎么断言)
- 接口依赖: 需要什么环境准备和业务场景, 依赖那些接口, 有那些动态数据, 预备环境怎么保障
- 参数分析: 各个参数的参数类型,组成规则,是否允许不传,是否可以为空, 是否允许多传参
- 业务分析: 如price字段必须和数据库中的商品的price字段一致,才能校验通过
- 非功能性: 接口的技术实现方案是否合理, 能否满足高并发的性能要求, 边界值/极限值的处理是否合适, 是否前后端都有数据格式校验等(如精确度为秒级的订单号生成器,在高并发下会导致生成同一订单号的问题)
- 其他: 如反爬,对headers的一些限制和校验, ip等限制
感谢每一个认真阅读我文章的人!!!
如果下面这些资料用得到的话可以直接拿走:
1、自学开发或者测试必备的完整项目源码与环境
2、测试工作中所有模板(测试计划、测试用例、测试报告等)
3、软件测试经典面试题
4、Python/Java自动化测试实战.pdf
5、Jmeter/postman接口测试全套视频获取
我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如果在学习或工作中遇到问题可以直接进群询问,群里也会有大神帮忙解答,需要的可以找我谢谢。
边栏推荐
- J9数字论:为什么我们需要Web3?
- JetsonNano learning (5) JetsonNano installs PyTorch and Torchvision
- Codeforces Round #245 (Div. 1) A (dfs)
- 【C语言】链表详解(无头单向非循环)
- We launched a "developer lab"
- Override and customize dependent native Bean methods
- 高数下|三重积分的计算3|高数叔|手写笔记
- 地狱挖掘者系列#1
- esp12f + tft display picture problem
- The Sandbox Partners with Gravity to Bring RO Ragnarok to the Metaverse
猜你喜欢
A print function, very good at playing?
The latest Gansu construction welder (construction special operation) simulation question bank and answer analysis in 2022
浅析即时通讯移动端开发DNS域名劫持等杂症
Mysql内外连接
【无标题】清空吗
Brute force recursion to dynamic programming 04 (digital string conversion)
Farmers on the assembly line: I grow vegetables in a factory
Design for failure常见的12种设计思想
真offer收割机 第二弹~大厂如何考察候选人?(附答案详解)
Embedded system driver primary [1] - kernel module _ compilation method
随机推荐
资源集合
使用 Neuron 接入 Modbus TCP 及 Modbus RTU 协议设备
【leetcode】The sword refers to Offer II 002. Binary addition
Implementation and implementation of Any to Any real-time voice change丨RTC Dev Meetup
Mysql内外连接
嵌入式系统驱动初级【1】——内核模块上_编译方法
高数下|三重积分习题课|高数叔|手写笔记
线性表之顺序表(干货满满的分享来啦~内含顺序表全部函数代码~
LabVIEW为什么在存储VI时死机
Guidelines for the Release of New WeChat Mini Programs
网工知识角|轻松拿offer【网工面试题】三层交换机与路由器有什么区别?
什么是色选机(color sorter)?
「大厂必备」系列之Redis主从、持久化、哨兵
jenkins使用维护
J9 Number Theory: Why do we need Web3?
消失的两个月......
SAP UI5 FileUploader 的隐藏 iframe 设计明细
DNA修饰碱基5-甲基胞嘧啶和8-羟基鸟嘌呤|DNA修饰量子点|规格信息
y81.第四章 Prometheus大厂监控体系及实战 -- 监控扩展(十二)
浅析即时通讯移动端开发DNS域名劫持等杂症