{"id":54188,"date":"2019-12-20T00:00:00","date_gmt":"2019-12-19T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/chem-testmace-luchshe-postman"},"modified":"2020-02-18T14:02:10","modified_gmt":"2020-02-18T11:02:10","slug":"chem-testmace-luchshe-postman","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/chem-testmace-luchshe-postman","title":{"rendered":"Warum ist TestMace besser als Postman?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Warum ist TestMace besser als Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/4b61986c287c32a4cefeb2f805fc228f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hallo zusammen, hier ist <noindex><a rel=\"nofollow\" href=\"https:\/\/testmace.com\/\">TestMace<\/a><\/noindex>! Vielleicht wissen viele von uns aus <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458372\/\">unseren<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/462585\/\">fr\u00fcheren<\/a><\/noindex> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458964\/\">Artikel<\/a><\/noindex>. F\u00fcr diejenigen, die gerade erst eingestiegen sind: Wir entwickeln ein IDE f\u00fcr die Arbeit mit der API TestMace. Die h\u00e4ufigste Frage beim Vergleich von TestMace mit konkurrierenden Produkten lautet: \u201eWas unterscheidet euch von Postman?\u201c. Wir dachten, es w\u00e4re an der Zeit, eine umfassende Antwort auf diese Frage zu geben. Unten haben wir unsere Vorteile gegen\u00fcber <noindex><a rel=\"nofollow\" href=\"https:\/\/www.getpostman.com\/\">Postman<\/a><\/noindex>.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"razdelenie-na-uzly\">Knotenaufteilung<\/h2>\n<p><\/p>\n<p>Wenn Sie mit Postman arbeiten, wissen Sie, dass die Anfrageoberfl\u00e4che alle erforderlichen Funktionen enth\u00e4lt. Hier gibt es Skripte, Tests und die Anfragen selbst. Das erleichtert die Arbeit f\u00fcr Anf\u00e4nger, jedoch ist dieser Ansatz bei gro\u00dfen Szenarien nicht flexibel. Was ist, wenn Sie mehrere Anfragen erstellen und eine Aggregation durchf\u00fchren m\u00f6chten? Was, wenn Sie ein Skript ohne Anfrage oder mehrere logisch getrennte Skripte hintereinander ausf\u00fchren m\u00f6chten? Letztendlich w\u00e4re es gut, Tests von einfachen Hilfsskripten zu trennen. Dar\u00fcber hinaus ist der Ansatz \u201eAlle Funktionen in einem Knoten hinzuf\u00fcgen\u201c nicht skalierbar \u2013 die Benutzeroberfl\u00e4che wird schnell \u00fcberladen.<\/p>\n<p><\/p>\n<p>TestMace unterteilt die gesamte Funktionalit\u00e4t von Anfang an in verschiedene Knotentypen. M\u00f6chtest du eine Anfrage machen? Hier ist dein <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/requeststep\">request step<\/a><\/noindex> Knoten. M\u00f6chtest du ein Skript schreiben? Hier ist dein <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/script\">script<\/a><\/noindex> Knoten. ben\u00f6tigst du Tests? Bitte \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/assertion\">Assertion<\/a><\/noindex> Knoten. Ach ja, du kannst das Ganze auch in einen <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/folder\">folder<\/a><\/noindex> Knoten packen. Und all das l\u00e4sst sich einfach miteinander kombinieren. Dieser Ansatz ist nicht nur sehr flexibel, sondern erm\u00f6glicht es auch, gem\u00e4\u00df dem Prinzip der Einzelverantwortung nur das zu verwenden, was du in diesem Moment wirklich brauchst. Warum brauche ich Skripte und Tests, wenn ich einfach nur eine Anfrage stellen m\u00f6chte?<\/p>\n<p><\/p>\n<h2 id=\"chelovekochitaemyy-format-proekta\">Menschlich lesbares Projektformat<\/h2>\n<p><\/p>\n<p>Zwischen TestMace und Postman gibt es ein konzeptionelles Unterschied in der Art der Speicherung. In Postman werden alle Anfragen irgendwo im lokalen Speicher aufbewahrt. Wenn es notwendig ist, Anfragen zwischen mehreren Benutzern zu teilen, muss die integrierte Synchronisation verwendet werden. Tats\u00e4chlich ist dies ein allgemein akzeptierter Ansatz, der jedoch auch Nachteile hat. Was ist mit der Datensicherheit? Schlie\u00dflich kann die Richtlinie einiger Unternehmen es verbieten, Daten bei Dritten zu speichern. Wir glauben jedoch, dass TestMace etwas Besseres bieten kann! Und der Name dieser Verbesserung ist \u201emenschenlesbares Projektformat\u201c.<\/p>\n<p><\/p>\n<p>Lassen Sie uns zun\u00e4chst kl\u00e4ren, dass es in TestMace im Grunde genommen eine Entit\u00e4t \"Projekt\" gibt. Die Anwendung wurde urspr\u00fcnglich mit dem Ziel entwickelt, Projekte in Versionskontrollsystemen zu speichern: Der Projektbaum wird nahezu eins zu eins auf die Dateistruktur projiziert, das Speicherformat verwendet yaml (ohne \u00fcberfl\u00fcssige Klammern und Kommas), und die dateibezogene Darstellung jedes Knotens ist in der Dokumentation detailliert beschrieben, einschlie\u00dflich Kommentaren. In den meisten F\u00e4llen werden Sie jedoch nicht nachsehen m\u00fcssen \u2013 alle Feldnamen sind logisch benannt. <\/p>\n<p><\/p>\n<p>Was bringt das dem Benutzer? Es erm\u00f6glicht eine sehr flexible Anpassung des Workflows des Teams, unter Verwendung gewohnter Ans\u00e4tze. Beispielsweise k\u00f6nnen Entwickler das Projekt im selben Repository wie das Backend speichern. In den Branches kann der Entwickler neben \u00c4nderungen an der Codebasis auch bestehende Anfrage-Szenarien und Tests korrigieren. Nach dem Festschreiben der \u00c4nderungen im Repository (git, svn, mercurial \u2013 was Ihnen auch immer lieber ist) startet CI (Ihr Lieblings-Tool, das niemand Ihnen aufgezwungen hat) unser Konsolendienstprogramm <noindex><a rel=\"nofollow\" href=\"https:\/\/www.npmjs.com\/package\/@testmace\/cli\">testmace-cli<\/a><\/noindex>, und der nach der Ausf\u00fchrung generierte Bericht (zum Beispiel im junit-Format, das ebenfalls von testmace-cli unterst\u00fctzt wird) wird an das entsprechende System gesendet. Das oben genannte Sicherheitsproblem ist somit auch kein Thema mehr.<\/p>\n<p><\/p>\n<p>Wie Sie sehen, zwingt TestMace nicht seine eigene Ecosystem oder Paradigm auf. Stattdessen f\u00fcgt es sich leicht in bereits etablierte Prozesse ein.<\/p>\n<p><\/p>\n<h2 id=\"dinamicheskie-peremennye\">Dynamische Variablen<\/h2>\n<p><\/p>\n<p>TestMace folgt dem Konzept des No-Code: Wenn ein Problem ohne Code gel\u00f6st werden kann, versuchen wir, diese M\u00f6glichkeit zu bieten. Die Arbeit mit Variablen ist genau die Funktionalit\u00e4t, bei der in den meisten F\u00e4llen kein Programmieren erforderlich ist.<\/p>\n<p><\/p>\n<p>Beispiel: Wir haben eine Antwort vom Server erhalten und m\u00f6chten einen Teil der Antwort in einer Variablen speichern. In Postman w\u00fcrden wir in einem Testskript (was an sich schon seltsam ist) etwas in der Art schreiben:<\/p>\n<p><\/p>\n<pre><code class=\"javascript\">var jsonData = JSON.parse(responseBody);\npostman.setEnvironmentVariable(\"data\", jsonData.data);<\/code><\/pre>\n<p><\/p>\n<p>Aber unserer Meinung nach sieht das Schreiben eines Skripts f\u00fcr ein so einfaches und h\u00e4ufig verwendetes Szenario \u00fcberfl\u00fcssig aus. Daher bietet TestMace die M\u00f6glichkeit, einem Variablen einen Teil der Antwort \u00fcber die grafische Benutzeroberfl\u00e4che zuzuweisen. Sehen Sie, wie einfach das ist:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Warum ist TestMace besser als Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/2ce8ce2f9aa2964cb5bd1d5eacead423.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Und jetzt wird diese dynamische Variable bei jeder Anfrage aktualisiert. Aber Sie k\u00f6nnten einwenden, dass der Ansatz von Postman flexibler ist und nicht nur eine Zuweisung erm\u00f6glicht, sondern auch eine gewisse Vorverarbeitung durchf\u00fchren kann. So k\u00f6nnte man das vorherige Beispiel modifizieren:<\/p>\n<p><\/p>\n<pre><code class=\"javascript\">var jsonData = JSON.parse(responseBody);\npostman.setEnvironmentVariable(\"data\", CryptoJS.MD5(jsonData.data));<\/code><\/pre>\n<p><\/p>\n<p>Nun, daf\u00fcr gibt es in TestMace <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/script\">script<\/a><\/noindex> einen Knoten, der dieses Szenario abdeckt. Um den vorherigen Fall zu reproduzieren, m\u00fcssen Sie direkt nach der Anfrage einen Script-Knoten erstellen und als Skript den folgenden Code verwenden:<\/p>\n<p><\/p>\n<pre><code class=\"javascript\">const data = tm.currentNode.prev.response.body.data;\ntm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));<\/code><\/pre>\n<p><\/p>\n<p>Wie Sie sehen, hat die Kombination von Knoten hier ebenfalls gute Dienste geleistet. Und f\u00fcr einen so einfachen Fall, wie oben beschrieben, k\u00f6nnen Sie sogar einfach den Ausdruck <code>${crypto.MD5($response.data)}<\/code> einer \u00fcber die grafische Benutzeroberfl\u00e4che erstellten Variablen zuweisen!<\/p>\n<p><\/p>\n<h2 id=\"sozdanie-testov-cherez-gui\">Tests \u00fcber GUI erstellen<\/h2>\n<p><\/p>\n<p>Postman erm\u00f6glicht das Erstellen von Tests durch das Schreiben von Skripten (im Fall von Postman ist das JavaScript). Dieser Ansatz hat zahlreiche Vorteile \u2013 fast unbegrenzte Flexibilit\u00e4t, vorhandene L\u00f6sungen usw.<\/p>\n<p><\/p>\n<p>Die Realit\u00e4t sieht jedoch oft so aus (nicht wir sind so, das Leben ist so), dass der Tester keine Programmierkenntnisse hat, aber das Team bereits jetzt einen Mehrwert bieten m\u00f6chte. F\u00fcr solche F\u00e4lle erlaubt TestMace, einfache Tests \u00fcber die grafische Benutzeroberfl\u00e4che zu erstellen, ohne Skripte schreiben zu m\u00fcssen. Hier ist beispielsweise, wie der Prozess aussieht, um einen Test zu erstellen, der Werte auf Gleichheit vergleicht:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Warum ist TestMace besser als Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/c0a8ce4cbe264dd76e3b5d90594eeff5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Das Erstellen von Tests im grafischen Editor schlie\u00dft jedoch nicht die M\u00f6glichkeit aus <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/assertion\/script\">Tests im Code zu schreiben<\/a><\/noindex>. Hier gelten dieselben Bibliotheken wie im Script-Knoten, und <noindex><a rel=\"nofollow\" href=\"https:\/\/www.chaijs.com\/\">chai<\/a><\/noindex> zum Schreiben von Tests.<\/p>\n<p><\/p>\n<h2 id=\"vozmozhnost-zapustit-uzhe-suschestvuyuschiy-scenariy-po-ssylke-link-uzel\">Die M\u00f6glichkeit, ein bereits vorhandenes Szenario \u00fcber einen Link (Link-Knoten) auszuf\u00fchren<\/h2>\n<p><\/p>\n<p>Entsteht h\u00e4ufig die Situation, dass eine bestimmte Anfrage oder sogar ein ganzes Szenario mehrmals an verschiedenen Stellen im Projekt ausgef\u00fchrt werden muss. Beispiele f\u00fcr solche Anfragen k\u00f6nnen eine benutzerdefinierte mehrstufige Authentifizierung, das Anpassen der Umgebung an den gew\u00fcnschten Zustand usw. sein. Kurz gesagt, wenn man es in den Begriffen der Programmiersprachen ausdr\u00fcckt, m\u00f6chte man Funktionen haben, die an verschiedenen Stellen der Anwendung wiederverwendet werden k\u00f6nnen. In TestMace \u00fcbernehmen diese Funktion <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/node-types\/link\">link<\/a><\/noindex> Knoten. Es ist sehr einfach zu verwenden:<br \/>\n1) Erstellen Sie eine Anfrage oder ein Skript<br \/>\n2) Erstellen Sie einen Link-Knoten<br \/>\n3) Geben Sie in den Parametern den Link zum Skript an, das im ersten Schritt erstellt wurde<\/p>\n<p><\/p>\n<p>In einer erweiterten Variante k\u00f6nnen Sie angeben, welche dynamischen Variablen aus dem Skript auf die h\u00f6here Ebene in Bezug auf den Link weitergegeben werden sollen. Klingt verwirrend? Angenommen, wir haben einen Ordner mit dem Namen <strong>create-post<\/strong>, in dem diesem Knoten eine dynamische Variable zugewiesen wird. <code>postId<\/code>. Jetzt k\u00f6nnen Sie im Link-Knoten <strong>create-post-link<\/strong> explizit angeben, dass die Variable <code>postId<\/code> dem \u00fcbergeordneten Element zugewiesen wird. <strong>create-post-link<\/strong>. Dieser Mechanismus (um es in der Programmiersprache auszudr\u00fccken) kann verwendet werden, um das Ergebnis aus \u201eeiner Funktion\u201c zur\u00fcckzugeben. Insgesamt gro\u00dfartig, DRY in vollem Umfang und wieder ist keine einzige Zeile Code verloren gegangen.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Warum ist TestMace besser als Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/5235473a43e5bc2e05aeb2779846245f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Was Postman betrifft, so steht der Feature Request zur Wiederverwendung von Anfragen <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1535\">seit 2015 offen<\/a><\/noindex>, und es scheint sogar <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1535#issuecomment-280305898\">einige Hinweise<\/a><\/noindex>, dass an diesem Problem gearbeitet wird. In der aktuellen Version erm\u00f6glicht Postman zwar den Wechsel des Ausf\u00fchrungsflusses, was theoretisch wahrscheinlich ein \u00e4hnliches Verhalten erm\u00f6glichen w\u00fcrde, aber es ist eher ein schmutziger Hack als ein wirklich funktionierender Ansatz. <\/p>\n<p><\/p>\n<h2 id=\"prochie-otlichiya\">Weitere Unterschiede<\/h2>\n<p><\/p>\n<ul>\n<li>Gr\u00f6\u00dfere Kontrolle \u00fcber den Geltungsbereich von Variablen. Der kleinste Scope, innerhalb dessen Sie eine Variable in Postman definieren k\u00f6nnen, ist die Sammlung. TestMace erm\u00f6glicht es Ihnen, Variablen f\u00fcr jede Anfrage oder jeden Ordner festzulegen. In Postman erlaubt das Teilen der Sammlung nur das Exportieren von Sammlungen, w\u00e4hrend das Teilen in TestMace f\u00fcr jeden Knoten funktioniert.<\/li>\n<li>TestMace unterst\u00fctzt <noindex><a rel=\"nofollow\" href=\"https:\/\/docs-ru.testmace.com\/other\/default-http-headers\">vererbte Headers<\/a><\/noindex>, die standardm\u00e4\u00dfig in untergeordnete Anfragen \u00fcbernommen werden k\u00f6nnen. In Postman gibt es dazu <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1947\">Aufgabe<\/a><\/noindex>, und es wurde sogar geschlossen, aber als L\u00f6sung wird angeboten... <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/postmanlabs\/postman-app-support\/issues\/1947#issuecomment-292741840\">Skripte zu verwenden<\/a><\/noindex>. In TestMace wird alles \u00fcber die GUI konfiguriert, und es gibt die M\u00f6glichkeit, vererbte Headers f\u00fcr bestimmte Nachfahren optional zu deaktivieren.<\/li>\n<li>R\u00fcckg\u00e4ngig\/Wiederherstellen. Funktioniert nicht nur beim Bearbeiten von Knoten, sondern auch beim Verschieben, L\u00f6schen, Umbenennen und anderen Operationen, die die Projektstruktur \u00e4ndern.<\/li>\n<li>Dateien, die an Anfragen angeh\u00e4ngt sind, werden Teil des Projekts und werden zusammen mit ihm gespeichert, w\u00e4hrend sie problemlos synchronisiert werden, im Gegensatz zu Postman. (Ja, Sie m\u00fcssen nicht mehr jedes Mal manuell Dateien bei jedem Start ausw\u00e4hlen und sie Ihren Kollegen in Archiven \u00fcbergeben.)<\/li>\n<\/ul>\n<p><\/p>\n<h2 id=\"fichi-kotorye-uzhe-na-podhode\">Features, die bereits in Aussicht sind<\/h2>\n<p><\/p>\n<p>Wir konnten der Versuchung nicht widerstehen, einen Blick hinter den Vorhang der kommenden Releases zu werfen, zumal die Funktionalit\u00e4t \u00e4u\u00dferst verlockend ist und bereits die Vorab-Feinarbeit durchl\u00e4uft. Also, treffen wir sie.<\/p>\n<p><\/p>\n<h3 id=\"funkcii\">Funktionen<\/h3>\n<p><\/p>\n<p>Wie bekannt ist, werden zur Generierung von Werten in Postman sogenannte dynamische Variablen verwendet. <noindex><a rel=\"nofollow\" href=\"https:\/\/learning.getpostman.com\/docs\/postman\/variables-and-environments\/variables-list\/\">Die Liste ist beeindruckend<\/a><\/noindex> und die \u00fcberw\u00e4ltigende Mehrheit der Funktionen dient zur Generierung von Fake-Werten. Um eine zuf\u00e4llige E-Mail zu generieren, muss man Folgendes schreiben:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">{{$randomEmail}}<\/code><\/pre>\n<p><\/p>\n<p>Da es sich jedoch um Variablen handelt (auch wenn sie dynamisch sind), k\u00f6nnen sie nicht wie Funktionen verwendet werden: Sie sind nicht parametrisiert, daher kann man keinen Hash von einer Zeichenkette nehmen.<\/p>\n<p><\/p>\n<p>Bei TestMace planen wir, \u201eehrliche\u201c Funktionen hinzuzuf\u00fcgen. Direkt innerhalb von ${} wird es m\u00f6glich sein, nicht nur auf eine Variable zuzugreifen, sondern auch eine Funktion aufzurufen. Das hei\u00dft, wenn wir die ber\u00fcchtigte gef\u00e4lschte E-Mail generieren m\u00fcssen, schreiben wir einfach<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">${faker.internet.email()}<\/code><\/pre>\n<p><\/p>\n<p>Abgesehen davon, dass dies eine Funktion ist, kann man erkennen, dass es m\u00f6glich ist, Methoden von Objekten aufzurufen. Anstelle einer gro\u00dfen flachen Liste dynamischer Variablen haben wir ein Set logisch gruppierter Objekte.<\/p>\n<p><\/p>\n<p>Was ist, wenn wir den Hash einer Zeichenkette berechnen m\u00f6chten? Kein Problem!<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">${crypto.MD5($dynamicVar.data)}<\/code><\/pre>\n<p><\/p>\n<p>Man kann erkennen, dass auch Variablen als Parameter \u00fcbergeben werden k\u00f6nnen! An dieser Stelle kann der neugierige Leser Verdacht sch\u00f6pfen... <\/p>\n<p><\/p>\n<h3 id=\"ispolzovanie-javascript-v-vyrazheniyah\">Die Verwendung von JavaScript in Ausdr\u00fccken<\/h3>\n<p><\/p>\n<p>\u2026 und das zu Recht! Als die Anforderungen an die Funktionen formuliert wurden, kamen wir pl\u00f6tzlich zu dem Schluss, dass man in Ausdr\u00fccken g\u00fcltiges JavaScript schreiben sollte. Daher sind Sie nun frei, Ausdr\u00fccke in der Art zu schreiben:<\/p>\n<p><\/p>\n<pre><code class=\"javascript\">${1 + '' + crypto.MD5('asdf')}<\/code><\/pre>\n<p><\/p>\n<p>Und das alles ohne Skripte direkt in den Eingabefeldern!<\/p>\n<p><\/p>\n<p>Was Postman betrifft, so k\u00f6nnen hier nur Variablen verwendet werden, und wenn man versucht, einen rudiment\u00e4ren Ausdruck zu schreiben, beschwert sich der Validator und weigerte sich, ihn zu berechnen.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Warum ist TestMace besser als Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/b301760640ff15ea682e9dfb1462116b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"prodvinutoe-avtodopolnenie\">Fortgeschrittene Autovervollst\u00e4ndigung<\/h3>\n<p><\/p>\n<p>Aktuell hat TestMace eine Standard-Autovervollst\u00e4ndigung, die folgenderma\u00dfen aussieht:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Warum ist TestMace besser als Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/1f5ec38a6a6da29e8308882d271b6b14.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Hier wird neben der autovervollst\u00e4ndigten Zeichenkette angegeben, zu was diese Zeichenkette geh\u00f6rt. Dieser Mechanismus funktioniert nur in Ausdr\u00fccken, die in Klammern ${} eingerahmt sind.<\/p>\n<p><\/p>\n<p>Wie man sehen kann, wurden visuelle Marker hinzugef\u00fcgt, die auf den Typ der Variablen hinweisen (zum Beispiel: Zeichenfolge, Zahl, Array usw.). Auch die Autovervollst\u00e4ndigungsmodi k\u00f6nnen ge\u00e4ndert werden (zum Beispiel kann die Autovervollst\u00e4ndigung mit Variablen oder \u00dcberschriften ausgew\u00e4hlt werden). Aber das ist noch nicht das Wichtigste!<\/p>\n<p><\/p>\n<p>Erstens funktioniert die Autovervollst\u00e4ndigung sogar in Ausdr\u00fccken (wo es m\u00f6glich ist). So sieht das aus:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Warum ist TestMace besser als Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/676721c8d12f6c43970ed335deb238f7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Und zweitens ist die Autovervollst\u00e4ndigung jetzt auch in Skripten verf\u00fcgbar. Schauen Sie sich an, wie das funktioniert!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Warum ist TestMace besser als Postman?\" src=\"\/wp-content\/uploads\/2019\/12\/3b6b4335447c0cbed7044d98831001dc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Es macht keinen Sinn, diese Funktionalit\u00e4t mit Postman zu vergleichen \u2013 dort beschr\u00e4nkt sich die Autovervollst\u00e4ndigung nur auf statische Listen von Variablen, \u00dcberschriften und deren Werten (korrigieren Sie mich, wenn ich etwas vergessen habe). Skripte werden nicht autovervollst\u00e4ndigt \ud83d\ude41<\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">Fazit<\/h1>\n<p><\/p>\n<p>Im Oktober j\u00e4hrt sich die Entwicklung unseres Produkts zum ersten Mal. In dieser Zeit haben wir viel erreicht und in einigen Aspekten unsere Konkurrenz eingeholt. Aber wie dem auch sei, unser Ziel ist es, ein wirklich benutzerfreundliches Werkzeug f\u00fcr die Arbeit mit APIs zu schaffen. Vor uns liegt noch viel Arbeit, hier ist der grobe Entwicklungsplan f\u00fcr unser Projekt f\u00fcr das kommende Jahr: <noindex><a rel=\"nofollow\" href=\"https:\/\/testmace.com\/roadmap\/\">https:\/\/testmace.com\/roadmap<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Ihr Feedback wird uns helfen, im \u00dcberfluss an Funktionen besser zu navigieren, und Ihre Unterst\u00fctzung gibt uns Kraft und Vertrauen, dass wir das Richtige tun. Heute ist ein wichtiger Tag f\u00fcr unser Projekt \u2013 der Ver\u00f6ffentlichungstag von TestMace auf <noindex><a rel=\"nofollow\" href=\"https:\/\/www.producthunt.com\/posts\/testmace\">ProductHunt<\/a><\/noindex>. Bitte unterst\u00fctzen Sie unser Projekt, das ist f\u00fcr uns sehr wichtig. Umso mehr, als dass es heute auf unserer PH-Seite ein verlockendes Angebot gibt, das zeitlich begrenzt ist.<\/p>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/480734\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043d\u0430 \u0441\u0432\u044f\u0437\u0438 TestMace! \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u043c\u043d\u043e\u0433\u0438\u0435 \u0437\u043d\u0430\u044e\u0442 \u043e \u043d\u0430\u0441 \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439. \u0414\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0441\u044f: \u043c\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u043c IDE \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API TestMace. \u0421\u0430\u043c\u044b\u0439 \u0447\u0430\u0441\u0442\u043e \u0437\u0430\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043f\u0440\u0438 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0438 TestMace \u0441 \u043a\u043e\u043d\u043a\u0443\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u043c\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430\u043c\u0438 \u2014 &#171;\u0427\u0435\u043c \u0432\u044b \u043e\u0442\u043b\u0438\u0447\u0430\u0435\u0442\u0435\u0441\u044c \u043e\u0442 Postman?&#187;. \u041c\u044b \u0440\u0435\u0448\u0438\u043b\u0438, \u0447\u0442\u043e \u043f\u043e\u0440\u0430 \u0434\u0430\u0442\u044c \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044b\u0439 \u043e\u0442\u0432\u0435\u0442 \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441. \u041d\u0438\u0436\u0435 \u043c\u044b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-54188","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043d\u0430 \u0441\u0432\u044f\u0437\u0438\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/news\/chem-testmace-luchshe-postman\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0427\u0435\u043c TestMace \u043b\u0443\u0447\u0448\u0435 Postman | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043d\u0430 \u0441\u0432\u044f\u0437\u0438\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/chem-testmace-luchshe-postman\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-12-19T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02:10+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Warum TestMace besser ist als Postman | ProHoster","description":"Hallo zusammen, hier ist","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/chem-testmace-luchshe-postman","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0427\u0435\u043c TestMace \u043b\u0443\u0447\u0448\u0435 Postman | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442, \u043d\u0430 \u0441\u0432\u044f\u0437\u0438","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/chem-testmace-luchshe-postman","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-12-19T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:10+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54188","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 10:21:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:10:33","updated":"2026-01-24 10:21:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/54188","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=54188"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/54188\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=54188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=54188"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=54188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}