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

立志成为一名优秀测试开发工程师(第十一天)—Postman动态参数/变量、文件上传、断言策略、批量执行及CSV/JSON数据驱动测试

目录

一、Postman接口关联与正则表达式应用

1.正则表达式解析

2.提取鉴权码。

二、Postman内置动态参数以及自定义动态参数

1.常见内置动态参数:

2.自定义动态参数:

3.“编辑”接口练习

三、图片上传

1.文件的上传

2.上传后内容的验证

四、postman的断言

1.常见断言

2.在断言中获取动态参数(全局变量)的方法

3.全局断言

五、批量运行测试用例

六、postman中使用CSV、Json文件实现数据驱动


一、Postman接口关联与正则表达式应用

1.正则表达式解析

接口关联方式:

①使用json提取器实现接口关联(上期已讲过)

②使用正则表达式实现接口关联

var result = responseBody.match(new RegExp('"access_token":"(.*?)"'));

responseBody 是 Postman 内置变量,表示当前请求返回的响应体内容(通常为 JSON 字符串)。通过 match() 方法匹配正则表达式,返回包含匹配结果的数组。

正则表达式细节

new RegExp('"access_token":"(.*?)"') 动态创建正则表达式对象:

  • "(.*?)" 为非贪婪模式匹配双引号内的任意字符(即 access_token 的值)
  • () 表示捕获组,提取括号内内容到结果数组

返回值结构:匹配成功时返回数组示例:

['"access_token":"abc123"', // 完整匹配项(result[0])'abc123'                  // 第一个捕获组的值(result[1])
]

2.提取鉴权码

左边部分即做左边键,右边部分即是右边键修改格式后放进括号内:

console.log(result[1]);

console.log("0的位置是:",result[0])  指定输出获取相应的值

实际应用:将提取的 token 存入 Postman 全局变量:

//设置为全局变量:

pm.globals.set("access_token",result[1]);

pm.globals.set("access_token", result[1]);

此操作可用于后续接口的鉴权请求,通过 {{access_token}} 直接调用该值。

二、Postman内置动态参数以及自定义动态参数

1.常见内置动态参数:

{{$timestamp}} 生成当前时间的时间戳

{{$randomInt}} 生成0-1000之间的随机数

{{$guid}} 生成速记GUID字符串

2.自定义动态参数:

①先在Pre-request中创建全局变量

②创建后先在全局变量中查看是否创建成功,若成功在Body中就可以直接使用了

③得到相应响应体:

3.“编辑”接口练习

①进入我们的微信公众平台,找到用户管理,使用编辑标签接口,新建请求,将信息填入

qhttps://api.weixin.qq.com/cgi-bin/tags/update?access_token=ACCESS_TOKEN

②回到我们的创建标签接口,使用正则表达式获取了id之后,将其设置为全局变量:

③回到我们新建的编辑请求中,根据id编辑标签名称,易知使用json格式传参,将获取到的全局变量tag_id带进去,即可实现编辑功能

三、图片上传

同样在微信公众平台获取到图片上传的url:

https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN

1.文件的上传

文件的上传使用form-data,键名必须是media,格式选择File,然后选择文件上传

2.上传后内容的验证

上传后得到响应信息,即图片的url,输入到浏览器中即可查看检验上传的图片,注意url中会存在转义符,要去掉多余的‘\’

四、postman的断言

1.常见断言

Status code: Code is 200  检查返回的状态码为200

Response body:Contains string 检查响应中包含指定字符串

Response body:is equal to a string 检查响应中等于一个字符串

Response headers :Content-type 检查包含响应头Content-type

Response time is less than 200ms :检查请求耗时小于200ms

例如:

2.在断言中获取动态参数(全局变量)的方法

拿上面新建的全局变量times举例,以下三种方式均可获得times相关断言

pm.globals.get(“times”)

globals[“times”]

globals.times

3.全局断言

比如说,状态断言基本上每个请求都是用的差不多的,即可设置为全局变量

步骤:

右键点击collection,选择编辑,然后将要加入到全局断言的断言剪切到collection的test中,不知道是不是因为小编的postman版本不同,小编一直找不到collection的编辑在哪,故而略过

五、批量运行测试用例

