Använda JMeter-användaregenskaper med Azure Load Testing
I den här artikeln lär du dig hur du konfigurerar och använder Apache JMeter-användaregenskaper med Azure Load Testing. Med användaregenskaper kan du göra testet konfigurerbart genom att hålla testinställningarna utanför JMeter-testskriptet. Användningsfall för användaregenskaper är:
- Du vill använda JMX-testskriptet i flera distributionsmiljöer med olika programslutpunkter.
- Testskriptet måste hantera flera belastningsmönster, till exempel röktester, belastningstoppar eller blötläggningstester.
- Du vill åsidosätta JMeter-standardbeteendet genom att konfigurera JMeter-inställningar, till exempel resultatfilformatet.
Azure Load Testing stöder apache JMeter-standardegenskaperna och gör att du kan ladda upp en fil med användaregenskaper. Du kan konfigurera en användaregenskaperfil per belastningstest.
Alternativt kan du också använda miljövariabler och hemligheter i Azure Load Testing för att göra dina tester konfigurerbara.
Kommentar
Azure Load Testing åsidosätter specifika JMeter-egenskaper och ignorerar alla värden som du anger för dessa egenskaper. Läs mer om listan över JMeter-egenskaper som Azure Load Testing åsidosätter.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
- En Azure Load Testing-resurs. Om du behöver skapa en Azure Load Testing-resurs kan du läsa snabbstarten Skapa och köra ett belastningstest.
Lägga till en JMeter-användaregenskaper i belastningstestet
Du kan definiera användaregenskaper för JMeter-testskriptet genom att ladda upp en .properties-fil till belastningstestet. Azure Load Testing stöder en enda JMeter-egenskapsfil per belastningstest. Ytterligare egenskapsfiler ignoreras.
Följande kodfragment visar en exempelfil för användaregenskaper som definierar tre användaregenskaper och konfigurerar konfigurationsinställningen 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
Följ dessa steg för att lägga till en användaregenskaper-fil i belastningstestet med hjälp av Azure-portalen:
I Azure-portalen går du till din Azure Load Testing-resurs.
I den vänstra rutan väljer du Tester för att visa listan över tester.
Markera testet i listan genom att markera kryssrutan och välj sedan Redigera. Alternativt väljer du Skapa test för att skapa ett nytt belastningstest.
Välj fliken Testplan .
Välj egenskapsfilen från datorn och välj sedan Ladda upp för att ladda upp filen till Azure.
Välj Användaregenskaper i listrutan Filrelevans .
Du kan bara välja en fil som en användaregenskaper-fil för ett belastningstest.
Välj Använd för att ändra testet eller Granska + skapa och sedan Skapa för att skapa det nya testet.
Referensegenskaper i JMeter
Azure Load Testing stöder de inbyggda Apache JMeter-funktionerna för att referera till användaregenskaper i JMeter-testskriptet (JMX). Du kan använda funktionerna __property eller __P för att hämta egenskapsvärdena från egenskapsfilen som du laddade upp tidigare.
Följande kodfragment visar ett exempel på hur du refererar till egenskaper i en JMX-fil:
<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>
Alternativt anger du även egenskaper i JMeter-användargränssnittet. Följande bild visar hur du använder egenskaper för att konfigurera en JMeter-trådgrupp:
Du kan ladda ned JMeter-felloggarna för att felsöka fel under belastningstestet.