Catégories

Testeur de stress de contrat API

Genere des tests de valeurs limites depuis OpenAPI 3.x et peut les envoyer a un backend reel pour reperer les ecarts de contrat.

Collez un document OpenAPI 3.x dans "Specification OpenAPI". YAML et JSON sont pris en charge.

Ce quil faut fournir :

  • Un document OpenAPI 3.x valide avec paths, parameters, request bodies et responses
  • Des references optionnelles dans components.schemas pour resoudre les request bodies
  • Une URL de base facultative si vous voulez envoyer les cas generes a un backend reel

Fonctionnement des champs :

  • Specification OpenAPI : collez le contrat complet en YAML ou JSON
  • URL de base : laissez vide pour une generation hors ligne, ou saisissez par exemple https://api.example.com pour executer les requetes
  • Executer des requetes reelles : active, loutil envoie des requetes invalides ou limites vers lURL de base
  • En-tete dautorisation : valeur brute optionnelle comme Bearer
  • Cas max par champ : limite le nombre de cas limites generes par parametre ou champ du body
  • Delai de requete (ms) : limite la duree dexecution de chaque requete reelle

Ce qui est teste :

  • Champs obligatoires manquants
  • Chaines vides, trop courtes ou trop longues
  • Valeurs enum invalides
  • Nombres inferieurs au minimum ou superieurs au maximum
  • Mauvais types scalaires ou tableaux pour les champs documentes

Notes :

  • Si les requetes reelles sont desactivees, loutil genere uniquement un plan de test de contrat.
  • Si elles sont activees, le rapport indique si chaque statut HTTP observe est documente dans les responses OpenAPI.
  • Les champs path, query, header et JSON body sont couverts ; la version actuelle se concentre sur application/json.

Exemples de résultats

1 Exemples

Generer des cas limites pour une API dinscription

Controlez minLength, enum et bornes numeriques avant un mock server ou la CI.

{
  "summary": {
    "endpoints": 1,
    "generatedCases": 7,
    "executedCases": 0,
    "mismatches": 0
  },
  "cases": [
    {
      "fieldPath": "body.email",
      "title": "Missing required field"
    },
    {
      "fieldPath": "body.role",
      "title": "Invalid enum member"
    }
  ]
}
Voir paramètres d'entrée
{ "openApiSpec": "openapi: 3.0.0\npaths:\n /users:\n post:\n requestBody:\n required: true\n content:\n application/json:\n schema:\n type: object\n required: [email, role]\n properties:\n email: { type: string, minLength: 5 }\n role: { type: string, enum: [admin, member] }\n age: { type: integer, minimum: 18 }\n responses:\n \"201\": { description: created }\n \"400\": { description: bad request }\n", "executeRequests": false, "maxCasesPerField": 3 }

Points clés

Catégorie
Development
Types d’entrée
textarea, text, checkbox, number
Type de sortie
json
Couverture des échantillons
4
API disponible
Yes

Vue d’ensemble

Le Testeur de stress de contrat API est un outil conçu pour générer automatiquement des cas de test aux limites à partir de vos spécifications OpenAPI 3.x. Il permet d'identifier rapidement les écarts entre la documentation et le comportement réel de votre API en envoyant, si vous le souhaitez, des requêtes directes vers votre backend. Idéal pour valider la robustesse de vos schémas et garantir le respect strict de vos contrats d'interface sans effort manuel.

Quand l’utiliser

  • Lors de la validation d'une nouvelle spécification OpenAPI avant de la partager avec les équipes front-end ou les clients externes.
  • Pour vérifier automatiquement que votre backend gère correctement les valeurs limites (champs manquants, types incorrects, dépassement de taille).
  • Avant un déploiement en production pour s'assurer qu'aucune régression n'a altéré le contrat de l'API.

Comment ça marche

  • Collez votre spécification OpenAPI 3.x (au format YAML ou JSON) dans le champ principal.
  • Configurez les options facultatives, comme l'URL de base et l'en-tête d'autorisation, si vous souhaitez exécuter des requêtes réelles contre votre serveur.
  • Définissez le nombre maximum de cas générés par champ et ajustez le délai d'attente des requêtes si nécessaire.
  • Lancez l'outil pour obtenir un rapport JSON détaillant les cas de test générés, les requêtes exécutées et les éventuels écarts de contrat détectés.