选中collection右键运行,即可编辑运行配置,其中iteration表示迭代次数,delay则是延迟时间,配置完成后点击run即可运行

六、postman中使用CSV、Json文件实现数据驱动

postman数据驱动之csv、json, 二者其实只是数据格式不同

以下内容基于该接口(获取token)实现:https://{{ip}}/cgi-bin/token?grant_type=client_credential&appid=a&secret=b

以下是我的例子,关键的数值我用a.b替代了

40002、41002、41004分别是这三个值grant_id,appid,secret各自为空时出现的状态码

CSV:

“grant_id,appid,secret,assert_value

client_credential,a,b,access_token

,a,b,40002

client_credential,,b,41002

client_credential,a,,41004

Json:

[
{"grant_type":"client_credential","appid":"a","secret":"b","assert_value":"access_token"},
{"grant_type":"","appid":"a","secret":"b","assert_value":40002},
{"grant_type":"client_credential","appid":"","secret":"b","assert_value":41002},
{"grant_type":"client_credential","appid":"a","secret":"","assert_value":41004},
]

上面两个文件任意一个编辑保存好之后,进入“获取token”的请求,使用全局变量,编辑参数

确保它在collection中

启动collection,编辑运行配置,选择csv或者json文件,可以预览得到如下情况:

运行正常情况如下:

相关文章:

立志成为一名优秀测试开发工程师(第十一天)—Postman动态参数/变量、文件上传、断言策略、批量执行及CSV/JSON数据驱动测试

目录 一、Postman接口关联与正则表达式应用 1.正则表达式解析 2.提取鉴权码。 二、Postman内置动态参数以及自定义动态参数 1.常见内置动态参数: 2.自定义动态参数: 3.“编辑”接口练习 三、图片上传 1.文件的上传 2.上传后内容的验证 四、po…...

Global Security Market知识点总结:主经纪商业务

在全球证券市场的复杂体系中,主经纪商业务(Prime Brokerage)占据着独特且关键的位置。这一业务为大型机构投资者提供了一系列至关重要的服务,极大地影响着金融市场的运作与发展。 一、主经纪商业务的定义 主经纪商业务是投资银行…...

算法练习-回溯

今天开始新的章节,关于算法中回溯法的练习,这部分题目的难度还是比较大的,但是十分锻炼人的思维与思考能力。 处理这类题目首先要注意几个基本点: 1.关于递归出口的设置,这是十分关键的,要避免死循环的产…...

AI代码助手需求说明书架构

AI代码助手需求说明书架构 #mermaid-svg-6dtAzH7HjD5rehlu {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-6dtAzH7HjD5rehlu .error-icon{fill:#552222;}#mermaid-svg-6dtAzH7HjD5rehlu .error-text{fill:#552222;s…...

PTC过流保护器件工作原理及选型方法

PTC过流保护器件 ‌(Positive Temperature Coefficient,正温度系数热敏电阻)是一种过流保护元件,其工作原理基于电阻值随温度变化的特性。当电路正常工作时,PTC的阻值很小,电流可以顺畅通过;但当…...

RabbitMQ 在解决数据库高并发问题中的定位和核心机制

RabbitMQ 在解决数据库高并发问题中的定位和核心机制 它是间接但极其有效的解决方案,以下内容聚焦如何最大化发挥 RabbitMQ 的潜力: 一、核心机制落地强化方案 1. 精准的异步化切割 关键原则:区分 “必须同步” 和 “可异步” 操作 #merma…...

VSCode主题定制:CSS个性化你的编程世界

在今天的数字世界,编程环境已成为开发者的第二大脑,而主题正是个性化你的创意空间的关键。本文将指导你如何使用CSS自定义VSCode的主题,让你的IDE不仅功能强大,更具视觉个性。 思路分析 设计思路: 创建主色调基调和…...

Windows 下彻底删除 VsCode

彻底删除 VS Code (Visual Studio Code) 意味着不仅要卸载应用程序本身,还要删除所有相关的配置文件、用户数据、插件和缓存。这可以确保你有一个完全干净的状态,方便你重新安装或只是彻底移除它。 重要提示: 在执行以下操作之前&#xff0c…...

一文带你入门Java Stream流,太强了,mysqldba面试题及答案

