API-Test-Tutorial: Was ist API-Testautomatisierung?

Was ist API-Test?

API-Tests ist ein Softwaretesttyp, der Anwendungsprogrammierschnittstellen (APIs) validiert. Der Zweck von API-Tests besteht darin, die Funktionalität, Zuverlässigkeit, Leistung und Sicherheit der Programmierschnittstellen zu überprüfen. Beim API-Test verwenden Sie anstelle der Verwendung standardmäßiger Benutzereingaben (Tastatur) und -ausgaben Software, um Aufrufe an die API zu senden, Ausgaben zu erhalten und die Antwort des Systems aufzuzeichnen. API-Tests unterscheiden sich stark von GUI-Tests und konzentrieren sich nicht auf das Erscheinungsbild einer Anwendung. Sie konzentrieren sich hauptsächlich auf die Geschäftslogikebene der Softwarearchitektur.

API-Testbild

Für den Hintergrund, API (Anwendungsprogrammierschnittstelle) ist eine Computerschnittstelle, die die Kommunikation und den Datenaustausch zwischen zwei separaten Softwaresystemen ermöglicht. Ein Softwaresystem, das eine API ausführt, umfasst mehrere Funktionen/Unterroutinen, die ein anderes Softwaresystem ausführen kann. Die API definiert Anfragen, die zwischen zwei Softwaresystemen gestellt werden können, wie Anfragen gestellt werden, welche Datenformate verwendet werden können usw.

Einrichtung einer API-Testautomatisierungsumgebung

API-Automatisierungstests erfordern eine Anwendung, die über eine API interagiert werden kann. Um eine API zu testen, müssen Sie Folgendes tun

  1. Verwenden Sie das Testtool, um die API zu steuern
  2. Schreiben Sie Ihren eigenen Code, um die API zu testen

Einige Punkte sind zu beachten

  • API-Tests unterscheiden sich von anderen Arten von Softwaretests, da keine grafische Benutzeroberfläche verfügbar ist. Sie müssen jedoch eine anfängliche Umgebung einrichten, die die API mit einem erforderlichen Parametersatz aufruft, und anschließend das Testergebnis untersuchen.
  • Daher scheint das Einrichten einer Testumgebung für API-Automatisierungstests etwas komplex.
  • Datenbank und Server sollten entsprechend den Anwendungsanforderungen konfiguriert werden.
  • Sobald die Installation abgeschlossen ist, sollte die API-Funktion aufgerufen werden, um zu überprüfen, ob diese API funktioniert.

Arten der Ausgabe einer API

Eine Ausgabe der API könnte sein

  1. Jede Art von Daten
  2. Status (z. B. „Bestanden“ oder „Nicht bestanden“)
  3. Rufen Sie eine andere API-Funktion auf.

Schauen wir uns in diesem API-Test-Tutorial ein Beispiel für jeden der oben genannten Typen an

Jede Art von Daten

Beispiel: Es gibt eine API-Funktion, die zwei Ganzzahlen addieren soll.

Long add(int a, int b)

Die Zahlen müssen als Eingabeparameter angegeben werden. Die Ausgabe sollte eine Summe zweier ganzer Zahlen sein. Diese Ausgabe muss mit einem erwarteten Ergebnis überprüft werden.

Der Anruf muss wie folgt erfolgen

add (1234, 5656)

Ausnahmen müssen behandelt werden, wenn die Anzahl den Ganzzahlgrenzwert überschreitet.

Status (z. B. „Bestanden“ oder „Nicht bestanden“)

Betrachten Sie die folgende API-Funktion –

  1. Sperren()
  2. Freischalten()
  3. Löschen ()

Sie geben einen beliebigen Wert wie True (im Erfolgsfall) oder False (im Fehlerfall) als Ausgabe zurück.

Ein genaueres Testfall Sie können die Funktionen in jedem der Skripte aufrufen und später entweder in der Datenbank oder in der Anwendungs-GUI nach Änderungen suchen.

Aufruf einer anderen API/Ereignis

Aufruf einer anderen API/Ereignis

In diesem Fall rufen wir eine der API-Funktionen auf, die wiederum eine andere Funktion aufruft.

