Warum TestMace besser ist als Postman

Warum TestMace besser ist als Postman

Hallo zusammen, bitteschön TestMace! Vielleicht wissen viele Leute von uns наших vorherige Artikel. Für diejenigen, die gerade erst beigetreten sind: Wir entwickeln eine IDE für die Arbeit mit der TestMace-API. Die am häufigsten gestellte Frage beim Vergleich von TestMace mit Konkurrenzprodukten lautet: „Wie unterscheiden Sie sich von Postman?“ Wir haben beschlossen, dass es an der Zeit ist, eine detaillierte Antwort auf diese Frage zu geben. Nachfolgend haben wir Ihnen unsere Vorteile gegenüber aufgeführt Postman.

Aufteilung in Knoten

Wenn Sie mit Postman arbeiten, wissen Sie, dass die Anforderungsschnittstelle alle notwendigen Funktionen enthält. Es gibt Skripte, Tests und tatsächlich die Abfragen selbst. Dies macht es für Anfänger einfacher, aber in großen Szenarien ist dieser Ansatz nicht flexibel. Was ist, wenn Sie mehrere Abfragen erstellen und diese aggregieren möchten? Was ist, wenn Sie ein Skript ohne Anfrage oder mehrere logisch getrennte Skripte hintereinander ausführen möchten? Schließlich wäre es eine gute Idee, Tests von regulären Hilfsskripten zu trennen. Darüber hinaus ist der Ansatz „Alle Funktionen in einem Knoten hinzufügen“ nicht skalierbar – die Schnittstelle wird schnell überlastet.

TestMace unterteilt zunächst alle Funktionen in verschiedene Knotentypen. Möchten Sie eine Anfrage stellen? Es ist für dich Anforderungsschritt Knoten Möchten Sie ein Drehbuch schreiben? Es ist für dich Skript Knoten Benötigen Sie Tests? Bitte - Behauptung Knoten Oh ja, man kann die ganze Sache noch unter einen Hut bringen Flyer Knoten Und das alles lässt sich problemlos miteinander kombinieren. Dieser Ansatz ist nicht nur sehr flexibel, sondern erlaubt Ihnen auch, nach dem Prinzip der Einzelverantwortung nur das zu nutzen, was Sie gerade wirklich brauchen. Warum benötige ich Skripte und Tests, wenn ich nur eine Anfrage stellen möchte?

Für Menschen lesbares Projektformat

Es gibt einen konzeptionellen Unterschied zwischen TestMace und Postman in der Art und Weise, wie sie gespeichert werden. In Postman werden alle Anfragen irgendwo im lokalen Speicher gespeichert. Wenn Anfragen zwischen mehreren Benutzern geteilt werden müssen, müssen Sie die integrierte Synchronisierung verwenden. Tatsächlich ist dies ein allgemein akzeptierter Ansatz, der jedoch nicht ohne Nachteile ist. Wie sieht es mit der Datensicherheit aus? Schließlich erlauben die Richtlinien einiger Unternehmen möglicherweise keine Speicherung von Daten bei Dritten. Wir glauben jedoch, dass TestMace etwas Besseres zu bieten hat! Und der Name dieser Verbesserung ist „für Menschen lesbares Projektformat“.

Beginnen wir mit der Tatsache, dass es in TestMace grundsätzlich eine „Projekt“-Entität gibt. Und die Anwendung wurde ursprünglich mit Blick auf die Speicherung von Projekten in Versionskontrollsystemen entwickelt: Der Projektbaum wird nahezu eins zu eins auf die Dateistruktur projiziert, als Speicherformat wird Yaml verwendet (ohne zusätzliche Klammern und Kommas) und das Die Dateidarstellung jedes Knotens wird in der Dokumentation ausführlich mit Kommentaren beschrieben. Aber in den meisten Fällen werden Sie dort nicht suchen – alle Feldnamen haben logische Namen.

