搭配 Azure 負載測試使用 JMeter 使用者屬性
在本文中,瞭解如何設定及使用 Apache JMeter 使用者屬性與 Azure 負載測試。 透過使用者屬性,您可以藉由將測試設定保留在 JMeter 測試腳本之外,來設定測試。 使用者屬性的使用案例包括:
- 您想要在不同的應用程式端點的多個部署環境中使用 JMX 測試腳本。
- 您的測試腳本必須容納多個負載模式,例如煙霧測試、尖峰負載或浸泡測試。
- 您想要藉由設定 JMeter 設定 來覆寫預設 JMeter 行為,例如結果檔案格式。
Azure 負載測試支援標準的 Apache JMeter 屬性 ,並可讓您上傳使用者屬性檔案。 您可以為每個負載測試設定一個使用者屬性檔案。
或者,您也可以 在 Azure 負載測試 中使用環境變數和秘密,讓您的測試可設定。
注意
Azure 負載測試會覆寫特定的 JMeter 屬性,並忽略您為這些屬性指定的任何值。 深入瞭解 Azure 負載測試所 覆寫的 JMeter 屬性清單。
必要條件
- 具有有效訂用帳戶的 Azure 帳戶。 如尚未擁有 Azure 訂用帳戶,請在開始之前先建立免費帳戶。
- Azure 負載測試資源。 如果您需要建立 Azure 負載測試資源,請參閱快速入門 建立和執行負載測試 。
將 JMeter 使用者屬性檔案新增至負載測試
您可以將 .properties 檔案上傳 至負載測試,以定義 JMeter 測試腳本的使用者屬性 。 Azure 負載測試支援每個負載測試的單一 JMeter 屬性檔案。 會忽略其他屬性檔案。
下列程式碼片段顯示定義三個使用者屬性並設定 jmeter.save.saveservice.thread_name
組態設定的範例使用者屬性檔案:
# peak-load.properties
# User properties for testing peak load
threadCount=250
rampUpSeconds=30
durationSeconds=600
# Override default JMeter properties
jmeter.save.saveservice.thread_name=false
若要使用 Azure 入口網站 將使用者屬性檔案新增至負載測試,請遵循下列步驟:
在 Azure 入口網站 中,移至您的 Azure 負載測試資源。
在左窗格中,選取 [測試 ] 以檢視測試清單。
選取核取方塊,從清單中選取您的測試,然後選取 [ 編輯 ]。 或者,選取 [建立測試 ] 以建立新的負載測試。
選取 [ 測試計劃] 索引標籤。
從您的電腦選取屬性檔案,然後選取 [上傳 ] 以將檔案上傳至 Azure。
在 [ 檔案相關性] 下拉式 清單中選取 [使用者屬性 ]。
您只能選取一個檔案作為負載測試的使用者屬性檔案。
選取 [套用 ] 以修改測試,或 [ 檢閱 + 建立 ],然後 選取 [建立 ] 以建立新的測試。
JMeter 中的參考屬性
Azure 負載測試支援內建的 Apache JMeter 功能,以參考 JMeter 測試腳本 (JMX) 中的使用者屬性。 您可以使用 __property 或 __P 函式,從您先前上傳的屬性檔擷取屬性值。
下列程式碼片段示範如何在 JMX 檔案中參考屬性的範例:
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Test home page" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
<boolProp name="LoopController.continue_forever">false</boolProp>
<intProp name="LoopController.loops">-1</intProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">${__P(threadCount,1)}</stringProp>
<stringProp name="ThreadGroup.ramp_time">${__P(rampUpSeconds,1)}</stringProp>
<boolProp name="ThreadGroup.scheduler">true</boolProp>
<stringProp name="ThreadGroup.duration">${__P(durationSeconds,30)}</stringProp>
<stringProp name="ThreadGroup.delay"></stringProp>
<boolProp name="ThreadGroup.same_user_on_next_iteration">true</boolProp>
</ThreadGroup>
或者,您也可以在 JMeter 使用者介面中指定屬性。 下圖顯示如何使用屬性來設定 JMeter 執行緒群組:
您可以 下載 JMeter 錯誤記錄 檔,以針對負載測試期間的錯誤進行疑難排解。
下一步
- 深入瞭解 Azure 負載測試所覆寫的 JMeter 屬性。
- 深入瞭解 如何使用環境變數和秘密 來參數化負載測試。
- 深入瞭解 診斷失敗的負載測試 。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應