Beispiel: Die erste API-Funktion kann zum Löschen eines bestimmten Datensatzes in der Tabelle verwendet werden, und diese Funktion ruft wiederum eine andere Funktion auf, um die Datenbank zu aktualisieren.

Testfälle für API-Tests:

Testfälle von API-Tests basieren auf

  • Rückgabewert basierend auf der Eingabebedingung: Es ist relativ einfach zu testen, da Eingaben definiert und Ergebnisse authentifiziert werden können
  • Gibt nichts zurück: Wenn kein Rückgabewert vorhanden ist, muss das Verhalten der API auf dem System überprüft werden
  • Lösen Sie eine andere API/ein anderes Ereignis/einen anderen Interrupt aus: Wenn eine Ausgabe einer API ein Ereignis oder einen Interrupt auslöst, sollten diese Ereignisse und Interrupt-Listener verfolgt werden
  • Datenstruktur aktualisieren: Das Aktualisieren der Datenstruktur hat Auswirkungen auf das System und sollte authentifiziert werden
  • Bestimmte Ressourcen ändern: Wenn ein API-Aufruf einige Ressourcen ändert, sollte dies durch Zugriff auf die entsprechenden Ressourcen validiert werden

API-Testansatz

API-Testansatz ist eine vordefinierte Strategie oder Methode, die das QA-Team durchführt, um die API-Tests durchzuführen, nachdem der Build fertig ist. Dieser Test umfasst nicht den Quellcode. Der API-Testansatz hilft, die Funktionalitäten, Testtechniken, Eingabeparameter und die Ausführung von Testfällen besser zu verstehen.

Die folgenden Punkte helfen dem Benutzer bei der Durchführung eines API-Testansatzes:

API-Testansatz

  1. Die Funktionalität des API-Programms verstehen und den Umfang des Programms klar definieren
  2. Wenden Sie Testtechniken wie Äquivalenzklassen, Grenzwertanalyse und Fehlerschätzung an und schreiben Sie Testfälle für die API
  3. Eingabeparameter für die API müssen entsprechend geplant und definiert werden
  4. Führen Sie die Testfälle aus und vergleichen Sie erwartete und tatsächliche Ergebnisse.

Unterschied zwischen API-Tests und Unit-Tests

Unit-Test API-Tests
Entwickler führen es aus Tester führen es durch
Getrennte Funktionalität wird getestet Die End-to-End-Funktionalität wird getestet
Ein Entwickler kann auf den Quellcode zugreifen Tester haben keinen Zugriff auf den Quellcode
Auch UI-Tests sind beteiligt Es werden nur API-Funktionen getestet
Es werden nur grundlegende Funktionalitäten getestet Alle Funktionsprobleme werden getestet
Begrenzter Umfang Umfangreicher
Wird normalerweise vor dem Check-in durchgeführt Testlauf nach Erstellung des Builds

So testen Sie die API

API-Automatisierungstests sollten neben dem üblichen SDLC-Prozess mindestens folgende Testmethoden abdecken

  • Discovery-Tests: Die Testgruppe sollte die in der API dokumentierten Aufrufe manuell ausführen, z. B. überprüfen, ob eine bestimmte von der API bereitgestellte Ressource je nach Bedarf aufgelistet, erstellt und gelöscht werden kann
  • Usability-Tests: Bei diesem Test wird überprüft, ob die API funktionsfähig und benutzerfreundlich ist. Und lässt sich die API auch gut in eine andere Plattform integrieren?
  • Sicherheitstests: Zu diesen Tests gehört, welche Art der Authentifizierung erforderlich ist und ob vertrauliche Daten über HTTP oder beides verschlüsselt werden
  • Automatisiertes Testen: API-Tests sollten in der Erstellung einer Reihe von Skripten oder eines Tools gipfeln, mit denen die API regelmäßig ausgeführt werden kann
  • Dokumentation: Das Testteam muss sicherstellen, dass die Dokumentation angemessen ist und genügend Informationen für die Interaktion mit der API bereitstellt. Die Dokumentation sollte Teil der endgültigen Leistung sein

