TestMace. Schneller Start

TestMace. Schneller Start

Hallo zusammen. Wir treten langsam aus dem Schatten hervor und setzen die Artikelserie über unser Produkt fort. Nach vorheriges Zum Rezensionsartikel haben wir viel Feedback (überwiegend positiv), Vorschläge und Fehlerberichte erhalten. Heute zeigen wir es TestMace in Aktion und Sie werden einige der Funktionen unserer Anwendung zu schätzen wissen. Für ein umfassenderes Eintauchen empfehle ich Ihnen, unsere Dokumentation unter zu lesen http://docs-ru.testmace.com. So lass uns gehen!

Einstellung

Beginnen wir mit der Banalität. Die Anwendung ist auf drei Plattformen verfügbar und tatsächlich getestet: Linux, Windows, MacOS. Sie können das Installationsprogramm für das Betriebssystem herunterladen, an dem Sie interessiert sind unsere Internetseite. Für Linux-Benutzer ist die Installation möglich Snap-Paket. Wir hoffen sehr, dass der Microsoft Store und der App Store bald dazu kommen (Ist das notwendig? Was meint Ihr?).

Experimentelles Szenario

Als Testobjekt haben wir folgendes Standardszenario gewählt:

  • Login: Benutzer – Admin, Passwort – Passwort
  • einen neuen Eintrag hinzufügen
  • Überprüfen wir, ob der Datensatz korrekt hinzugefügt wurde

Wir werden weiter testen https://testmace-quick-start.herokuapp.com/. Das ist normal JSON-Server, perfekt zum Testen solcher Anwendungen. Wir haben gerade allen JSON-Server-Routen die Autorisierung per Token hinzugefügt und eine Anmeldemethode erstellt, um dieses Token zu empfangen. Wir werden schrittweise vorgehen und unser Projekt schrittweise verbessern.

Erstellen Sie ein Projekt und versuchen Sie, ohne Autorisierung eine Entität zu erstellen

Erstellen wir zunächst ein neues Projekt (Reichen Sie das->Neues Projekt). Wenn Sie die Anwendung zum ersten Mal starten, wird automatisch ein neues Projekt geöffnet. Versuchen wir zunächst, eine Anfrage zum Erstellen eines neuen Datensatzes zu stellen (falls das Erstellen von Datensätzen ohne Autorisierung möglich ist). Wählen Sie Elemente aus dem Kontextmenü des Projektknotens aus Knoten hinzufügen -> RequestStep. Legen Sie den Knotennamen auf fest Beitrag erstellen. Dadurch wird ein neuer Knoten im Baum erstellt und eine Registerkarte für diesen Knoten geöffnet. Lassen Sie uns die folgenden Anforderungsparameter festlegen:

TestMace. Schneller Start

Wenn wir jedoch versuchen, der Anfrage nachzukommen, gibt der Server einen 401-Code zurück und ohne Autorisierung erhalten wir nichts auf diesem Server. Nun, im Allgemeinen wie erwartet).

Hinzufügen einer Autorisierungsanfrage

Wie bereits gesagt, wir haben einen POST-Endpunkt /login, das JSON als Anforderungstext des Formulars verwendet: {"username": "<username>", "password": "<password>"}Wo username и password (wieder aus dem einleitenden Absatz oben) haben Bedeutungen admin и password jeweils. Als Antwort gibt dieser Endpunkt JSON zurück {"token": "<token>"}. Wir werden es zur Autorisierung verwenden. Lasst uns kreieren RequestStep Knoten mit Namen login, wird als Vorfahr fungieren Projekt Knoten Verschieben Sie per Drag-and-Drop einen bestimmten Knoten im Baum höher als den Knoten Beitrag erstellen. Lassen Sie uns die folgenden Parameter für die neu erstellte Anfrage festlegen:

Lassen Sie uns die Anfrage ausführen und den zweihundertsten Code mit dem Token in der Antwort erhalten. Irgendwie so:

TestMace. Schneller Start

Refactoring: Entfernen von Domänenduplikaten

Bisher sind die Anfragen nicht in einem einzigen Skript verknüpft. Dies ist jedoch nicht der einzige Nachteil. Wenn Sie genau hinschauen, werden Sie feststellen, dass in beiden Anfragen zumindest die Domain doppelt vorhanden ist. Nicht gut. Es ist an der Zeit, diesen Teil des zukünftigen Skripts umzugestalten, und Variablen werden uns dabei helfen.

In erster Näherung erfüllen Variablen die gleiche Rolle wie in anderen ähnlichen Tools und Programmiersprachen – sie eliminieren Duplikate, erhöhen die Lesbarkeit usw. Weitere Informationen zu Variablen finden Sie unter unsere Dokumentation. In diesem Fall benötigen wir Benutzervariablen.

