2016-05-17 12 views
2

Meine Organisation versucht, JMeter als Teil einer Testautomatisierungs-Suite zu verwenden, um einige Back-End-REST-APIs zu testen. Derzeit unterstützt eine von ihnen die Verwendung von JSON-Abfragen, um gefilterte Ergebnisse von einer GET-Anforderung zurückzuholen.Verwenden von JSON-Suchabfragen mit einer GET-Anforderung in JMeter

Wir verwenden die JMeter-Benutzeroberfläche, um diese Tests zu erstellen, und da alle anderen API-Aufrufe unter der HttpClient3.1-HTTP-Anforderungsimplementierung ausgeführt werden, ist dies die Implementierung, die ich derzeit verwende. Mit dieser Implementierung erhalte ich die folgende, wenn sie bei den Fehlern in dem Ergebnisbaum (Antwortdatenteil) auf der Suche ich den Fehler gemacht habe, etwas allgemeineren einige IP zu schützen:

java.lang.IllegalArgumentException: Ungültige uri 'https://server:port/restservice/v1/users?firstname_query= {"in": ["User1FirstName", "User2FirstName"]} ': Ungültige Abfrage bei org.apache.commons.httpclient.HttpMethodBase. (HttpMethodBase.java:222) bei org.apache.commons.httpclient.methods. GetMethod. (GetMethod.java:89) bei org.apache.jmeter.protocol.http.samplerson.HTTPHC3Impl.sample (HTTPHC3Impl.java: 229) bei org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample (HTTPSamplerProxy.java:74) bei org.apache.jme ter.protocol.http.sampler.HTTPSamplerBase.sample (HTTPSamplerBase.java:1146) bei org.apache.jmeter.protocol.htt.sampler.HTTPSamplerBase.sample (HTTPSamplerBase.java:1135) bei org.apache.jmeter. threads.JMeterThread.process_sampler (JMeterThread.java:434) bei org.apache.jmeter.threads.JMeterThread.run (JMeterThread.java:261) bei java.lang.Thread.run (Unknown Source)

Ich habe auch die gleiche Anfrage mit der Java-Implementierung versucht und ein ähnliches Ergebnis erhalten.

Wenn jemand irgendwelche Ideen hat oder wenn Sie weitere Informationen benötigen, lassen Sie es mich wissen und bedanken sich nochmals im Voraus für die Hilfe, die Sie möglicherweise leisten können.

Antwort

0

Ihre HTTP-Anfrage-Konfiguration ist ein wenig falsch. JSON-Entitäten enthalten geschweifte Klammern {}, die in URLs nicht zulässig sind, sodass Sie sie codieren müssen.

Konfigurieren Sie Ihren HTTP Request Sampler wie:

HTTP Request JSON

Stellen Sie sicher, "Encode" Kästchen aktiviert ist.

Und auf diese Weise können Sie JSON mit HTTP-GET-Anfragen senden. Sie können View Results Tree Hörer verwenden, um Anfrage- und Antwort Details zu prüfen:

View Results Tree

Möglicherweise müssen auch HTTP Header Manager zu Ihrem Testplan hinzufügen und konfigurieren es Content-Type Header mit dem Wert von application/json zu senden. Weitere Informationen zum ordnungsgemäßen Konfigurieren von JMeter zum Testen von REST-APIs finden Sie im Artikel Testing SOAP/REST Web Services Using JMeter.

+0

Fühle mich ein wenig peinlich, dass es nur eine Checkbox war, die ich vermisst habe, aber ich danke dir so sehr für die Lösung, es ist genau das, wonach ich gesucht habe! – jbarresi