so senden Sie eindeutige Daten für jeden thread in jmeter
Ich bin mit jmeter zum testen meiner REST-API für 10000 Treffer, für die einzelnen http-hit speichert einige Daten in die DB. Ich habe den test unter plan
Ich bin mit 10 threads parallel mit ramp-up-Zeit von 20 s und jede Schleife 1000, um das gleiche zu erreichen.
Aber das Thema ist hier meine threads nicht einzigartige Daten. In der Erwägung, dass meine backend-HTTP-URL erwartet eindeutige Zeichenfolge für jede http-Treffer.
Nun habe ich versucht mit dem unten nähert.
-
Einzigen CSV-Daten festlegen config mit 10000 einzigartige Werte und alle threads in thread-Gruppen Lesen die gleichen Daten.
-
Verschiedene CSV-Datensatz für die einzelnen threads an, und ordnen Sie die csv-Datei mit dem thread mit dem Namen${__threadNum}.csv -
-
Mit jmeter _RandomString Methode zum generieren zufälliger Zeichenketten zur Laufzeit für jede http-Treffer, im http post-Nachrichtentext ich bin vorbei wie
{"tenantName":"${__RandomString(15,abcdefghijklmnofqrst1234567#@#%^&*,)}"}
- Mit BeanShell-Präprozessor Aufruf einer java-Methode und erzeugen einzigartige Muster die ganze Zeit gewinnen HTTP-Request-sampler.
Nun keine der oben genannten Ansätze, die für mich funktioniert. Während der Ausführung des Testplans nach einem gewissen Punkt der Zeit 2 threads versuchen, den gleichen Daten und auf die HTTP-url. Und ich bin immer Konflikt-Fehler aus der http-Antwort. Mein Fehler Anzahl wird immer größer.
Ich jetzt wirklich nicht verstehen, wie man diese 2 treads versuchen, auf http mit gleichen Daten?
Kann jemand bitte erklären Sie das Problem und mir helfen, die richtigen test-plan-Konfiguration.
EDIT:
CSV-Daten festlegen config für alle thread:
HTTP-Request :
Hinzufügen von test-plan mit CSV-dataset:
- ist dies gelöst? wenn ja, dann wie , can you please share Lösung?
sharing mode = all threads
werden sollte, die einzigartige Werte pro iteration. Zum Beispiel, wenn es zwei threads thread 1 liest den ersten Eintrag, thread 2, den zweiten Eintrag, dann auf die nächste iteration thread 1 liest den Dritten Eintrag, thread 2 der vierte Eintrag und so weiter.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Neben alle dem Vorschlag von Ubik und DmitrT, würde ich die CSV-Konfiguration element AUßERHALB der thread-Gruppe.
Lassen Sie es mich wissen.
Wenn Sie benötigen, senden Sie eindeutige Daten, die man zufällig glaube ich, dass __UUID() - Funktion kann helfen.
Es generiert zufällige exklusive GUID Strukturen jedes mal, wenn Sie aufgerufen wird, und scheint zu sein, genau das, was du bist suchen für.
Zur Erläuterung und demo dies und mehr JMeter-Funktionen finden Sie unter Wie zu Verwenden JMeter Funktionen Beiträge Serie
Den CSV-Ansatz ist Ok, aber wie haben Sie die Konfiguration der csv-dataset aus, und legen Sie es in plan ?
Sicherzustellen, dass Sie setzen "Recycle " EOF" auf false, um sicherzustellen, dass keine Daten wiederverwendet wird.
Können Sie dies zeigen ?
Können Sie auch zeigen HTTP-Request-Inhalte ?
Bearbeiten 01. september 2015:
Auch ib mit dem Namen im Feld Pfad ersetzen \ durch \ oder /
Obwohl ich bin zu spät für die Frage, ich dachte, dass jemand Sie nützlich finden könnten.
Hoffe, es hilft.
Finden http://blog.developer.bazaarvoice.com/2016/05/19/quick-and-easy-web-service-load-testing-with-jmeter/
Ich hatte auch das gleiche Problem mit einem Benutzer-Definierte Variablen-element. In ihm habe ich eine UUID und es einer Variablen zuweisen. Ich hatte erwartet, jeden thread zu generieren, die eine andere UUID, aber dies war nicht der Fall.
Lösung (die für mich gearbeitet hat)
Hinzufügen eines Beanshell Sampler. In ihm generiert sich der einzigartige Wert Z mit einer UUID und verwenden Sie die put-Methode angewendet, um den Wert zu speichern in "vars". Jeder thread führt den code, und seine eigenen, einzigartigen Wert.
Beispiel: Zu generieren und speichern Sie eine einzigartige accountId für jeden thread benutzen
Ich hoffe, das hilft!