Definieren wir eine Variable auf der Ebene des Projektknotens domain mit Bedeutung https://testmace-quick-start.herokuapp.com. Dafür ist es notwendig

  • Öffnen Sie die Registerkarte mit diesem Knoten und klicken Sie oben rechts auf das Taschenrechnersymbol
  • Klicke auf + VARIABLE HINZUFÜGEN
  • Geben Sie den Namen und den Wert der Variablen ein
    In unserem Fall sieht der Dialog mit der hinzugefügten Variable folgendermaßen aus:

TestMace. Schneller Start

OK. Aufgrund der Vererbung können wir diese Variable nun in Nachkommen jeder Verschachtelungsebene verwenden. In unserem Fall handelt es sich um Knoten login и Beitrag erstellen. Um eine Variable in einem Textfeld verwenden zu können, müssen Sie schreiben ${<variable_name>}. Beispielsweise wird die Anmelde-URL in konvertiert ${domain}/login, bzw. für Beitrag erstellen Die Knoten-URL wird so aussehen ${domain}/posts.

Daher haben wir, geleitet vom DRY-Prinzip, das Szenario leicht verbessert.

Speichern Sie das Token in einer Variablen

Da wir über Variablen sprechen, wollen wir dieses Thema etwas näher erläutern. Derzeit erhalten wir bei erfolgreicher Anmeldung vom Server ein Autorisierungstoken, das wir bei nachfolgenden Anfragen benötigen. Speichern wir dieses Token in einer Variablen. Weil Der Wert der Variablen wird während der Skriptausführung bestimmt. Wir verwenden hierfür einen speziellen Mechanismus - dynamische Variablen.

Führen wir zunächst eine Anmeldeanfrage durch. In der Registerkarte Analysiert Um die Antwort zu beantworten, bewegen Sie den Cursor über das Token und wählen Sie im Kontextmenü (das entweder mit der rechten Maustaste oder durch Klicken auf die Schaltfläche ... aufgerufen wird) das Element aus Einer Variablen zuweisen. Es erscheint ein Dialog mit den folgenden Feldern:

  • Path – welcher Teil der Antwort übernommen wird (in unserem Fall ist es so). body.token)
  • Aktueller Wert – welcher Wert liegt entlang des Pfades (in unserem Fall ist dies der Token-Wert)
  • Variablennamen — Name der Variablen wo Aktueller Wert bleibt erhalten. In unserem Fall wird es so sein token
  • Knoten — in welchem ​​der Vorfahren die Variable erstellt wird Variablennamen. Wählen wir „Projekt“ aus

Der fertige Dialog sieht so aus:

TestMace. Schneller Start

Jetzt wird der Knoten jedes Mal ausgeführt login dynamische Variable token wird mit dem neuen Wert aus der Antwort aktualisiert. Und diese Variable wird in gespeichert Projekt Knoten und steht dank der Vererbung den Nachkommen zur Verfügung.

Um auf dynamische Variablen zuzugreifen, müssen Sie verwenden eingebaute Variable $dynamicVar. Um beispielsweise auf ein gespeichertes Token zuzugreifen, müssen Sie anrufen ${$dynamicVar.token}.

Wir übergeben das Autorisierungstoken an Anfragen

In den vorherigen Schritten haben wir das Autorisierungstoken erhalten und müssen lediglich einen Header hinzufügen Authorization mit Bedeutung Bearer <tokenValue> in allen genehmigungspflichtigen Anfragen, einschließlich Beitrag erstellen. Dafür gibt es mehrere Möglichkeiten:

  1. Kopieren Sie das Token manuell und fügen Sie den gewünschten Anforderungen einen Autorisierungsheader hinzu. Die Methode funktioniert, ihre Verwendung ist jedoch nur auf Anfragen vom Typ „gemacht und weggeworfen“ beschränkt. Nicht für die wiederholte Ausführung von Skripten geeignet
  2. Nutzen Sie die Funktionalität Genehmigung.
  3. Zu verwenden Standard-Header

Die Verwendung der zweiten Methode scheint naheliegend, aber im Kontext dieses Artikels ist dieser Ansatz ... uninteressant. Nun ja, wirklich: Den Autorisierungsmechanismus Plus-Minus kennen Sie von anderen Tools (auch wenn wir solche haben). Autorisierungsvererbung) und wird wahrscheinlich keine Fragen aufwerfen.

Eine andere Sache sind die Standard-Header! Kurz gesagt handelt es sich bei Standardheadern um geerbte HTTP-Header, die der Anfrage standardmäßig hinzugefügt werden, sofern sie nicht explizit deaktiviert werden. Mit dieser Funktionalität können Sie beispielsweise eine benutzerdefinierte Autorisierung implementieren oder einfach Duplikate in Skripten beseitigen. Nutzen wir diese Funktion, um ein Token in den Headern zu übergeben.

