PostMan 测试

news2025/1/23 22:25:25

 创建一个集合管理测试接口

token获取

Tests:后置脚本    Api 请求后的操作,一般写断言脚本的地方

Pre-request Script  :后置脚本     请求前的操作

以下代码放进Tests 后置脚本当中。

var respObj = JSON.parse(responseBody);
// 获取到TOKEN,保存到环境变量中
postman.setEnvironmentVariable("token", respObj.token);

响应数据断言测试

  

设置全局函数

创建一个全局函数myGlobalFunction 变量  ,把下面代码放到变量中

递归断言函数

var deepCompare = (actual, expected, path = '') => {  
	for (let key in expected) {  
		let fullPath = path ? `${path}.${key}` : key;  
		if (!actual.hasOwnProperty(key)) {  
		   tests[`${fullPath}:actualData中不存在此字段`] = false ;
		   }
		if (actual.hasOwnProperty(key)) {  
			if (typeof expected[key] === 'object' && expected[key] !== null) {  
				if (typeof actual[key] === 'object' && actual[key] !== null) {  
					deepCompare(actual[key], expected[key], fullPath);  
				} else {  
					pm.test(`Field ${fullPath} has the expected type`, function () {  
						pm.expect(actual[key]).to.be.an('object');  
					});  
				}  
			} else {  

				 if (actual[key] !== expected[key]) {
						tests[`${fullPath}:actual:${actual[key]} , expected:${expected[key]}`] =actual[key]===expected[key];
				 }
			}  
		}  
	}  
}  

 请求头Token添加

 在测试api请求头中的Authorization   添加{{token}}环境变量

 好处是,调用token获取api后,不用手动粘贴过来

断言脚本编写

  以下代码添加到tests后置脚本中

  准备以下三步

   // 准备预想数据

   // 获取实际数据

   // 调用编写好的全局函数测试断言(复杂的另写脚本)

// 预期的 Response 数据
const expectedData = {
    "msg": "操作成功",
    "code": 200,
    "data": {
        "createBy": "admin",
        "createTime": "2024-05-06 13:27:03",
        "updateBy": null,
        "updateTime": null,
        "remark": "",
        "postId": 11,
        "postCode": "ceo1",
        "postName": "董事长1",
        "postSort": 1,
        "status": "0",
        "flag": false,
        "test": false
    }
};

// 实际的 JSON 数据
const actualData = pm.response.json();

// response断言对比
// 调用全局函数并传递参数
eval(pm.globals.get('myGlobalFunction'))
deepCompare(actualData, expectedData);

测试

可以清晰看到哪个字段错误,预想和实际值的比对结果。

这里只出力错误的。

数据库断言

因为Postman本身并没有提供数据库的查询功能,这时就可以利用Xmysql来实现

Postman的辅助工具Xmysql的主要作用是将数据库的表数据转换成Restful API接口,返回JSON格式的结果数据。在接口测试过程中,有时需要通过查询数据库数据来判断接口执行的结果是否正确,以校验数据的准确性。

  xmysql的安装及使用

用 Postman 做接口自动化(十四)xmysql 辅助操作 mysql 数据库(一)_postman自动化打开数据库-CSDN博客  

断言脚本编写

现在你要测试一个更新db的api更新完db,你要检查我的数据是否已经更新成功了

跟api一样的三步骤:

1 提前把数据库字段数据作成json数据用作预想数据。

2 利用xmysql  从数据库中检索到你更新的那条数据,用作实际数据

3 对比

// 预期的 Response 数据
const expectedData = [{
        "user_id": 1,
        "dept_id": 103,
        "user_name": "admin",
        "nick_name": "若依",
        "user_type": "00",
        "email": "ry@163.com",
        "phonenumber": "15888888888",
        "sex": "1",
        "avatar": "",
        "password": "$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2",
        "status": "0",
        "del_flag": "0",
        "login_ip": "127.0.0.1",
        "login_date": "2024-05-15T05:06:54.000Z",
        "create_by": "admin",
        "create_time": "2024-05-06T05:27:02.000Z",
        "update_by": "12",
        "update_time": "2024-05-15T05:06:53.000Z",
        "remark": "管理员1"
    }];
// 实际的 JSON 数据
const actualData = pm.response.json();

// 断言对比
// 调用全局函数并传递参数
eval(pm.globals.get('myGlobalFunction'))
deepCompare(actualData, expectedData);

 response Body:跟预想值对比下就好,没啥用处

 

测试

问题:

   按理来说只有remark字段不对 

   updateTime   这种时间没办法用作断言比对

   在预想的时候去掉。。。// 待定

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言之旅:动态内存管理

目录 一.为什么要有动态内存分配 二.malloc和free 2.1 malloc 2.2 free 2. 3malloc和free的使用 三. calloc 四. raelloc 4.1 代码示例: 4.2 注意事项: 4.3 对动态开辟空间的越界访问 4.4 对非动态开辟内存使⽤free释放 4.5 使用free释放⼀块…

分布式系统的一致性与共识算法(四)

Etcd与Raft算法 Raft保证读请求Linearizability的方法: 1.Leader把每次读请求作为一条日志记录,以日志复制的形式提交,并应用到状态机后,读取状态机中的数据返回(一次RTT、一次磁盘写)2.使用Leader Lease,保证整个集群只有一个L…

STM32手写寄存器的方式实现点亮LED灯

这次是从头开始学习STM32,看野火的视频开始学习,感觉需要记录的时候就要记录一下学习的心得。野火视频学习的老师讲的还是很到位的,能够学习到很多的细节之处,有时会感觉很啰嗦,但是不得不说确实很详细,只有…

