当前位置: 首页 > news >正文

day10 电商系统后台API——接口测试(使用postman)

【没有所谓的运气🍬,只有绝对的努力✊】

目录

实战项目简介:

1、用户管理(8个)

1.1 登录

1.2 获取用户数据列表

1.3 创建用户

1.4 修改用户状态

1.5 根据id查询用户

1.6 修改用户信息

1.7 删除单个用户

1.8 分配用户角色

2、权限(2个)

2.1 获取所有权限列表

2.2 左侧菜单权限

3、角色管理(7个)

3.1 角色列表

3.2 添加角色

3.3 根据id查询角色

3.4 修改角色

3.5 删除角色

3.6 角色授权

3.7 删除角色指定权限

​编辑

4、商品分类管理

4.1 商品分类数据列表

4.2 添加商品分类

4.3 根据id查询分类

4.4 编辑分类

4.5 删除分类

5、分类参数管理

5.1 参数列表

5.2 添加动态参数或静态属性

5.3 编辑参数

5.4 根据id查询参数

5.5 删除参数

6、商品管理

6.1 商品列表

6.2 添加商品

6.3 编辑商品

6.4 查询指定id 的商品

6.5 删除商品

7、订单管理(该接口里面无数据,暂时不能测试)

7.1  订单列表

7.2 修改订单(不可测)

7.3 查询指定订单id(不可测)

8、数据统计

9、导出测试用例集+环境文件


实战项目简介:

本项目接口包含36个接口。全部来自项目的真实接口,有鉴权。

登录接口会返回一个token,后续的接口里面都需要依赖token鉴权,需要再请求Header中加上参数Authorization,值就是登录接口返回的token。

面记录下我自己用postman做接口测试的相关过程。


1、用户管理(8个)

1.1 登录

根据接口文档,使用postman进行接口测试。

请求路径:{{base_url}}/api/private/v1/login

请求方法:post

请求参数: {"username": "admin", "password": "123456"}

将登录接口返回的token,设置环境变量,保存为token,给后续接口使用。

后续接口里面的 请求Header中加上参数Authorization,值就是登录接口返回的token。

1.2 获取用户数据列表

请求路径:/api/private/v1/users

请求方法:get

请求参数:

        query:                         可选)

        pagenum:1                (必填)

        pagesize:'20                必填)

Header参数:

        Authorization: 登录接口返回的token 

断言状态码

1.3 创建用户

请求路径:/api/private/v1/users

请求方法:post

请求参数:

        { "username": ";李未来", "password": "123456", "email": "ch00j@163.com", "mobile": "13772008989" }

Header参数:

        Authorization: 登录接口返回的token

将创建用户成功后,返回的id值,存入环境变量中,用来后续修改。

添加断言

1.4 修改用户状态

请求路径:/api/private/v1/users/{uId}/state/{type}

请求方法:put

请求参数:

        uId: 用户id值,创建用户返回的    (必填)

        type:true/false                               (必填)

Header参数:

        Authorization: 登录接口返回的token

1.5 根据id查询用户

请求路径:/api/private/v1/users/{id}

请求方法:get

请求参数:

                id:用户id值,创建用户返回的    (必填)

Header参数:

        Authorization: 登录接口返回的token

1.6 修改用户信息

请求路径:/api/private/v1/users/{id}

请求方法:put

请求参数:

                  id:用户id值,创建用户返回的    (必填)

Header参数:

        Authorization: 登录接口返回的token

1.7 删除单个用户

请求路径:/api/private/v1/users/{id}

请求方法:delete

请求参数:

                 id:用户id值,创建用户返回的    (必填)

Header参数:

        Authorization: 登录接口返回的token

1.8 分配用户角色

请求路径:/api/private/v1/users/{id}/role

请求方法:put

请求参数:

                   id:用户id值,创建用户返回的    (必填)

Body参数:

                rid:"05"

Header参数:

        Authorization: 登录接口返回的token

2、权限(2个)

2.1 获取所有权限列表

请求路径:/api/private/v1/rights/list

请求方法:get

请求参数:

                type:tree/list         (tree树状展示,list列表展示)

Header参数:

        Authorization: 登录接口返回的token

2.2 左侧菜单权限

请求路径:/api/private/v1/menus

请求方法:get

请求参数:  无

Header参数:

        Authorization: 登录接口返回的token

3、角色管理(7个)

3.1 角色列表

请求路径:/api/private/v1/roles

请求方法:get

请求参数:无

Header参数:

        Authorization: 登录接口返回的token

3.2 添加角色

请求路径:/api/private/v1/roles

请求方法:post

请求参数:

                { "roleName": "string", "roleDesc": "string" }

                其中:roleName 必填;roleDesc选填

