集合运行器中的变量和数据文件

时间:2018-02-05 11:10:43

标签: http-post environment-variables postman get-request postman-collection-runner

我在邮递员中有一个api get请求,它使用凭证代码的数据文件来查找有关代码的其他信息,例如代码所针对的产品名称。使用收集运行器时,凭证代码将正确传递,并返回有关产品的数据。

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

第一次获取请求在正文部分

package myapp

我在测试部分有这个来捕获视图

{
    "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}}",
  }

你可以看到我试图使用全局和环境变量都没有填充下一个请求体。我错过了什么?

1 个答案:

答案 0 :(得分: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变量,请确保您已为要设置的值创建了一个文件。

相关问题