list.add(“世界加油”); list.add(“世界加油”); long count list.stream().distinct().count(); System.out.println(count); distinct() 方法是一个中间操作(去重),它会返回一个新的流(没有共同元素)。 Stre…...

FastAPI安全异常处理:从401到422的奇妙冒险

title: FastAPI安全异常处理:从401到422的奇妙冒险 date: 2025/06/05 21:06:31 updated: 2025/06/05 21:06:31 author: cmdragon excerpt: FastAPI安全异常处理核心原理与实践包括认证失败的标准HTTP响应规范、令牌异常的特殊场景处理以及完整示例代码。HTTP状态码选择原则…...

阿里云 RDS mysql 5.7 怎么 添加白名单 并链接数据库

阿里云 RDS mysql 5.7 怎么 添加白名单 并链接数据库 最近帮朋友 完成一些运维工作 ,这里记录一下。 文章目录 阿里云 RDS mysql 5.7 怎么 添加白名单 并链接数据库最近帮朋友 完成一些运维工作 ,这里记录一下。 阿里云 RDS MySQL 5.7 添加白名单1. 登录…...

《Brief Bioinform》: 鼠脑单细胞与Stereo-seq数据整合算法评估

一、写在前面 基因捕获效率、分辨率一直是空间转录组细胞类型识别的拦路虎,许多算法能够整合单细胞(single-cell, sc)或单细胞核(single-nuclear, sn)数据与空间转录组数据,从而帮助空转数据的细胞类型注释。此前我们介绍过近年新出炉的Stereo-seq平台&…...

基于Springboot的宠物领养系统

本系统是一个面向社会的宠物领养平台,旨在帮助流浪宠物找到新家庭,方便用户在线浏览、申请领养宠物,并支持管理员高效管理宠物、公告和用户信息。 技术栈: -后端: Java 8Spring BootSpring MVCMyBatis-PlusMySQL 8R…...

AI API、AI 聊天助手,两大服务助力应用智能化转型

网络效应、转换成本——这些一度定义了我们这个时代商业逻辑的规则,在 AI 时代迅速崩塌。创新性功能被无差别克隆包围,差异化优势在底层能力翻新中消散…… 更别说那些决策迟缓、行动无法言出法随的“后来者”,注定与市场窗口擦身而过。唯快…...

Windows 下搭建 Zephyr 开发环境

1. 系统要求 操作系统:Windows 10/11(64位)磁盘空间:至少 8GB 可用空间(Zephyr 及其工具链较大)权限:管理员权限(部分工具需要) 2. 安装必要工具 winget安装依赖工具&am…...

蓝桥杯单片机之通过实现同一个按键的短按与长按功能

实现按键的短按与长按的不同功能 问题分析 对于按键短按,通常是松开后实现其功能,而不会出现按下就进行后续的操作;而对于按键长按,则不太一样,按键长按可能分为两种情况,一是长按n秒后实现后续功能&…...

