Maison > développement back-end > Tutoriel Python > Tests de charge à l'aide de FastAPI et Postman : guide complet

Tests de charge à l'aide de FastAPI et Postman : guide complet

Mary-Kate Olsen
Libérer: 2025-01-03 05:38:39
original
991 Les gens l'ont consulté

Imaginez ce scénario dans lequel votre startup commence à avoir du terrain. Le nombre d’utilisateurs augmente soudainement ! Et maintenant, il passe continuellement de 10 à 100 utilisateurs et utilise votre application depuis un certain temps. Cliquer sur certains boutons, utiliser certaines fonctionnalités, faire une demande depuis votre serveur backend...

Ce que vous ne voudriez pas dans ce genre de situation, c'est le manque de préparation. Vous voulez vous assurer que votre application est Fiable et Disponible pour les utilisateurs. C'est là que les tests entrent en place et ce dont nous parlerions ici est un type spécifique de tests qui convient pour tester ce type de scénarios, Tests de charge.

Dans ce guide, nous nous concentrerons sur l'utilisation de FastAPI et de sa génération automatisée de spécifications OpenAPI pour rationaliser le processus de génération de collections Postman pour les tests de charge. À la fin, vous saurez comment utiliser la spécification OpenAPI de FastAPI et Postman pour tester votre application à grande échelle.


? Pourquoi utiliser FastAPI et Postman pour les tests de charge ?

FastAPI est livré avec la prise en charge OpenAPI intégrée, ce qui facilite la documentation et le test de vos API. En combinant FastAPI avec Postman, vous pouvez :

  • Générez automatiquement des collections Postman à partir de la documentation OpenAPI de votre API FastAPI.
  • Simplifiez la configuration des demandes en important la collection directement dans Postman.
  • Exploitez les puissantes fonctionnalités de test et de script de Postman pour la génération de données dynamiques.
  • Faites évoluer les tests par programmation avec Newman, l'outil CLI de Postman, pour l'intégration CI/CD.

Cette synergie entre FastAPI et Postman permet aux développeurs de simuler rapidement des scénarios de trafic réels et d'identifier les goulots d'étranglement dans leurs applications.


?️ Étape 1 : Configuration de FastAPI et Swagger

1.1 Démarrez votre application FastAPI

Assurez-vous que votre application FastAPI s'exécute localement ou sur un serveur. Par exemple :

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)
Copier après la connexion
Copier après la connexion

Lorsque le serveur démarre, le point de terminaison OpenAPI JSON sera disponible à l'adresse http://127.0.0.1:8000/openapi.json.

1.2 Vérifier OpenAPI JSON

Ouvrez votre navigateur et accédez à http://127.0.0.1:8000/openapi.json pour vous assurer que le JSON OpenAPI est accessible.


? Étape 2 : Exporter le JSON OpenAPI vers Postman

2.1 Copier le point de terminaison OpenAPI

Vous pouvez soit enregistrer le fichier OpenAPI JSON localement en utilisant votre navigateur, soit par curl :

curl -o openapi.json http://127.0.0.1:8000/openapi.json
Copier après la connexion
Copier après la connexion

Ou simplement en copiant l'URL du point de terminaison OpenAPI, http://127.0.0.1:8000/openapi.json.

2.2 Importer OpenAPI JSON dans Postman

  1. Ouvrez Postman et cliquez sur Importer dans le coin supérieur gauche.
  2. Sélectionnez le fichier openapi.json téléchargé.
  3. Postman générera automatiquement une collection avec tous les points de terminaison définis dans la spécification OpenAPI.

Si vous venez de copier l'URL du point de terminaison, vous pouvez simplement coller l'URL dans la barre de saisie en haut du modal qui apparaît lorsque vous cliquez sur Importer

Load Testing using FastAPI and Postman: Comprehensive Guide

2.3 Organisez et testez votre collection

Examinez la collection importée pour vous assurer que tous les points de terminaison sont correctement configurés. Vous pouvez également ajouter des variables d'environnement ou des scripts selon les besoins pour l'authentification ou la gestion des données.


