API-Testautomatisierung mit Claude Code: Ein praktischer QA-Leitfaden
API-Testautomatisierung mit Claude Code. Ein praktischer QA-Leitfaden. Mit praktischen Codebeispielen.
API-Testautomatisierung mit Claude Code in der Praxis
Umfassende Tests sind unerlässlich, um die Qualität von APIs zu gewährleisten. Mit Claude Code können Sie vom Testcase-Design über die Mock-Generierung bis zur CI-Integration alles auf einmal automatisieren.
Testcase-Design
CRUD-Tests für REST APIs
> Erstelle CRUD-Tests für die User-API mit Vitest + supertest.
> Decke Erfolgsfälle, Fehlerfälle und Grenzwerttests ab.
// 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('kann eine Benutzerliste abrufen', 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('Paginierung funktioniert korrekt', 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('kann einen neuen Benutzer erstellen', async () => {
const newUser = {
name: 'Testbenutzer',
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('gibt 400 bei ungültiger E-Mail-Adresse zurück', async () => {
const res = await request(app)
.post('/api/users')
.send({ name: 'Test', email: 'ungültig', password: 'Pass123!' })
.expect(400);
expect(res.body.errors).toBeDefined();
});
it('gibt 409 bei doppelter E-Mail-Adresse zurück', 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);
});
});
});
Mock- und Stub-Generierung
Tests mit externen API-Abhängigkeiten
> Erstelle einen Mock für die Stripe-Zahlungs-API.
> Verwende 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: 'eur',
status: 'succeeded',
});
}),
http.post('https://api.stripe.com/v1/refunds', () => {
return HttpResponse.json({
id: 're_test_456',
amount: 1000,
status: 'succeeded',
});
}),
];
Contract-Tests
Contract-Tests zur Überprüfung der Konsistenz zwischen API-Spezifikation und Implementierung können ebenfalls mit Claude Code generiert werden. Es können Tests erstellt werden, die OpenAPI-Schemata und Antworten automatisch vergleichen.
Performance-Tests
> Erstelle ein Lasttestskript für die API mit k6.
> Mit einem Szenario stufenweiser Lasterhöhung.
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'],
},
};
Zusammenfassung
Mit Claude Code können Sie vom API-Testdesign über die Implementierung bis zur CI-Integration alles auf einmal automatisieren. Siehe auch den Leitfaden für Teststrategien und CI/CD-Pipeline aufbauen.
Weitere Details zu API-Tests finden Sie in der offiziellen Vitest-Dokumentation.
Kostenloses PDF: Claude-Code-Spickzettel in 5 Minuten
Trag einfach deine E-Mail-Adresse ein – wir senden dir den A4-Spickzettel als PDF sofort zu.
Wir behandeln deine Daten sorgfältig und senden niemals Spam.
Über den Autor
Masa
Ingenieur, der Claude Code intensiv nutzt. Betreibt claudecode-lab.com, ein Tech-Medium in 10 Sprachen mit über 2.000 Seiten.
Ähnliche Artikel
7 Prüfungen, bevor du täglich einen mehrsprachigen Claude-Code-Artikel veröffentlichst
Eine praktische Checkliste, damit tägliche mehrsprachige Claude-Code-Artikel nicht an fehlenden Sprachen, kaputten CTAs oder veralteten Live-Seiten scheitern.
Was sind Codex Automations? Content Ops mit KI planen und ausfuehren
Praktischer Leitfaden fuer Codex Automations: Analytics, Themenwahl, Artikel, CTA, Deployment und Monetarisierung.
Claude Code × GCP Cloud Functions Komplettanleitung | Serverlose Funktionen blitzschnell entwickeln
GCP Cloud Functions mit Claude Code optimieren. HTTP/Pub/Sub/Firestore-Trigger implementieren, lokal testen und Deployments automatisieren — mit echten Codebeispielen aus Masas Praxiserfahrung.