【问题标题】:Variables and data files in Postman Collection RunnerPostman Collection Runner 中的变量和数据文件
【发布时间】:2018-07-15 05:35:46
【问题描述】:

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

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

第一个获取请求在正文部分有这个:

{
    "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");

如您所见,我尝试使用全局变量和环境变量都没有填充下一个请求正文。

我错过了什么?

【问题讨论】:

  • 您不需要在预请求中设置该设置,因为它没有做任何事情。您在下一个请求中的正文不是有效的 JSON,而您要通过 "{{VoucherCode}}" 得到的只是那个确切的字符串。您设置 environmentglobal 变量是否有原因?

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


【解决方案1】:

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

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);

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

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

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

【讨论】:

  • 谢谢,虽然它现在只运行 1 次迭代并说有错误,但请检查开发工具。我所能看到的就是它的“未定义”
  • 第一个请求的响应是什么 jsonData.dealId 仅适用于非常简单的模式。如果您发布回复,我可以提供您需要添加的实际代码。你也可以发布一些来自 Postman 的请求图片吗?
  • 所以这是响应正文 { "dealId": 6490121, "voucherCode": "J87CM9-5PV33M", "productId": 520846, "productTitle": "A book", "orderNumber": 23586548, "paymentMethod": "Braintree", "deliveryNotificationAvailable": true }
  • 用详细信息而不是在 cmets 中更新问题。
  • 太棒了,我现在可以看到它捕获了变量 :) 但是当你在集合运行器中运行集合时,我在 devtools “”无法读取未定义的属性“toString””中得到这个可能是因为我试图遍历 csv 文件中的多个代码?
猜你喜欢
  • 1970-01-01
  • 2017-02-12
  • 2020-01-06
  • 2017-01-15
  • 2019-11-09
  • 1970-01-01
  • 2019-03-13
  • 2021-02-02
  • 1970-01-01
相关资源
最近更新 更多