Header参数:

        Authorization: 登录接口返回的token

3.3 根据id查询角色

请求路径:/api/private/v1/roles/{{role_id}}

请求方法:get

请求参数:

                id:30            添加角色返回的roleId值

Header参数:

        Authorization: 登录接口返回的token

3.4 修改角色

请求路径:/api/private/v1/roles/{{role_id}}

请求方法:put

请求参数:

                id:30              添加角色返回的roleId值

Body参数:

                { "roleName":"销售负责人", "roleDesc":"销售" }

Header参数:

        Authorization: 登录接口返回的token

3.5 删除角色

请求路径:/api/private/v1/roles/{{role_id}}

请求方法:delete

请求参数:

                id:30    添加角色返回的roleId值

Header参数:

        Authorization: 登录接口返回的token

3.6 角色授权

请求路径:/api/private/v1/roles/{{role_id}}/rights

请求方法:post

请求参数:role_id

Header参数:

        Authorization: 登录接口返回的token

3.7 删除角色指定权限

请求路径:/api/private/v1/roles/{{role_id}}/rights/101

请求方法:delete

请求参数:role_id

Header参数:

        Authorization: 登录接口返回的token

4、商品分类管理

4.1 商品分类数据列表

请求路径:/api/private/v1/categories

请求方法:get

请求参数:

Header参数:

        Authorization: 登录接口返回的token

4.2 添加商品分类

请求路径:/api/private/v1/categories

请求方法:post

请求参数:

{

        "cat_pid":"1002",

        "cat_name":"休闲食品2",

        "cat_level":"1"

}

Header参数:

        Authorization: 登录接口返回的token

将添加商品返回结果的cat_id,存入环境变量中,方便后续的根据ID查询分类、编辑分类、删除分类。

4.3 根据id查询分类

请求路径:/api/private/v1/categories/{{cat_id}}

请求方法:get

请求参数:cat_id

Header参数:

        Authorization: 登录接口返回的token

4.4 编辑分类

请求路径:/api/private/v1/categories/{{cat_id}}

请求方法:put

请求参数:cat_id

Header参数:

        Authorization: 登录接口返回的token

4.5 删除分类

请求路径:/api/private/v1/categories/{{cat_id}}

请求方法:delete

请求参数:cat_id

Header参数:

        Authorization: 登录接口返回的token

5、分类参数管理

5.1 参数列表

请求路径:/api/private/v1/categories/{{cat_id}}/attributes?sel=only

请求方法:get

请求参数:cat_id

Header参数:

        Authorization: 登录接口返回的token

5.2 添加动态参数或静态属性

请求路径:/api/private/v1/categories/{{cat_id}}/attributes

请求方法:post

请求参数:cat_id

Header参数:

        Authorization: 登录接口返回的token

将返回结果的attr_id,存入环境变量中,方便后续的编辑参数接口使用。

5.3 编辑参数

请求路径:/api/private/v1/categories/{{cat_id}}/attributes/{{attr_id}}

请求方法:put

请求参数:cat_id    attr_id

Header参数:

        Authorization: 登录接口返回的token

5.4 根据id查询参数

请求路径:/api/private/v1/categories/{{cat_id}}/attributes/{{attr_id}}

请求方法:get

请求参数: cat_id    attr_id

Header参数:

        Authorization: 登录接口返回的token

5.5 删除参数

请求路径:/api/private/v1/categories/{{cat_id}}/attributes/{{attr_id}}

请求方法:delete

请求参数: cat_id    attr_id

Header参数:

        Authorization: 登录接口返回的token

6、商品管理

6.1 商品列表

请求路径:/api/private/v1/goods?query&pagenum=10&pagesize=10

请求方法:get

请求参数:

Header参数:

        Authorization: 登录接口返回的token

6.2 添加商品

请求路径:/api/private/v1/goods

请求方法:post

Body请求参数:

{

        "goods_name": "手机壳_华为",

        "goods_cat": "1,2,3",

        "goods_price": "19.9",

        "goods_number":"200",

        "goods_weight":"100",

        "goods_introduce":"手机壳",

        "pics":"",

        "attr":"手机壳"

}

Header参数:

        Authorization: 登录接口返回的token

将响应结果里面的 goods_id值,存入环境变量中。便于后续的编辑商品、查询指定id商品、删除商品使用。

6.3 编辑商品

请求路径:/api/private/v1/goods/{{goods_id}}

请求方法:put

Body参数:

{

        "goods_name": "Iphone手机壳111",

        "goods_cat": "1,2,3",

        "goods_price": "19.9",

        "goods_number":"200",

        "goods_weight":"100",

        "goods_introduce":"手机壳",

        "pics":"",

        "attr":"手机壳"

}

