Objectif : vous expliquer comment mettre en place des tests fonctionnels avec Postman.
Postman permet de créer des collections et surtout, de variabiliser les appels.
Nous allons voir comment utiliser ces variables pour dynamiser votre collection.
Les variables d’environnements
Pour ajouter un environnement, cliquez sur l’icône en forme d’œil puis sur [Add] :

A partir de là, vous allez ajouter l’URL de votre API.
Vous pourrez utiliser cette variable dans les url de votre projet.
Exemple : POST {{api_ec}}/signup
Les variables dans notre body
Nous allons prendre en exemple un POST {{api_ec}}/signup
Postman vous propose des variables auto-générées ($randomFirstName
ou $randomLastName
par exemple). Vous pouvez aussi avoir vos propres variables. Elles peuvent venir de l’environnement ou du runner. Nous allons voir tous les cas possibles.
Body
{
"email": "{{login}}",
"firstName": "{{$randomFirstName}}",
"lastName": "{{$randomLastName}}",
"password": "{{password}}",
"someData": {{someData}}
}
Pre-request Script
Dans cette partie, vous pourrez greffer un comportement sur votre API, et faire un traitement avant que la request ne soit lancée.
Dans cet exemple, vous allez set les variables d’environnements pour que les variables de notre body soient définies.
const moment = require('moment');
pm.environment.set("timestamp", moment().format("X"));
pm.environment.set("login", "testpm"+pm.environment.get('timestamp')+"@test.fr");
pm.environment.set("password", "MonSup3rM0d3p4ss!");
pm.environment.set('someData', JSON.stringify({
"zipCode": "75017",
"municipality": "Paris",
"streetNumber": "95 ",
"street": "rue La Boétie"
}));
Les runners
Dans un fichier CSV, vous pouvez avoir toutes vos variables.
Cela vous permet de lancer vos requests avec différentes valeurs.
Chaque variable présente dans le fichier d’import prendra l’ascendant sur la variable d’environnement (et sur le pre-request script).

Fichier CSV d’exemple:
someData,login
"{ ""zipCode"": ""75017"", ""municipality"": ""Paris"", ""streetNumber"": ""99"", ""street"": ""Boulevard des Batignolles"", ""peopleNumber"": 2, ""housingType"": ""INDIVIDUAL"", ""area"": 30, ""constructionYear"": ""BEFORE1974"", ""isIsolation"": true, ""waterHeatingType"": ""ELECTRICITY"", ""houseHeatingType"": ""ELECTRICITY"", ""bakingHeatingType"": ""ELECTRICITY"", ""electricityPower"": 6, ""connectedToGas"": true}",mytest@test.fr
"{ ""zipCode"": ""75017"", ""municipality"": ""Paris"", ""streetNumber"": ""19"", ""street"": ""Boulevard des Batignolles"", ""peopleNumber"": 2, ""housingType"": ""INDIVIDUAL"", ""area"": 30, ""constructionYear"": ""BEFORE1974"", ""isIsolation"": true, ""waterHeatingType"": ""ELECTRICITY"", ""houseHeatingType"": ""ELECTRICITY"", ""bakingHeatingType"": ""ELECTRICITY"", ""electricityPower"": 6, ""connectedToGas"": true}",mytest2@test.fr
Tests
Cette partie correspond au test fonctionnel de votre API.
Vous pouvez aussi lire des valeurs pour les ajouter aux variables d’environnements afin de vous en servir plus tard (access_token par exemple).
Il y a plusieurs types de tests possibles et plusieurs exemples disponibles depuis l’interface de Postman.
jsonData = pm.response.json();
pm.test("Status code is 201", function () {
pm.response.to.have.status(201);
});
var schema = {
"status": {
"type": "int"
},
"AccessToken": {
"type": "string"
},
"TokenType": {
"type": "string"
},
"RefreshToken": {
"type": "string"
},
"ExpiresIn": {
"type": "int"
},
"user_id": {
"type": "string"
},
"Groups": {
"type": "array"
},
"Username": {
"type": "string"
},
};
pm.test('Schema is valid', function () {
pm.expect(tv4.validate(jsonData, schema)).to.be.true;
});
pm.test("Token Type", function() {
pm.expect(jsonData.TokenType).to.eql('Bearer');
});
pm.environment.set("access_token", jsonData.AccessToken);
pm.environment.set("refresh_token", jsonData.RefreshToken);
pm.environment.set("login", jsonData.login);