我对邮递员(和编码)很陌生,并且试图找到并拼凑许多脚本片段,以使其按我想要的方式工作。我想要的非常简单:我有一个 ID 列表,我想在每个 ID 中创建一个 POST,获取一个 responseBody 作为变量并执行另一个 POST。我想我已经接近了,但我无法让它发挥作用。
我试过:同一个集合中的两个 POST 请求并运行集合。在第一个请求中,我有一个 POST
https://APIADDRESS/?order_id {{orderid}}&contract[copy_order_data]=true
在预请求脚本选项卡上:
var orderids = pm.environment.get(“orderids”);
if (!orderids) {
orderids = [“bc46bf79-2846-44ed-ac4d-78c77c92ccc8”,“81aacc33-1ade-41a3-b23e-06b03b526b8f”];
}
var currentOrderId = orderids.shift();
pm.environment.set(“orderid”, currentOrderId);
pm.environment.set(“orderids”, orderids);
在测试选项卡上:
var orderids = pm.environment.get(“orderids”);
if (orderids && orderids.length > 0) {
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable(“invoice.id”, jsonData.invoice.id);
postman.setNextRequest(“Create invoice”);
} else {
postman.setNextRequest(null);
}
invoice.id 是一个环境变量,其中填充了第一个操作/帖子的响应正文,然后在第二个操作/帖子上使用该变量。
然后第二个请求将是一个 POST
https://APIADDRESS/invoices/ {{invoice.id}}/finalize.json
当然,这是行不通的。要么它不运行集合中的第二个请求,要么它不循环到列表中超过 1 个 ID。
所以我认为将第二个 POST 放在第一个 POST 中可以解决它。但我没有运气。
可以请人帮助我吗?