Header参数:

        Authorization: 登录接口返回的token

6.4 查询指定id 的商品

请求路径:/api/private/v1/goods/{{goods_id}}

请求方法:get

请求参数:goods_id

Header参数:

        Authorization: 登录接口返回的token

6.5 删除商品

请求路径:/api/private/v1/goods/{{goods_id}}

请求方法:delete

请求参数:goods_id

Header参数:

        Authorization: 登录接口返回的token

7、订单管理(该接口里面无数据,暂时不能测试)

7.1  订单列表

请求路径:/api/private/v1/orders

请求方法:get

请求参数:

        

Header参数:

        Authorization: 登录接口返回的token

7.2 修改订单(不可测)

由于7.1 查不到订单数据,拿不到订单id,这个修改订单接口暂时测不了。

7.3 查询指定订单id(不可测)

8、数据统计

8.1 基于时间统计

请求路径:/api/private/v1/reports/type/1

请求方法:get

请求参数:无

Header参数:

        Authorization: 登录接口返回的token

9、导出测试用例集+环境文件


完整的项目,使用接口测试,还有参数化,完成啦。中间也有磕磕绊绊,写断言的时候,靠着前两天学习的接口测试那块,回忆起来的,没有翻笔记。哈哈哈哈哈

加油,今天的任务已完成,yes。完整的接口测试项目。yes!!!

相关文章:

day10 电商系统后台API——接口测试(使用postman)

【没有所谓的运气🍬,只有绝对的努力✊】 目录 实战项目简介: 1、用户管理(8个) 1.1 登录 1.2 获取用户数据列表 1.3 创建用户 1.4 修改用户状态 1.5 根据id查询用户 1.6 修改用户信息 1.7 删除单个用户 1.8 …...

JavaScript ES6+ 语法速通

一、ES6 基础语法 1. let 和 const 声明变量 let:块级作用域,可以重新赋值。const:块级作用域,声明常量,不能重新赋值。 let name Li Hua; name Li Ming; // 可修改const age 21; // age 22; // 报错&#xff0…...

移动端h5自适应rem适配最佳方案

网页开发中,我们常用的单位有如下几个: px:像素固定,无法适配各分辨率的移动设备em: 该单位受父容器影响,大小为父元素的倍数rem: 因为html根元素大小为16px,所以默认 1rem 16px,rem只受根元素…...

2024年使用 Cython 加速 Python 的一些简单步骤

文章结尾有最新热度的文章,感兴趣的可以去看看。 本文是经过严格查阅相关权威文献和资料,形成的专业的可靠的内容。全文数据都有据可依,可回溯。特别申明:数据和资料已获得授权。本文内容,不涉及任何偏颇观点,用中立态度客观事实描述事情本身 文章有点长,期望您能坚持看…...

EasyExcel设置表头上面的那种大标题(前端传递来的大标题)

1、首先得先引用easyExcel的版本依赖&#xff0c;我那 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version> </dependency> 2、然后得弄直接的实体类&#xff0c;&…...

【Linux网络编程】第十弹---打造初级网络计算器:从协议设计到服务实现

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、Protocol.hpp 1.1、Request类 1.1.1、基本结构 1.1.2、构造析构函数 1.1.3、序列化函数 1.1.4、反…...

无限弹窗?无限重启?

Windows开机自启目录&#xff1a; "%USERPROFILE%\AppData\Roaming\Microsoft\windows\StartMenu\Programs\Startup" 基于这个和 start 命令&#xff0c; shutdown 命令&#xff0c; 编写 bat 病毒程序。 无限弹窗 echo start cmd > hack.txt echo %0 >>…...

深入详解人工智能机器学习常见算法中的K-means聚类

目录 引言 1. K-means聚类的基本概念 1.1 K-means聚类的定义 1.2 K-means聚类的核心思想 1.3 K-means聚类的目标函数 2. K-means聚类的核心原理 2.1 初始化 2.2 分配 2.3 更新 2.4 迭代 3. K-means聚类的具体实现 3.1 K-means聚类的算法流程 3.2 K-means聚类的Pyt…...

lc146LRU缓存——模仿LinkedHashMap

146. LRU 缓存 - 力扣&#xff08;LeetCode&#xff09; 法1&#xff1a; 调用java现有的LinkedHashMap的方法&#xff0c;但不太理解反正都不需要扩容&#xff0c;super(capacity, 1F, true);不行吗&#xff0c;干嘛还弄个装载因子0.75还中途扩容一次浪费时间。 class LRUC…...

全面深入解析:C语言动态库

