分享方式:


搭配 Azure 負載測試使用 JMeter 使用者屬性

在本文中,了解如何搭配 Azure 負載測試,設定及使用 Apache JMeter 使用者屬性。 透過使用者屬性,您可以將測試設定保留在 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 錯誤記錄,以針對負載測試期間的錯誤進行疑難排解。

下一步