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.
Related Posts
Comment booster vos projets personnels avec Claude Code [Avec exemples]
Apprenez à accélérer considérablement vos projets de développement personnels avec Claude Code. Inclut des exemples concrets et un workflow pratique de l'idée au déploiement.
Comment automatiser le refactoring avec Claude Code
Apprenez à automatiser efficacement le refactoring de code avec Claude Code. Inclut des prompts pratiques et des patterns de refactoring concrets pour des projets réels.
Guide complet de configuration CORS avec Claude Code
Découvrez le guide complet de configuration CORS avec Claude Code. Conseils pratiques et exemples de code inclus.