Postman -- 从 JSON 响应中提取时无法使用环境变量
Postman -- Unable to use environment variable when extracting from JSON response
我有一套邮递员collections。服务器支持两种类型的用户角色,合作伙伴和客户。 restful 服务器 URL 包括角色名称(例如 http://server.com/customer/account
和 http://server.com/partner/account
JSON 数据也因角色而异。
"account" : {
"customer" : {
"name" : "Fred"
}
}
"account" : {
"partner" : {
"name" : "Fred"
}
}
我正在尝试提取名称,但邮递员不喜欢指定用于提取响应的角色的嵌入式环境变量。环境变量可以很好地创建请求。
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("user_name", jsonData.account.{{role}}.name);
Postman 报告语法错误 (Unexpected '{'
),所以我不抱希望,但是有办法做到这一点吗?
---更新---
我找到了一个可行的解决方法,但不是那么优雅。
if (environment["role"] == 'partner') {
postman.setEnvironmentVariable("user_name", jsonData.account.partner.name);
} else {
postman.setEnvironmentVariable("user_name", jsonData.account.customer.name);
}
预请求脚本和测试需要有效 javascript 因此您不能使用 {{var}}
构造访问全局变量和环境变量。
为了使您的测试看起来更好一些,您可以这样做
var jsonData = JSON.parse(responseBody),
role = environment["role"];
postman.setEnvironmentVariable("user_name", jsonData.account[role].name);
我有一套邮递员collections。服务器支持两种类型的用户角色,合作伙伴和客户。 restful 服务器 URL 包括角色名称(例如 http://server.com/customer/account
和 http://server.com/partner/account
JSON 数据也因角色而异。
"account" : {
"customer" : {
"name" : "Fred"
}
}
"account" : {
"partner" : {
"name" : "Fred"
}
}
我正在尝试提取名称,但邮递员不喜欢指定用于提取响应的角色的嵌入式环境变量。环境变量可以很好地创建请求。
var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("user_name", jsonData.account.{{role}}.name);
Postman 报告语法错误 (Unexpected '{'
),所以我不抱希望,但是有办法做到这一点吗?
---更新--- 我找到了一个可行的解决方法,但不是那么优雅。
if (environment["role"] == 'partner') {
postman.setEnvironmentVariable("user_name", jsonData.account.partner.name);
} else {
postman.setEnvironmentVariable("user_name", jsonData.account.customer.name);
}
预请求脚本和测试需要有效 javascript 因此您不能使用 {{var}}
构造访问全局变量和环境变量。
为了使您的测试看起来更好一些,您可以这样做
var jsonData = JSON.parse(responseBody),
role = environment["role"];
postman.setEnvironmentVariable("user_name", jsonData.account[role].name);