Rest-API-Tests mit JMeter

Rest-API-Tests mit JMeter
MIN
20 Jan. 2024

Derzeit ist REST (Representational State Transfer) das am weitesten verbreitete Modell für die Implementierung von Webdiensten. Es ist leichtgewichtig, nicht stark typisiert und im Gegensatz zu SOAP nicht an das XML-Format gebunden. So wurde es auch für die Qualitätssicherung zu einer heißen Nachricht. In unseren früheren Beiträgen haben wir das manuelle Testen der REST-API und das Automatisieren der REST-API mit Java erwähnt. In diesem Beitrag zeigen wir Ihnen, wie Sie funktionale oder Lasttests von REST-APIs mit JMeter durchführen können.

In diesem Tutorium verwende ich eine Dummy-REST-API, die unter jsonplaceholder.typicode.com verfügbar ist. Ich werde die HTTP-Post-Methode der API verwenden, um die Funktion „Kommentare veröffentlichen“ dieser Dummy-API anzufordern.

ADRESA URL API - http://jsonplaceholder.typicode.com/posts

Telo požiadavky API

{

    title: 'foo',

    body: 'bar',

    userId: 1

}

Pri úspešnej požiadavke API vráti nasledujúcu odpoveď (ako je vidieť v časti View Result Tree).

{

  title: 'foo',

  body: 'bar',

  userId: 1

  id: 101, //or any random id

}

Schritte für das Skripting der Rest-API in JMeter

  • Zunächst müssen wir den HTTP-Anfrage-Sampler zur Thread-Gruppe hinzufügen (Testplan -> Thread-Gruppe -> Sampler->HTTP-Anfrage)
  • Als Nächstes müssen wir im Abschnitt Webserver den Namen oder die IP-Adresse des API-Servers und seinen Port (falls erforderlich) angeben.

Der Abschnitt HTTP-Anfrage muss wie folgt ausgefüllt werden:

  • Servername oder IP – Servername (z. B. jsonplaceholder.typicode.com)
  • Implementierung – wählen Sie HttpClient4 oder Java
  • Protokoll[http] – Wählen Sie je nach Art des Protokolls HTTP oder HTTPS aus (z. B. basiert die Dummy-API auf http, daher verwenden wir hier http)
  • Methode – Je nach Art der Methode, über die die API erstellt wurde, wählen Sie Get, Put, Post, Delete usw. (in unserem Beispiel werden wir mit der Post-Methode arbeiten).
  • Pfad – Pfad zur Anwendung nach API_URL (z. B. für API_URL http://jsonplaceholder.typicode.com/posts‘ wird Pfad „posts“ sein.
  • Parameter/Post Body (Parameter/Post Request Body) – fügen Sie hier den API-Request Body ein (API-Request Body im Abschnitt „Post Body“ (siehe Screenshot unten für Details, oder wir können die Request-Parameter auch einzeln in den Abschnitt Parameter eingeben)
  • Der Benutzer muss außerdem den HTTP Header Manager als untergeordnetes Element zum HTTP-Request-Sampler hinzufügen (für das aktuelle Beispiel ist dies nicht notwendig, es wird nicht einmal funktionieren), und zwar mit dem Content-Type-Header
  • Klicken Sie auf die Schaltfläche Hinzufügen im HTTP-Header-Manager und fügen Sie „Content-Type“ als Name und „application/json“ als Wert hinzu.
  • [Voliteľné]Außerdem können wir dem Testplan verschiedene Behauptungen hinzufügen, um einen Testfall auf der Grundlage der erhaltenen Antwort als erfolgreich oder nicht erfolgreich zu kennzeichnen. Zum Beispiel. Die obige Dummy-API gibt in ihrer Antwort „title:foo“ zurück. Um die API zu testen, können wir also „Response Assertion“ zur „HTTP-Anfrage“ hinzufügen (HTTP-Anfrage->ADD->Assertion->Response Assertion) und das Muster „title: ‚foo'“ in den Abschnitt „Pattern to Test“ der Response Assertion einfügen. Siehe Bildschirmfoto als Referenz.
  • Schließlich können wir verschiedene Zuhörer hinzufügen, zum Beispiel „Ergebnisbaum anzeigen“. Nach der Ausführung des JMeter-Skripts (Strg+r) wird die Antwort für die API im Abschnitt „View Result Tree“ der Antwortdaten angezeigt.

Auf diese Weise können wir funktionale Tests der Rest-API durchführen und die „Anzahl der Threads“ und „Anzahl der Zyklen“ in der Thread-Gruppe für Lasttests erhöhen.