Cas d’usage

Génération rapide de suites de tests de validation de schéma pour les pipelines CI/CD.
Audit de sécurité basique pour s'assurer que les endpoints rejettent correctement les payloads malformés.
Détection des désynchronisations entre le code backend implémenté et la documentation OpenAPI fournie aux consommateurs.

Exemples

1. Génération de cas limites pour une API d'inscription

Ingénieur QA
Contexte
L'équipe vient de concevoir le contrat d'une nouvelle API d'inscription d'utilisateurs avec des règles strictes sur l'âge et l'email.
Problème
Créer rapidement une liste exhaustive de tests pour vérifier les contraintes (minLength, enum, minimum) sans écrire chaque cas manuellement.
Comment l’utiliser
Collez le YAML OpenAPI définissant la route d'inscription, laissez l'option d'exécution décochée et fixez les cas max par champ à 3.
Configuration d’exemple
executeRequests: false, maxCasesPerField: 3
Résultat
Un fichier JSON listant tous les cas d'erreur attendus (ex: email manquant, rôle invalide, âge inférieur à 18) prêts à être intégrés dans un outil de test.

2. Test de robustesse d'un endpoint sécurisé

Développeur Backend
Contexte
Un endpoint de mise à jour de profil a été déployé sur un environnement de staging (pré-production).
Problème
S'assurer que le backend renvoie bien des erreurs 400 (Bad Request) lorsque les données envoyées ne respectent pas le contrat OpenAPI.
Comment l’utiliser
Insérez le JSON OpenAPI, renseignez l'URL de base du staging, ajoutez le token Bearer, cochez 'Exécuter des requêtes réelles' et lancez le test.
Configuration d’exemple
baseUrl: https://staging.api.com, executeRequests: true, authorizationHeader: Bearer abc123xyz
Résultat
L'outil exécute les requêtes malformées contre le serveur et retourne un rapport identifiant les écarts (ex: le serveur a renvoyé 500 au lieu de 400 pour un champ manquant).

Tester avec des échantillons

development

Hubs associés

FAQ

Quels formats de spécification sont pris en charge ?

L'outil accepte les documents OpenAPI 3.x au format YAML ou JSON.

Est-il obligatoire d'exécuter les requêtes sur un vrai backend ?

Non, vous pouvez simplement générer les cas de test (mock) sans cocher l'option d'exécution des requêtes réelles.

Comment l'outil gère-t-il l'authentification de mon API ?

Vous pouvez fournir un jeton dans le champ 'En-tête d'autorisation' (par exemple, 'Bearer <token>') qui sera inclus dans toutes les requêtes exécutées.

Qu'est-ce qu'un test de valeur limite dans ce contexte ?

Il s'agit de tests générés pour vérifier les contraintes définies dans votre schéma, comme les valeurs minimales/maximales, les champs obligatoires manquants ou les énumérations invalides.

Puis-je limiter le nombre de tests générés ?

Oui, le paramètre 'Cas max par champ' permet de restreindre la génération entre 1 et 6 tests par propriété pour éviter de surcharger votre serveur.

Documentation de l'API

Point de terminaison de la requête

POST /fr/api/tools/api-contract-stress-tester

Paramètres de la requête

Nom du paramètre Type Requis Description
openApiSpec textarea Oui -
baseUrl text Non -
executeRequests checkbox Non -
authorizationHeader text Non -
maxCasesPerField number Non -
timeoutMs number Non -

Format de réponse

{
  "key": {...},
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
Données JSON: Données JSON

Documentation de MCP

Ajoutez cet outil à votre configuration de serveur MCP:

{
  "mcpServers": {
    "elysiatools-api-contract-stress-tester": {
      "name": "api-contract-stress-tester",
      "description": "Genere des tests de valeurs limites depuis OpenAPI 3.x et peut les envoyer a un backend reel pour reperer les ecarts de contrat.",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=api-contract-stress-tester",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Vous pouvez chaîner plusieurs outils, par ex.: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, max 20 outils.

Si vous rencontrez des problèmes, veuillez nous contacter à [email protected]