Postman

Einblicke in Postman

Version 6.0.7
Marcel Thole

Agenda

  • Was ist Postman?
  • Was kann Postman?
  • Mit Postman Scripte ausführen
  • Postman Account Funktionen
  • Demo

Was ist Postman?

  • REST-Client
  • Ehemals ein Chrome Plugin
  • Windows, Linux und Mac Client

Was kann Postman?

HTTP Requests senden

  • Verschiedene Request Typen
    GET, POST, PUT, PATCH, DELETE, COPY, HEAD, OPTIONS, LINK, UNLINK, PURGE, LOCK, UNLOCK, PROPFIND, VIEW
  • Syntax Highlight für XML und JSON
  • History über zuletzt gesendete Requests

Collections

  • Ansammlung von Requests
  • Kann folgende Bereiche vordefinieren:
    • Authorization Header
    • Pre-Request Scripts
    • Tests
    • Variablen
  • Unterteilung in Ordner
  • Import / Export

Collection Runner

  • Ausführen einer kompletten Collection
  • Nutzen von Variablen aus einer CSV, oder JSON Datei
    • Nur eine Datei pro Collection
  • Verschiedene Use-Cases einer Collection abbilden
  • Automatisiert mit newman

Beispiele

  • Speichern der Requests mit Response
  • Damit können Mock-Server erstellt werden

Variablen

  • Festlegen von global Parametern
  • Festlegen von collection Parametern
  • Festlegen von enviroment Parametern
  • Festlegen von local Parametern
  • Festlegen von data Parametern

Authentication Header

  • Vordefinierte Möglichkeiten
    • Bearer Token
    • Basic & Digest Auth
    • OAuth 1.0 & 2.0
    • Hawk Authentication
    • AWS Signature
    • NTLM Authentication
  • Eigene Header natürlich möglich
    • Support von crypto.js

Requests aufzeichnen

  • Erstellung eines Proxys via Postman
  • Alle Requests werden in einer definierten Collection gespeichert

Code Snippets

  • Export der Requests für die Shell, PHP oder JavaScript

SOAP Support

  • Möglich, da es nur ein XML Request ist
  • Externe Tools zum konvertieren einer WSDL in eine Collection

Mit Postman Scripte ausführen

Pre-Request Scripts

  • Setzen und Auswerten von Variablen
  • Support für eingebaute Pakete und Node.js Module
    crypto.js, loadash, moment, tv4, uuid, uvm.
pm.sendRequest("https://postman-echo.com/get", function (err, response) {
    console.log(response.json());
});
pm.environment.get("variable_key");
pm.variables.set("variable_key");

var hash = CryptoJS.MD5("Message");
console.log(hash.toString())
                

Test Scripts (Post-Request)

  • Vergleich des JSON Schemas
  • Tests via Collection-Runner über komplette Collection
    • Nutzen von Variablen aus Collection-Runner Datei
  • Ausführbar über Postman & automatisiert über newman oder ein eigenes JavaScript
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});

var schema = {
  "items": {
    "type": "boolean"
  }
};

var data1 = [true, false];
var data2 = [true, 123];

pm.test('Schema is valid', function() {
  pm.expect(tv4.validate(data1, schema)).to.be.true;
  pm.expect(tv4.validate(data2, schema)).to.be.true;
});
                

Postman Account Funktionen

Preismodell

  • Kostenloser Account
  • Pro Account für 8$ pro User/Monat
  • Enterprise Account für 21$ pro User/Monat

Datenschutz

  • Daten liegen auf AWS
  • California Online Privacy Protection Act
  • Environment und Globale Variablen sind verschlüsselt

Workspaces

  • Speichern von verschiedenen Arbeitsbereichen
  • Unterteilen von mehreren Collections pro Projekt

Sync

  • Synchronisierung der Collections, Environments und globalen Variablen
  • Teilen von Collections via Link
  • PRO Teilen von Collections im Team mit Berechtigungen

Monitoring

  • 1.000 Requests pro Monat
  • PRO 10.000 Requests pro Monat
monitoring example

Dokumentation

  • Beschreibung der Endpunkte und Variablen
  • Support für Markdown
  • Öffentliche und Private Freigabe möglich
  • 1.000 Views pro Monat
  • PRO 1.000.000 Views pro Monat

Mocks

  • Speichern der Beispiele als externen Service
  • 1.000 Requests pro Monat
  • PRO 1.000.000 Requests pro Monat

Ende


Fragen?