2017-08-09 4 views
0

Ich habe einen TCP-Sampler unter einer ThreadGroup in JMeter eingerichtet. Die Daten werden aus einer CSV-Datei ausgewählt. Die erste Zeile der Daten ist für die Authentifizierung und alle nachfolgenden Zeilen sind die tatsächlichen Parameterdaten. So etwas wie unten,Jmeter TCP Sampler - Wie die Verbindung zwischen den Threads wiederverwenden?

AAAAAAA21 
BBBBBBBCCCCCCCDDDDDDD 
BBBBBBBCCCCCCCDDDDDDD 
BBBBBBBCCCCCCCDDDDDDD 

Was ich will, ist, dass, wenn die Thread-Gruppe kontinuierlich mit 10 Fäden zum Beispiel ausgeführt wird, der erste Thread die erste Zeile der Daten erhält, stellt die Verbindung zum Server und authentifiziert. Alle nachfolgenden Threads verwenden dieselbe Verbindung (statt jedes Mal eine neue Verbindung zu erstellen) und senden einfach Daten an den Server. Der Grund hierfür ist, dass die Daten ein Gerät simulieren, das das erste Paket zur Authentifizierung sendet und die Verbindung erstellt, und alle nachfolgenden Datenpakete Daten über dieselbe Verbindung senden. Ich möchte den Gerätetest mit JMeter simulieren.

Die Einschränkung, die ich finde, ist, dass JMeter eine neue Verbindung für jeden Thread erstellt und die Verbindung geschlossen wird, wenn der Thread beendet wird. Es scheint keine Möglichkeit zu geben, die Verbindung zwischen allen Threads in der ThreadGroup zu teilen, oder vielleicht gibt es einen Weg, den ich nicht kenne.

die Suche nach Möglichkeiten, in denen ich diese usecase

Antwort

1

Leider testen kann, ist es nicht möglich, eine Verbindung zwischen verschiedenen Threads zu teilen, wie jeder Thread einen eigenen virtuellen Benutzer als virtuelle Benutzer wissen nichts über sie darstellt. Wenn Sie versuchen, die Verbindung zwischen verschiedenen Threads zu teilen, kann nur eine Verbindung gleichzeitig verwendet werden (andernfalls werden Sie in die Situation geraten, wenn mehrere Threads gleichzeitig in dieselbe Verbindung schreiben, was zu korrupten Daten führt).

So Sie 1 Verbindung pro virtueller Benutzer verwenden können

  1. hinzufügen Loop Controller zu Ihrem Thema Gruppe und entweder tick Forever Box oder set Loop-Count -1 (dh Sie 10 Verbindungen insgesamt haben wird) - auf diese Weise Kinder-Sampler (en) wird run forever
  2. Fügen Sie TCP-Sampler als Kind hinzu von dem Schleifen-Controller und tick Re-use connection Box, so dass Ihr Testplan würde wie folgt aussehen:

    JMeter TCP Reuse Connection

How to Load Test TCP Protocol Services with JMeter Artikel für weitere Informationen.

+0

Danke. Ich war dem erwähnten Artikel gefolgt. Für meinen speziellen Anwendungsfall hilft es jedoch nicht. Ich werde dies als eine Einschränkung des Tools für jetzt akzeptieren. – Avi

Verwandte Themen