Automatisation des tests d'API avec Claude Code : guide pratique QA
Automatisation des tests d'API avec Claude Code. Guide pratique QA. Inclut des exemples de code pratiques.
Pratiquer l’automatisation des tests d’API avec Claude Code
Des tests exhaustifs sont essentiels pour garantir la qualite d’une API. Avec Claude Code, vous pouvez automatiser d’un seul coup la conception des cas de test, la generation de mocks et l’integration CI.
Conception des cas de test
Tests CRUD d’une REST API
> Cree des tests CRUD pour l'API utilisateurs avec Vitest + supertest.
> Couvre les tests de cas normaux, cas d'erreur et valeurs limites.
// tests/api/users.test.ts
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
import request from 'supertest';
import { app } from '../../src/app';
import { resetDatabase, seedUsers } from '../helpers/db';
describe('Users API', () => {
beforeEach(async () => {
await resetDatabase();
await seedUsers();
});
describe('GET /api/users', () => {
it('peut obtenir la liste des utilisateurs', async () => {
const res = await request(app)
.get('/api/users')
.expect(200);
expect(res.body.data).toBeInstanceOf(Array);
expect(res.body.data.length).toBeGreaterThan(0);
expect(res.body.data[0]).toHaveProperty('id');
expect(res.body.data[0]).toHaveProperty('name');
expect(res.body.data[0]).not.toHaveProperty('password');
});
it('la pagination fonctionne correctement', async () => {
const res = await request(app)
.get('/api/users?page=1&limit=5')
.expect(200);
expect(res.body.data.length).toBeLessThanOrEqual(5);
expect(res.body.meta).toHaveProperty('totalPages');
expect(res.body.meta).toHaveProperty('currentPage', 1);
});
});
describe('POST /api/users', () => {
it('peut creer un nouvel utilisateur', async () => {
const newUser = {
name: 'Utilisateur de test',
email: '[email protected]',
password: 'SecurePass123!',
};
const res = await request(app)
.post('/api/users')
.send(newUser)
.expect(201);
expect(res.body.data.name).toBe(newUser.name);
expect(res.body.data.email).toBe(newUser.email);
});
it('renvoie 400 avec une adresse e-mail invalide', async () => {
const res = await request(app)
.post('/api/users')
.send({ name: 'Test', email: 'invalid', password: 'Pass123!' })
.expect(400);
expect(res.body.errors).toBeDefined();
});
it('renvoie 409 avec une adresse e-mail en double', async () => {
await request(app)
.post('/api/users')
.send({ name: 'User1', email: '[email protected]', password: 'Pass123!' });
await request(app)
.post('/api/users')
.send({ name: 'User2', email: '[email protected]', password: 'Pass456!' })
.expect(409);
});
});
});
Generation de mocks et stubs
Tests de dependances avec des API externes
> Cree des mocks de l'API de paiement Stripe.
> Utilise MSW.
// tests/mocks/handlers.ts
import { http, HttpResponse } from 'msw';
export const handlers = [
http.post('https://api.stripe.com/v1/charges', () => {
return HttpResponse.json({
id: 'ch_test_123',
amount: 1000,
currency: 'jpy',
status: 'succeeded',
});
}),
http.post('https://api.stripe.com/v1/refunds', () => {
return HttpResponse.json({
id: 're_test_456',
amount: 1000,
status: 'succeeded',
});
}),
];
Tests de contrat
Les tests de contrat qui verifient la coherence entre la specification de l’API et l’implementation peuvent aussi etre generes avec Claude Code. Vous pouvez construire des tests qui comparent automatiquement les schemas OpenAPI avec les reponses.
Tests de performance
> Cree un script de tests de charge d'API avec k6.
> Avec un scenario d'augmentation progressive de la charge.
import http from 'k6/http';
import { check, sleep } from 'k6';
export const options = {
stages: [
{ duration: '1m', target: 50 },
{ duration: '3m', target: 50 },
{ duration: '1m', target: 100 },
{ duration: '3m', target: 100 },
{ duration: '1m', target: 0 },
],
thresholds: {
http_req_duration: ['p(95)<500'],
http_req_failed: ['rate<0.01'],
},
};
Summary
Avec Claude Code, vous pouvez automatiser d’un seul coup la conception des tests d’API, l’implementation et l’integration CI. Consultez egalement le guide de strategie de test et la construction du pipeline CI/CD.
Pour plus de details sur les tests d’API, consultez la documentation officielle de Vitest.
PDF gratuit : aide-mémoire Claude Code en 5 minutes
Laissez simplement votre e-mail et nous vous enverrons immédiatement l'aide-mémoire A4 en PDF.
Nous traitons vos données avec soin et n'envoyons jamais de spam.
À propos de l'auteur
Masa
Ingénieur passionné par Claude Code. Il gère claudecode-lab.com, un média tech en 10 langues avec plus de 2 000 pages.
Articles similaires
7 vérifications avant de publier chaque jour un article multilingue sur Claude Code
Une checklist pratique pour publier des articles multilingues sur Claude Code chaque jour sans oublier une langue, casser les CTA ou laisser l’ancien contenu en production.
Codex Automations : confier l'analyse, les articles et le deploiement a l'IA
Guide pratique pour utiliser Codex Automations dans une operation de contenu orientee monetisation.
Claude Code × GCP Cloud Functions Guide Complet | Développement Serverless Ultra-Rapide
Optimisez GCP Cloud Functions avec Claude Code. Implémentez des triggers HTTP/Pub/Sub/Firestore, des tests locaux et l'automatisation des déploiements avec des exemples de code réels de l'expérience de Masa.