当前位置:网站首页>What are the concepts, purposes, processes, and testing methods of interface testing?
What are the concepts, purposes, processes, and testing methods of interface testing?
2022-08-10 22:00:00 【Rejoice in the testing world】
接口测试概念
接口测试是测试系统组件间接口的一种测试.
接口测试主要用于检测外部系统与系统之间 Interaction points between and among various internal subsystems.测试的重点是要检查数据的交换,传递和控制管理过程 程,以及系统间的相互逻辑依赖关系等.
接口测试目的
- 核心:保证系统的稳定
- 手段:持续集成
- 目的:提高测试效率,提升用户体验,降低产品研发成本
Interface testing general process
- 列出需求
- 安排资源,编写接口用例 -> 用例评审
- 编写接口测试代码 -> 代码评审codeReview
- 执行接口测试
接口测试关注点
- 功能:功能实现,实现与设计一致, 接口通过性测试
- 健壮性: 边界值,容错性
- 性能: 并发及压测
- 稳定性: 长期运行的稳定性
- 安全性: SQL注入, session依赖, 数字签名, http接口的安全性
常见接口种类
- 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接口.
常见接口数据类型
- 请求数据类型(Content-Type):application/x-www-form-urlencoded: 常规只有文本的网页表单application/json: RESTful Api常用格式, 结构清晰, 含有多层嵌套multipart/form-data: 既有文本,There are also mixed data forms for uploading files or attaching text boxestext/xml: xml格式, RPC接口常用格式
- 响应数据类型string/html: 返回字符串或网页源码json: RESTful Api常用响应格式, 结构清晰xml: RPC接口常用格式
常见接口安全验证方式
- Auth_1.0/Auth_2.0: 通用接口授权方式
- Session依赖: 需要登录之后才能进行接口操作
- Token验证: 先要使用自己的appid/appsecret通过获取token接口验证身份获取一个token(令牌,有一定有效期), 然后带着token访问接口
- 数字签名: 将原本的参数按一定规则进行组合,配合时间戳或appsecret, 通过加密算法生成一个签名sign, 携带签名进行接口请求
常见接口请求方法
- GET: 获取资源
- POST: 修改资源
- PUT: 上传资源
- DELETE: 删除资源
- HEAD: 只请求页面首部
- PATCH: 补丁
- OPTIONS: 运行客户端查看服务器性能
…
常见状态码(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 - [*]:服务器发生错误
接口业务类型
- 返回数据型接口: 只从数据库读取数据
- 业务操作型接口: 需要写数据库(接口测试需要要涉及参数化或环境清理)
快速上手接口测试
获取接口文档
- Wiki
- Word文档
- Postman导出
- 抽象接口定义
- 接口管理平台
接口文档分析
功能分析: 是否能满足业务(是否缺少某个前端需要的参数), 是否能满足所有业务场景(是否有漏开发接口, 比如只开发了单品接口,没开发套餐接口)
设计分析: 是否有不规范字段(如,nickname, passwd);不规范格式(如sex,用男,女而不是1,2);是否有易混淆字段(如amount和total);是否有单词拼错;是否有和数据库字段对应但名称不一样的(易错)
接口分析: 协议类型(http要考虑安全);请求方法(是否规范);请求编码格式(表单/Json/xml, 很多接口文档不声明,导致测试调试不通);接口授权方式;接口业务类型(关系到是否需要做参数化或环境清理); 返回值类型及结构(关系到怎么断言)
接口依赖: 需要什么环境准备和业务场景, 依赖那些接口, 有那些动态数据, 预备环境怎么保障
参数分析: 各个参数的参数类型,组成规则,是否允许不传,是否可以为空, 是否允许多传参
业务分析: 如price字段必须和数据库中的商品的price字段一致,才能校验通过
非功能性: 接口的技术实现方案是否合理, 能否满足高并发的性能要求, 边界值/极限值的处理是否合适, 是否前后端都有数据格式校验等(如精确度为秒级的订单号生成器,在高并发下会导致生成同一订单号的问题)
其他: 如反爬,对headers的一些限制和校验, ip等限制
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!
软件测试工程师自学教程:
这才是2022最精细的自动化测试自学教程,我把它刷了无数遍才上岸字节跳动,做到涨薪20K【值得自学软件测试的人刷】
软件测试工程师月薪2W以上薪资必学技能 — Python接口自动化框架封装.
美团面试真题_高级测试25K岗位面试 — 软件测试人都应该看看
软件测试必会_Jmeter大厂实战 — 仅6步可实现接口自动化测试
边栏推荐
- Interpretation of the paper (g-U-Nets) "Graph U-Nets"
- Object.assign用法 以及 与$.extend的区别
- 异常的了解
- labelme - block drag and drop events
- 美创科技勒索病毒“零信任”防护和数据安全治理体系的探索实践
- ENVI感兴趣区ROI文件由XML格式转为ROI格式
- Kubernetes Notes / Getting Started / Production Environment / Installing Kubernetes with Deployment Tools / Starting a Cluster with kubeadm / Creating a Cluster with kubeadm
- ArcMap创建镶嵌数据集、导入栅格图像并修改像元数值显示范围
- 论文解读(g-U-Nets)《Graph U-Nets》
- ENVI最小距离、最大似然、支持向量机遥感影像分类
猜你喜欢
Regular expression of shell programming and text processor
【实用软件】【VSCode】使用技巧大全(持续更新)
ThreadLocal全面解析(一)
Thread State 详解
【PCBA方案】电子握力测试仪方案she‘ji
TCL:事务的特点,语法,测试例——《mysql 从入门到内卷再到入土》
使用 Cloudreve 搭建私有云盘
RADIUS Authentication Server Deployment Costs That Administrators Must Know
Live Classroom System 08 Supplement - Tencent Cloud Object Storage and Course Classification Management
C#【必备技能篇】Hex文件转bin文件的代码实现
随机推荐
流程控制结构——《mysql 从入门到内卷再到入土》
第四届红帽杯网络安全大赛
阿里巴巴、蚂蚁集团推出分布式数据库 OceanBase 4.0,单机部署性能超 MySQL
Likou 221 questions, the largest square
About DataFrame: Processing Time
【PCBA solution】Electronic grip strength tester solution she'ji
测试代码新的规则
Shell编程规范与变量
接口测试的概念、目的、流程、测试方法有哪些?
变量和它的特性——《mysql 从入门到内卷再到入土》
Kerberos认证
F. Binary String Reconstruction
LeetCode-36-Binary search tree and doubly linked list
财务年报怎样翻译,为什么要选择专业翻译公司?
GAN CFOP
JVM classic fifty questions, now the interview is stable
黑猫带你学Makefile第11篇:当头文件a.h改变时,如何将所有依赖头文件a.h的.c文件都重新编译
C. Rotation Matching
shell(文本打印工具awk)
ENVI最小距离、最大似然、支持向量机遥感影像分类