Was bringt das dem Benutzer? Dadurch können Sie den Arbeitsablauf im Team sehr flexibel und mit bekannten Vorgehensweisen verändern. Entwickler können beispielsweise ein Projekt im selben Repository wie das Backend speichern. In Branches kann der Entwickler nicht nur die Codebasis selbst ändern, sondern auch vorhandene Abfrageskripte und Tests korrigieren. Nachdem Sie Änderungen am Repository vorgenommen haben (git, svn, mercurial – was auch immer Ihnen am besten gefällt), startet CI (Ihr Favorit, von niemandem auferlegt) unser Konsolen-Dienstprogramm testmace-cli, und der nach der Ausführung empfangene Bericht (z. B. im Junit-Format, das auch in testmace-cli unterstützt wird) wird an das entsprechende System gesendet. Und das oben erwähnte Sicherheitsproblem ist kein Problem mehr.

Wie Sie sehen, drängt TestMace sein Ökosystem und Paradigma nicht auf. Stattdessen fügt es sich problemlos in etablierte Prozesse ein.

Dynamische Variablen

TestMace folgt dem No-Code-Konzept: Wenn ein Problem ohne den Einsatz von Code gelöst werden kann, versuchen wir, diese Möglichkeit zu bieten. Das Arbeiten mit Variablen ist genau die Art von Funktionalität, bei der man in den meisten Fällen auf Programmierung verzichten kann.

Beispiel: Wir haben eine Antwort vom Server erhalten und möchten einen Teil der Antwort in einer Variablen speichern. In Postman würden wir in einem Testskript (was an sich schon seltsam ist) so etwas schreiben:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", jsonData.data);

Aber unserer Meinung nach erscheint es überflüssig, ein Skript für ein so einfaches und häufig verwendetes Szenario zu schreiben. Daher ist es in TestMace möglich, über die grafische Oberfläche einen Teil der Antwort einer Variablen zuzuweisen. Schauen Sie, wie einfach es ist:

Warum TestMace besser ist als Postman

Und jetzt wird diese dynamische Variable bei jeder Anfrage aktualisiert. Sie können jedoch Einwände erheben und argumentieren, dass der Postman-Ansatz flexibler ist und es Ihnen ermöglicht, nicht nur eine Zuweisung vorzunehmen, sondern auch eine gewisse Vorverarbeitung durchzuführen. So ändern Sie das vorherige Beispiel:

var jsonData = JSON.parse(responseBody);
postman.setEnvironmentVariable("data", CryptoJS.MD5(jsonData.data));

Nun, für diesen Zweck hat TestMace Skript Knoten, der dieses Szenario abdeckt. Um den vorherigen Fall zu reproduzieren, der jedoch bereits von TestMace ausgeführt wurde, müssen Sie im Anschluss an die Anfrage einen Skriptknoten erstellen und den folgenden Code als Skript verwenden:

const data = tm.currentNode.prev.response.body.data;
tm.currentNode.parent.setDynamicVar('data', crypto.MD5(data));

Wie Sie sehen, hat die Zusammensetzung der Knoten auch hier gute Dienste geleistet. Und für einen so einfachen Fall wie oben beschrieben können Sie den Ausdruck einfach zuweisen ${crypto.MD5($response.data)} Variable über die GUI erstellt!

Erstellen von Tests über GUI

Mit Postman können Sie Tests erstellen, indem Sie Skripte schreiben (im Fall von Postman ist dies JavaScript). Dieser Ansatz hat viele Vorteile – nahezu unbegrenzte Flexibilität, Verfügbarkeit vorgefertigter Lösungen usw.

Die Realität sieht jedoch oft so aus (wir sind nicht so, das Leben ist so), dass ein Tester keine Programmierkenntnisse hat, aber dem Team jetzt einen Nutzen bringen möchte. In solchen Fällen können Sie mit TestMace, dem No-Code-Konzept folgend, einfache Tests über eine GUI erstellen, ohne auf das Schreiben von Skripten zurückgreifen zu müssen. So sieht beispielsweise der Prozess zum Erstellen eines Tests aus, der Werte auf Gleichheit vergleicht:

Warum TestMace besser ist als Postman

Das Erstellen von Tests in einem grafischen Editor schließt diese Möglichkeit jedoch nicht aus Tests im Code schreiben. Hier befinden sich dieselben Bibliotheken wie im Skriptknoten und chai zum Schreiben von Tests.

