当前位置: 首页 > 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文件,可以预览得到如下情况:

运行正常情况如下:

http://www.lryc.cn/news/2404075.html

相关文章:

  • Global Security Market知识点总结:主经纪商业务
  • 算法练习-回溯
  • AI代码助手需求说明书架构
  • PTC过流保护器件工作原理及选型方法
  • RabbitMQ 在解决数据库高并发问题中的定位和核心机制
  • VSCode主题定制:CSS个性化你的编程世界
  • Windows 下彻底删除 VsCode
  • 一文带你入门Java Stream流,太强了,mysqldba面试题及答案
  • FastAPI安全异常处理:从401到422的奇妙冒险
  • 阿里云 RDS mysql 5.7 怎么 添加白名单 并链接数据库
  • 《Brief Bioinform》: 鼠脑单细胞与Stereo-seq数据整合算法评估
  • 基于Springboot的宠物领养系统
  • AI API、AI 聊天助手,两大服务助力应用智能化转型
  • Windows 下搭建 Zephyr 开发环境
  • 蓝桥杯单片机之通过实现同一个按键的短按与长按功能
  • 如何用 pnpm patch 给 element-plus 打补丁修复线上 bug(以 2.4.4 修复 PR#15197 为例)
  • PCB特种工艺应用扩展:厚铜、高频与软硬结合板
  • ClusterRole 和 ClusterRoleBinding 的关系及使用
  • C++ const 修饰符深入浅出详解
  • Python 数据类型转换、编码处理与文件操作实战指南
  • Readest(电子书阅读器) v0.9.53
  • USART 串口通信全解析:原理、结构与代码实战
  • Matlab | matlab中的图像处理详解
  • UOS无法安装deb软件包
  • VUE前端实现自动打包成压缩文件
  • 2025政务服务便民热线创新发展会议顺利召开,张晨博士受邀分享
  • 【PDF PicKiller】PDF批量删除固定位置图片工具,默认解密,可去一般图、背景图、水印图!
  • SpringAI Alibaba实战文生图
  • GIC700组件
  • 几种简单的排序算法(C语言)