我正在链接多个请求,以模拟邮递员中的端到端方案。
我有一个值数组,该数组是从第一个请求返回的。 我已将数组设置为环境变量,以便可以由集合中的其他后续请求访问。
pm.environment.set("travArray", travArray);
travArray的控制台输出如下:
0:"d4faf286-ab68-448b-87cb-ad6a7030bc57"
1:"2e21ab1f-25be-49ab-a984-db529022cf0f"
2:"9a1d942c-4048-48a7-acfc-7a1c9563c528"
接下来,我试图发布一个带有这些索引值的json请求。 在“正文”(原始)请求中,它看起来像这样;
"travelers": [
{
"id": "{{travArray[0]}}",
"firstName": "teaaf",
"lastName": "fadfadsfads",
"travelerType": "ADULT"
},
{
"id": "{{travArray[1]}}",
"firstName": "sdfsfsdf",
"lastName": "sdfsfsd",
"travelerType": "ADULT"
},
{
"id": "{{travArray[2]}}",
"firstName": "sdfsdf",
"lastName": "sdfsfsdf",
"travelerType": "ADULT"
}
],
但是,当原始请求发布到API端点时,使用这种语法{{travArray [1]}}无法解析实际值。
有趣的是,当我只使用{{travArray}-没有索引符号时,将发送数组的全部内容。
示例输出:
id:"d4faf286-ab68-448b-87cb-ad6a7030bc57,2e21ab1f-25be-49ab-a984-db529022cf0f,9a1d942c-4048-48a7-acfc-7a1c9563c528"
firstName:"teaaf"
lastName:"fadfadsfads"
travelerType:"ADULT"
有人可以告诉我如何解析json正文请求中数组的索引值吗?
谢谢!
答案 0 :(得分:0)
我是Postman脚本的新手,所以这是我的noob方法。
您需要将阵列位置传递到测试脚本中。
var jsonData = JSON.parse(responseBody);
pm.environment.set("travArray", travArray.id[0]);
您可以通过设置变量然后使用.setNextRequest()方法来遍历数组。
在您的环境中设置索引变量。然后执行一些递归脚本编写:
var index = parseInt(pm.environment.get("index")); // Get index
var jsonData = JSON.parse(responseBody); // Deserialize the return
pm.environment.set("travArray", travArray.id[index]); // Get the index of the return
pm.environment.set("index", index + 1); // Increment the index
if (index >= jsonData.travArray.id.length) { // Test if another value exists
postman.setNextRequest(null) // End script if not needed
}
postman.setNextRequest("next_request"); // Call the next request
处理完另一个请求后,可以向脚本中添加.setNextRequest()并将其指向第一个请求。通过调用.setNextRequest(null),Postman将停止运行迭代。
祝你好运!