Sobes.tech
Junior

Comment vérifierez-vous que vous avez retourné les bons champs?

sobes.tech IA

Réponse de l'IA

Vérifiez que seules les bonnes champs sont renvoyés de plusieurs manières, en fonction du type de réponse (JSON, XML, etc.), de l'outil utilisé et du niveau de test (API, E2E):

  1. Validation du schéma de réponse (Schema Validation):

    • La méthode la plus fiable.
    • Un schéma (JSON Schema, XML Schema) décrivant la structure et les types de données attendus est créé.
    • La réponse est validée par rapport à ce schéma.
    • Garantit la présence/l'absence de champs, leurs types et, éventuellement, des expressions régulières pour les valeurs.
    // Exemple de JSON Schema pour une réponse utilisateur
    {
      "type": "object",
      "properties": {
        "id": { "type": "integer" },
        "name": { "type": "string" },
        "email": { "type": "string", "format": "email" }
      },
      "required": ["id", "name", "email"]
    }
    
  2. Vérification directe de la présence/l'absence de champs et de valeurs (Field Presence and Value Assertion):

    • Analyse de la réponse.
    • Vérification que chaque champ attendu est présent.
    • Vérification que les champs indésirables ne sont pas présents.
    • Vérification des types de données des champs.
    • Vérification des valeurs des champs (en fonction d'une valeur spécifique, expression régulière, plage, etc.).
    # Exemple de vérification d'une réponse JSON en Python (avec requests et pytest)
    import requests
    import pytest
    
    def test_user_response_fields():
        response = requests.get("http://api.example.com/users/1")
        assert response.status_code == 200
        data = response.json()
    
        # Vérification de la présence des champs
        assert "id" in data
        assert "name" in data
        assert "email" in data
    
        # Vérification que les champs indésirables ne sont pas présents (par exemple, 'password')
        assert "password" not in data
    
        # Vérification des types de champs
        assert isinstance(data["id"], int)
        assert isinstance(data["name"], str)
        assert isinstance(data["email"], str)
    
        # Vérification des valeurs (exemple)
        assert data["id"] > 0
        assert "@" in data["email"]  # Vérification simple du format email
    
  3. Comparaison avec référence (Golden Master / Snapshot Testing):

    • La réponse correcte (référence) est sauvegardée.
    • La réponse actuelle est comparée à la référence.
    • Utile pour vérifier la stabilité de la structure, mais moins flexible face aux changements attendus dans les données.
  4. Utilisation de bibliothèques ou frameworks spécialisés:

    • RestAssured (Java)
    • Postman (Newman): permet d'écrire des tests en JavaScript, y compris la validation de schéma et de champs.
    • Pytest/unittest avec des bibliothèques pour JSON/XML.

Le choix de la méthode dépend de la complexité de la structure de la réponse, des exigences de précision de la validation et de la pile technologique utilisée. La validation de schéma est la norme pour les tests d'API, car elle couvre tous les aspects de la structure et des types de données.