Best Practices für API-Tests:

  • API-Testfälle sollten nach Testkategorie gruppiert werden
  • Zusätzlich zu jedem Test sollten Sie die Deklarationen der aufgerufenen APIs einfügen.
  • Die Auswahl der Parameter sollte im Testfall selbst explizit erwähnt werden
  • Priorisieren Sie API-Funktionsaufrufe, damit sie für Tester einfacher zu testen sind
  • Jeder Testfall sollte möglichst eigenständig und unabhängig von Abhängigkeiten sein
  • Vermeiden Sie „Testverkettungen“ in Ihrer Entwicklung
  • Beim Umgang mit einmaligen Aufruffunktionen wie „Löschen“, „Fenster schließen“ usw. ist besondere Vorsicht geboten.
  • Die Anrufsequenzierung sollte durchgeführt und gut geplant werden
  • Um eine vollständige Testabdeckung sicherzustellen, erstellen Sie API-Testfälle für alle möglichen Eingabekombinationen der API.

Arten von Fehlern, die API-Tests erkennen

  • Fehlerbedingungen können nicht ordnungsgemäß behandelt werden
  • Unbenutzte Flaggen
  • Fehlende oder doppelte Funktionalität
  • Zuverlässigkeitsprobleme. Es ist schwierig, eine Verbindung herzustellen und eine Antwort zu erhalten API.
  • Sicherheitsprobleme
  • Multithreading-Probleme
  • Performance-Probleme. Die API-Antwortzeit ist sehr hoch.
  • Unzulässige Fehler/Warnungen an einen Anrufer
  • Falsche Behandlung gültiger Argumentwerte
  • Antwortdaten sind nicht richtig strukturiert (JSON oder XML)

So führen Sie API-Testautomatisierung durch

1) ReadyAPI

ReadyAPI ist ein führendes Tool für Funktions-, Sicherheits- und Lasttests von RESTful, SOAP, GraphQL und anderen Webdiensten. Auf einer intuitiven Plattform erhalten Sie drei leistungsstarke Tools: ReadyAPI Test, ReadyAPI Performance und ReadyAPI Virtualization. Mit diesen Tools können Sie Funktions-, Sicherheits- und Leistungs-/Lasttests durchführen. Mit unserem robusten Virtualisierungstool können Sie auch API- und Webdienste simulieren. Darüber hinaus können Sie Ihre einfach integrieren CI / CD-Pipeline bei jedem Build.

ReadyAPI

ZENTRALE FUNKTIONEN

  • ReadyAPI kann in jede Umgebung integriert werden.
  • Es verfügt über eine Smart-Assertion-Funktion, die schnell Massen-Assertionen für Hunderte von Endpunkten erstellen kann.
  • Native Unterstützung für Git, Docker, Jenkins, Azure, usw.
  • Unterstützt die Befehlszeile für automatisierte Tests.
  • Unterstützt die parallele Ausführung von Funktionstests und Job-Warteschlangen.
  • Promotestet die Wiederverwendung von Code
  • Entfernt Abhängigkeiten während des Testens und der Entwicklung.

Besuchen Sie ReadyAPI >>

14-tägige kostenlose Testversion (keine Kreditkarte erforderlich)

Die folgenden Tutorials bieten eine ausführliche Anleitung zur Automatisierung von API-Tests.

Darüber hinaus gibt es weitere Tools zum API-Testen. Überprüfen Sie sie hier

Herausforderungen des API-Testens

Zu den Herausforderungen beim API-Testen gehören:

  • Die größten Herausforderungen beim Testen von Web-APIs sind Parameterkombination, Parameterauswahl und Aufrufsequenzierung
  • Es ist keine GUI verfügbar um die Anwendung zu testen, was macht Es ist schwierig, Eingabewerte anzugeben
  • Die Validierung und Verifizierung der Ausgabe in einem anderen System ist für Tester etwas schwierig
  • Die Auswahl und Kategorisierung der Parameter muss den Testern bekannt sein
  • Ausnahmebehandlungsfunktion muss getestet werden
  • Für Tester sind Programmierkenntnisse erforderlich

Fazit

Die API besteht aus einer Reihe von Klassen/Funktionen/Prozeduren, die die Geschäftslogikschicht darstellen. Wenn die API nicht ordnungsgemäß getestet wird, kann es nicht nur in der API-Anwendung, sondern auch in der aufrufenden Anwendung zu Problemen kommen. Es handelt sich um einen unverzichtbaren Test im Software-Engineering.