Postman

De Banane Atomic
Aller à la navigationAller à la recherche

Preset Headers

Permet de définir des headers par défaut.

  • Headers → presets (à droite)
    • Ajouter des presets: Manage presets
    • Charger un preset: {PresetName}

Environment

Permet de définir des variables par environnement.

  • Ajouter des environnement: Engrenage à droite
  • Changer d'environnement: liste déroulante "No environment"

Variable: {{MyVar}}

Import

Permet d'importer une requête copiée le navigateur

  • firefox → developer tools → network
  • make a query
  • clique-droit sur la requete → Copy → Copy as cURL
  • Postman → Import → Paste Raw Text

Proxy

Permet de capturer le traffic.

  • Icone antenne (en haut à droite)

Tests

Dans une requête → onglet Tests

Js.svg
pm.test("Successful GET request", function () {
    pm.response.to.have.status("OK");
});

pm.test("Returns 5 items", function () {
    const items = pm.response.json();
    pm.expect(items.length).to.eql(5);
});

pm.test("All items should have a name", function () {
    const items = pm.response.json();
    pm.expect(items.every((item) => {
        return item.name !== undefined;
    })).to.be.true;
});

// stocker le résultat dans une variable globale
pm.globals.set("MyVar", pm.response.json().myVar);
// désallouer une varible ue fois que l'on ne s'en sert plus
pm.globals.unset("MyVar");

// appeler la requête suivante
postman.setNextRequest("Request Name");

External libraries

Js.svg
// include external library
const moment = require('moment');

NodeJS modules available:

  • lodash
  • moment
  • path
  • assert
  • buffer
  • util
  • url
  • punycode
  • querystring
  • string_decoder
  • stream
  • timers
  • events

Pre-request script

Ordre d'exécution:

  1. Pre-request script
  2. Request
  3. Response
  4. Test
Js.svg
pm.globals.set("ids", []);

const getItems = {
    url: "http://{{host}}/items",
    method: "GET"
}

pm.sendRequest(getItems, function(err, items)) {
    const ids = _maps(items.json(), function(item) {
        return item.id;
    });

    pm.globals.set("ids", ids);
}

Automatically add Bearer tokens

Js.svg
const tokenUrl = pm.environment.get('oauth-token-url');
const clientId = pm.environment.get('oauth-token-id');
const clientSecret = pm.environment.get('oauth-token-secret');
const scope = 'resource.READ';
const grantType = 'client_credentials';

const getTokenRequest = {
    method: 'POST',
    url: tokenUrl,
    header: [{ key: 'Content-Type', value: 'application/x-www-form-urlencoded' }],
    body: {
        mode: 'urlencoded',
        urlencoded: [
            { key: 'client_id', value: clientId },
            { key: 'client_secret', value: clientSecret },
            { key: 'grant_type', value: grantType },
            { key: 'scope', value: scope }
        ]
    }
};

pm.sendRequest(getTokenRequest, (err, response) => {
    const jsonResponse = response.json();
    newAccessToken = jsonResponse.access_token;

    pm.environment.set('accessToken', newAccessToken);
});

Authorization → Type = BearerToken → Token = {{accessToken}}

Collections

Permet de sauvegarder des requêtes.

  • Sauvegarder une rêquete: bouton Save à droite
  • Afficher les collections: onglet Collection à gauche

Data

  • Onglet Collections → triangle à droite du nom d'une collection → Run
  • Collection Runner → Data: Select File
Js.svg
// get the items from the data file
const items = data.items;

// get randomly one of the item
var item = _.sample(items);

Errors

self signed certificate in certificate chain

  1. File → Settings
  2. General tab → SSL certificate verification = OFF