当前位置:网站首页>接口测试的概念、目的、流程、测试方法有哪些?
接口测试的概念、目的、流程、测试方法有哪些?
2022-08-09 09:15: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接口测试全套视频获取
我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。如果在学习或工作中遇到问题可以直接进群询问,群里也会有大神帮忙解答,需要的可以找我谢谢。
边栏推荐
猜你喜欢
绝了,这套RESTful API接口设计总结
mysql优化——show processlist命令详解
on duplicate key update
如何用数组实现环形队列
MySQL Checking and Filling Leaks (5) Unfamiliar Knowledge Points
When and How to use MALLOC
高清卫星地图浏览器
Ovie map computer terminal and mobile terminal can not be used, is there any alternative map tool
Module模块化编程的优点有哪些
教你如何免费获取0.1米高精度卫星地图
随机推荐
MySQL事件_单次事件_定时循环事件
MySQL查漏补缺(五)不熟悉的知识点
你一定要看的安装及卸载测试用例的步骤及方法总结
第四讲 SVN
本体开发日记05-努力理解SWRL(下)
Calendar类和Date类转换时区 && 部分时区城市列表
关于链表的几道大厂面试题
常用SQL server语句
lateral view explode的另一种实现方式
MySQL锁
本体开发日记03-排错进行时
微信小程序获取用户收货地址列表wx.chooseAddress
全球19级谷歌卫星地图免费查看下载
奥维地图电脑端手机端不能用了,有没有可替代的地图工具
这12个GIS软件一个比一个好用
【场景化解决方案】构建医疗通讯录,“慧医钉”助力医院实现数字化管理
on duplicate key update
Understanding of PID control motor output as motor PWM duty cycle input
jfinal加载配置文件原理
JS报错-Uncaught TypeError: 'caller', 'callee', and 'arguments' properties may not be accessed on...