? Étape 3 : Préparation des tests de charge dans Postman

3.1 Ajouter des données dynamiques à vos demandes

Pour simuler des scénarios du monde réel, modifiez vos requêtes pour inclure des données dynamiques. Par exemple, utilisez les variables intégrées de Postman ou les scripts de pré-requête :

Exemple de script de pré-demande :

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)
Copier après la connexion
Copier après la connexion

Exemple de charge utile :

curl -o openapi.json http://127.0.0.1:8000/openapi.json
Copier après la connexion
Copier après la connexion

Vous pouvez également simplement utiliser des scripts intégrés comme $randomInt pour générer des valeurs aléatoires.
Exemple de cas d'utilisation de scripts intégrés :

pm.variables.set("random_id", Math.floor(Math.random() * 10000));
Copier après la connexion

Ce script intégré renverra des valeurs aléatoires comprises entre 0 et 1 000 dans chaque requête effectuée.

3.2 Configurer les variables dans votre collection

Utilisez des variables de collection dans Postman pour gérer les URL de base d'API, les jetons d'authentification ou les paramètres dynamiques sans votre collection. Cela simplifie les mises à jour et les tests dans votre collection.

Load Testing using FastAPI and Postman: Comprehensive Guide


? Étape 4 : Exécution de tests de performances avec Postman's Collection Runner

Postman inclut désormais des fonctionnalités de test de performances intégrées qui vous permettent de simuler le trafic des utilisateurs et d'évaluer les performances de votre API.

4.1 Lancer le Collection Runner

  1. Cliquez sur le bouton Runner (icône de bécher) dans Postman.
  2. Sélectionnez la collection importée de votre FastAPI OpenAPI JSON.4.2 Définir les paramètres de test

4.2 Configurer les paramètres de test de performances

  • Utilisateurs virtuels : spécifiez le nombre d'utilisateurs virtuels pour simuler une charge simultanée.
  • Durée du test : définissez la durée pendant laquelle le test doit s'exécuter.
  • Profil de charge : choisissez entre des profils de charge fixe, d'accélération, de pointe ou de pointe pour simuler différents modèles de trafic.4.3 Exécuter le test de charge

4.3 Exécuter le test de performances

Cliquez sur Exécuter pour démarrer le test de performances. Postman affichera des mesures de performances en temps réel telles que le temps de réponse moyen, le taux d'erreur et le débit.


? Étape 5 : Analyser les résultats des tests

Une fois le test terminé, analysez les résultats pour identifier les goulots d'étranglement en matière de performances :

  • Temps de réponse : Vérifiez si les temps de réponse répondent aux critères de performances de votre application.
  • Taux d'erreur : identifiez toutes les erreurs survenues pendant le test et recherchez leurs causes.
  • Débit : évaluez le nombre de requêtes traitées par seconde pour vous assurer qu'il correspond à la charge attendue.

Postman fournit des métriques détaillées et vous permet de comparer plusieurs exécutions de tests pour suivre les changements de performances au fil du temps.


? Meilleures pratiques pour les tests de charge avec FastAPI et Postman

  1. Gardez la documentation OpenAPI à jour : assurez-vous que votre documentation FastAPI reflète l'état actuel de votre API pour des tests précis.
  2. Utiliser des données dynamiques : intégrez la variabilité dans les données de test pour simuler divers scénarios du monde réel.
  3. Surveiller les ressources système : utilisez des outils de surveillance pour observer l'utilisation du processeur, de la mémoire et du réseau pendant les tests.
  4. Automatiser les tests : intégrez des tests de performances dans votre pipeline CI/CD pour une évaluation continue.
  5. Itérer en fonction des résultats : mettez régulièrement à jour vos tests et votre application en fonction des résultats des tests de performances.

? Conclusion

En tirant parti de la spécification OpenAPI de FastAPI et des fonctionnalités de test de performances de Postman, vous pouvez simuler efficacement le trafic utilisateur et identifier les problèmes de performances potentiels. Cette approche vous permet de garantir que votre application FastAPI reste robuste et réactive dans diverses conditions de charge.

Bon test !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal