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
Développement et Web
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 de développement conçu pour générer automatiquement des tests de valeurs limites à partir de vos spécifications OpenAPI 3.x. Que vous souhaitiez simplement créer un plan de test hors ligne ou exécuter des requêtes réelles contre votre backend pour identifier les écarts de contrat, cet utilitaire valide la robustesse de votre API face aux données invalides, aux champs manquants et aux types incorrects.

Quand l’utiliser

  • Avant de déployer une nouvelle version d'API pour s'assurer que le backend gère correctement les requêtes malformées ou les valeurs hors limites.
  • Lors de la validation d'une spécification OpenAPI pour vérifier que toutes les contraintes (longueur, énumérations, champs obligatoires) sont bien définies.
  • Pour automatiser la création de cas de tests de robustesse sans avoir à écrire manuellement chaque scénario d'erreur.

Comment ça marche

  • Collez votre spécification OpenAPI 3.x (au format YAML ou JSON) dans le champ principal.
  • Saisissez l'URL de base de votre API et activez l'exécution des requêtes réelles pour tester directement votre backend, ou laissez vide pour une génération hors ligne.
  • Ajustez les paramètres avancés comme le nombre maximum de cas par champ, le délai d'attente ou l'en-tête d'autorisation.
  • Lancez l'outil pour générer un rapport JSON détaillé listant les cas limites créés et les éventuels écarts de contrat observés.

Cas d’usage

Validation de la gestion des erreurs d'un serveur backend face à des payloads JSON invalides.
Génération rapide de jeux de données de test pour les équipes QA travaillant sur des API REST.
Audit de conformité entre l'implémentation réelle d'une API et sa documentation OpenAPI.

Exemples

1. Générer des cas limites pour une API d'inscription

Ingénieur QA
Contexte
L'équipe développe un nouveau point de terminaison /users pour l'inscription et souhaite s'assurer que les validations de schéma fonctionnent.
Problème
Créer rapidement des dizaines de requêtes invalides (email trop court, âge inférieur au minimum) sans les coder à la main.
Comment l’utiliser
Collez le YAML OpenAPI définissant les contraintes (minLength: 5, minimum: 18) et laissez l'exécution réelle désactivée.
Configuration d’exemple
{"executeRequests": false, "maxCasesPerField": 3}
Résultat
Un rapport JSON contenant des cas de test structurés pour les champs manquants, les rôles invalides et les âges hors limites, prêt à être intégré dans la CI.

2. Détecter les écarts de contrat sur un environnement de staging

Développeur Backend
Contexte
Une API de gestion de produits vient d'être mise à jour sur le serveur de staging.
Problème
Vérifier si l'API renvoie bien les codes d'erreur HTTP 400 documentés lorsqu'elle reçoit des types de données incorrects.
Comment l’utiliser
Fournissez la spécification JSON, entrez l'URL de base du staging, ajoutez le token d'autorisation et activez l'exécution des requêtes réelles.
Configuration d’exemple
{"baseUrl": "https://staging-api.example.com", "executeRequests": true, "authorizationHeader": "Bearer abc123xyz"}
Résultat
L'outil envoie les requêtes malformées au serveur et signale les statuts HTTP non documentés (ex: une erreur 500 au lieu d'une 400 attendue).

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 valides aux formats YAML et JSON.

L'outil peut-il tester des API nécessitant une authentification ?

Oui, vous pouvez fournir un jeton d'accès via le champ "En-tête d'autorisation" (par exemple, Bearer <token>).

Que se passe-t-il si je n'active pas l'exécution des requêtes réelles ?

L'outil fonctionnera en mode hors ligne et se contentera de générer un plan de test détaillé au format JSON, sans envoyer de trafic.

Quels types de cas limites sont générés ?

L'outil génère des tests pour les champs obligatoires manquants, les chaînes de caractères hors limites, les valeurs d'énumération invalides, les nombres hors bornes et les types de données incorrects.

L'outil supporte-t-il tous les types de corps de requête ?

La version actuelle se concentre principalement sur les corps de requête au format application/json.

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]