接口测试(十二)

一、前台、后台、数据库三者关系

在这里插入图片描述

fiddler抓包是抓取客户端 --> 服务端 发送的的请求接口
开N个网页,只要有对后端发送请求, fiddler是无差别抓取
F12只抓取当前页面的数据

二、接口概念

  1. 接口是什么?— 传递数据的通道
    测试系统组件间接口的一种测试,工具模拟前端对接口进行调用 — 灰盒测试
  2. 项目处于哪种测试阶段? — 为什么需要测试接口,做接口的意义,对接口测试的理解
    接口测试应用场景:
    ① 前端晚于后端开发,后端已经开发结束,没有前端,提前介入测试,用工具模拟前端,对接口调用 — 集成测试,测试左移
    ② 防止恶意绕过前端,对后端发送异常数据 — 接口能够处理,接口的安全性 — 系统测试
  3. 扩展:测试左移,测试右移

单元测试 — 集成测试 — 系统测试 — 验收测试
需求阶段 — 开发阶段 — 测试阶段 — 上线阶段

测试左移:提早介入项目中,降低成本,提高效率,尽早发现问题,接口 — 越早发现问题,系统测试的时候BUG越少
测试右移:介入到用户问题收集,上线后,问题解决 — 跟踪用户bug,补充用例

三、接口类型

  1. 接口主要包括:2种类型
    ① 同一个系统中模块与模块间的接口/前后端接口 – 内部接口
    ② 另一个是跨系统平台的对接 – 外部接口/第三方接口,身份验证等
  2. 常见接口类型/协议
    a. HTTP(S)类型/协议:通过GET或POST等方法来获取数据,在数据处理上效率比较高
    b. webservice类型/协议:通过soapi协议来获取数据,比起http来说能处理更加复杂的数据类型。本质也是http协议封装的
  3. http
    参看pdf 《深入浅出https》

四、常见http状态码

200 | 正常 | 表示一切正常,到了服务器,并且服务器响应了请求
302 | 临时重定向 | 指出被请求的文档已被临时移动到别处,此文档的新的URL在Location响应头中给出
304 | 未修改 | 表示客户机缓存的版本是最新的,客户机应该继续使用它,比如前端js - 缓存,节省资源
403 | 禁止 | 服务器理解客户端请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置所致
404 | 找不到 | 服务器上不存在客户机所请求的资源 – 客户端地址错误
500 | 内部服务器错误 | 服务器 CGI,ASP,JSP等程序发生错误 – 服务器挂了
504 | 超时

五、解释 cookie,session,token

  • cookie 在客户端存储用户的一些数据
  • session 在服务器端,记录用户的请求状态,一般默认有效时间为30min
  • token 用计算成本替换存储空间成本
    用户权限检查 鉴权方式 cookies+session token

session_id会存储在cookie中,每次请求cookie中的所有信息都会传送给服务器,服务器通过session_id来识别是否是同一个用户的请求。不是同一个用户的话,要求用户重新登陆

六、 接口测试流程步骤 — 接口测试怎么做!!!

  1. 获取接口需求并分析 – 开发 ,前端抓包
  2. 编写接口测试用例&用例评审
  3. 项目环境部署 – 给现成可直接测试
  4. 执行测试 & 工具选用 – Jmeter,postman,soapUI
  5. 提交BUG并跟讲
  6. 单独需要整理接口测试报告

要求:

  • 软件测试基础知识,编写用例,设计方法
  • 数据库知识,观察数据表中的数据流
  • 接口概念,http协议知识
  • 工具,Jmeter原理及具体操作步骤
  • 分析能力,需求业务/日志分析/浏览器抓包定位问题/fiddler抓包定位问题/数据库

七、接口测试用例模板

在这里插入图片描述

八、接口测试用例设计考虑

1、先考虑接口的正常调用
按照接口定义,传递正确的接口信息,包括地址、方法、传输数据,然后查看返回的响应结果是否正确、数据库数据是否正确;
1)传递的请求数据覆盖有效类、边界值
2)返回的响应结果的每个字段都需检查,例如code、msg信息
3)调用接口对数据库中数据的测试,增删改业务接口调用需确保到表字段的正确性验证