如何用 pnpm patch 给 element-plus 打补丁修复线上 bug(以 2.4.4 修复 PR#15197 为例)

背景 在实际项目开发中,依赖的三方库(如 element-plus)难免会遇到 bug。有时候官方虽然已经修复,但新版本升级成本高,或者有兼容性风险。这时,给依赖打补丁是最优雅的解决方案之一。 本文以 element-plus…...

PCB特种工艺应用扩展:厚铜、高频与软硬结合板

新能源汽车与消费电子驱动PCB特种工艺创新,厚铜板降阻30%,软硬结合板渗透率年增15%。 1. 厚铜板:新能源高压平台核心 技术突破:猎板PCB量产10oz厚铜板(传统为3oz),载流能力提升200%&#xff0c…...

ClusterRole 和 ClusterRoleBinding 的关系及使用

ClusterRole 和 ClusterRoleBinding 是 Kubernetes 中用于控制集群范围权限的两个重要资源,它们共同构成了 Kubernetes RBAC (基于角色的访问控制) 系统的核心部分。 两者的关系 ClusterRole 定义了一组权限规则,指定了可以对哪些资源执行哪些操作 Clu…...

C++ const 修饰符深入浅出详解

C const 修饰符深入浅出详解 📅 更新时间:2025年6月6日 🏷️ 标签:C | const关键字 | 常量 | 多文件编程 | 现代C 文章目录 前言🌟 一、const 是什么?为什么要用?示例✅ const 的四大好处 &…...

Python 数据类型转换、编码处理与文件操作实战指南

一、数据类型转换 int (整型) 与 str (字符串) 之间: str 转 int:int("123") (要求字符串内容必须是数字)。 int 转 str:str(123)。 规则: 使用目标类型的英文名加括号包裹原数据即可。 list (列表) 与 tuple (元组…...

Readest(电子书阅读器) v0.9.53

Readest 是一款开源电子书阅读器,专为沉浸式和深度阅读体验而设计。它是对Foliate的现代重写,利用Next. js 15和Tauri v2在macOS、Windows、Linux和Web上提供无缝的跨平台体验,并即将支持移动平台。 软件特色 多格式支持 支持EPUB、MOBI、K…...

USART 串口通信全解析:原理、结构与代码实战

文章目录 USARTUSART简介USART框图USART基本结构数据帧起始位侦测数据采样波特率发生器串口发送数据 主要代码串口接收数据与发送数据主要代码 USART USART简介 一、USART 的全称与基本定义 英文全称 USART:Universal Synchronous Asynchronous Receiver Transmi…...

Matlab | matlab中的图像处理详解

MATLAB 图像处理详解 这里写目录标题图像处理 MATLAB 图像处理详解一、图像基础操作1. 图像读写与显示2. 图像信息获取3. 图像类型转换二、图像增强技术1. 对比度调整2. 去噪处理3. 锐化处理三、图像变换1. 几何变换2. 频域变换四、图像分割1. 阈值分割2. 边缘检测3. 区域分割五…...

UOS无法安装deb软件包

UOS无法安装deb软件包 问题描述解决办法: 关闭安全中心的应用隔离结果验证 问题描述 UOS安装Linux微信的deb包时,无法正常安装 解决办法: 关闭安全中心的应用隔离 要关闭-安全中心的应用隔离后才可以正常软件和运行。 应用安全----》 允许任意应用。 结果验证 # …...

VUE前端实现自动打包成压缩文件

VUE前端实现自动打包成压缩文件 背景思路实现打包代码实现 尾巴 背景 做前端开发的兄弟们都经历过每次开发完成之后发包需要进行打包,然后将打包文件压缩。每次打好包了都得手动压缩一遍,就有点繁琐。今天我们就使用一种命令行自动压缩的方法&#xff0…...

2025政务服务便民热线创新发展会议顺利召开,张晨博士受邀分享

5月28日,由新华社中国经济信息社、新华社广东分社联合主办的2025政务服务便民热线创新发展暨“人工智能热线”会议在广州举行。会议围绕“人工智能与新质热线”主题,邀请全国的12345政务服务便民热线主管部门负责人、省市热线负责人和专家学者&#xff0…...

【PDF PicKiller】PDF批量删除固定位置图片工具,默认解密,可去一般图、背景图、水印图!

PDF批量删除固定位置图片工具 PDF PicKiller <center>PDF PicKiller [Download](https://github.com/Peaceful-World-X/PDF-PicKiller)&#x1f929; 工具介绍&#x1f973; 主要功能&#x1f92a; 软件使用&#x1f92a; 参数解释&#x1f92a; 关键代码&#x1f929; 项…...

SpringAI Alibaba实战文生图

1️⃣ 前置准备&#xff1a;搭建开发环境与服务配置&#x1f680; &#x1f527; 1.1 环境要求 JDK 17&#xff08;推荐 JDK 21&#xff09;、Spring Boot 3.x&#xff08;本案例使用 3.3.4&#xff09;、阿里云百炼大模型服务 API Key。需在阿里云控制台完成服务开通并获取有…...

GIC700组件

GIC700包含了几个重要的组件,它们使用一个内部的GIC互联,用于在不同的组件之间使用AXI5-Stream接口进行路由。 1. Distributor(GICD) gicd是GIC700中所有组件之间的主要通信节点。它作为SPI的管理者以及维护LPI的cache,并且与其它chip上的GIC700组件进行通信。当支持GIC…...