API-Test-Tutorial: Was ist API-Testautomatisierung? So testen Sie

Bevor wir zum Tutorial zum API-Testen gehen, sollten wir zunächst verstehen

Was ist API?

API (Application Programming Interface) ist eine Computerschnittstelle, die die Kommunikation und den Datenaustausch zwischen zwei separaten Softwaresystemen ermöglicht. Das Softwaresystem, das eine API ausführt, enthält mehrere Funktionen / Unterprogramme, die ein anderes Softwaresystem ausführen kann. Die API definiert Anforderungen, die gestellt werden können, wie Anforderungen gestellt werden, Datenformate, die verwendet werden können usw. zwischen zwei Softwaresystemen.

Was ist API-Test?

API TESTING ist ein Softwaretesttyp, der APIs (Application Programming Interfaces) validiert. Der Zweck von API-Tests besteht darin, die Funktionalität, Zuverlässigkeit, Leistung und Sicherheit der Programmierschnittstellen zu überprüfen. Beim API-Testen verwenden Sie anstelle von Standardbenutzereingaben (Tastatur) und -ausgaben Software, um Anrufe an die API zu senden, Ausgaben abzurufen und die Antwort des Systems zu notieren. API-Tests unterscheiden sich stark von GUI-Tests und konzentrieren sich nicht auf das Erscheinungsbild einer Anwendung. Es konzentriert sich hauptsächlich auf die Geschäftslogikschicht der Softwarearchitektur.

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

  • Verwenden Sie das Testing Tool, um die API zu steuern
  • Schreiben Sie Ihren eigenen Code, um die API zu testen

In diesem API-Test-Tutorial erfahren Sie mehr über:

  • Einrichtung der API-Testumgebung
  • Arten der Ausgabe einer API
  • Testfälle für API-Tests
  • Ansatz des API-Testens
  • Unterschied zwischen API-Tests und Unit-Tests
  • So testen Sie die API
  • Best Practices für API-Tests
  • Arten von Fehlern, die durch API-Tests erkannt werden
  • So führen Sie die API-Testautomatisierung durch
  • Herausforderungen beim API-Testen

