{"id":815,"date":"2024-01-05T09:54:18","date_gmt":"2024-01-05T08:54:18","guid":{"rendered":"https:\/\/ittester.sk\/automatisiertes-testen\/logische-steuerungen-in-jmeter\/"},"modified":"2024-06-06T12:02:55","modified_gmt":"2024-06-06T10:02:55","slug":"logik-steuerungen-jmeter","status":"publish","type":"post","link":"https:\/\/ittester.sk\/de\/leistungstest\/jmeter-anleitung\/logik-steuerungen-jmeter\/","title":{"rendered":"Logische Steuerungen in Jmeter"},"content":{"rendered":"\n<p>Im vorherigen Tutorial haben wir Sampler und die verschiedenen Arten von Sampler-Abfragen, die in JMeter verf\u00fcgbar sind, behandelt. In diesem Tutorial werden wir uns mit Logik-Controllern besch\u00e4ftigen, die die Art und Weise, wie verschiedene Anfragen an den Server gesendet werden, anpassen.<\/p>\n<div class=\"wp-block-aioseo-table-of-contents\"><ul><li><a class=\"aioseo-toc-item\" href=\"#aioseo-logic-controllers\">Logic Controllers<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-preco-potrebujeme-logic-controllers\">Pre\u010do potrebujeme Logic Controllers?<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-critical-section-controller-kontroler-kritickej-sekcie\">Critical Section Controller (Kontrol\u00e9r kritickej sekcie)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-foreach-controller\">ForEach Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-if-controller\">If Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-include-controller\">Include Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-interleave-controller\">Interleave Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-loop-controller\">Loop Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-module-controller\">Module Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-once-only-controller\">Once Only Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-random-controller-nahodny-kontroler\">Random Controller (N\u00e1hodn\u00fd kontrol\u00e9r)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-random-order-controller\">Random Order Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-recording-controller\">Recording Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-runtime-controller\">Runtime Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-simple-controller-jednoduchy-kontroler\">Simple Controller (Jednoduch\u00fd kontrol\u00e9r)<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-switch-controller\">Switch Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-throughput-controller\">Throughput Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-transaction-controller\">Transaction Controller<\/a><\/li><li><a class=\"aioseo-toc-item\" href=\"#aioseo-while-controller\">While Controller<\/a><\/li><\/ul><\/div>\n<h2 class=\"wp-block-heading\" id=\"aioseo-logic-controllers\">Logische Steuerungen  <\/h2>\n\n<p>Logik-Controller sind Pr\u00fcfplanelemente, die dazu dienen, die Verarbeitungsreihenfolge von Samplern und anderen Elementen, die als untergeordnete Elemente hinzugef\u00fcgt werden, anzupassen. Logik-Controller werden in erster Linie in Sampler-Anfragen verwendet, um verschiedene Anpassungen vorzunehmen, z. B. die Reihenfolge ihrer Verarbeitung zu \u00e4ndern, sie als eine einzige Transaktion zu gruppieren oder Anfragen in einer Schleife auszuf\u00fchren usw.<\/p>\n\n<p>Schritte zum Starten einer Logiksteuerung &#8211; <strong>Rechtsklick auf Themengruppe -&gt; zu Hinzuf\u00fcgen -&gt; zu Logiksteuerungen -&gt; zu den gew\u00fcnschten Logiksteuerungen<\/strong><\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"710\" height=\"560\" src=\"https:\/\/ittester.sk\/wp-content\/uploads\/2023\/12\/loop-controller-710-560.webp\" alt=\"Screenshot der Startanweisungen der Logiksteuerung\" class=\"wp-image-754\" srcset=\"https:\/\/ittester.sk\/wp-content\/uploads\/2023\/12\/loop-controller-710-560.webp 710w, https:\/\/ittester.sk\/wp-content\/uploads\/2023\/12\/loop-controller-710-560-300x237.webp 300w\" sizes=\"auto, (max-width: 710px) 100vw, 710px\" \/><\/figure>\n<\/div>\n<h2 class=\"wp-block-heading\" id=\"aioseo-preco-potrebujeme-logic-controllers\">Warum brauchen wir logische Steuerungen?<\/h2>\n\n<p>Skripte f\u00fcr Leistungstests werden verwendet, um die Aktionen echter Benutzer zu simulieren. Wie ein echter Benutzer wird er mehrere Aktionen auf unterschiedliche Weise ausf\u00fchren, z. B. eine Reihe von Vorg\u00e4ngen nacheinander (z. B. von der Anmeldeseite zur Startseite navigieren), \u00e4hnliche Arten von Vorg\u00e4ngen in einer Schleife ausf\u00fchren (z. B. mehrere ungelesene E-Mails lesen), einige zuf\u00e4llige Vorg\u00e4nge ausf\u00fchren, usw. Um diese verschiedenen Arten von Aktionen zu simulieren, bietet JMeter verschiedene Arten von Logik-Controllern, die die Verarbeitung der Elemente in ihnen anpassen.<\/p>\n\n<p>Werfen wir nun einen Blick auf die verschiedenen Logik-Controller, die JMeter bietet:<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-critical-section-controller-kontroler-kritickej-sekcie\">Critical Section Controller<\/h2>\n\n<p>Dies ist ein neu hinzugef\u00fcgter Controller im JMeter-System. Stellt sicher, dass jeweils nur ein Thread auf die Slave-Elemente dieses Controllers zugreift.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-foreach-controller\">ForEach Controller<\/h2>\n\n<p>Diese Steuerung wird verwendet, um Anfragen in einer Schleife auf der Grundlage der Werte einer Reihe von Bezugsvariablen auszuf\u00fchren.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-if-controller\">Wenn Controller<\/h2>\n\n<p>Mit dem If-Controller k\u00f6nnen wir eine Bedingung angeben, ob das untergeordnete Element in ihm ausgel\u00f6st wird oder nicht, basierend auf der Bedingung, die als wahr oder falsch ausgewertet werden sollte.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-include-controller\">Controller einbeziehen<\/h2>\n\n<p>Include Controller kann verwendet werden, um Modularit\u00e4t in JMeter zu schaffen. Mit diesem Controller k\u00f6nnen wir eine externe .jmx-Datei (Testfragment) zu unserem bestehenden Skript hinzuf\u00fcgen, indem wir die jmx-Datei in den Include-Controller laden.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-interleave-controller\">Interleave-Controller<\/h2>\n\n<p>Der Interleave-Controller erm\u00f6glicht es uns, in jeder Iteration der Schleife ein Kindelement aus mehreren Kindern auszuw\u00e4hlen und auszuf\u00fchren. Wenn wir beispielsweise drei Probenehmer als Slaves zum Interleave-Controller hinzugef\u00fcgt haben, wird in der ersten Iteration die erste Probenehmeranforderung ausgew\u00e4hlt, in der n\u00e4chsten Iteration die n\u00e4chste und so weiter. Wenn die untergeordneten Elemente fertig sind, beginnt die Iteration wieder beim ersten Element.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-loop-controller\">Loop Controller<\/h2>\n\n<p>Erm\u00f6glicht die Ausf\u00fchrung von Operationen, die als untergeordnete Elemente in einer Schleife mit dem im Bedienfeld angegebenen Iterationswert angegeben sind.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-module-controller\">Modul-Controller<\/h2>\n\n<p>Mit dem Modul-Controller k\u00f6nnen wir ein Testfragment (z. B. einen Sampler) wieder auf unser Skript anwenden, indem wir das Modul im Modul-Controller-Bedienfeld ausw\u00e4hlen.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-once-only-controller\">Einmaliger Controller<\/h2>\n\n<p>Der Once Only-Controller wird verwendet, wenn ein Vorgang nur einmal ausgef\u00fchrt werden soll, auch wenn er in einer Schleife ausgef\u00fchrt wird.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-random-controller-nahodny-kontroler\">Zuf\u00e4lliger Controller<\/h2>\n\n<p>Sie \u00e4hnelt einer Zufallssteuerung und w\u00e4hlt in jeder Iteration ein untergeordnetes Element aus, aber im Gegensatz zur Interleave-Steuerung w\u00e4hlt sie das untergeordnete Element nach dem Zufallsprinzip aus.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-random-order-controller\">Random Order Controller<\/h2>\n\n<p>Der Random Order Controller wird verwendet, um jedes seiner untergeordneten Elemente h\u00f6chstens einmal in zuf\u00e4lliger Reihenfolge auszuf\u00fchren.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-recording-controller\">Aufnahme-Controller<\/h2>\n\n<p>Dieser Controller dient als Ort, an dem Skripte, die mit dem HTTP-Proxy aufgezeichnet wurden, standardm\u00e4\u00dfig aufgezeichnet werden (siehe unser <a href=\"https:\/\/artoftesting.com\/record-scripts-in-jmeter\">Tutorial<\/a> f\u00fcr Details zur Aufzeichnung und Wiedergabe in JMeter).<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-runtime-controller\">Laufzeit-Controller<\/h2>\n\n<p>Der Laufzeit-Controller wird verwendet, um die Ausf\u00fchrungszeit seiner untergeordneten Elemente zu begrenzen. Wenn wir z. B. einen &#8222;Laufzeit&#8220;-Wert von 100 Sekunden angegeben haben, werden die Elemente innerhalb des Laufzeit-Controllers 100 Sekunden lang mit so vielen Iterationen wie m\u00f6glich ausgef\u00fchrt.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-simple-controller-jednoduchy-kontroler\">Einfacher Controller<\/h2>\n\n<p>Dieser Controller dient lediglich dazu, die verschiedenen Elemente des Testplans zu gruppieren und zu organisieren.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-switch-controller\">Switch Controller<\/h2>\n\n<p>Diese Steuerung wird verwendet, um ein Element aus mehreren untergeordneten Elementen zur Verarbeitung auszuw\u00e4hlen. Das Element wird nicht in sequentieller oder zuf\u00e4lliger Reihenfolge ausgew\u00e4hlt, sondern auf der Grundlage des im Bedienfeld definierten Schalterwerts. Der Schalterwert kann eine Variable mit einem Wert sein, der an ihrem Index(position)-Element oder Elementnamen ausgewertet wird. Wenn beispielsweise in der ersten Iteration der Schalterwert als &#8222;3&#8220; ausgewertet wird, wird das vierte Element zur Verarbeitung ausgew\u00e4hlt (der Indexwert beginnt bei 0). \u00c4hnlich verh\u00e4lt es sich, wenn der Wert eines Schalters als Elementname ausgewertet wird, dann wird dieses Element zur Verarbeitung ausgew\u00e4hlt.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-throughput-controller\">Durchsatzregler<\/h2>\n\n<p>Die Durchsatzsteuerung wird verwendet, um die Verarbeitung ihrer untergeordneten Elemente in Bezug auf die Gesamtzahl der Ausf\u00fchrungen oder den Prozentsatz der Ausf\u00fchrungen zu steuern, die in ihrem Bedienfeld angegeben sind.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-transaction-controller\">Transaktions-Controller  <\/h2>\n\n<p>Der Transaction Controller ist einer der am h\u00e4ufigsten verwendeten Controller in JMeter-Skripten. Er wird verwendet, um mehrere Sampler-Anfragen zu einer einzigen zusammenzufassen. Die Antwortzeit und andere Leistungskennzahlen des Testergebnisses werden f\u00fcr die gesamte Transaktion bewertet. Wenn wir zum Beispiel die Leistung der Homepage einer Anwendung \u00fcberpr\u00fcfen, k\u00f6nnen wir feststellen, dass der Start der Homepage eine Menge Anfragen im Backend erzeugt. Daher m\u00fcssen wir alle diese Anfragen in einer einzigen Transaktion zusammenfassen, wof\u00fcr wir den JMeter Transaction Controller einsetzen. Nach der Ausf\u00fchrung des Skripts k\u00f6nnen wir die Gesamtantwortzeit der gesamten Transaktion sehen.<\/p>\n\n<h2 class=\"wp-block-heading\" id=\"aioseo-while-controller\">W\u00e4hrend Controller<\/h2>\n\n<p>Der While-Controller wird verwendet, um untergeordnete Elemente, die in ihm enthalten sind, auszul\u00f6sen, bis der in seinem Bedienfeld angegebene Wert als &#8222;false&#8220; ausgewertet wird.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Logik-Controller sind Pr\u00fcfplanelemente, die dazu dienen, die Verarbeitungsreihenfolge von Samplern und anderen untergeordneten&#8220; Elementen anzupassen.  <\/p>\n","protected":false},"author":8,"featured_media":1629,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[21],"tags":[],"class_list":["post-815","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\/815","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=815"}],"version-history":[{"count":2,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/posts\/815\/revisions"}],"predecessor-version":[{"id":1631,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/posts\/815\/revisions\/1631"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/media\/1629"}],"wp:attachment":[{"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/media?parent=815"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/categories?post=815"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ittester.sk\/de\/wp-json\/wp\/v2\/tags?post=815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}