Es kommt häufig vor, dass eine bestimmte Abfrage oder sogar ein ganzes Skript mehrmals in verschiedenen Teilen des Projekts ausgeführt werden muss. Ein Beispiel für solche Anfragen könnte eine benutzerdefinierte mehrstufige Autorisierung sein, die die Umgebung in den gewünschten Zustand bringt usw. Generell wünschen wir uns in Bezug auf Programmiersprachen Funktionen, die in verschiedenen Teilen der Anwendung wiederverwendet werden können. In TestMace wird diese Funktion von ausgeführt Link Knoten Die Anwendung ist ganz einfach:
1) Erstellen Sie eine Abfrage oder ein Skript
2) Erstellen Sie einen Knoten vom Typ Link
3) Geben Sie in den Parametern einen Link zum im ersten Schritt erstellten Skript an

In einer erweiterten Version können Sie angeben, welche dynamischen Variablen aus dem Skript relativ zum Link an eine höhere Ebene übergeben werden. Klingt verwirrend? Nehmen wir an, wir haben einen Ordner mit dem Namen erstellt Beitrag erstellen, innerhalb dessen diesem Knoten eine dynamische Variable zugewiesen wird postId. Jetzt im Link-Knoten Beitragslink erstellen Sie können die Variable explizit angeben postId einem Vorfahren zugeordnet Beitragslink erstellen. Dieser Mechanismus (wiederum in der Programmiersprache) kann verwendet werden, um ein Ergebnis von einer „Funktion“ zurückzugeben. Im Allgemeinen ist es cool, DRY ist in vollem Gange und auch hier wurde keine einzige Codezeile beschädigt.

Warum TestMace besser ist als Postman

Für Postman gibt es eine Funktionsanforderung zur Wiederverwendung von Anforderungen hängt seit 2015, und es scheint sogar so zu sein einige Hinweisedass sie an diesem Problem arbeiten. In seiner aktuellen Form verfügt Postman natürlich über die Fähigkeit, den Ausführungsthread zu ändern, was theoretisch wahrscheinlich die Implementierung eines ähnlichen Verhaltens ermöglicht, aber dies ist eher ein schmutziger Hack als ein wirklich funktionierender Ansatz.

Andere Unterschiede

  • Größere Kontrolle über den Umfang von Variablen. Der kleinste Bereich, innerhalb dessen eine Variable in Postman definiert werden kann, ist die Sammlung. Mit TestMace können Sie Variablen für jede Abfrage oder jeden Ordner definieren. Mit der Postman Share-Sammlung können Sie nur Sammlungen exportieren, während die Freigabe in TestMace für jeden Knoten funktioniert
  • TestMace unterstützt vererbbare Header, die standardmäßig in untergeordnete Abfragen eingesetzt werden kann. Postman hat etwas dazu: Herausforderung, und es ist sogar geschlossen, wird aber als Lösung angeboten ... Skripte verwenden. In TestMace wird dies alles über die GUI konfiguriert und es gibt eine Option, geerbte Header in bestimmten Nachkommen optional zu deaktivieren
  • Rückgängig wiederholen. Funktioniert nicht nur beim Bearbeiten von Knoten, sondern auch beim Verschieben, Löschen, Umbenennen und anderen Vorgängen, die die Struktur des Projekts ändern
  • An Anfragen angehängte Dateien werden Teil des Projekts und werden mit diesem gespeichert, wobei sie im Gegensatz zu Postman perfekt synchronisiert sind. (Ja, Sie müssen Dateien nicht mehr bei jedem Start manuell auswählen und an Kollegen in Archiven übertragen.)

Funktionen, die bereits in Vorbereitung sind

Wir konnten der Versuchung nicht widerstehen, den Schleier der Geheimhaltung über die nächsten Veröffentlichungen zu lüften, insbesondere wenn die Funktionalität sehr lecker ist und bereits vor der Veröffentlichung aufpoliert wird. Also, treffen wir uns.

Funktionen

Wie Sie wissen, verwendet Postman sogenannte dynamische Variablen, um Werte zu generieren. Die Liste davon ist beeindruckend und die überwiegende Mehrheit der Funktionen wird verwendet, um gefälschte Werte zu generieren. Um beispielsweise eine zufällige E-Mail zu generieren, müssen Sie Folgendes schreiben:

{{$randomEmail}}

Da es sich jedoch um Variablen (wenn auch dynamische) handelt, können sie nicht als Funktionen verwendet werden: Sie sind nicht parametrisierbar, daher ist es nicht möglich, einen Hash aus einer Zeichenfolge zu ermitteln.

