Automatisation d'API, de zéro à confiant · Leçon 2 sur 6

Recréez-le en code : requests + pytest avec état partagé

Postman est génial pour fouiller à la main. Mais un examinateur veut une suite qui se lance elle-même, de la même façon, à chaque fois. Bonne nouvelle — le même flux CRUD passe en Python presque à l'identique.

Par Shahriyar · Mis à jour

L'idée, en une ligne

La bibliothèque requests envoie les appels HTTP, et pytest exécute vos vérifications et vous dit quand l'une échoue. Ensemble ils transforment vos clics Postman en code versionné.

Les gestes que vous utiliserez

Voyez-le à l'œuvre

Les vraies API sont à état : vous créez un enregistrement, puis lisez, mettez à jour et supprimez ce même id. Un requests.Session() garde les réglages partagés (comme les en-têtes par défaut) à travers les appels, et une fixture pytest — un setup réutilisable — passe cette session à chaque test.

▸ try it
import requests, pytest

BASE = "https://jsonplaceholder.typicode.com"

@pytest.fixture
def session():
    s = requests.Session()
    s.headers.update({"Accept": "application/json"})
    return s  # reused across the calls in one test

def test_create_then_read(session):
    # CREATE
    r = session.post(f"{BASE}/posts",
                     json={"title": "qa", "userId": 1}, timeout=5)
    assert r.status_code == 201
    new_id = r.json()["id"]        # carry this id forward

    # READ the same resource
    r = session.get(f"{BASE}/posts/{new_id}", timeout=5)
    assert r.status_code == 200

Lisez-le de haut en bas : vous avez créé un enregistrement, saisi l'id qu'il a renvoyé, puis utilisé cet id pour relire l'enregistrement. Cette chaîne créer-puis-réutiliser est la colonne vertébrale de toute la suite.

Avancé — comment pytest trouve et rapporte

pytest découvre automatiquement tout fichier nommé test_*.py et toute fonction nommée test_, puis exécute vos lignes assert. Quand un assert échoue, il affiche les deux côtés de la comparaison — donc un mauvais code de statut se lit comme un rapport de bug prêt à l'emploi au lieu d'une erreur cryptique.

Basé sur le quickstart officiel de Requests et la doc pytest

Toutes les leçons de Automatisation d'API, de zéro à confiant

  1. Le modèle mental HTTP & votre première collection Postman
  2. Recréez-le en code : requests + pytest avec état partagé
  3. Faites confiance à la forme : validation de schéma & test négatif
  4. Passer la porte : clés d'API, Bearer/JWT & OAuth2
  5. SQL pour testeurs : prouvez que l'API a vraiment écrit dans la BD
  6. Mocking & contrats : des tests rapides, hors-ligne, fiables