設定適用於大規模負載測試的 Azure 負載
在本文中,您了解如何使用 Azure 負載測試配置大規模的負載測試。 Azure 負載測試可簡化部署基礎結構的複雜性,模擬大量的流量。 若要擴增負載測試,您可以設定平行測試引擎執行個體的數目。 若要達到最佳負載分佈,您可以在 Azure 負載測試儀表板中監視測試執行個體健康情況計量。
必要條件
具有有效訂用帳戶的 Azure 帳戶。 如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
現有的 Azure 負載測試資源。 若要建立 Azure 負載測試資源,請參閱快速入門建立和執行負載測試。
設定負載測試的負載參數
若要模擬應用程式的使用者流量,您可以設定負載模式,以及您想要模擬負載的虛擬使用者數目。 透過跨許多平行測試引擎執行個體執行負載測試,Azure 負載測試可以相應放大模擬應用程式流量的虛擬使用者數目。 負載模式會決定負載在負載測試期間分佈的方式。 負載模式的範例包括線性、階梯或尖峰負載。
根據負載測試的類型、URL 型或 JMeter 型,您可以有不同的選項來設定目標負載和負載模式。 下表列出這兩個測試類型之間的差異。
測試類型 | 虛擬使用者數目 | 負載模式 |
---|---|---|
URL 型 (基礎) | 在負載測試組態中指定虛擬使用者的目標數目。 | 線性負載模式,以增加時間和虛擬使用者數目為基礎。 |
URL 型 (進階) | 指定負載測試組態中每個執行個體的測試引擎數目和虛擬使用者數目。 | 設定負載模式 (線性、階梯、尖峰)。 |
JMeter 型 | 在負載測試組態中指定測試引擎的數目。 在測試指令碼中指定虛擬使用者的數目。 | 在測試指令碼中設定負載模式。 |
設定 URL 型測試的負載參數
若要指定 URL 型負載測試的負載參數:
在 Azure 入口網站中,移至您的 Azure 負載測試資源。
在左側導覽中,選取 [測試] 即可檢視所有測試。
在此清單中選取您的負載測試,然後選取 [編輯]。
此外,您也可以在測試詳細資料頁面中編輯測試設定。 若要這樣做,請選取 [設定],然後選取 [測試]。
在 [基本] 頁面上,請確保選取 [啟用進階設定]。
在 [編輯測試] 頁面中,選取 [負載] 索引標籤。
針對 URL 型測試,您可以設定平行測試引擎執行個體和負載模式的數目。
使用引擎執行個體滑桿控件來更新平行測試引擎執行個體的數目。 或者,在輸入方塊中輸入目標值。
從清單中選取 [載入模式] 值。
針對每個模式,填入對應的組態設定。 圖表提供負載模式及其組態參數的視覺表示。
設定 JMeter 型測試的負載參數
若要指定 JMeter 型負載測試的負載參數:
在 Azure 入口網站中,移至您的 Azure 負載測試資源。
在左側導覽中,選取 [測試] 即可檢視所有測試。
在此清單中選取您的負載測試,然後選取 [編輯]。
此外,您也可以在測試詳細資料頁面中編輯測試設定。 若要這樣做,請選取 [設定],然後選取 [測試]。
在 [編輯測試] 頁面中,選取 [負載] 索引標籤。使用 [引擎執行個體] 滑桿控制項來更新測試引擎執行個體的數目,或直接在輸入方塊中輸入值。
選取 [套用] 以修改測試,並在重新執行時使用新的設定。
監視引擎執行個體計量
若要確定測試引擎執行個體本身並非效能瓶頸,您可以監視測試引擎執行個體的資源計量。 測試執行個體的資源使用量偏高,可能會對負載測試的結果產生負面影響。
對於每個執行個體,Azure 負載測試會報告四項資源計量:
- CPU 百分比。
- 記憶體百分比。
- 每秒的網路位元組數。
- 虛擬使用者數目。
如果測試回合期間的平均 CPU 百分比或記憶體百分比維持在 75% 以下,就會將測試引擎執行個體視為狀況良好。
若要檢視引擎資源計量:
移至您的負載測試資源。 在左窗格中,選取 [測試] 以檢視負載測試的清單。
在此清單中選取您的負載測試,以檢視測試回合清單。
在測試回合清單中,選取您的測試回合。
在測試回合儀表板中選取 [引擎健康情況],以檢視引擎資源計量。
您可以選擇性地使用篩選控制項來選取特定的測試引擎執行個體。
對狀況不良的引擎執行個體進行疑難排解
若有一或多個執行個體顯示資源使用量偏高,測試結果可能會受到影響。 若要解決此問題,請嘗試下列一或多個步驟:
減少每個測試引擎的執行緒 (虛擬使用者) 數目。 若要達到目標虛擬使用者數目,您可以增加負載測試的引擎執行個體數目。
確定您的指令碼有效,且沒有冗餘碼。
如果引擎健全狀態不明,請重新執行測試。
確認每秒要求數
Azure 負載測試可為您的負載測試產生的每秒要求 (RPS) 數目上限,取決於應用程式的延遲和虛擬使用者 (VU) 數目。 應用程式延遲是從測試引擎傳送應用程式要求到接收到回應的總時間。 虛擬使用者計數是 Azure 負載測試在給定時間內執行的平行要求數目。
若要計算每秒要求數目,請套用下列公式:RPS = (VU 數目) * (1/延遲秒數)。
例如,如果應用程式延遲為 20 毫秒 (0.02 秒),且您產生的負載為 2,000 個 VU,則您大約可達到 100,000 RPS (2000 * 1/0.02s)。
若要達到目標的每秒要求數目,請為您的負載測試設定虛擬使用者總數。
注意
Apache JMeter 只會報告順利送達伺服器並傳回的要求,無論成功與否。 如果 Apache JMeter 無法連線至您的應用程式,則實際的每秒要求數目將會低於最大值。 其原因可能是伺服器太忙碌而無法處理要求,或缺少 TLS/SSL 憑證。 若要診斷連線問題,您可以在負載測試儀表板中查看 [錯誤] 圖表,並下載負載測試記錄檔。
測試引擎執行個體和虛擬使用者
在 Apache JMeter 指令碼中,您可以指定平行執行緒的數目。 每個執行緒分別代表一個存取應用程式端點的虛擬使用者。 建議您將指令碼中的執行緒數目保持在最大值 250 以下。
在 Azure 負載測試中,測試引擎執行個體負責執行 Apache JMeter 指令碼。 所有測試引擎執行個體都會以平行方式執行。 您可以設定負載測試的執行個體數目。
負載測試的虛擬使用者總數為:VU = (執行緒數目) * (測試引擎執行個體數目)。
若要模擬目標虛擬使用者數目,您可以在 JMeter 指令碼中設定平行執行緒,並據以設定負載測試的引擎執行個體。 監視測試引擎計量,以最佳化執行個體數目。
例如,若要模擬 1,000 個虛擬使用者,請將 Apache JMeter 指令碼中的執行緒數目設定為 250。 然後,使用四個測試引擎執行個體來設定負載測試 (也就是 4 x 250 個執行緒)。
Azure 負載測試資源的位置會決定測試引擎執行個體的位置。 負載測試資源內的所有測試引擎執行個體會裝載在相同的 Azure 區域中。
相關內容
- 深入了解 Azure 負載測試中的服務限制和配額。