我对邮递员(和编码人员)很陌生,并试图查找并整理许多脚本片段,以使其按我想要的方式工作。 我想要的非常简单:我有一个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
这当然是行不通的。它要么不运行集合中的第二个请求,要么不循环到列表中的多个ID。
因此,我认为将第二个POST放在第一个POST中即可解决。但是我没有运气。
可以请人帮我吗?
答案 0 :(得分:0)
我已经尝试过用POSTMAN提供的示例API提到用例。 你可以尝试吗?
第一个POST方法请求:https://postman-echo.com/post
第一种POST方法的预请求脚本
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);
第一个POST方法的“测试”标签
var orderids = pm.environment.get("orderids");
if (orderids && orderids.length > 0) {
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("invoice.id", jsonData.headers.host);
postman.setNextRequest("Test1");
} else {
postman.setNextRequest(null);
}
第二种POST方法要求:https://postman-echo.com/post?key= {{invoice.id}}
执行上述收集后,它将在环境变量中设置orederids和invoice.id值,然后将调用下一个POST方法。
希望这会对您有所帮助。
答案 1 :(得分:0)
感谢@HalfBloodPrince,它来自邮递员回声,但是在我看来,它不是:S 我设法使它工作的是使用Json文件作为Orderids列表。 在这种情况下,我将所有请求分开。
请求1-https://APIADDRESS/?order_id {{orderid}}&contract [copy_order_data] = true
“测试”标签:
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("invoice.id", jsonData.invoice.id);
请求2-https://APIADDRESS/invoices/ {{invoice.id}} / finalize.json
这样,一切都井井有条。 谢谢