引言 动态库&#xff08;Dynamic Library&#xff09;是现代软件开发中不可或缺的一部分&#xff0c;它们不仅提高了代码的重用性和维护性&#xff0c;还显著提升了系统的性能和资源利用率。本文将全面探讨C语言中的动态库&#xff0c;从基础概念到高级应用&#xff0c;通过丰…...

运用 SSM 实现垃圾分类系统智能化升级

目 录 摘 要 1 前 言 3 第1章 概述 4 1.1 研究背景 4 1.2 研究目的 4 1.3 研究内容 4 第二章 开发技术介绍 5 2.1Java技术 6 2.2 Mysql数据库 6 2.3 B/S结构 7 2.4 SSM框架 8 第三章 系统分析 9 3.1 可行性分析 9 3.1.1 技术可行性 9 3.1.2 经济可行性 10 3.1.3 操作可行性 10 …...

LeNet-5:深度学习与卷积神经网络的里程碑

目录 ​编辑 引言 LeNet-5的结构与原理 输入层 C1层&#xff1a;卷积层 S2层&#xff1a;池化层 C3层&#xff1a;卷积层 S4层&#xff1a;池化层 C5层&#xff1a;卷积层 F6层&#xff1a;全连接层 输出层 LeNet-5的算法基础 LeNet-5的优点 LeNet-5的现代应用 …...

从资产流动分析WIF市场潜力X.game深究其他未知因素

近日&#xff0c;两则关于WIF最新消息引起了投资者们的注意。据报道&#xff0c;11月28日Vintermute在过去13小时内累计从Binance交易所提取了价值533万美元的WIF&#xff0c;此举不仅彰显了其强大的资金实力&#xff0c;更在某种程度上推动了WIF币价的反弹&#xff1b;另一方面…...

深入解析Vue3响应式系统:从Proxy实现到依赖收集的核心原理

深入解析Vue3响应式系统&#xff1a;从Proxy实现到依赖收集的核心原理 响应式系统的基本原理 作为一个热门的JavaScript框架&#xff0c;Vue在3.x版本中引入了基于Proxy的响应式系统。这个系统的核心思想是利用Proxy对象拦截对数据的访问和修改&#xff0c;从而实现数据的自动更…...

FPGA实现GTP光口数据回环传输,基于Aurora 8b/10b编解码架构,提供2套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目我这里已有的 GT 高速接口解决方案 3、工程详细设计方案工程设计原理框图用户数据发送模块基于GTP高速接口的数据回环传输架构GTP IP 简介GTP 基本结构GTP 发送和接收…...

Linux网络 UDP socket

背景知识 我们知道&#xff0c; IP 地址用来标识互联网中唯一的一台主机&#xff0c; port 用来标识该主机上唯一的一个网络进程&#xff0c;IPPort 就能表示互联网中唯一的一个进程。所以通信的时候&#xff0c;本质是两个互联网进程代表人来进行通信&#xff0c;{srcIp&…...

如何持续优化呼叫中心大模型呼入机器人的性能?

如何持续优化呼叫中心大模型呼入机器人的性能&#xff1f; 原作者&#xff1a;开源呼叫中心FreeIPCC&#xff0c;其Github&#xff1a;https://github.com/lihaiya/freeipcc 持续优化呼叫中心大模型呼入机器人的性能是一个复杂而细致的过程&#xff0c;它涉及到数据、模型结构…...

鸿蒙项目云捐助第四讲鸿蒙App应用的登陆注册页实现

根据app的操作流程可以知道&#xff0c;当启动页启动后&#xff0c;点击启动页中的页面就进入到了登录页。本讲就是针对于登录注册页的实现&#xff0c;实现的界面参考下图。 这里根据这个素材的参考实现鸿蒙Next云捐助的登录页。 一、鸿蒙Next云捐助登录页的实现 在项目中继…...

Windows本地搭建Redis集群(集群模式)

手打不易&#xff0c;如果转摘&#xff0c;请注明出处&#xff01; 注明原文&#xff1a;https://blog.csdn.net/q258523454/article/details/144477957 前言 Redis版本&#xff1a;redis 5.0.14.1 Windows版本&#xff1a;Windows10 本文只讲集群模式 1. 安装Redis 1.1 …...

使用FastGPT制做一个AI网站日志分析器

越来越的多网站面临每天上千次的扫描和各类攻击&#xff0c;及时发现攻击IP&#xff0c;并有效的屏蔽不良访问成为网站安全的重要保障&#xff0c;这里我们使用AI来完成对网站日志的日常分析。 我们来使用FastGPT来制做一个AI网站日志析器&#xff0c;下面就开始&#xff1a; …...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...