Heim > Backend-Entwicklung > Python-Tutorial > Lasttests mit FastAPI und Postman: Umfassender Leitfaden

Lasttests mit FastAPI und Postman: Umfassender Leitfaden

Mary-Kate Olsen
Freigeben: 2025-01-03 05:38:39
Original
991 Leute haben es durchsucht

Stellen Sie sich dieses Szenario vor, in dem Ihr Startup an Fahrt gewinnt. Die Benutzerzahl steigt plötzlich! Und steigt nun kontinuierlich von 10 Benutzern auf 100 Benutzer und nutzt Ihre Anwendung schon seit geraumer Zeit. Klicken Sie auf einige Schaltflächen, nutzen Sie einige Funktionen, stellen Sie eine Anfrage von Ihrem Backend-Server ...

Was Sie in einer solchen Situation nicht wollen würden, ist Unvorbereitetheit. Sie möchten sicherstellen, dass Ihre Anwendung zuverlässig und verfügbar für die Benutzer ist. Hier kommt das Testen ins Spiel, und worüber wir hier sprechen würden, ist eine spezielle Art von Tests, die zum Testen dieser Art von Szenarien geeignet ist: Lasttests.

In diesem Leitfaden konzentrieren wir uns auf die Verwendung von FastAPI und seiner automatisierten OpenAPI-Spezifikationsgenerierung, um den Prozess der Generierung von Postman-Sammlungen für Lasttests zu optimieren. Am Ende wissen Sie, wie Sie die OpenAPI-Spezifikation und Postman von FastAPI nutzen, um Ihre Anwendung im großen Maßstab zu testen.


? Warum FastAPI und Postman für Lasttests verwenden?

FastAPI verfügt über integrierte OpenAPI-Unterstützung, die das Dokumentieren und Testen Ihrer APIs erleichtert. Durch die Kombination von FastAPI mit Postman können Sie:

  • Generieren Sie automatisch Postman-Sammlungen aus der OpenAPI-Dokumentation Ihrer FastAPI-API.
  • Vereinfachen Sie die Einrichtung von Anfragen, indem Sie die Sammlung direkt in Postman importieren.
  • Nutzen Sie die leistungsstarken Test- und Skriptfunktionen von Postman für die dynamische Datengenerierung.
  • Skalieren Sie Tests programmgesteuert mit Newman, dem CLI-Tool von Postman, für die CI/CD-Integration.

Diese Synergie zwischen FastAPI und Postman ermöglicht es Entwicklern, schnell reale Verkehrsszenarien zu simulieren und Engpässe in ihren Anwendungen zu identifizieren.


?️ Schritt 1: Einrichten von FastAPI und Swagger

1.1 Starten Sie Ihre FastAPI-Anwendung

Stellen Sie sicher, dass Ihre FastAPI-Anwendung lokal oder auf einem Server ausgeführt wird. Zum Beispiel:

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)
Nach dem Login kopieren
Nach dem Login kopieren

Wenn der Server startet, ist der OpenAPI-JSON-Endpunkt unter http://127.0.0.1:8000/openapi.json verfügbar.

1.2 Überprüfen Sie OpenAPI JSON

Öffnen Sie Ihren Browser und navigieren Sie zu http://127.0.0.1:8000/openapi.json, um sicherzustellen, dass auf OpenAPI JSON zugegriffen werden kann.


? Schritt 2: Exportieren des OpenAPI JSON nach Postman

2.1 Kopieren Sie den OpenAPI-Endpunkt

Sie können die OpenAPI-JSON-Datei entweder lokal mit Ihrem Browser oder per Curl:
speichern

curl -o openapi.json http://127.0.0.1:8000/openapi.json
Nach dem Login kopieren
Nach dem Login kopieren

Oder einfach durch Kopieren der OpenAPI-Endpunkt-URL, http://127.0.0.1:8000/openapi.json.

2.2 OpenAPI JSON in Postman importieren

  1. Öffnen Sie Postman und klicken Sie oben links auf Importieren.
  2. Wählen Sie die heruntergeladene openapi.json-Datei aus.
  3. Postman generiert automatisch eine Sammlung mit allen in der OpenAPI-Spezifikation definierten Endpunkten.

Wenn Sie gerade die Endpunkt-URL kopiert haben, können Sie die URL einfach in die Eingabeleiste oben im Modal einfügen, das angezeigt wird, wenn Sie auf Importieren

klicken

Load Testing using FastAPI and Postman: Comprehensive Guide

2.3 Organisieren und testen Sie Ihre Sammlung

Überprüfen Sie die importierte Sammlung, um sicherzustellen, dass alle Endpunkte korrekt konfiguriert sind. Sie können bei Bedarf auch Umgebungsvariablen oder Skripte für die Authentifizierung oder Datenverwaltung hinzufügen.


? Schritt 3: Vorbereitung auf den Auslastungstest in Postman

3.1 Fügen Sie dynamische Daten zu Ihren Anfragen hinzu

