瞭解如何使用適用於 Visual Studio Code 的 Azure 負載測試延伸模組,輕鬆地使用 Copilot 建立 Locust 負載測試、在本機反覆運算,以及在 Azure 中輕鬆調整規模。 無論您是剛接觸 Locust 還是效能測試專家,Azure 負載測試延伸模組能讓您在 VS Code 環境中簡化測試建立、反覆測試和調整。 Azure 負載測試是一項受控服務,可讓您執行雲端規模的負載測試。 Locust 是開放原始碼負載測試工具,可讓您在 Python 程式代碼中撰寫所有測試。
本快速入門會引導您產生、精簡和執行實際負載測試。 最後,您有從 Postman 集合、Insomnia 集合或 .http 檔案產生的完整功能負載測試腳本,並結合 Copilot 的增強功能,準備在 Azure 負載測試中擴展。
先決條件
- 適用於 VS Code 的 Azure 負載測試延伸模組。 在這裡下載並安裝。
- GitHub Copilot。 在 VS Code 中設定 Copilot 以產生和精簡測試腳本。 如果您沒有訂用帳戶,您可以啟用免費試用。
- Python 和 Locust。 需要從 VS Code 在本機執行及驗證 Locust 測試腳本。 在這裡安裝Locust。
- 具有有效訂閱的 Azure 帳戶。 需要在 Azure 負載測試中大規模執行負載測試。 免費建立帳戶。
小提示
VS Code 的 GitHub Copilot Chat 提供多個 AI 模型。 您可以使用聊天輸入欄位中的模型選擇器來切換模型。 如果您不確定要使用哪一個,建議您使用 GPT-4o。
開啟逐步解說
若要開始使用,請在 VS Code 中開啟命令選擇區,然後執行: 負載測試:開啟逐步解說。 此指南提供擴充套件的主要進入點。
您也可以使用 負載測試 前置詞直接從命令選擇區存取功能。 一些常用的命令包括:
使用 Copilot 產生 Locust 腳本
您可以從任何現有的 Postman 集合、失眠集合或 .http 檔案產生 Locust 腳本。 如果檔案包含多個要求,Copilot 會嘗試將它們排序為一致案例。
按一下逐步解說中的 建立負載測試 按鈕,或從命令面板執行 負載測試:建立 Locust 測試。
您可以選擇來源來自動產生 Locust 測試文稿:
- 選取 Postman 集合、 失眠集合或 .http 檔案 可讓 Copilot 擷取多個 API 作業、要求數據和驗證詳細數據,以建立更完整且真實的負載測試。
- 選擇 [單一 URL ] 可讓您輸入單一端點 URL,併產生您可以自定義或展開的簡單腳本。
在此逐步解說中,您可以選取 [試用範例:寵物商店 API],該 API 會使用
petstore-sample.http檔案來產生範例 Locust 測試腳本。Copilot 會分析選取的檔案,並產生 以 Locust 為基礎的負載測試腳本,自動排序 API 要求,以安全地模擬真實世界的使用量和處理驗證。
產生腳本之後, Copilot Chat 視窗會建議其他設定步驟,例如定義 環境變數。 如果 Copilot 建議環境變數,請在專案中建立
.env檔案,並新增建議的值。
自定義負載測試腳本
在執行測試之前,您可以使用 Copilot 來精簡測試。 例如,藉由檢查指令碼,您可能會注意到每個要求都會傳送相同的要求承載:
payload = {
"id": self.pet_id,
"name": "Fluffy",
"category": {"id": 1, "name": "Dogs"},
"photoUrls": ["https://example.com/photo.jpg"],
"tags": [{"id": 1, "name": "cute"}],
"status": "available"
}
若要將要求承載隨機化,讓測試更具動態性:
- 開啟 [Copilot 聊天 ] 面板。
- 輸入:
Randomize request payloads,然後按 Enter 鍵。 - Copilot 會產生建議的修改,以引入隨機化。
- 按一下 [在編輯器中套用],其出現在 [Copilot Chat] 視窗中產生的程式碼片段上方。
- 檢閱變更之後,按兩下 [ 保留] 接受並更新您的腳本。
- 儲存檔案
現在,每個要求都會模擬更真實的用戶互動。 程式代碼看起來像下列代碼段:
payload = {
"id": self.pet_id,
"name": f"Pet{random.randint(1, 1000)}",
"category": {"id": random.randint(1, 10), "name": random.choice(["Dogs", "Cats", "Birds"])},
"photoUrls": [f"https://example.com/photo{random.randint(1, 100)}.jpg"],
"tags": [{"id": random.randint(1, 10), "name": random.choice(["cute", "friendly", "playful"])}],
"status": random.choice(["available", "pending", "sold"])
}
執行負載測試
您可以透過兩種方式執行負載測試:
- 在本機執行以進行快速驗證
- 在 Azure 負載測試中執行,以進行大規模、多區域負載
在本機執行以進行快速驗證
若要快速驗證您的測試,請使用 Visual Studio Code 中的 Locust 在本機執行:
開啟命令選擇區並執行 :負載測試:執行負載測試 (local)。
Locust Web UI 會自動在瀏覽器中啟動。 Locust 伺服器可能需要幾秒鐘的時間才能準備好,並讓瀏覽器開啟。
在 [ 開始新的負載測試 ] 頁面中,檢閱輸入字段,然後按兩下 [ 開始]。 Locust 會開始傳送要求、記錄任何失敗,以及追蹤效能統計數據。
探索 Locust UI 以分析回應時間、錯誤率和要求輸送量。
小提示
如果 Locust 報告 Retrieve Pet 和 Update Pet 要求的失敗,可能是因為 Pet Store API 處理要求的方式所致。 請嘗試要求 Copilot「在 run_scenario 中新增要求之間的隨機延遲」。 如果您懷疑文本本身有問題,請將 設定 DEBUG_MODE=True 為環境變數,然後重新執行測試以取得更詳細的偵錯資訊。
如果您要從 VS Code 終端機執行測試:
在 VS Code 中開啟終端機。
執行下列命令:
locust -f path/to/locustfile.py -u 10 -r 2 --run-time 1m-
-f path/to/locustfile.py:指定 Locust 測試腳本。 -
-u 10:模擬最多 10 個虛擬使用者。 -
-r 2:每秒增加兩個虛擬使用者。 -
--run-time 1m:執行測試持續 1 分鐘。
-
開啟瀏覽器至
http://0.0.0.0:8089以檢視 Locust Web UI。
擴展 Azure 負載測試的規模
針對需要跨多個區域模擬數千個並行虛擬使用者的高負載案例,您可以在 Azure 負載測試中執行測試。
若要執行大規模測試:
開啟命令選擇區並執行:負載測試:執行負載測試(Azure 負載測試)。
選取 [建立組態檔...]。
請遵循引導式設定,包括:
登入 Azure 並選取您的訂用帳戶。
建立新的 Azure 負載測試資源,或選取現有的資源。
選擇負載測試區域以分配全球流量。
設定完成後,會產生 YAML 組態檔 (例如
loadtest.config.yaml),並將其新增至您的工作區根資料夾。此檔案會定義 Locust 腳本、載入參數、環境變數、區域,以及任何其他檔案(例如 CSV 數據集)。
預設值是每個選取區域中執行 120 秒的 200 個虛擬使用者。
在您的存放庫中提交此檔案,以重用並自動化未來的負載測試執行。
Copilot 會在執行之前驗證設定。 遵循聊天視窗中提供的任何指示。 否則,如果一切檢查正常,測試腳本及其相關檔案會上傳至 Azure 負載測試並準備執行。 此程式最多可能需要一分鐘的時間,且進度會顯示在 [輸出 ] 面板中。
測試啟動時,VS Code 右下角會出現通知(快顯通知訊息)。 按兩下 [ 在 Azure 入口網站中開啟 ] 按鈕,以即時監視測試執行。
測試啟動時,右下角會出現通知(快顯通知訊息)。 按兩下 [ 在 Azure 入口網站中開啟 ] 按鈕,以即時監視測試執行。
小提示
若要快速存取先前執行的測試結果,請使用命令 :負載測試:檢視負載測試回合。
在本快速入門中,像 API_KEY 這樣的敏感性變數會被儲存在 .env 檔案中,並上傳至雲端服務。 不過,最佳做法是在 Azure Key Vault 中安全地管理秘密。 延伸模組提供設定此設定的指引。
在本快速入門中,像 API_KEY 這樣的敏感性變數已被儲存在 .env 檔案中,並上傳至雲端服務。 不過,最佳做法是在 Azure Key Vault 中安全地管理秘密。 延伸模組提供設定此設定的指引。
開啟 [Copilot Chat ] 視窗,輸入
@testing /setupLoadTestSecretsInAzure,然後按 Enter。Copilot 會引導您完成下列步驟:
Copilot 會引導您完成:
- 建立 Azure Key Vault。
- 將受控識別指派給 Azure 負載測試資源。
- 將祕密新增至 Azure Key Vault。
- 設定 YAML 檔案以參考 Key Vault 祕密,而不是
.env。
每當修改 Locust 腳本或 YAML 組態時,您可以執行 回合負載測試(Azure 負載測試)來重新執行測試。
總結
在本快速入門中,您已使用適用於 Visual Studio Code 的 Azure 負載測試延伸模組,輕鬆地使用 Copilot 建立 Locust 負載測試、在本機進行反覆運算,並在 Azure 中輕鬆調整。 適用於 VS Code 的 Azure 負載測試延伸模組可簡化針對測試案例建立現實測試腳本的過程。 Azure 負載測試可簡化設定基礎結構的複雜性,模擬應用程式大量的使用者負載。
您可以進一步擴充負載測試,以另外監視應用程式在負載下的伺服器端計量,以及指定要在應用程式未符合需求時收到警示的測試失敗計量。 為了確保應用程式可以持續正常執行,您也可以將負載測試整合到持續整合與持續傳遞 (CI/CD) 工作流程中。
相關內容
- 了解如何監視應用程式伺服器端計量。
- 瞭解如何 使用 CI/CD 設定自動化效能測試。