如何在Postman的Tests标签用JavaScript修改请求名称并添加序号?
批量给Postman集合请求添加序号前缀的解决方案
由于pm.info.requestName是只读属性,无法直接在Tests标签中修改请求的原始名称,以下是两种可行的批量修改方案:
方案一:Postman控制台脚本直接修改集合(永久生效)
适合在Postman客户端内快速修改当前打开的集合:
- 先导出集合备份(避免误操作)
- 打开Postman开发者控制台(
View > Show DevTools) - 粘贴并执行以下脚本:
// 获取当前集合的JSON结构 const collection = pm.collection.toJSON(); let counter = 1; // 递归遍历所有请求(含文件夹内的请求) function traverseItems(items) { items.forEach(item => { if (item.request) { // 给请求名称添加序号前缀 item.name = `${counter} ${item.name}`; counter++; } if (item.items) { traverseItems(item.items); } }); } traverseItems(collection.item); // 更新集合 pm.collection.update(collection);
脚本会按集合从上到下的顺序(含嵌套文件夹内的请求)为每个请求添加序号前缀,修改后直接保存到集合中。
方案二:Node.js脚本批量修改集合文件(适合多集合处理)
如果需要批量处理多个集合文件,可通过Node.js脚本实现:
- 导出目标集合为JSON文件(比如命名为
original-collection.json) - 创建以下Node.js脚本(比如
rename-requests.js):
const fs = require('fs'); // 读取原始集合文件 const collection = JSON.parse(fs.readFileSync('original-collection.json', 'utf8')); let counter = 1; // 递归遍历修改请求名称 function traverseItems(items) { items.forEach(item => { if (item.request) { item.name = `${counter} ${item.name}`; counter++; } if (item.items) { traverseItems(item.items); } }); } traverseItems(collection.item); // 保存修改后的集合 fs.writeFileSync('updated-collection.json', JSON.stringify(collection, null, 2));
- 运行脚本:
node rename-requests.js - 将生成的
updated-collection.json导入Postman即可
可选:运行时显示带序号的名称(不修改原始集合)
如果仅需在请求运行时查看带序号的名称,无需修改集合本身,可按以下配置:
- 给集合添加集合级前置脚本:
// 初始化全局计数器,仅在集合开始运行时执行一次 if (!pm.globals.has("reqCounter")) { pm.globals.set("reqCounter", 1); }
- 给每个请求(或集合级Tests脚本)添加代码:
const currentNum = pm.globals.get("reqCounter"); // 在控制台输出带序号的请求名称 console.log(`${currentNum} ${pm.info.requestName}`); // 计数器自增 pm.globals.set("reqCounter", parseInt(currentNum) + 1);
内容的提问来源于stack exchange,提问作者Joshua
相关产品推荐
相关产品推荐

