Postman Collection Runner 中的变量和数据文件
Variables and data files in Postman Collection Runner
我在 Postman 中有一个 API get 请求,它使用优惠券代码的数据文件来查找有关代码的其他信息,例如代码所针对的产品名称。使用收集运行程序时,优惠券代码传递不正确,并返回有关产品的数据。
出于某种原因,我无法从响应正文中捕获数据并将其 link 捕获到下一个请求中。
第一个 get 请求在正文部分有这个:
{
"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");
如您所见,我尝试使用全局变量和环境变量都没有填充下一个请求正文。
我错过了什么?
除了您添加的字符串之外,这不会在这些变量中设置任何内容。
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
变量,请确保您已经为要设置的这些值创建了一个文件。
我在 Postman 中有一个 API get 请求,它使用优惠券代码的数据文件来查找有关代码的其他信息,例如代码所针对的产品名称。使用收集运行程序时,优惠券代码传递不正确,并返回有关产品的数据。
出于某种原因,我无法从响应正文中捕获数据并将其 link 捕获到下一个请求中。
第一个 get 请求在正文部分有这个:
{
"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");
如您所见,我尝试使用全局变量和环境变量都没有填充下一个请求正文。
我错过了什么?
除了您添加的字符串之外,这不会在这些变量中设置任何内容。
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
变量,请确保您已经为要设置的这些值创建了一个文件。