IT行业现状与探索未来发展趋势

​​​​​​​ 我眼中的IT行业现状与未来趋势 随着技术的不断进步,IT行业已成为推动全球经济和社会发展的关键力量。从云计算、大数据、人工智能到物联网、5G通信和区块链,这些技术正在重塑我们的生活和工作方式。你眼中IT行业的现状及未来发展趋势是…

六西格玛绿带培训:解锁质量工程师的职场新篇章

在质量管理这条道路上,我们或许都曾有过这样的疑问:为何付出了同样的努力,却未能获得预期的回报?当我们看到身边的同行们逐渐步入高薪的行列,而自己却似乎陷入了职业的泥沼,这种对比无疑令人倍感焦虑。然而…

iRemovalPro完美解4G信号,支持A12+,支持6S~14ProMax,支持iOS17.4+

iRemovalPro是一款绕过激活锁界面的解锁工具,可以激活所有iPhone/ipad恢复信号,并且支持插卡接打电话、收发短信、4G流量上网,支持iCloud登录,有消息通知,支持iPhone6S~14ProMax的所有型号,支持iOS15-iOS17…

酷开科技的智能电视操作系统—酷开系统,带来更加舒适的观看体验

酷开科技的智能电视操作系统——酷开系统,通过大数据和人工智能技术的结合,会根据会员的观看历史和收视行为偏好,刻画出“消费者群体画像”,然后将内容进行“人工编辑智能推荐”的方式推送到消费者面前,不仅省去了消费…

僵尸网络的威胁值得关注

僵尸网络(botnet)是指一组受到恶意软件感染并遭到恶意用户控制的计算机。术语“僵尸网络”由“机器人(bot)”和“网络(network)”两个词组合而成,每台受感染设备被称为“机器人”。僵尸网络可用…

谷歌举办Gemini API开发者大赛;ChatGPT iOS版更新支持中文

🦉 AI新闻 🚀 谷歌举办Gemini API开发者大赛,大奖1981款电动DeLorean 摘要:IT之家 5 月 15 日消息,在 2024 年谷歌 I/O 开发者大会上,谷歌宣布举办 Gemini API 开发者大赛,主要面向个人开发者…

Springboot+Vue项目-基于Java+MySQL的高校专业实习管理系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

Spring MVC(建立连接 + 请求)

文章目录 一、建立客户端和服务器的连接二、如何构造请求(传参)2.1 构造请求方式 参数通用注解2.2 传递单个参数2.3 传递多个参数2.4 传递数组/集合2.5 传递对象2.6 传递JSON 三、相关的其他请求操作3.1 获取URL中的参数 PathVariable3.2 上传文件 Requ…

Golang | Leetcode Golang题解之第92题反转链表II

题目&#xff1a; 题解&#xff1a; func reverseBetween(head *ListNode, left, right int) *ListNode {// 设置 dummyNode 是这一类问题的一般做法dummyNode : &ListNode{Val: -1}dummyNode.Next headpre : dummyNodefor i : 0; i < left-1; i {pre pre.Next}cur :…

Dubbo配置上的一些概念

对于dubbo在spring中我们可能看到有如下配置&#xff08;可参考Schema 配置参考手册 | Apache Dubbo&#xff09;&#xff1a; dubbo:application:id: dubbo-account-examplename: dubbo-account-example# 是否启用 Dubbo 的 QoS&#xff08;Quality of Service&#xff09;服…

什么是趋肤效应

很多同行来问什么是趋肤效应&#xff0c;趋肤效应应该是附在表面&#xff0c;为什么变成了附在线路横截面的底面&#xff1f;下面就和小易&#xff0c;一起具体了解下趋肤效应。 趋肤效应也称集肤效应&#xff0c;英文术语是Skin effection,它是指在电流流过导体时&#xff0c;…

DOS学习-目录与文件应用操作经典案例-cd

欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一.前言 二.案例 三.练习 一.前言 虽然Windows 2000/XP/2003系统已经不再使用纯DOS平台&#xff0c;但它们内建了一个功能强大的命令行界面。在这个界面中&#xff0c;用户可以像在Wind…

2024.05.15学习记录

1、完成Ts重构Axios项目中更多功能的开发 2、刷题&#xff1a;二叉树&#xff08;代码回忆录&#xff09; 3、复习diff算法源码解读

在k8s中搭建elasticsearch高可用集群,并对数据进行持久化存储

&#x1f407;明明跟你说过&#xff1a;个人主页 &#x1f3c5;个人专栏&#xff1a;《洞察之眼&#xff1a;ELK监控与可视化》&#x1f3c5; &#x1f516;行路有良友&#xff0c;便是天堂&#x1f516; 目录 一、引言 1、Elasticsearch简介 2、k8s简介 二、环境准备 …

k8s概述及核心组件

一、k8s概述 1.1 引言 docker compose 单机编排工具 有企业在用 docker swarm 能够在多台主机中构建一个docker集群 基本淘汰集群化管理处理工具 容器 微服务封装 dockerfile 编写成镜像 然后进行发布 dockerfile 可以写成shell脚本&#xff08;函数做调…

xmzs切换镜像源

1.全局安装 npm install xmzs -g 2.mmp ls 查看镜像源 3.mmp use 选择镜像源

CTF网络安全大赛web题目:just_sqli

这道题目是bugku的web题目 题目的 描  述: KosenCTF{} 原文链接&#xff1a; CTF网络安全大赛web题目&#xff1a;just_sqli - 红客网-网络安全与渗透技术 题目Web源代码&#xff1a; <?php$user NULL; $is_admin 0;if (isset($_GET["source"])) {highlig…