2、考虑请求参数的错误、异常情况
1)请求数据输入异常值,例如空值、长度类型异常等,接口能否正确处理且返回响应是否合理;
2)考虑业务约束,例如订单状态必须确认收货后才能评价,调用非该状态的订单,进行评价
3)输入错误的参数名、多一个参数、少一个参数,接口能否正确处理且返回响应是否合理;

3、关注接口的安全性测试:
1)敏感数据,例如密码是否加密传输;
2)返回数据是否含有敏感数据,如身份证信息、完整的用户银行账号信息等;
3)接口是否对传入的数据做安全校验,如用户鉴权token校验;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/878693.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

五、(JS)window中的定时器

一、为什么叫做window中的定时器 我们在全局中会用到一些函数,比如说alert函数,prompt函数,setTimeout等等 我们有在这里定义过这些函数吗?很明显没有。可见我们这些函数都是来自于window。 所以还可以写成window.setTimeout。…

AtCoder Beginner Contest 371

A - Jiro &#xff1a; 题目&#xff1a; 代码&#xff1a; #include <bits/stdc.h>using namespace std;typedef long long LL ; typedef pair<int,int> PII;void solve() {string a,b, c;cin>>a>>b>>c;string s(3,a);s[0]a[0];s[1]b[0];s[2…

Java集合(八股)

这里写目录标题 Collection 接口List 接口ArrayList 简述 1. ArrayList 和 LinkedList 区别&#xff1f;⭐️⭐️⭐️⭐️2. ArrayList 和 Array 的区别&#xff1f;⭐️⭐️⭐️ArrayList 和 Vector 区别&#xff1f;⭐️⭐️ArrayList 的扩容机制&#xff1f;⭐️⭐️⭐️ Qu…

18063 圈中的游戏

### 思路 1. 创建一个循环链表表示围成一圈的 n 个人。 2. 从第一个人开始报数&#xff0c;每报到 3 的人退出圈子。 3. 重复上述过程&#xff0c;直到只剩下一个人。 4. 输出最后留下的人的编号。 ### 伪代码 1. 创建一个循环链表&#xff0c;节点表示每个人的编号。 2. 初始…

Vue3+TS项目封装一个公共的el-table组件二次封装

前言 支持动态传入列&#xff0c;列内容可以指定插槽&#xff0c;指定格式化显示 样式没太写&#xff0c;主要分享基础功能封装 效果 Table组件代码BaseTable.vue <template><el-table :data"data" border><template v-for"col in columns&q…

通过防火墙分段增强网络安全

什么是网络分段‌ 随着组织规模的扩大&#xff0c;管理一个不断扩大的网络成为一件棘手的事情&#xff0c;同时确保安全性、合规性、性能和不间断的运行可能是一项艰巨的任务。为了克服这一挑战&#xff0c;网络管理员部署了网络分段&#xff0c;这是一种将网络划分为更小且易…

react18基础教程系列-- 框架基础理论知识mvc/jsx/createRoot

react的设计模式 React 是 mvc 体系&#xff0c;vue 是 mvvm 体系 mvc: model(数据)-view(视图)-controller(控制器) 我们需要按照专业的语法去构建 app 页面&#xff0c;react 使用的是 jsx 语法构建数据层&#xff0c;需要动态处理的的数据都要数据层支持控制层: 当我们需要…

YoloV8 trick讲解

1.将 YOLOv5 的 C3结构换成了梯度流更丰富的 C2f结构: C3 C3 模块的设计灵感来自 CSPNet&#xff0c;其核心思想是将特征图的部分通道进行分割和并行处理&#xff0c;目的是减少冗余梯度信息&#xff0c;同时保持较高的网络表达能力。C3 结构与传统的残差结构类似&#xff0c;但…

PMBOK® 第六版 定义活动

目录 读后感—PMBOK第六版 目录 定义活动的过程强调专业分工&#xff0c;将工作包分解成不同的活动&#xff0c;再由专业人员将这些活动细化为具体任务&#xff0c;分配给项目成员完成。 在软件开发项目中&#xff0c;定义活动将项目流程细化为需求分析、系统设计、编码、测试…

