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 mutation de contrat API est un outil conçu pour évaluer la robustesse de votre backend en appliquant des mutations sémantiques aux champs de vos requêtes OpenAPI. En générant des variantes risquées telles que l'omission de champs requis, l'injection de caractères spéciaux ou des valeurs hors limites, il vous permet de vérifier si votre API rejette correctement les données invalides (validation défensive) ou si elle les accepte par erreur.
Quand l’utiliser
- •Lors de l'audit de sécurité d'une API pour identifier les failles de validation des données entrantes.
- •Avant le déploiement d'une nouvelle version de votre contrat OpenAPI pour s'assurer que les règles de validation sont correctement implémentées côté serveur.
- •Pour automatiser les tests de robustesse (fuzzing sémantique) sur des endpoints spécifiques sans écrire de scripts manuels.
Comment ça marche
- •Collez votre spécification OpenAPI 3.x (au format YAML ou JSON) dans le champ dédié.
- •L'outil analyse les opérations documentées et génère des requêtes de base valides, puis crée des mutations pour chaque champ (valeurs négatives, enums invalides, etc.).
- •Si vous renseignez une URL de base et activez l'exécution, l'outil envoie réellement les requêtes mutées au backend en utilisant l'en-tête d'autorisation fourni.
- •Consultez le rapport final pour voir quelles mutations ont été défendues (rejetées par le serveur) ou acceptées à tort, et si les codes de retour sont documentés.
Cas d’usage
Exemples
1. Vérifier la validation d'un endpoint d'inscription
Ingénieur QA- Contexte
- L'équipe vient de livrer une nouvelle API d'inscription d'utilisateurs. Le contrat OpenAPI spécifie que l'email est requis et que l'âge doit être supérieur à 18.
- Problème
- S'assurer que le backend ne crée pas de comptes si des champs obligatoires manquent ou si des valeurs absurdes sont envoyées.
- Comment l’utiliser
- Collez le YAML de l'API dans 'Spécification OpenAPI', laissez l'URL de base vide pour générer le plan, et fixez 'Mutations par champ' à 3.
- Configuration d’exemple
-
executeMutations: false, mutationsPerField: 3 - Résultat
- L'outil génère un rapport JSON listant les mutations prévues, comme l'omission du champ email ou l'injection d'un âge négatif, prêt à être analysé.
2. Tester la robustesse d'une API en production
Développeur Backend- Contexte
- Une API de gestion de produits est en ligne, mais des doutes subsistent quant à la validation stricte des catégories (enum) et des prix.
- Problème
- Envoyer de vraies requêtes malformées au serveur de staging pour voir s'il renvoie bien des erreurs 400.
- Comment l’utiliser
- Collez le JSON OpenAPI, renseignez l'URL de base du serveur de staging, ajoutez le token Bearer, et cochez 'Exécuter les mutations'.
- Configuration d’exemple
-
baseUrl: 'https://staging-api.example.com', executeMutations: true, authorizationHeader: 'Bearer abc123_token' - Résultat
- Le rapport indique quelles requêtes ont été 'defended' (rejetées avec succès) et met en évidence les failles où le serveur a répondu 'accepted' malgré des données invalides.
Tester avec des échantillons
developmentHubs 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'envoyer les requêtes à un vrai serveur ?
Non, si vous laissez l'URL de base vide, l'outil générera uniquement un plan de mutation hors ligne pour vous montrer les requêtes qui seraient testées.
Que signifie le statut 'defended' dans les résultats ?
Cela indique que votre backend a correctement identifié la requête mutée comme invalide et l'a rejetée avec un code d'erreur approprié.
Comment limiter le nombre de requêtes générées ?
Vous pouvez ajuster le paramètre 'Mutations par champ' (entre 1 et 6) pour contrôler le volume de variantes créées pour chaque paramètre.
Puis-je tester des API nécessitant une authentification ?
Oui, vous pouvez fournir un jeton dans le champ 'En-tête d'autorisation' (par exemple, 'Bearer <token>') pour authentifier les requêtes mutées.