Postman Collection Runner中的变量和数据文件

问题描述 投票:3回答:1

我在Postman中有一个API获取请求,该请求使用凭证代码的数据文件来查找有关代码的其他信息,例如代码所针对的产品名称。使用收款机时,凭证代码传递不正确,并返回有关产品的数据。

由于某种原因,我无法从响应正文中捕获数据并将其链接到下一个请求。

第一个获取请求的正文部分中有此:

{
    "dealId": 6490121,
    "voucherCode": "J87CM9-5PV33M",
    "productId": 520846,
    "productTitle": "A Book",
    "orderNumber": 23586548,
    "paymentMethod": "Braintree",
    "deliveryNotificationAvailable": true
}

我在测试部分中具有此功能以捕获值:

var jsonData = pm.response.json()    
pm.environment.set("dealId", jsonData.dealId);
pm.globals.set("productId", jsonData.productId);

在正文中发布下一个请求时:

{
    "dealId":{{dealId}},
    "dealVoucherProductId": {{productId}},
    "voucherCode":"{{VoucherCode}}",
}

和请求前脚本:

pm.environment.set("productId", "productId");
pm.globals.set("dealId", "dealId");

您可以看到,我尝试使用全局变量和环境变量,但都没有填充下一个请求正文。

我想念什么?

http-post environment-variables postman get-request postman-collection-runner
1个回答
0
投票

除了您添加的字符串之外,这些变量不会设置任何其他内容。

pm.environment.set("dealId", "dealId");
pm.globals.set("productId", "productId");

为了捕获响应数据并将其设置在变量中,您将需要向第一个请求Tests选项卡添加这样的内容:

var jsonData = pm.response.json()    
pm.environment.set("dealId", jsonData.dealId);
pm.globals.set("productId", jsonData.productId);

取决于第一个请求的响应模式-这应该将这些值设置为变量。

Postman

之后您可以在需要的任何地方使用{{dealId}}{{productId}}

如果使用environment变量,请确保已为要设置的这些值创建了一个文件。

© www.soinside.com 2019 - 2024. All rights reserved.