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:
Válassza ki a CSV-adatkészlet konfigurációelemét a tesztszkriptben.
Frissítse a Fájlnév adatokat, és távolítsa el a fájl elérési útjának hivatkozását.
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.
Ismételje meg az előző lépéseket a szkript minden CSV-adatkészlet-konfigurációeleméhez .
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:
Az Azure Portalon nyissa meg az Azure-terheléstesztelési erőforrást.
A bal oldali panelen válassza a Tesztek lehetőséget a tesztek listájának megtekintéséhez.
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.
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.
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.
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.
- Konfigurálja a JMeter-szkriptet változónevek használatára a CSV-fájl olvasásakor.
- 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:
Nyissa meg a terhelésteszt Tesztterv lapját.
Válassza a Split CSV (CSV) elemet egyenlően a tesztmotorok között.
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>