2016-12-08 1 views
0

Ich bin neu in Jmeter. Ich möchte eine API basierend auf einer Bedingung wiederholen. Im while-Controller habe ich das Script als $ {__ javaScript ("$ {response}" == "Bitte warten Sie, während Ihre Bestellung bearbeitet wird.")}Jmeter - Schleife eine API basierend auf einer Bedingung

Ich habe den http-Request Sampler unter diesem Controller hinzugefügt. Die Antwort, die ich von dieser Anfrage bin immer ist

{ „bzw.“: „Bitte, warten Sie, während Ihre Bestellung bearbeitet wird.“}

ich diese api treffen will, bis ich diesen Wert als Antwort bekommen.

Ich verwendet regulären Ausdruck Extraktor und lieferte den Ausdruck als "resp": "(. +?)". Aber ich bekomme dieses Ergebnis nicht und meine Schleife läuft kontinuierlich. Bitte helfen

Antwort

0

Es könnte in Ihrem regulären Ausdruck einen zusätzlichen Raum fällig, schaut in die Antwort:

{"resp":"Please, wait while your order is being processed."} 

Es gibt keinen Raum zwischen dem Semikolon und Anführungszeichen, und in Ihrem regex:

"resp": "(.+?)" 
    ^here is the space character 

bei regulären Ausdrücken könnten sehr zerbrechlich sein, wenn es um die Arbeit mit JSON-Daten kommt würde ich mit einem der folgenden Testelemente empfehlen:

In beiden Fällen kann die jeweilige JSON Pfad Abfrage wird wie folgt aussehen:

$.resp 

Referenzen:

+0

Thankyou .. Ich verwendete JSON Path Extractor und erhalten Sie die Antwort. Aber die while-Schleife läuft immer noch, selbst wenn die Bedingung fehlschlägt – user3493504

+0

Sie müssen Komma mit dem umgekehrten Schrägstrich wie '$ {__ javaScript (" $ {response} "==" Bitte \, warten Sie, während Ihre Bestellung verarbeitet wird. ") } '. Weitere Informationen zum Implementieren von "while" -Schleifen in JMeter-Tests finden Sie im Artikel [Verwenden des While-Controllers in JMeter] (https://www.blazemeter.com/blog/using-while-controller-jmeter) –

Verwandte Themen