api-testing

Par elophanto · elophanto

Validation complète d'API couvrant les tests fonctionnels, de performance et de sécurité, avec des frameworks d'automatisation et une intégration CI/CD. Adapté de msitarzewski/agency-agents.

npx skills add https://github.com/elophanto/elophanto --skill api-testing

Déclencheurs

  • Test d'API
  • Validation d'API
  • Test d'endpoint
  • Sécurité des API
  • Test de charge d'API
  • Performance d'API
  • Contract testing
  • Test d'intégration
  • Test REST API
  • Test GraphQL
  • Automatisation d'API
  • Test de limite de débit
  • Test de documentation d'API
  • OWASP API
  • Qualité d'API

Instructions

Découverte et analyse d'API

  • Cataloguer toutes les API internes et externes avec un inventaire complet des endpoints
  • Analyser les spécifications d'API, la documentation et les exigences de contrat en utilisant web_search
  • Identifier les chemins critiques, les zones à risque élevé et les dépendances d'intégration
  • Évaluer la couverture de test actuelle et identifier les lacunes

Développement de la stratégie de test

  • Concevoir une stratégie de test complète couvrant les aspects fonctionnels, de performance et de sécurité
  • Créer une stratégie de gestion des données de test avec génération de données synthétiques
  • Planifier la configuration de l'environnement de test et la configuration de type production
  • Définir les critères de succès, les portes de qualité et les seuils d'acceptation

Implémentation et automatisation des tests

  • Construire des suites de tests automatisés en utilisant des frameworks modernes (Playwright, REST Assured, k6)
  • Implémenter les tests de performance avec des scénarios de charge, de stress et d'endurance
  • Créer l'automatisation des tests de sécurité couvrant le Top 10 de la sécurité des API OWASP
  • Intégrer les tests dans le pipeline CI/CD avec des portes de qualité en utilisant shell_execute
  • Utiliser knowledge_write pour documenter les contrats d'API et les modèles de test

Tests axés sur la sécurité

  • Toujours tester les mécanismes d'authentification et d'autorisation de manière approfondie
  • Valider l'assainissement des entrées et la prévention des injections SQL
  • Tester les vulnérabilités courantes des API (Top 10 de la sécurité des API OWASP)
  • Vérifier le chiffrement des données et la transmission sécurisée des données
  • Tester les limites de débit, la protection contre les abus et les contrôles de sécurité

Normes de performance

  • Les temps de réponse des API doivent être inférieurs à 200 ms pour le 95e percentile
  • Les tests de charge doivent valider une capacité à 10 fois le trafic normal
  • Les taux d'erreur doivent rester en dessous de 0,1% sous charge normale
  • Les performances des requêtes de base de données doivent être optimisées et testées

Surveillance et amélioration continue

  • Configurer la surveillance des API en production avec des vérifications de santé et des alertes
  • Analyser les résultats des tests et fournir des insights actionnables
  • Créer des rapports complets avec des métriques et des recommandations

Livrables

Modèle de rapport de test d'API

# Rapport de test [Nom de l'API]

## Analyse de la couverture de test
**Couverture fonctionnelle** : [Couverture d'endpoints 95%+ avec répartition]
**Couverture sécurité** : [Résultats d'authentification, d'autorisation, de validation d'entrée]
**Couverture performance** : [Résultats de test de charge avec conformité SLA]
**Couverture intégration** : [Validation tiers et service-to-service]

## Résultats des tests de performance
**Temps de réponse** : [95e percentile : <200ms cible]
**Débit** : [Requêtes par seconde dans diverses conditions de charge]
**Scalabilité** : [Performance sous 10 fois le trafic normal]
**Utilisation des ressources** : [Métriques de performance CPU, mémoire, base de données]

## Évaluation de la sécurité
**Authentification** : [Résultats de validation de token, gestion de session]
**Autorisation** : [Validation du contrôle d'accès basé sur les rôles]
**Validation d'entrée** : [Test de prévention des injections SQL, XSS]
**Limite de débit** : [Test de prévention des abus et seuil]

## Problèmes et recommandations
**Problèmes critiques** : [Problèmes de sécurité et de performance priorité 1]
**Goulots d'étranglement de performance** : [Goulots identifiés avec solutions]
**Vulnérabilités de sécurité** : [Évaluation des risques avec stratégies de mitigation]

---
**Statut de qualité** : [PASS/FAIL avec justification détaillée]
**Préparation du lancement** : [Recommandation Go/No-Go avec données de support]

Exemple de suite de tests (JavaScript)

describe('API Security Testing', () => {
  test('should reject requests without authentication', async () => {
    const response = await fetch(`${baseURL}/users`, { method: 'GET' });
    expect(response.status).toBe(401);
  });

  test('should prevent SQL injection attempts', async () => {
    const sqlInjection = "'; DROP TABLE users; --";
    const response = await fetch(`${baseURL}/users?search=${sqlInjection}`, {
      headers: { 'Authorization': `Bearer ${authToken}` }
    });
    expect(response.status).not.toBe(500);
  });

  test('should enforce rate limiting', async () => {
    const requests = Array(100).fill(null).map(() =>
      fetch(`${baseURL}/users`, {
        headers: { 'Authorization': `Bearer ${authToken}` }
      })
    );
    const responses = await Promise.all(requests);
    const rateLimited = responses.some(r => r.status === 429);
    expect(rateLimited).toBe(true);
  });
});

Métriques de succès

  • 95%+ de couverture de test atteinte sur tous les endpoints d'API
  • Zéro vulnérabilité de sécurité critique atteignant la production
  • Performance d'API respectant constamment les exigences SLA
  • 90% des tests d'API automatisés et intégrés dans CI/CD
  • Temps d'exécution des tests inférieur à 15 minutes pour la suite complète

Vérification

  • La suite de tests a été réellement exécutée (résultats capturés), pas seulement écrite
  • Chaque endpoint de l'inventaire découvert a au moins une assertion
  • Les chemins d'authentification/autorisation sont explicitement testés, pas supposés
  • Les tests défaillants échouent bruyamment — pas de skips silencieux ou xfail sans justification
  • Les assertions de performance spécifient un seuil numérique (ex. p95 < 200ms), pas un langage vague

Skills similaires