我正在尝试使用预请求脚本根据从 CSV 文件中提取的数据构建请求对象。问题是请求似乎在预请求脚本运行之前就已经确定了。这似乎使它成为一个中间请求脚本,而不是一个预请求。我的代码如下:
if(ipList === undefined) ipList = "1.2.3.4,2.3.4.5,123.234.345.465";
let ips = ipList.split(',');
let queryArray = [];
for( i=0; i<ips.length; i++){
queryArray.push({ "key": "ip", "value": ips[i] });
}
console.log(queryArray);
pm.request.url.query = queryArray;
console.log(pm.request);
当我将请求中的 url 查询变量硬编码为等于 4.3.2.1 时,pm.response.url 对象如下所示: pm.request.url.query[0] = {key:"ip", value:"4.3.2.1 "}
- 请注意,对象的 url.query[0] 部分与实际获取请求中的参数匹配。
当我将 pm.request.url.query 的值更改为等于新查询数组时,但是正如您在此处看到的,查询数组设置正确,但参数未附加到请求 URL。
因此,除非我做错了什么,否则即使对预请求脚本来说,请求似乎也是不可变的。
所以我的问题是: 有没有办法在发出请求之前修改请求的 url 参数?
顺便说一句:我知道在查询中使用相同键的多个参数可能看起来很奇怪,但这就是这个 API 的工作方式,并且在查询中硬编码多个 IP 地址工作得很好。