Share via


搭配 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 入口網站 將使用者屬性檔案新增至負載測試,請遵循下列步驟:

  1. Azure 入口網站 中,移至您的 Azure 負載測試資源。

  2. 在左窗格中,選取 [測試 ] 以檢視測試清單。

  3. 選取核取方塊,從清單中選取您的測試,然後選取 [ 編輯 ]。 或者,選取 [建立測試 ] 以建立新的負載測試。

  4. 選取 [ 測試計劃] 索引標籤。

  5. 從您的電腦選取屬性檔案,然後選取 [上傳 ] 以將檔案上傳至 Azure。

    Screenshot that shows the steps to upload a user properties file on the Test plan tab on the Edit test pane.

  6. 在 [ 檔案相關性] 下拉式 清單中選取 [使用者屬性 ]。

    Screenshot that highlights the file relevance dropdown for a user properties file on the Test plan pane.

    您只能選取一個檔案作為負載測試的使用者屬性檔案。

  7. 選取 [套用 ] 以修改測試,或 [ 檢閱 + 建立 ],然後 選取 [建立 ] 以建立新的測試。

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 執行緒群組:

Screenshot that shows how to reference user properties in the JMeter user interface.

您可以 下載 JMeter 錯誤記錄 檔,以針對負載測試期間的錯誤進行疑難排解。

下一步