作為一款A(yù)PI集成測(cè)試的強(qiáng)大工具,Postman廣泛應(yīng)用于包含持久化數(shù)據(jù)和系統(tǒng)用戶交互模擬等場(chǎng)景中,以獲得可重用和可靠的測(cè)試結(jié)果。本文將詳細(xì)解讀如何使用Postman進(jìn)行REST API的測(cè)試及驗(yàn)證。
首先,下載并安裝適用操作系統(tǒng)的Postman原生應(yīng)用:https://www.getpostman.com/downloads/
啟動(dòng)Postman應(yīng)用程序并創(chuàng)建相應(yīng)的新環(huán)境。在本文示例中,筆者將其命名為“azuretips”。
如需了解更多關(guān)于創(chuàng)建環(huán)境的信息,可參考此鏈接:
https://learning.getpostman.com/docs/postman/environments_and_globals/manage_environments/
從Azure Cloud Shell中創(chuàng)建一個(gè)service principal。這種情況下用戶無(wú)需在本機(jī)中安裝Azure CLI。
az ad sp create-for-rbac-n"your service principal name"
e.g.az ad sp create-for-rbac-n"azuretips"
Creating a role assignment under the scope of"/subscriptions/11389280-b2a2-***********"
Retrying role assignment creation:1/36
Retrying role assignment creation:2/36
Retrying role assignment creation:3/36
{
"appId":"d2846107-f7ae-439b-8a16-da440d52e950",
"displayName":"azuretips",
"name":"https://azuretips",
"password":"00593485-8bda-4c2b-8c4e-2ab52241c24c",
"tenant":"72f98xxx-86f1-41af-****"
}
在cloud shell中執(zhí)行以下命令以獲取Azure訂閱ID
az account show--query id
"11389280-b2a2-4183-b757-xxxxxx"
在Postman的“azuretips”環(huán)境部分輸入第二步創(chuàng)建的tenantid(租戶)、clientid(appId)、clientsecret(密碼)和subid(訂閱ID)。詳情可參考下方截圖:
在Postman應(yīng)用程序中創(chuàng)建一個(gè)新的收藏夾,將所有REST調(diào)用存儲(chǔ)在隔離的分區(qū)中。
如需了解更多關(guān)于Postman收藏夾的信息,可參考:https://learning.getpostman.com/docs/postman/launching_postman/creating_the_first_collection/
在執(zhí)行任何Azure REST API調(diào)用前,用戶須獲取承載令牌(bearer token)。
發(fā)出POST請(qǐng)求https://login.microsoftonline.com/:tenantid/oauth2/token
詳細(xì)信息如下
-Params Tab>>Path Variables.
Key:tenantid
Value:{{tenantid}}
-Authroization Tab
Type:Inherit auth from parent
-Headers Tab
Content-Type:application/x-www-form-urlencoded
-Body tab
grant_type:client_credentials
client_id:{{clientid}}
client_secret:{{clientsecret}}
resource:https://management.azure.com/
-following value in the Tests tab
pm.environment.set("bearerToken",pm.response.json().access_token);
有些用戶可能認(rèn)為這些步驟工作量巨大,但其實(shí)只需要在Postman中設(shè)置一次。用戶可以與其他工作伙伴共享、再利用或復(fù)制此環(huán)境。
獲取承載令牌(bearer token)后,可執(zhí)行Azure REST API以獲取資源組(Resource Groups)、某一特定資源組詳情和虛擬網(wǎng)絡(luò)(VNet)等信息。
舉個(gè)例子,用戶為獲取Azure訂閱中的資源組詳細(xì)信息而發(fā)出GET請(qǐng)求,如圖所示:
如需使用正確的GET或POST請(qǐng)求調(diào)用Azure REST API可點(diǎn)擊此鏈接了解詳情:
Azure REST APIs:https://docs.microsoft.com/en-us/rest/api/?view=Azure
小結(jié)
Postman是一款全面的API測(cè)試工具,能夠輕松設(shè)置自動(dòng)測(cè)試。用戶可以將創(chuàng)建的測(cè)試和請(qǐng)求集成到單個(gè)自動(dòng)化測(cè)試序列中。Postman是唯一完整提供單一事實(shí)來(lái)源[1]的API開(kāi)發(fā)和測(cè)試環(huán)境。在本文中筆者詳細(xì)介紹了利用Azure REST APIs使用Postman的方式。
Postman:https://www.getpostman.com/automated-testing?_ga=2.53476456.151619731.1566574042-329050526.1563821057
Azure REST APIs:https://docs.microsoft.com/en-us/rest/api/?view=Azure
譯者注
單一事實(shí)來(lái)源,即SSOT(single source of truth),通過(guò)構(gòu)建信息模型和相關(guān)數(shù)據(jù)架構(gòu),從而根據(jù)單一位置掌握(或編輯)系統(tǒng)中的每個(gè)數(shù)據(jù)元素。用戶只需引用此數(shù)據(jù)元素的關(guān)聯(lián)信息,該信息可能位于關(guān)系架構(gòu)的某個(gè)區(qū)域,甚至可能位于遙遠(yuǎn)的聯(lián)合數(shù)據(jù)庫(kù)中。由于數(shù)據(jù)的所有其他位置僅引用主“事實(shí)來(lái)源”位置,主位置中數(shù)據(jù)元素的更新將傳播到整個(gè)系統(tǒng),且不會(huì)遺忘某個(gè)位置的重復(fù)值。