Einrichtung der API-Testumgebung

  • API-Tests unterscheiden sich von anderen Softwaretesttypen, da die grafische Benutzeroberfläche nicht verfügbar ist. Sie müssen jedoch eine anfängliche Umgebung einrichten, in der die API mit den erforderlichen Parametern aufgerufen und anschließend das Testergebnis überprüft wird.
  • Daher scheint das Einrichten einer Testumgebung für API-Automatisierungstests etwas komplex zu sein.
  • Datenbank und Server sollten gemäß den Anwendungsanforderungen konfiguriert werden.
  • Nach Abschluss der Installation 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 (sagen Sie "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

Beliebige Art von Daten

Beispiel: Es gibt eine API-Funktion, die zwei Ganzzahlen hinzufügen sollte.

Lang hinzufügen (int a, int b)

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

Anrufe müssen wie gemacht werden

add (1234, 5656)

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

Status (sagen Sie "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 genauerer Testfall wäre, die Funktionen in einem der Skripte aufzurufen und später entweder in der Datenbank oder in der Anwendungs-GUI nach Änderungen zu suchen.

Aufruf einer anderen API / eines anderen Ereignisses

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 angegebenen Datensatzes in der Tabelle verwendet werden. 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 die Eingabe definiert und die Ergebnisse authentifiziert werden können
  • Gibt nichts zurück: Wenn es keinen Rückgabewert gibt, wird ein Verhalten der API auf dem zu überprüfenden System überprüft
  • Andere APIs / Ereignisse / Interrupts auslösen: 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 einige 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 überprüft werden

API-Testansatz

Der API-Testansatz ist eine vordefinierte Strategie oder Methode, die das QA-Team durchführt, um die API-Tests nach Fertigstellung des Builds durchzuführen. Dieser Test enthält nicht den Quellcode. Der API-Testansatz hilft, die Funktionen, Testtechniken, Eingabeparameter und die Ausführung von Testfällen besser zu verstehen.

Die folgenden Punkte helfen dem Benutzer beim Ausführen des API-Testansatzes:

  1. Verständnis der Funktionalität des API-Programms und klare Definition des Programmumfangs
  2. Wenden Sie Testtechniken wie Äquivalenzklassen, Grenzwertanalyse und Fehlerraten 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 die erwarteten und tatsächlichen Ergebnisse.

Unterschied zwischen API-Tests und Unit-Tests

Unit Testing API-Tests
  • Entwickler führen es aus
  • Tester führen es durch
  • Separate Funktionalität wird getestet
  • Die End-to-End-Funktionalität wird getestet
  • Ein Entwickler kann auf den Quellcode zugreifen
  • Tester können nicht auf den Quellcode zugreifen
  • UI-Tests sind ebenfalls beteiligt
  • Es werden nur API-Funktionen getestet
  • Es werden nur grundlegende Funktionen getestet
  • Alle Funktionsprobleme werden getestet
  • Begrenzter Umfang
  • Weiterer Anwendungsbereich
  • Normalerweise lief vor dem Check-in
  • Wird ausgeführt, nachdem der Build erstellt wurde

So testen Sie die API

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

  • Ermittlungstests: Die Testgruppe sollte die in der API dokumentierten Aufrufe manuell ausführen, z. B. um zu überprüfen, ob eine bestimmte von der API bereitgestellte Ressource entsprechend aufgelistet, erstellt und gelöscht werden kann
  • Usability-Tests: Mit diesen Tests wird überprüft, ob die API funktionsfähig und benutzerfreundlich ist. Und lässt sich API auch gut in eine andere Plattform integrieren?
  • Sicherheitstests: Dieser Test umfasst, welche Art von 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 dem 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 des endgültigen Ergebnisses sein

Best Practices für API-Tests:

  • API-Testfälle sollten nach Testkategorien 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 Tester sie problemlos testen können
  • Jeder Testfall sollte so eigenständig und unabhängig von Abhängigkeiten wie möglich sein
  • Vermeiden Sie "Testverkettung" in Ihrer Entwicklung
  • Besondere Vorsicht ist geboten, wenn einmalige Anruffunktionen wie Löschen, Schließen, Fenster usw. ausgeführt werden.
  • Die Anrufsequenzierung sollte durchgeführt und gut geplant werden
  • Erstellen Sie API-Testfälle für alle möglichen Eingabekombinationen der API, um eine vollständige Testabdeckung sicherzustellen.

Arten von Fehlern, die durch API-Tests erkannt werden

  • Fehlerzustände können nicht ordnungsgemäß behandelt werden
  • Nicht verwendete Flags
  • Fehlende oder doppelte Funktionalität
  • Zuverlässigkeitsprobleme. Schwierigkeiten beim Verbinden und Abrufen einer Antwort von der API.
  • Sicherheitsprobleme
  • Multithreading-Probleme
  • Performance-Probleme. Die API-Antwortzeit ist sehr hoch.
  • Unsachgemäße Fehler / Warnung an einen Anrufer
  • Falsche Behandlung gültiger Argumentwerte
  • Antwortdaten sind nicht korrekt strukturiert (JSON oder XML)

So führen Sie die API-Testautomatisierung durch

Die folgenden Tutorials bieten eine detaillierte Anleitung zur Automatisierung des API-Tests.

So testen Sie die API mit REST Assured

So testen Sie die API mit Postman

So testen Sie die API mit UFT

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

Herausforderungen beim API-Testen

Zu den Herausforderungen beim API-Testen gehören:

  • Die Hauptherausforderungen beim Testen von Web-APIs sind Parameterkombination, Parameterauswahl und Anrufsequenzierung
  • Es ist keine grafische Benutzeroberfläche zum Testen der Anwendung verfügbar , die es schwierig macht , Eingabewerte anzugeben
  • Das Validieren und Überprüfen der Ausgabe in einem anderen System ist für Tester wenig schwierig
  • Die Auswahl und Kategorisierung der Parameter muss den Testern bekannt sein
  • Die Ausnahmebehandlungsfunktion muss getestet werden
  • Codierungskenntnisse sind für Tester 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 dies nicht nur zu Problemen mit der API-Anwendung, sondern auch mit der aufrufenden Anwendung führen. Es ist ein unverzichtbarer Test in der Softwareentwicklung.

Interessante Beiträge...