Adatok beolvasása CSV-fájlból JMeterben az Azure Load Testing használatával

Ebben a cikkben megtudhatja, hogyan olvashatja be az adatokat egy vesszővel tagolt érték (CSV) fájlból a JMeterben az Azure Load Testing használatával. A JMeter-tesztszkript konfigurálhatóvá tétele külső CSV-fájlból származó adatokkal. Előfordulhat például, hogy egy CSV-fájlban lévő összes ügyfelet iterálja át, hogy az ügyfél adatait az API-kérésbe továbbítsa.

A JMeterben a tesztszkript CSV-adatkészlet konfigurációelemével adatokat olvashat egy CSV-fájlból.

Ha adatokat szeretne olvasni egy külső fájlból az Azure Load Testingben, fel kell töltenie a külső fájlt a JMeter-tesztszkript mellett a terhelési tesztbe. Ha több párhuzamos tesztmotor-példányra skálázza fel a tesztet, dönthet úgy, hogy a bemeneti adatokat egyenletesen osztja el ezeken a példányokon.

Első lépésként klónozza vagy töltse le a mintaprojektet a GitHubról.

Előfeltételek

  • An Azure account with an active subscription. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
  • Azure-beli terheléstesztelési erőforrás. Terheléstesztelési erőforrás létrehozásához lásd : Terhelésteszt létrehozása és futtatása.
  • Apache JMeter-tesztszkript (JMX).
  • (Nem kötelező) Apache JMeter GUI a tesztszkript létrehozásához. Az Apache JMeter telepítéséhez tekintse meg az Apache JMeter első lépéseit.

A JMeter-szkript frissítése CSV-adatok olvasásához

Ebben a szakaszban úgy konfigurálja az Apache JMeter-szkriptet, hogy a külső CSV-fájlra hivatkozzon. A CSV-adatkészlet konfigurációs elemét használva adatokat olvas be egy CSV-fájlból.

Fontos

Az Azure Load Testing egyetlen mappába tölti fel a JMX-fájlt és az összes kapcsolódó fájlt. Ha külső fájlra hivatkozik a JMeter-szkriptben, ellenőrizze, hogy nincsenek-e fájlútvonal-hivatkozások a tesztszkriptben.

Módosítsa a JMeter-szkriptet az Apache JMeter grafikus felhasználói felületének használatával:

  1. Válassza ki a CSV-adatkészlet konfigurációelemét a tesztszkriptben.

  2. Frissítse a Fájlnév adatokat, és távolítsa el a fájl elérési útjának hivatkozását.

  3. A CSV-fájl tesztmotorok közötti felosztásakor adja meg a CSV-mezőneveket a Változónevek mezőben.

    Az Azure Load Testing nem őrzi meg a fejlécsort a CSV-fájl felosztásakor. Adja meg a változóneveket a CSV Data Set Config elemben fejlécsor használata helyett.

    Screenshot that shows the JMeter UI to configure a C S V Data Set Config element.

  4. Ismételje meg az előző lépéseket a szkript minden CSV-adatkészlet-konfigurációeleméhez .

  5. Mentse a JMeter-szkriptet, és töltse fel a szkriptet a terhelési tesztbe.

A CSV-fájl feltöltése a terhelési tesztbe

Ha külső fájlokra hivatkozik a tesztszkriptből, mindenképpen töltse fel ezeket a fájlokat a JMeter tesztszkripttel együtt. A terhelésteszt indításakor az Azure Load Testing az összes fájlt egyetlen mappába másolja az egyes tesztmotor-példányokon.

Fontos

Az Azure Load Testing nem őrzi meg a fejlécsort a CSV-fájl felosztásakor. Mielőtt hozzáadja a CSV-fájlt a terhelési teszthez, távolítsa el a fejlécsort a fájlból.

