2017-06-22 3 views
0

Wir haben einen Dienst, der die folgende Art und Weise funktioniert:jMeter - Weiterverwendung Antwortdaten in Follow-up fordern

Zuerst wird eine Anfrage mit Suchparametern gesendet wird, für die wir wieder eine searchId bekommen. Diese searchId wird dann verwendet, um mit dem Abrufen von Informationen fortzufahren, bis die Serviceantwort keine weiteren Daten mehr hat (der Parameter hasMore wird zu "false").

Die Frage ist dies - Ich habe jMeter eingerichtet, um erste Anfragen zu senden, aber nicht sicher, wie weiter Anfragen für jede Antwort in der Thread-Gruppe parallel zu senden, und brauchen Sie Ihren Rat darauf. Mein Gedanke war, eine weitere Thread-Gruppe einzurichten, da ich sie nicht innerhalb der ersten Gruppe festlegen kann, aber wie bekomme ich dann Zugriff auf Antworten und verarbeite sie parallel?

EDITED:

Dies ist, was ich mit endete. Der erste Beanshell Sampler extrahiert searchId und hasMore und fügt sie in vars ein. Second Sampler extrahiert hasMore und fügt es erneut in vars ein und überschreibt das erste. Am Ende funktionierte die While-Schleife wie vorgesehen mit $ {__ javaScript ("$ {hasMore}" == "1",)}.

Project Test Plan

Antwort

1

benötigen würde ich der Gestaltung Ihrer Test empfehlen wie folgt:

  • Anfrage searchId
  • While Controller mit Bedingung wie ${__javaScript("${hasMore}" != "false",)}
    • Anfrage erhalten weiterhin Informationen
  • holen

Auf diese Weise werden Anfragen zum Abruf von Informationen ausgeführt, bis hasMore der Parameter false wird. Weitere Informationen finden Sie unter Using the While Controller in JMeter Artikel.

+0

Ich habe diesen Ansatz versucht, aber leider die Post-Processor BeanShell-Skripts aufgerufen OUTSIDE der Thread-Gruppe - und ich habe dieses seltsame Verhalten bemerkt. Aus diesem Grund tritt es auch nicht in den While-Controller ein, sondern direkt in das Skript außerhalb dieser Gruppe. –

+0

Dann konvertieren Sie JMeter-Variablen in JMeter-Eigenschaften, die für die gesamte JVM-Instanz global sind, siehe [Knit One Pearl Two: Verwendung von Variablen in verschiedenen Thread-Gruppen] (https://www.blazemeter.com/blog/knit-one- Pearl-Two-How-Use-Variablen-verschiedene-Thread-Gruppen) für Details. –

0

Ich schlage vor, 2 Themen-Gruppe

erster Thread Gruppe:

Speicher searchIds in Datei (JSR223 Sampler) oder Datenbanken (JDBC Sampler) mit Schlüssel als Zähler (1,2, ...) und Wert als searchId-Wert

Speichern Sie eine Anzahl von IDs in der Eigenschaft $ {__ setProperty (threadCount, $ {counter})}.

zweite Thread Gruppe:

In Definition - Anzahl der Verwendung $ Thread {__ P (tpi)}

Lesen aus der Datei (JSR223 Sampler) oder Datenbanken (JDBC Sampler)

$ mit { __threadNum} als Schlüssel erhalten die relevanten searchId Sie