了解MySQL 高可用架构:主从备份

为了防止数据库的突然挂机&#xff0c;我们需要对数据库进行高可用架构。主从备份是常见的场景&#xff0c;通常情况下都是“一主一从/(多从)”。正常情况下&#xff0c;都是主机进行工作&#xff0c;从机进行备份主机数据&#xff0c;如果主机某天突然意外宕机&#xff0c;从机…

CPU 和 GPU:为什么GPU更适合深度学习?

目录 什么是 CPU &#xff1f; 什么是 GPU &#xff1f; GPU vs CPU 差异性对比分析 GPU 是如何工作的 &#xff1f; GPU 与 CPU 是如何协同工作的 &#xff1f; GPU vs CPU 类型解析 GPU 应用于深度学习 什么是 CPU &#xff1f; CPU&#xff08;中央处理器&#xff09;…

学习大数据DAY57 新的接口配置

作业  完成 API 接口和文件的接入, 并部署到生产调度平台, 每个任务最后至少 要有两条 不报错 的日志, 报错就驳回作业  作业不需要复制日志 API Appliation Program Interface 应用程序接口 > JSON 的地址 客户需求: 把 https://zhiyun.pub:9099/site/c-class…

nginx安装及vue项目部署

安装及简单配置 在usr/local下建好nginx文件夹&#xff0c;下载好nginx-1.26.2.tar.gz压缩文件.安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c libtool openssl openssl-devel pcre-devel gcc、gcc-c # 主要用来进行编译相关使用 openssl、ope…

大模型笔记03--快速体验dify

大模型笔记03--快速体验dify 介绍部署&测试部署 dify测试dify对接本地ollama大模型对接阿里云千问大模型在个人网站中嵌入dify智能客服 注意事项说明 介绍 Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务&#xff08;Backend as Service&#xff09;…

使用mlp算法对Digits数据集进行分类

程序功能 这个程序使用多层感知机&#xff08;MLP&#xff09;对 Digits 数据集进行分类。程序将数据集分为训练集和测试集&#xff0c;创建并训练一个具有两个隐藏层的 MLP 模型。训练完成后&#xff0c;模型对测试数据进行预测&#xff0c;并通过准确率、分类报告和混淆矩阵…

鸿蒙 ArkUI组件二

ArkUI组件&#xff08;续&#xff09; 文本组件 在HarmonyOS中&#xff0c;Text/Span组件是文本控件中的一个关键部分。Text控件可以用来显示文本内容&#xff0c;而Span只能作为Text组件的子组件显示文本内容。 Text/Span组件的用法非常简单和直观。我们可以通过Text组件来显…

Spring-IOC容器-ApplicationContext

IOC:Inversion of Control 控制反转&#xff0c;是一种设计原则&#xff0c;spring 中通过DI&#xff08;dependency Injection&#xff09;来具体实现。 比如原本对象的实例化&#xff0c;是通过程序主动New出来&#xff0c;IOC中的对象实例交给Spring框架来实例化&#xff0…

TDengine 与 SCADA 强强联合:提升工业数据管理的效率与精准

随着时序数据库&#xff08;Time Series Database&#xff09;的日益普及&#xff0c;越来越多的工业自动化控制&#xff08;工控&#xff09;人员开始认识到其强大能力。然而&#xff0c;时序数据库在传统实时数据库应用领域&#xff0c;特别是在过程监控层的推广仍面临挑战&a…

使用docker配置wordpress

docker的安装 配置docker yum源 sudo yum install -y yum-utils sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo下载最新版本docker sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-…

门磁模块详解(防盗感应开关 STM32)

目录 一、介绍 二、程序设计 main.c文件 gate_guard.h文件 gate_guard.c文件 三、实验效果 四、资料获取 项目分享 一、介绍 MC-38常闭式门磁开关是作为IO开关输入数字信号的&#xff0c;原理是合在一起信号是导通的 , 配合有线主机使用 不能单独使用。适用于非铁质&a…