CSV-fájl hozzáadása a terhelési teszthez az Azure Portal használatával:

  1. Az Azure Portalon nyissa meg az Azure-terheléstesztelési erőforrást.

  2. A bal oldali panelen válassza a Tesztek lehetőséget a tesztek listájának megtekintéséhez.

  3. Jelölje be a tesztet a listából a jelölőnégyzet bejelölésével, majd válassza a Szerkesztés lehetőséget.

    Screenshot that shows the list of load tests and the 'Edit' button.

  4. A Tesztterv lapon válassza ki a CSV-fájlt a számítógépről, majd válassza a Feltöltés lehetőséget a fájl Azure-ba való feltöltéséhez.

    Ha URL-alapú terheléstesztet használ, a változóneveket vesszővel elválasztott listaként adhatja meg a Változók oszlopban.

    Screenshot of the Test plan tab on the Edit test pane.

    Ha a CSV-fájl mérete nagyobb, mint 50 MB, tömörítse a fájlt. A zip-fájl méretének 50 MB alatt kell lennie. Az Azure Load Testing automatikusan feloldja a fájlt a tesztfuttatás során. Csak öt zip-összetevő engedélyezett legfeljebb 1000 fájllal minden zip-ben, és tömörítetlen teljes mérete 1 GB.

  5. Válassza az Alkalmaz lehetőséget a teszt módosításához és az új konfiguráció ismételt futtatásakor való használatához.

Tipp.

HA URL-alapú terheléstesztet használ, a SZINTAXIS használatával $(variable) hivatkozhat a CSV bemeneti adatfájl értékeire a HTTP-kérelmekben.

CSV bemeneti adatok felosztása tesztmotorok között

Az Azure Load Testing alapértelmezés szerint az összes tesztmotor-példányon módosítatlanként másolja és dolgozza fel a bemeneti fájlokat. Alapértelmezés szerint minden tesztmotor feldolgozza a teljes CSV-fájlt. Az Azure Load Testing lehetővé teszi a CSV bemeneti adatainak egyenlő elosztását az összes motorpéldány között. Ha több CSV-fájllal rendelkezik, mindegyik fájl egyenlően oszlik el.

Ha például nagy ügyfél CSV bemeneti fájllal rendelkezik, és a terhelési teszt 10 párhuzamos tesztmotoron fut, akkor minden példány az ügyfelek 1/10-ét dolgozza fel.

Fontos

Az Azure Load Testing nem őrzi meg a fejlécsort a CSV-fájl felosztásakor.

  1. Konfigurálja a JMeter-szkriptet változónevek használatára a CSV-fájl olvasásakor.
  2. Távolítsa el a fejlécsort a CSV-fájlból, mielőtt hozzáadja a terhelési teszthez.

A terhelési teszt konfigurálása bemeneti CSV-fájlok felosztásához:

  1. Nyissa meg a terhelésteszt Tesztterv lapját.

  2. Válassza a Split CSV (CSV) elemet egyenlően a tesztmotorok között.

    Screenshot that shows the checkbox to enable splitting input C S V files when configuring a test in the Azure portal.

  3. A konfiguráció módosításainak megerősítéséhez válassza az Alkalmaz lehetőséget.

    Amikor legközelebb futtatja a tesztet, az Azure Load Testing egyenletesen felosztja és feldolgozza a CSV-fájlt a tesztmotorok között.

Hibaelhárítás

A teszt állapota sikertelen, és a tesztnapló File {my-filename} must exist and be readable

Ha a terhelési teszt befejeződött a Sikertelen állapottal, letöltheti a tesztnaplókat.

Amikor hibaüzenetet File {my-filename} must exist and be readable kap a tesztnaplóban, a bemeneti CSV-fájl nem található a JMeter-szkript futtatásakor.

Az Azure Load Testing az összes bemeneti fájlt a JMeter-szkript mellett tárolja. Ha a bemeneti CSV-fájlra hivatkozik a JMeter-szkriptben, győződjön meg arról, hogy nem tartalmazza a fájl elérési útját, csak a fájlnevet használja.

Az alábbi kódrészlet egy JMeter-fájl kivonatát mutatja be, amely egy CSVDataSet elemet használ a bemeneti fájl olvasásához. Figyelje meg, hogy a filename fájl elérési útja nem szerepel a fájlban.

<CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Websites CSV" enabled="true">
    <stringProp name="filename">websites.csv</stringProp>
    <stringProp name="fileEncoding">UTF-8</stringProp>
    <stringProp name="variableNames">CustomerId,CustomerName,Url</stringProp>
    <boolProp name="ignoreFirstLine">true</boolProp>
    <stringProp name="delimiter">,</stringProp>
    <boolProp name="quotedData">false</boolProp>
    <boolProp name="recycle">false</boolProp>
    <boolProp name="stopThread">true</boolProp>
    <stringProp name="shareMode">shareMode.all</stringProp>
    <stringProp name="TestPlan.comments">Read all records from the CSV file -  stop thread at end of file</stringProp>
</CSVDataSet>