Wir planen, TestMace um „ehrliche“ Funktionen zu erweitern. Direkt in ${} wird es nicht nur möglich sein, auf eine Variable zuzugreifen, sondern auch eine Funktion aufzurufen. Diese. Wenn Sie die berüchtigte gefälschte E-Mail generieren müssen, schreiben wir Ihnen einfach

${faker.internet.email()}

Neben der Tatsache, dass es sich um eine Funktion handelt, werden Sie feststellen, dass es möglich ist, eine Methode für ein Objekt aufzurufen. Und statt einer großen flachen Liste dynamischer Variablen haben wir eine Reihe logisch gruppierter Objekte.

Was ist, wenn wir den Hash einer Zeichenfolge berechnen möchten? Leicht!

${crypto.MD5($dynamicVar.data)}

Sie werden feststellen, dass Sie sogar Variablen als Parameter übergeben können! An dieser Stelle könnte ein neugieriger Leser vermuten, dass etwas nicht stimmt ...

Verwendung von JavaScript in Ausdrücken

... Und das aus gutem Grund! Als die Anforderungen für Funktionen formuliert wurden, kamen wir plötzlich zu dem Schluss, dass gültiges Javascript in Ausdrücken geschrieben werden sollte. Jetzt können Sie Ausdrücke schreiben wie:

${1 + '' + crypto.MD5('asdf')}

Und das alles ohne Skripte, direkt in den Eingabefeldern!

Was Postman betrifft, können Sie hier nur Variablen verwenden, und wenn Sie versuchen, den kleinsten Ausdruck zu schreiben, flucht der Validator und weigert sich, ihn zu berechnen.

Warum TestMace besser ist als Postman

Erweiterte Autovervollständigung

Derzeit verfügt TestMace über eine Standard-Autovervollständigung, die wie folgt aussieht:

Warum TestMace besser ist als Postman

Hier wird zusätzlich zur Autovervollständigungszeile angegeben, wozu diese Zeile gehört. Dieser Mechanismus funktioniert nur in Ausdrücken, die in Klammern ${} stehen.

Wie Sie sehen können, wurden visuelle Markierungen hinzugefügt, die den Typ der Variablen angeben (z. B. Zeichenfolge, Zahl, Array usw.). Sie können auch die Autovervollständigungsmodi ändern (z. B. können Sie die automatische Vervollständigung mit Variablen oder Headern auswählen). Aber auch das ist nicht das Wichtigste!

Erstens funktioniert die automatische Vervollständigung auch in Ausdrücken (sofern möglich). So sieht es aus:

Warum TestMace besser ist als Postman

Und zweitens ist die automatische Vervollständigung jetzt in Skripten verfügbar. Schauen Sie sich an, wie es funktioniert!

Warum TestMace besser ist als Postman

Es macht keinen Sinn, diese Funktionalität mit Postman zu vergleichen – die automatische Vervollständigung ist dort nur auf statische Listen von Variablen, Headern und deren Werten beschränkt (korrigieren Sie mich, wenn ich etwas vergessen habe). Skripte werden nicht automatisch vervollständigt :)

Abschluss

Der Oktober war ein Jahr seit Beginn unserer Produktentwicklung. In dieser Zeit haben wir viel geschafft und in mancher Hinsicht zu unseren Mitbewerbern aufgeschlossen. Aber wie dem auch sei, unser Ziel ist es, ein wirklich praktisches Tool für die Arbeit mit APIs zu entwickeln. Wir haben noch viel Arbeit vor uns, hier ist ein grober Plan für die Entwicklung unseres Projekts für das kommende Jahr: https://testmace.com/roadmap.

Ihr Feedback wird es uns ermöglichen, uns besser in der Fülle der Funktionen zurechtzufinden, und Ihre Unterstützung gibt uns Kraft und die Zuversicht, dass wir das Richtige tun. Zufälligerweise ist heute ein wichtiger Tag für unser Projekt – der Tag, an dem TestMace veröffentlicht wurde Produkthunt. Bitte unterstützen Sie unser Projekt, es liegt uns sehr am Herzen. Darüber hinaus gibt es heute auf unserer PH-Seite ein verlockendes Angebot, das begrenzt ist

Source: habr.com

Kommentar hinzufügen