{"id":956,"date":"2024-01-20T12:00:00","date_gmt":"2024-01-20T11:00:00","guid":{"rendered":"https:\/\/ittester.sk\/automatisiertes-testen\/rest-api-tests-mit-jmeter\/"},"modified":"2024-06-06T12:45:10","modified_gmt":"2024-06-06T10:45:10","slug":"rest-api-testing-jmeter","status":"publish","type":"post","link":"https:\/\/ittester.sk\/de\/leistungstest\/jmeter-anleitung\/rest-api-testing-jmeter\/","title":{"rendered":"Rest-API-Tests mit JMeter"},"content":{"rendered":"\n<p>Derzeit ist REST (Representational State Transfer) das am weitesten verbreitete Modell f\u00fcr 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\u00fcr die Qualit\u00e4tssicherung zu einer hei\u00dfen Nachricht. In unseren fr\u00fcheren Beitr\u00e4gen haben wir das manuelle Testen der REST-API und das Automatisieren der REST-API mit Java erw\u00e4hnt. In diesem Beitrag zeigen wir Ihnen, wie Sie funktionale oder Lasttests von REST-APIs mit JMeter durchf\u00fchren k\u00f6nnen.<\/p>\n\n<p>In diesem Tutorium verwende ich eine Dummy-REST-API, die unter jsonplaceholder.typicode.com verf\u00fcgbar ist. Ich werde die HTTP-Post-Methode der API verwenden, um die Funktion &#8222;Kommentare ver\u00f6ffentlichen&#8220; dieser Dummy-API anzufordern.<\/p>\n\n<pre class=\"wp-block-code\"><code>ADRESA URL API - http:\/\/jsonplaceholder.typicode.com\/posts\n\nTelo po\u017eiadavky API\n\n{\n\n\u00a0\u00a0\u00a0\u00a0title: 'foo',\n\n\u00a0\u00a0\u00a0\u00a0body: 'bar',\n\n\u00a0\u00a0\u00a0\u00a0userId: 1\n\n}\n\nPri \u00faspe\u0161nej po\u017eiadavke API vr\u00e1ti nasleduj\u00facu odpove\u010f (ako je vidie\u0165 v \u010dasti View Result Tree).\n\n{\n\n\u00a0\u00a0title: 'foo',\n\n\u00a0\u00a0body: 'bar',\n\n\u00a0\u00a0userId: 1\n\n\u00a0\u00a0id: 101, \/\/or any random id\n\n}\n\n<\/code><\/pre>\n\n<h2 class=\"wp-block-heading\">Schritte f\u00fcr das Skripting der Rest-API in JMeter<\/h2>\n\n<ul class=\"wp-block-list\">\n<li>Zun\u00e4chst m\u00fcssen wir den HTTP-Anfrage-Sampler zur Thread-Gruppe hinzuf\u00fcgen (Testplan -&gt; Thread-Gruppe -&gt; Sampler-&gt;HTTP-Anfrage)<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"560\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-1-800-560.webp\" alt=\"\" class=\"wp-image-856\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-1-800-560.webp 800w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-1-800-560-300x210.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-1-800-560-768x538.webp 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n<\/div>\n<ul class=\"wp-block-list\">\n<li>Als N\u00e4chstes m\u00fcssen wir im Abschnitt Webserver den Namen oder die IP-Adresse des API-Servers und seinen Port (falls erforderlich) angeben.<\/li>\n<\/ul>\n\n<p>Der Abschnitt HTTP-Anfrage muss wie folgt ausgef\u00fcllt werden:<\/p>\n\n<ul class=\"wp-block-list\">\n<li><strong>Servername oder IP<\/strong> &#8211; Servername (z. B. jsonplaceholder.typicode.com)<\/li>\n\n\n\n<li><strong>Implementierung<\/strong> &#8211; w\u00e4hlen Sie HttpClient4 oder Java<\/li>\n\n\n\n<li><strong>Protokoll[http]<\/strong> &#8211; W\u00e4hlen Sie je nach Art des Protokolls HTTP oder HTTPS aus (z. B. basiert die Dummy-API auf http, daher verwenden wir hier http)<\/li>\n\n\n\n<li><strong>Methode<\/strong> &#8211; Je nach Art der Methode, \u00fcber die die API erstellt wurde, w\u00e4hlen Sie Get, Put, Post, Delete usw. (in unserem Beispiel werden wir mit der Post-Methode arbeiten).<\/li>\n\n\n\n<li><strong>Pfad<\/strong> &#8211; Pfad zur Anwendung nach API_URL (z. B. f\u00fcr API_URL http:\/\/jsonplaceholder.typicode.com\/posts&#8216; wird Pfad &#8222;posts&#8220; sein.<\/li>\n\n\n\n<li><strong>Parameter\/Post Body (Parameter\/Post<\/strong> Request Body) &#8211; f\u00fcgen Sie hier den API-Request Body ein (API-Request Body im Abschnitt &#8222;Post Body&#8220; (siehe Screenshot unten f\u00fcr Details, oder wir k\u00f6nnen die Request-Parameter auch einzeln in den Abschnitt Parameter eingeben)<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"830\" height=\"530\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-2-830-530.webp\" alt=\"\" class=\"wp-image-858\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-2-830-530.webp 830w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-2-830-530-300x192.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-2-830-530-768x490.webp 768w\" sizes=\"auto, (max-width: 830px) 100vw, 830px\" \/><\/figure>\n<\/div>\n<ul class=\"wp-block-list\">\n<li>Der Benutzer muss au\u00dferdem den <strong>HTTP Header Manager<\/strong> als untergeordnetes Element zum HTTP-Request-Sampler hinzuf\u00fcgen (f\u00fcr das aktuelle Beispiel ist dies nicht notwendig, es wird nicht einmal funktionieren), und zwar mit dem Content-Type-Header<\/li>\n\n\n\n<li>Klicken Sie auf die Schaltfl\u00e4che Hinzuf\u00fcgen im HTTP-Header-Manager und f\u00fcgen Sie &#8222;Content-Type&#8220; als Name und &#8222;application\/json&#8220; als Wert hinzu.<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"850\" height=\"170\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-3-850-170.webp\" alt=\"\" class=\"wp-image-860\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-3-850-170.webp 850w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-3-850-170-300x60.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-3-850-170-768x154.webp 768w\" sizes=\"auto, (max-width: 850px) 100vw, 850px\" \/><\/figure>\n<\/div>\n<ul class=\"wp-block-list\">\n<li>[Volite\u013en\u00e9]Au\u00dferdem k\u00f6nnen wir dem Testplan verschiedene Behauptungen hinzuf\u00fcgen, 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 &#8222;title:foo&#8220; zur\u00fcck. Um die API zu testen, k\u00f6nnen wir also &#8222;Response Assertion&#8220; zur &#8222;HTTP-Anfrage&#8220; hinzuf\u00fcgen (HTTP-Anfrage-&gt;ADD-&gt;Assertion-&gt;Response Assertion) und das Muster &#8222;title: &#8218;foo'&#8220; in den Abschnitt &#8222;Pattern to Test&#8220; der Response Assertion einf\u00fcgen. Siehe Bildschirmfoto als Referenz.<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"770\" height=\"460\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-4-770-460.webp\" alt=\"\" class=\"wp-image-862\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-4-770-460.webp 770w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-4-770-460-300x179.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-4-770-460-768x459.webp 768w\" sizes=\"auto, (max-width: 770px) 100vw, 770px\" \/><\/figure>\n<\/div>\n<ul class=\"wp-block-list\">\n<li>Schlie\u00dflich k\u00f6nnen wir verschiedene Zuh\u00f6rer hinzuf\u00fcgen, zum Beispiel &#8222;Ergebnisbaum anzeigen&#8220;. Nach der Ausf\u00fchrung des JMeter-Skripts (Strg+r) wird die Antwort f\u00fcr die API im Abschnitt &#8222;View Result Tree&#8220; der Antwortdaten angezeigt.<\/li>\n<\/ul>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"950\" height=\"550\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-5-950-550.webp\" alt=\"\" class=\"wp-image-864\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-5-950-550.webp 950w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-5-950-550-300x174.webp 300w, https:\/\/ittester.sk\/wp-content\/uploads\/2024\/01\/rest-api-testovanie-s-jmeter-screenshot-5-950-550-768x445.webp 768w\" sizes=\"auto, (max-width: 950px) 100vw, 950px\" \/><\/figure>\n<\/div>\n<p>Auf diese Weise k\u00f6nnen wir funktionale Tests der Rest-API durchf\u00fchren und die &#8222;Anzahl der Threads&#8220; und &#8222;Anzahl der Zyklen&#8220; in der Thread-Gruppe f\u00fcr Lasttests erh\u00f6hen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Beitrag zeigen wir Ihnen, wie Sie funktionale oder Lasttests von REST-APIs mit JMeter durchf\u00fchren k\u00f6nnen.<\/p>\n","protected":false},"author":8,"featured_media":1672,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[21],"tags":[],"class_list":["post-956","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-jmeter-anleitung"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/posts\/956","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/comments?post=956"}],"version-history":[{"count":2,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/posts\/956\/revisions"}],"predecessor-version":[{"id":1673,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/posts\/956\/revisions\/1673"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/media\/1672"}],"wp:attachment":[{"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/media?parent=956"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/categories?post=956"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/tags?post=956"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}