Variablen in Bruno erleichtern das Anpassen von Requests an unterschiedliche Bedingungen.
Im Verlauf der Entwicklung wird eine Applikation zunächst in der Entwicklungsumgebung ausgeführt.
Für die Requests in Bruno bedeutet dies in der Regel, dass unsere API unter einem Pfad wie http://localhost:5000/…
erreichbar ist.
Später werden wir die Applikation auf unser Testsystem deployen.
Der Pfad im Testsystem könnte z.B. https://test.bzz.ch/…
sein.
Ich möchte meine API-Tests in beiden Umgebungen nutzen können. Welche Möglichkeiten habe ich?
Um eine solche Umgebungsvariable einzusetzen, benötigen wir nur wenige Schritte:
dev.json
oder test.json
). http://localhost:5000
oder https://test.bzz.ch
). {{baseUrl}}/book/list
. Damit die Variablen in den Requests auch wirklich genutzt werden, musst du in Bruno das passende Environment aktivieren:
Environment
. dev
oder test
) aus. {{...}}
mit den Werten aus deiner Environment-Datei. So kannst du mit denselben Requests sowohl gegen die Entwicklungs- als auch die Testumgebung arbeiten, ohne etwas am Request selbst ändern zu müssen.
Mit Variablen können wir auch Werte aus einer Response speichern und in einem anderen Request wiederverwenden.
Bei vielen APIs brauchen wir ein Token, welches unsere Identität und Berechtigungen enthält. Dieses Token erhalten wir, indem wir einen Login-Request senden.
Ich zeige hier ein Beispiel, wie ich das mit Bruno umsetze.
Der Request sendet die Login-Daten für einen Studenten. Die Response ist eine JSON-Struktur, die das Token enthält.
Script im Bereich „Tests“
test("Status test", () => { // HTTP-Status prüfen expect(res.status).to.equal(200); // JSON-Daten aus der Response holen const data = res.json(); // Token im Environment speichern bru.setEnvVar("token", data.token, { persist: true }); });
Dieser Request liest alle Anmeldungen zum angemeldeten Studenten. Dazu muss das Token aus dem ersten Request mitgesendet werden. Dieses Token wird im Header des Requests mitgesendet und nicht in der URL.
Token in „headers“
Authorization
Bearer {{token}}