Um reale Szenarien zu simulieren, ändern Sie Ihre Anforderungen so, dass sie dynamische Daten enthalten. Verwenden Sie beispielsweise die integrierten Variablen oder Pre-Request-Skripte von Postman:

Beispiel für ein Pre-Request-Skript:

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)
Nach dem Login kopieren
Nach dem Login kopieren

Beispielnutzlast:

curl -o openapi.json http://127.0.0.1:8000/openapi.json
Nach dem Login kopieren
Nach dem Login kopieren

Sie können auch einfach integrierte Skripte wie $randomInt verwenden, um Zufallswerte zu generieren.
Beispielhafter Anwendungsfall für die Verwendung integrierter Skripte:

pm.variables.set("random_id", Math.floor(Math.random() * 10000));
Nach dem Login kopieren

Dieses integrierte Skript gibt bei jeder gestellten Anfrage Zufallswerte zwischen 0 und 1000 zurück.

3.2 Konfigurieren Sie Variablen in Ihrer Sammlung

Verwenden Sie Sammlungsvariablen in Postman, um API-Basis-URLs, Authentifizierungstokens oder dynamische Parameter ohne Ihre Sammlung zu verwalten. Dies vereinfacht Aktualisierungen und Tests in Ihrer gesamten Sammlung.

Load Testing using FastAPI and Postman: Comprehensive Guide


? Schritt 4: Ausführen von Leistungstests mit Postman's Collection Runner

Postman verfügt jetzt über integrierte Leistungstestfunktionen, mit denen Sie den Benutzerverkehr simulieren und die Leistung Ihrer API bewerten können.

4.1 Starten Sie den Collection Runner

  1. Klicken Sie in Postman auf die Runner-Schaltfläche (Bechersymbol).
  2. Wählen Sie die Sammlung aus, die aus Ihrem FastAPI OpenAPI JSON.4.2 Set Test Parameters importiert wurde

4.2 Konfigurieren Sie die Leistungstesteinstellungen

  • Virtuelle Benutzer: Geben Sie die Anzahl der virtuellen Benutzer an, um gleichzeitige Last zu simulieren.
  • Testdauer: Legen Sie die Dauer fest, für die der Test ausgeführt werden soll.
  • Lastprofil: Wählen Sie zwischen festen, Hochlauf-, Spitzen- oder Spitzenlastprofilen, um verschiedene Verkehrsmuster zu simulieren.4.3 Führen Sie den Lasttest aus

4.3 Führen Sie den Leistungstest durch

Klicken Sie auf „Ausführen“, um den Leistungstest zu starten. Postman zeigt Echtzeit-Leistungsmetriken wie durchschnittliche Antwortzeit, Fehlerrate und Durchsatz an.


? Schritt 5: Testergebnisse analysieren

Nach Abschluss des Tests analysieren Sie die Ergebnisse, um Leistungsengpässe zu identifizieren:

  • Antwortzeiten: Überprüfen Sie, ob die Antwortzeiten den Leistungskriterien Ihrer Anwendung entsprechen.
  • Fehlerraten: Identifizieren Sie alle Fehler, die während des Tests aufgetreten sind, und untersuchen Sie deren Ursachen.
  • Durchsatz: Bewerten Sie die Anzahl der pro Sekunde verarbeiteten Anforderungen, um sicherzustellen, dass sie mit der erwarteten Auslastung übereinstimmen.

Postman bietet detaillierte Metriken und ermöglicht Ihnen den Vergleich mehrerer Testläufe, um Leistungsänderungen im Laufe der Zeit zu verfolgen.


? Best Practices für Lasttests mit FastAPI und Postman

  1. Halten Sie die OpenAPI-Dokumentation auf dem neuesten Stand: Stellen Sie sicher, dass Ihre FastAPI-Dokumentation den aktuellen Status Ihrer API widerspiegelt, um genaue Tests zu ermöglichen.
  2. Verwenden Sie dynamische Daten: Integrieren Sie Variabilität in Testdaten, um verschiedene reale Szenarien zu simulieren.
  3. Systemressourcen überwachen: Verwenden Sie Überwachungstools, um die CPU-, Speicher- und Netzwerknutzung während Tests zu beobachten.
  4. Tests automatisieren: Integrieren Sie Leistungstests zur kontinuierlichen Bewertung in Ihre CI/CD-Pipeline.
  5. Iterieren Sie basierend auf den Ergebnissen: Aktualisieren Sie Ihre Tests und Anwendungen regelmäßig basierend auf den Ergebnissen der Leistungstests.

? Abschluss

Durch die Nutzung der OpenAPI-Spezifikation von FastAPI und der Leistungstestfunktionen von Postman können Sie den Benutzerverkehr effektiv simulieren und potenzielle Leistungsprobleme identifizieren. Mit diesem Ansatz können Sie sicherstellen, dass Ihre FastAPI-Anwendung unter wechselnden Lastbedingungen robust und reaktionsfähig bleibt.

Viel Spaß beim Testen!

Das obige ist der detaillierte Inhalt vonLasttests mit FastAPI und Postman: Umfassender Leitfaden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage