Erweitere deine Sammlung von Requests um verschiedene Aspekte zum automatisierten Testen.
Die erweiterte Version der Bookshelf-API (https://it.bzz.ch/book/ext/
) umfasst eine Authentifikation und Autorisation.
Ein Aufrufer kann eine von drei Rollen haben:
Rolle | Benutzername | Passwort | Berechtigung |
---|---|---|---|
admin | admin | admin | Zugriff auf alle API-Funktionen |
user | musterh | geheim | Zugriff auf die Funktionen read und list |
guest | - | - | Zugriff auf die Funktion login |
Ein Aufrufer der kein gültiges Token besitzt, erhält die Rolle guest
zugewiesen.
Der darf ausschliesslich die Funktion login
aufrufen, um sich zu authentifizieren.
Fehlt dem Aufrufer die Berechtigung für die aufgerufene Funktion, so antwortet die API mit http-Statuscode 403 (Forbidden)
Um diese Ziele zu erreichen, lassen wir die Testfälle 1x pro Rolle durchlaufen. Für jeden Durchlauf verwenden wir das Login für die entsprechende Rolle.
Für diese Aufgabe stelle ich dir eine Collection zur Verfügung, welche die wichtigsten Requests beinhaltet. Lade die Collection “ Bookshelf_Python.postman_collection.json” von Moodle herunter. Importiere diese Collection in Postman.
Aus den letzten Aufgaben haben wir bereits die Variablen für die URL und das Token.
Zusätzlich verwende ich die Variable role
um zu speichern, mit welche Rolle ich aktuell testen.
Ganz ohne neue Requests geht es nicht. In der importierten Collection findest du 4 zusätzliche Requests.
Dieser Request initialisiert und steuert die Verarbeitung der Testdurchläufe. Er sendet nur pro-forma eine Anfrage, sondern legt lediglich die Werte der Variablen fest. Im Reiter “Pre-request Script” findet du die Beschreibung der Logik, die du umsetzen musst.
Daneben gibt es 3 Requests, welche die login
-Funktion mit unterschiedlichen Daten aufrufen.
Dieser Request sendet den Benutzernamen und Passwort des Administators. Bei tests musst du drei Punkte umsetzen:
token
aus der JSON-Response in die Umgebungsariable token
.Dieser Request sendet den Benutzernamen und Passwort des Administators. Bei tests musst du drei Punkte umsetzen:
token
aus der JSON-Response in die Umgebungsariable token
.Dieser Request sendet einen unbekannte Benutzernamen und Passwort. Bei tests musst du zwei Punkte umsetzen:
In der Logik der tests müssen wir die unterschiedlichen Benutzerrollen berücksichtigen. Je nach Benutzerrolle wird der gleiche Request einen anderen http-Statuscode und andere Daten liefern.
Passe die Logik der tests so an, dass sie bei jeder Benutzerrolle korrekt reagieren.