我有一套邮递员收藏品。服务器支持两种类型的用户角色,合作伙伴和客户。其余的服务器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);
}
答案 0 :(得分:1)
预请求脚本和测试需要是有效的javascript,因此您无法使用{{var}}
构造访问全局变量和环境变量。
为了让你的测试看起来更好一点,你可以做这样的事情
var jsonData = JSON.parse(responseBody),
role = environment["role"];
postman.setEnvironmentVariable("user_name", jsonData.account[role].name);