Tester les performances des API
Découvrez des outils et des stratégies pour tester les performances de vos API NestJS, identifier les goulots d’étranglement et garantir l’évolutivité.
Tester les performances des API est une leçon NestJS Enterprise Backend APIs gratuite sur CoddyKit. Ceci est la leçon 3 sur 6. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage NestJS Enterprise Backend APIs, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours NestJS Enterprise Backend APIs comprend 6 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
Why Performance Matters
Ever used a slow app? Performance testing helps prevent that! It's about checking how your API behaves under various workloads.
We want to ensure our NestJS APIs are fast, responsive, and reliable, even when many users access them simultaneously. This is crucial for a good user experience and system stability.
Measuring API Health
When performance testing, we look at specific metrics:
- Latency: The time taken for a request to complete. Lower is better!
- Throughput: The number of requests processed per second. Higher is better!
- Error Rate: The percentage of failed requests. Aim for zero.
- Resource Utilization: How much CPU/Memory your server uses.
These metrics help us understand our API's strengths and weaknesses.
Different Test Scenarios
There are different ways to test performance:
- Load Testing: Simulates expected peak usage to ensure the API handles it.
- Stress Testing: Pushes the API beyond its limits to find its breaking point.
- Spike Testing: Simulates sudden, large increases in load over a short period.
- Soak Testing: Runs a moderate load over a long duration to detect memory leaks or degradation.
Our Tool: k6 for APIs
For performance testing APIs, several tools exist. We'll use k6, an open-source load testing tool.
k6 is great because you write your tests in JavaScript, making them highly flexible and easy to version control. It's designed for developers and DevOps teams.
It simulates virtual users (VUs) making requests to your API and collects detailed metrics.
Anatomy of a k6 Test
A k6 test script is a JavaScript file. It defines what actions virtual users will perform. The default function is where your virtual users' actions are defined. Each virtual user will execute this function repeatedly.
import http from 'k6/http';
import { sleep } from 'k6';
export default function () {
http.get('http://localhost:3000/api/users');
sleep(1); // Wait for 1 second
}Configuring Test Scenarios
To make our k6 test useful, we need to define how many virtual users (VUs) we want to simulate and for how long. This is done using the options object.
vus sets the number of concurrent virtual users, and duration sets the total test time. This lets us simulate different load patterns.
import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
vus: 10, // 10 virtual users
duration: '30s', // for 30 seconds
};
export default function () {
http.get('http://localhost:3000/api/products');
sleep(1);
}Testing Various API Actions
APIs aren't just about GET requests. We often need to test POST, PUT, and DELETE operations too. k6 provides functions for these.
When sending data, remember to include a request body. It's crucial to simulate realistic user interactions, like creating a new user or updating a product.
import http from 'k6/http';
import { sleep } from 'k6';
export const options = {
vus: 5,
duration: '10s',
};
export default function () {
// Simulate creating a user
const payload = JSON.stringify({
name: 'Test User',
email: 'test@example.com',
});
const params = {
headers: {
'Content-Type': 'application/json',
},
};
http.post('http://localhost:3000/api/users', payload, params);
sleep(0.5);
}Validating API Responses
It's not enough for an API to respond; it must respond correctly. k6 allows you to add assertions to your tests using check().
This ensures that the API returns the expected status code (e.g., 200 OK, 201 Created) or even specific data in the response body. This verifies functionality under load.
import http from 'k6/http';
import { check, sleep } from 'k6';
export const options = {
vus: 2,
duration: '5s',
};
export default function () {
const res = http.get('http://localhost:3000/api/status');
check(res, {
'is status 200': (r) => r.status === 200,
'body contains "OK"': (r) => r.body.includes('OK'),
});
sleep(0.1);
}Understanding Test Outcomes
After running a k6 test, you'll see a summary of metrics like average response time, throughput, and error rate. Look for:
- High Error Rates: Indicates broken functionality under load.
- Increasing Latency: API getting slower as load increases.
- Low Throughput: API not processing enough requests.
These are clues to where bottlenecks might exist in your NestJS application or database.
Test Your Knowledge
Let's quickly review some core concepts.
Performance Testing Summary
Great job! You've learned the basics of performance testing for NestJS APIs.
- We covered key metrics like latency and throughput.
- Explored different test types: load, stress, spike, and soak.
- Introduced k6 as a powerful, code-based testing tool.
- Understood how to create basic k6 scripts, define scenarios, and interpret results.
Performance testing is vital for building scalable and reliable applications. Keep practicing to ensure your APIs can handle the heat!
Questions Fréquemment Posées
La leçon « Tester les performances des API » est-elle gratuite ?
Oui — le texte complet de « Tester les performances des API » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours NestJS Enterprise Backend APIs, passe à CoddyKit PRO. Le cours NestJS Enterprise Backend APIs comprend 6 leçons au total.
Qu'est-ce que j'apprendrai dans « Tester les performances des API » ?
Découvrez des outils et des stratégies pour tester les performances de vos API NestJS, identifier les goulots d’étranglement et garantir l’évolutivité. Tu pratiques NestJS Enterprise Backend APIs avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer NestJS Enterprise Backend APIs ?
Aucune expérience préalable n'est requise. NestJS Enterprise Backend APIs sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 6.
Combien de temps prend la leçon « Tester les performances des API » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon NestJS Enterprise Backend APIs ?
Oui. Chaque leçon NestJS Enterprise Backend APIs inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Tests unitaires et de bout en bout
- Frameworks Hardhat et Truffle
- Tester les performances des API
- Tests unitaires des contrats intelligents
- Conteneurisation avec Docker et Kubernetes
- Déploiement sur les réseaux de test et le réseau principal