批量操作
需求背景
一个管理系统上需要删除很多数据,但是不支持批量删除,需要手动一条一条数据进行删除,数据大概有几百条。于是通过postman自动进行批量删除。
操作步骤
1、使用postman调用拿到所有数据的ID,通过调整分页大小实现(当然也可以通过postman以及脚本去实现)
2、从浏览器中拿到管理系统对应的cookie信息(根据各自系统情况配置,有的系统使用token)当然也可使用postman调用登录接口将响应信息设置到变量中,cookie则从变量中获取。
具体实现
1、建立一个接口集
2、建立一个请求放到接口集中
这里的{{id}} 为从变量获取ID
3、在请求头中配置好cookie
4、在接口集合上配置变量以及编写脚本
var ids = pm.collectionVariables.get("ids")
console.log(ids)
var index = pm.globals.get("index");
index=Number.parseInt(index)+1
if(index>=ids.length){
console.log("所有运行结束")
index=0
}
pm.globals.set("index", index);
var id= ids[index]
pm.globals.set("id", id);
console.log("index添加之后:",index,id)
该代码主要意思为 从集合变量中获取ids变量,从全局变量获取index,如果index大于等于ids数组长度则赋值为0,并重新设置到全局变量。获取id并设置到全局变量。
注:目前使用定一个变量存储数据,其实也可以通过文件方式实现。
selectFile可以不用定义参数,postman会自动遍历文件中的数据。
请求参数使用脚本增加签名
如图在请求一些接口时需要根据调用方提供的 账号秘钥信息生成签名。在调用时需要传入账号以及签名时间戳等。
具体脚本如下:
配置的变量
具体脚本
var moment = require('moment');
// 获取账号
var account = pm.collectionVariables.get("account");
console.log(pm.collectionVariables.get("account"))
// 获取秘钥
var key=pm.collectionVariables.get("key");
// 获取时间
var timestamp=moment().format("YYYY-MM-DD HH:mm:ss");
// 生成签名
var signStr=account+timestamp+key;
console.log("signStr",signStr)
var sign = CryptoJS.MD5(signStr).toString();
console.log("sign",sign)
pm.collectionVariables.set("sign",sign);
pm.collectionVariables.set("timestamp",timestamp);
版权归原作者 拾光少年 所有, 如有侵权,请联系我们删除。