Zuvor haben wir das Token vorsichtig in einer dynamischen Variablen gespeichert $dynamicVar.token auf der Ebene des Projektknotens. Es bleibt nur noch Folgendes zu tun:

  1. Definieren Sie den Standardtitel Authorization mit Bedeutung Bearer ${$dynamicVar.token} auf der Ebene des Projektknotens. Dazu müssen Sie in der Projektoberfläche des Knotens einen Dialog mit Standardüberschriften öffnen (Schaltfläche Headers in der oberen rechten Ecke) und fügen Sie einen entsprechenden Titel hinzu. Der Dialog mit den ausgefüllten Werten sieht folgendermaßen aus:
    TestMace. Schneller Start
  2. Deaktivieren Sie diesen Header in der Anmeldeanforderung. Das ist verständlich: Zum Zeitpunkt der Anmeldung haben wir noch kein Token und werden es mit dieser Anfrage installieren. Daher in der Login-Schnittstelle die Anfrage im Tab Headers in Ererbt Deaktivieren Sie den Autorisierungsheader.

Das ist alles. Jetzt wird der Autorisierungsheader allen Anforderungen hinzugefügt, die untergeordnete Elemente des Projektknotens sind, mit Ausnahme des Anmeldeknotens. Es stellt sich heraus, dass wir zu diesem Zeitpunkt bereits ein Skript haben und es nur noch starten müssen. Sie können das Skript ausführen, indem Sie auswählen Führen Sie im Kontextmenü des Projektknotens.

Überprüfung der Korrektheit der Beitragserstellung

In dieser Phase kann sich unser Skript anmelden und mithilfe eines Autorisierungstokens einen Beitrag erstellen. Wir müssen jedoch sicherstellen, dass der neu erstellte Beitrag den richtigen Namen hat. Das heißt im Wesentlichen, dass nur noch Folgendes zu tun ist:

  • Senden Sie eine Anfrage, um einen Beitrag per ID zu erhalten.
  • Überprüfen Sie, ob der vom Server empfangene Name mit dem Namen übereinstimmt, der beim Erstellen des Beitrags gesendet wurde

Schauen wir uns den ersten Schritt an. Da der ID-Wert während der Skriptausführung ermittelt wird, müssen Sie eine dynamische Variable erstellen (nennen wir sie postId) vom Knoten Beitrag erstellen auf der Ebene des Projektknotens. Wir wissen bereits, wie das geht, schauen Sie sich einfach den Abschnitt an Speichern Sie das Token in einer Variablen. Jetzt müssen Sie nur noch eine Anfrage erstellen, um einen Beitrag mit dieser ID zu erhalten. Erstellen wir dazu einen RequestStep get-post mit folgenden Parametern:

  • Anforderungstyp: GET
  • URL: ${domain}/posts/${$dynamicVar.postId}

Um den zweiten Schritt umzusetzen, müssen wir uns damit vertraut machen Behauptung Knoten. Ein Assertion-Knoten ist ein Knoten, der es Ihnen ermöglicht, Schecks für bestimmte Anfragen zu schreiben. Jeder Assertion-Knoten kann mehrere Assertionen (Prüfungen) enthalten. Weitere Informationen zu allen Arten von Behauptungen finden Sie in unserem Dokumentation. Wir werden verwenden Compare Behauptung mit Operator equal. Es gibt mehrere Möglichkeiten, Behauptungen zu erstellen:

  1. Lang. Erstellen Sie manuell einen Assertion-Knoten über das Kontextmenü des RequestStep-Knotens. Fügen Sie im erstellten Assertion-Knoten die gewünschte Assertion hinzu und füllen Sie die Felder aus.
  2. Schnell. Erstellen Sie über das Kontextmenü einen Assertion-Knoten zusammen mit einer Assertion aus der Antwort des RequestStep-Knotens

Lassen Sie uns die zweite Methode verwenden. So wird es in unserem Fall aussehen.

TestMace. Schneller Start

Für diejenigen, die es nicht verstehen, hier ist, was passiert:

  1. Stellen Sie eine Anfrage im Knoten get-post
  2. Der Reiter Analysiert antworten, Kontextmenü aufrufen und auswählen Behauptung erstellen -> Vergleichen -> Gleich

Herzlichen Glückwunsch, wir haben unseren ersten Test erstellt! Ganz einfach, nicht wahr? Jetzt können Sie das Skript vollständig ausführen und das Ergebnis genießen. Es bleibt nur noch, es ein wenig umzugestalten und herauszunehmen title in eine separate Variable. Aber das überlassen wir Ihnen als Hausaufgabe)

Abschluss

In diesem Leitfaden haben wir ein umfassendes Szenario erstellt und gleichzeitig einige Funktionen unseres Produkts überprüft. Natürlich haben wir nicht alle Funktionen genutzt und werden in den folgenden Artikeln einen detaillierten Überblick über die Möglichkeiten von TestMace geben. Bleiben Sie dran!

PS Für diejenigen, die zu faul sind, alle Schritte zu reproduzieren, haben wir freundlicherweise aufgezeichnet Repository mit dem Projekt aus dem Artikel. Sie können es mit öffnen Reichen Sie das -> Offenes Projekt und wählen Sie den Projektordner aus.

Source: habr.com

Kommentar hinzufügen