那些具有使用API經驗的人將聽說過並熟悉無處不在的API測試和開發工具。但是,Nutanix Developer Portal上有很多內容專門針對那些剛開始使用Nutanix REST API的內容,包括設置您的第一個請求。今天的文章將介紹如何設置測試環境,以使該測試變得快速,容易。
這有點不費吹灰之力。如果尚未安裝,請訪問 https://getpostman.com ,下載最適合您的操作系統的版本(我使用Ubuntu Linux 19.04和Cinnamon Desktop Environment)並安裝它。 不必擔心現在就自定義安裝或設置-我們將稍後進行一些介紹。
在這裡,我將介紹安裝Postman後所做的一些基本更改。 要獲得這些設置,請單擊“郵遞員設置”圖標(看起來像扳手),然後選擇“設置”。
Postman “Settings” option
完成所有操作後,以下是我的常規標籤。
Postman 設置 – 常規標籤
因為我們都是某種類型的開發人員,所以我假設某種程度的組織和秩序對我們所有人而言都是第二自然。 考慮到這一點,創建一個Postman Collection來組織我們的事情是有意義的。
Postman最簡單但也是最好的功能之一就是使用變量的能力。 為何如此有用的一個很好的例子是Prism Central“ vs” Prism Element。 在測試各種Nutanix REST API請求時,通常會在Prism Central和Prism Element之間進行切換,對多個請求使用相同的憑據,並在多個位置使用相同的實體UUID。 每次手動輸入這些值,然後在值更改時根本不需要更改每個實例。 作為附帶說明,Postman還可以獲取您保存的API請求,將其導出,並允許您與同事共享請求集合。 在這種情況下,您可能不想共享特定的環境設置,但仍然允許您的同事一次只輸入一次信息。 解決所有這些問題的方法是使用Postman變量。
如您所料,第一件事就是我們沒有定義變數。
未定義變數的 Postman Collection
在本文中,我將完全按照上文所述進行操作。 Prism Central和Prism Element IP地址都將經常使用,但是都將使用相同的憑據。 除了安全性最佳實踐,在測試過程中這並不少見。 請注意,Postman絕對可以管理全局變量,即每個集合以及整個Postman工作區中可用的變量。 在此示例中,我僅定義它們可用於特定集合的位置。
設置請求時,使用上面定義的變量很簡單。 需要引用變量的地方,語法如下:{{variable}}。 查看下面的請求,請注意,沒有直接輸入Prism Central IP地址,而是通過變量引用添加了該地址。 用戶名和密碼也做了同樣的事情。
使用 Postman 變數代替手動輸入 Prism Central IP 地址
使用 Postman 變數代替手動輸入用戶名和密碼
下面的第5步留在這裡,僅供請求前腳本參考。當前版本的 Postman 確實支持JSON請求有效載荷內的變量替換。
默認情況下,Postman似乎在POST請求的正文中不允許使用{{variable}}語法。我敢肯定那是不正確的,但是由於某種原因,發送帶有這樣的變量的請求,這樣只會導致在該變量的位置不發送任何內容。但是,要使該工作正常進行,需要以預請求腳本的形式進行一些前功。
這是POST請求的簡單JSON負載:
{
"spec":{
"name": "{{vm_name}}",
"resources":{
}
},
"api_version":"3.1.0",
"metadata":{
"kind":"vm"
}
}
{{vm_name}} 變數不會像您期望的那樣被替換。但是,轉到“ Pre-req”選項卡並將其添加為請求前腳本可以解決此問題。
var vm_name = pm.variables.get("vm_name");
postman.setEnvironmentVariable("vm_name", vm_name)
如果沒有看到其中的一些內容,那麼這樣的文章是不完整的。考慮到這一點,我提供了一個 Postman 集合,其中包含一些示例 Nutanix REST API 請求(v1,v2.0和v3)。讓我們將其導入。
此階段沒有“確定”按鈕,因此,如果一切順利,您將在 Postman UI 的右下角看到類似這樣的消息。
成功導入 Postman Sample Collection
並且,在集合的左側,您會看到許多示例API請求。 對於此屏幕截圖,我擴展了新集合中的每個分支。
輸入的 Postman Sample Collection
該集合具有許多為您預先配置的功能。
用於樣本API請求的預定義集合範圍變量
不過,您會從第4步中回想起,任何變量的“當前值”僅是局部變量,不會隨集合一起導出。這就是為什麼只有幾個變量具有當前設置的值的原因。再深入一點,您會看到確實設置了值的變量是可能在整個環境中使用的變量。例如,{{username}}可以在測試階段共享,並且無論您身在何處,CentOS 8 ISO的URI都可能有效。 CentOS 8圖片鏡像的“免責聲明”位於澳大利亞,因為這就是我的住所。您可能想要通過從CentOS網站獲取適當/更接近的鏡像URI來更改此設置。 ?
除此之外,您所需要做的就是用對您的環境有意義的值填充變量。
如果您決定查看stats請求示例,請確保查看標題為“通過API獲取VM性能指標”的文章,因為它詳細介紹了該過程的工作方式以及start_time_in_usecs之類的含義。
如果您的工作站/ PC /筆記本電腦/ VM以前從未真正用作開發環境,那麼現在是查看我們的開發設置實驗室的好時機! 它專門為那些相對較新的開發人員編寫,涵蓋了推薦的工具,設置和一些自定義位,這些將有助於使您的開發工作更加順暢。
開發人員設置實驗室可在Nutanix開發人員門戶網站實驗室頁面上找到。
儘管Postman確實擁有比上述功能更多的功能,但是配置集合和一些變量可以使您開始進行更高效的測試。 例如,僅通過使用變量,就可以自動更改所有出現的API端點IP地址,從而自動保存自己。 從更高的層次上講,您還已經開始以合乎邏輯和吸引人的方式收集請求。
希望這篇簡短的文章對您有所幫助。
感謝您的閱讀,祝您有美好的一天!