在Azure 負載測試中將要求新增至 URL 型負載測試
在本文中,您將了解如何在 Azure 負載測試中將 HTTP 要求新增至 URL 型負載測試。 使用 URL 型負載測試以驗證 HTTP 端點,例如 Web 應用程式或 REST 端點,不需要事前了解負載測試工具和指令碼。
Azure 支援兩種方法以在 URL 型負載測試中定義 HTTP 要求。 您可以在負載測試中結合兩種方法。
- 指定 HTTP 端點詳細資料,例如端點 URL、HTTP 方法、標頭、查詢參數或要求本文。
- 輸入 HTTP 要求的 cURL 命令。
如果您有相依性要求,您可以從一個要求擷取回應值,並將其作為輸入傳遞至後續要求。 例如,您可能會先擷取客戶詳細資料,並擷取客戶識別碼以取出客戶訂單詳細資料。
如果您在 CI/CD 工作流程中使用 URL 型負載測試,則可以將包含 HTTP 要求的 JSON 檔案傳遞至負載測試。
您最多可以將五個要求新增至 URL 型負載測試。 針對更複雜的負載測試,您可以上傳 JMeter 測試指令碼以建立負載測試。 例如,當您有五個以上的要求時,如果您使用非 HTTP 通訊協定或需要使用 JMeter 外掛程式。
必要條件
新增包含 HTTP 詳細資料的要求
您可以提供 HTTP 要求詳細資料以指定 URL 型負載測試的 HTTP 要求。 下表列出可在 Azure 負載測試中設定的 HTTP 要求欄位:
欄位 | 詳細資料 |
---|---|
URL | HTTP 端點 URL。 例如: https://www.contoso.com/products 。 |
方法 | HTTP 方法。 Azure 負載測試支援 GET、POST、PUT、DELETE、PATCH、HEAD 和 OPTIONS。 |
查詢參數 | (選擇性) 輸入要附加至 URL 的查詢字串參數。 |
HTTP 標頭 | (選擇性) 輸入要包含在 HTTP 要求中的 HTTP 標頭。 您最多可以針對要求新增 20 個標頭。 |
要求本文 | (選擇性) 視 HTTP 方法而定,您可以指定 HTTP 本文內容。 Azure 負載測試支援下列格式:未經處理資料、JSON 檢視、JavaScript、HTML 和 XML。 |
請遵循下列步驟,將 HTTP 要求新增至 URL 型負載測試:
在 Azure 入口網站中,移至您的負載測試資源。
在左側導覽中,選取 [測試] 即可檢視所有測試。
在此清單中選取您的負載測試,然後選取 [編輯]。
請務必從清單選取 URL 型負載測試,並已在 [基本] 索引標籤上啟用 [啟用進階設定]。
移至 [測試計劃] 索引標籤,並選取 [新增要求]。
選取 [在 UI 中新增輸入] 以輸入 HTTP 要求詳細資料。
輸入 HTTP 要求詳細資料,然後選取 [新增] 以將要求新增至負載測試。
欄位 描述 要求格式 選取 [在 UI 中新增輸入],以透過 Azure 入口網站中的欄位設定要求詳細資料。 要求名稱 輸入要求的唯一名稱。 在定義測試失敗準則時,您可以參考此要求名稱。 URL 應用程式端點的 URL。 方法 從清單中選取 HTTP 方法。 Azure 負載測試支援 GET、POST、PUT、DELETE、PATCH、HEAD 和 OPTIONS。 查詢參數 (選擇性) 輸入要附加至 URL 的查詢字串參數。 標題 (選擇性) 輸入要包含在 HTTP 要求中的 HTTP 標頭。 本文 (選擇性) 視 HTTP 方法而定,您也可以指定 HTTP 本文內容。 Azure 負載測試支援下列格式:未經處理資料、JSON 檢視、JavaScript、HTML 和 XML。 選取 [套用] 來儲存負載測試。
使用 cURL 新增要求
您也可以在 URL 型負載測試中針對 HTTP 要求提供 cURL 命令,而不是提供 HTTP 要求詳細資料。 cURL 是 URL 型要求的命令列工具和程式庫。
請遵循下列步驟,使用 cURL 命令將 HTTP 要求新增至負載測試。
在測試清單中,選取您的負載測試,然後選取 [編輯]。
請務必從清單選取 URL 型負載測試,並已在 [基本] 索引標籤上啟用 [啟用進階設定]。
移至 [測試計劃] 索引標籤,並選取 [新增要求]。
選取 [新增 cURL 命令] 以使用 cURL 建立 HTTP 要求。
在 [cURL 命令] 欄位中輸入 cURL 命令,然後選取 [新增] 以將要求新增至負載測試。
下列範例使用 cURL 以執行 HTTP GET 要求,藉此指定 HTTP 標頭:
curl --request GET 'http://www.contoso.com/customers?version=1' --header 'api-token: my-token'
選取 [套用] 來儲存負載測試。
在 HTTP 要求中使用變數
您可以在 HTTP 要求中使用變數,藉此提升測試的彈性或避免在測試計劃中包含秘密。 例如,您可以使用包含端點網域名稱的環境變數,然後在個別 HTTP 要求中使用變數。 使用變數可讓您的測試計劃更有彈性並可進行維護。
在 Azure 負載測試中進行 URL 型負載測試時,您可以使用變數以參考下列資訊:
- 環境變數:您可以設定負載測試的環境變數
- 秘密:在負載測試中設定 Azure Key Vault 秘密
- CSV 輸入檔案中的值:針對 CSV 輸入檔案中的資料行使用變數,並針對檔案中的每個資料列執行要求
- 回應變數:從先前 HTTP 要求擷取值
參考要求中變數的語法為:${variable-name}
。
下列螢幕擷取畫面示範如何使用 ${token}
參考 HTTP 標頭中的 token
變數。
注意
如果您指定憑證,Azure 負載測試會自動在每個 HTTP 要求中傳遞憑證。
針對相依性要求使用回應變數
若要建立相依於先前要求的 HTTP 要求,您可以使用響應變數。 例如,在第一個要求中,您可能會從 API 取出項目清單,從第一個結果擷取識別碼,然後提出後續要求並將此識別碼作為查詢字串參數傳遞。
Azure 負載測試支援下列選項以從 HTTP 要求擷取值,並將其儲存在變數中:
- JSONPath
- XPath
- 規則運算式
例如,下列範例示範如何使用 XPathExtractor 將要求本文儲存在 token
回應變數中。 然後,您可以在其他 HTTP 要求中使用 ${token}
以參考此值。
"responseVariables": [
{
"extractorType": "XPathExtractor",
"expression": "/note/body",
"variableName": "token"
}
]