2016-01-28 18 views
0

我有一套郵差集合。服務器支持兩種類型的用戶角色,合作伙伴和客戶。在寧靜的服務器的URL包括角色名稱(例如http://server.com/customer/accounthttp://server.com/partner/account郵差 - 從JSON響應提取時無法使用環境變量

JSON數據也作用是不同的。

"account" : { 
    "customer" : { 
    "name" : "Fred" 
    } 
} 

"account" : { 
    "partner" : { 
    "name" : "Fred" 
    } 
} 

我想提取的名字,但郵遞員不喜歡嵌入式環境變量指定角色使用提取的響應。環境變量工作正常,創建請求。

var jsonData = JSON.parse(responseBody); 
postman.setEnvironmentVariable("user_name", jsonData.account.{{role}}.name); 

郵差報告語法錯誤(Unexpected '{'),所以我不希望,但有沒有辦法做到這一點?

--- UPDATE --- 我找到了一個解決方法,但沒有優雅。

if (environment["role"] == 'partner') { 
    postman.setEnvironmentVariable("user_name", jsonData.account.partner.name); 
} else { 
    postman.setEnvironmentVariable("user_name", jsonData.account.customer.name); 
} 

回答

0

預請求腳本和測試需要有效的JavaScript,所以你可以使用{{var}}結構不訪問全局和環境變量。

爲了讓你的測試看起來好一點,你可以做這樣的事情

var jsonData = JSON.parse(responseBody), 
    role = environment["role"]; 

postman.setEnvironmentVariable("user_name", jsonData.account[role].name);