api testing tutorial
In diesem ausführlichen Tutorial zum Testen von APIs wird alles über API-Tests, Webdienste und die Einführung in API-Tests in Ihrem Unternehmen erläutert:
In diesem Einführungs-Tutorial erhalten Sie einen tiefen Einblick in API-Tests sowie in das Konzept der Linksverschiebungstests und Webdienste.
Konzepte wie die Web-API, die Funktionsweise der API (anhand eines Beispiels aus der Praxis) und die Unterschiede zu Webdiensten werden in diesem Lernprogramm anhand von Beispielen ausführlich erläutert.
=>RUNTERSCROLLENHier finden Sie die gesamte Liste der 5 ausführlichen API-Test-Tutorials für Anfänger
Was du lernen wirst:
- Liste der API-Test-Tutorials
- Übersicht der Tutorials in dieser API-Testreihe
- API-Test-Tutorial
- Einführung in API-Tests in Ihrer Organisation
- Fazit
Liste der API-Test-Tutorials
Tutorial Nr. 1: API-Test-Tutorial: Eine vollständige Anleitung für Anfänger
Tutorial # 2: Web Services Tutorial: Komponenten, Architektur, Typen und Beispiele
Tutorial # 3: Top 35 ASP.Net- und Web-API-Interviewfragen mit Antworten
Tutorial # 4: POSTMAN Tutorial: API-Tests mit POSTMAN
Tutorial Nr. 5: Testen von Webdiensten mit dem Apache HTTP-Client
Übersicht der Tutorials in dieser API-Testreihe
Lernprogramm # | Was du lernen wirst | |
---|---|---|
LoadFocus | Basierend auf der Anzahl der Benutzer und den Planarten | * Kann für API-Lasttests verwendet werden - ermöglicht das Ausführen weniger Tests, um die Anzahl der Benutzer herauszufinden, die eine API unterstützen kann. * Einfach zu bedienen - ermöglicht das Ausführen von Tests im Browser. |
Tutorial_ # 1: | API-Test-Tutorial: Eine vollständige Anleitung für Anfänger In diesem ausführlichen Tutorial zum Testen von APIs werden alle Informationen zu API-Tests und Webdiensten ausführlich erläutert und Sie erfahren, wie Sie API-Tests in Ihrem Unternehmen einführen. | |
Tutorial_ # 2: | Web Services Tutorial: Komponenten, Architektur, Typen und Beispiele In diesem Tutorial zu Webdiensten werden die Architektur, Typen und Komponenten von Webdiensten sowie wichtige Terminologien und die Unterschiede zwischen SOAP und REST erläutert. | |
Tutorial_ # 3: | Top 35 ASP.Net- und Web-API-Interviewfragen mit Antworten In diesem Tutorial finden Sie die Liste der am häufigsten gestellten Fragen zu ASP.Net- und Web-API-Interviews mit Antworten und Beispielen für Anfänger und erfahrene Profis. | |
Tutorial_ # 4: | POSTMAN Tutorial: API-Tests mit POSTMAN In diesem Schritt-für-Schritt-Tutorial werden API-Tests mit POSTMAN sowie die Grundlagen von POSTMAN, seinen Komponenten und Beispielanforderung und -antwort in einfachen Worten erläutert, damit Sie sie leichter verstehen. | |
Tutorial_ # 5: | Testen von Webdiensten mit dem Apache HTTP-Client In diesem API-Lernprogramm werden verschiedene CRUD-Vorgänge für Webdienste ausgeführt und Webdienste mit dem Apache HTTP-Client getestet |
API-Test-Tutorial
Dieser Abschnitt hilft Ihnen dabei, ein grundlegendes Verständnis der Webdienste und der Web-API zu erlangen. Dies ist wiederum hilfreich, um die wichtigsten Konzepte in den kommenden Tutorials dieser API-Testreihe zu verstehen.
API (Application Programming Interface) ist eine Reihe aller Prozeduren und Funktionen, mit denen wir eine Anwendung erstellen können, indem wir auf die Daten oder Funktionen des Betriebssystems oder der Plattformen zugreifen. Das Testen solcher Verfahren wird als API-Testen bezeichnet.
Testen nach links verschieben
Eine der wichtigsten Arten von Tests, die heutzutage in API-Testinterviews gefragt werden, ist das Shift-Left-Testen. Diese Art des Testens wird in fast allen Projekten durchgeführt, die einer agilen Methodik folgen.
Vor der Einführung von Shift Left Testing wurden Softwaretests erst nach Abschluss der Codierung und Lieferung des Codes an die Tester sichtbar. Diese Praxis führte dazu, dass in letzter Minute die Frist eingehalten wurde, und beeinträchtigte auch die Produktqualität in hohem Maße.
Abgesehen davon waren die Anstrengungen (als Fehler in der letzten Phase vor der Produktion gemeldet wurden) enorm, da die Entwickler sowohl die Entwurfs- als auch die Codierungsphase erneut durchlaufen mussten.
Software Development Life Cycle (SDLC) vor dem Testen nach links
Traditioneller SDLC-Fluss war: Anforderung -> Design -> Codierung -> Testen.
Nachteile des traditionellen Testens
- Das Testen ist ganz rechts. Wenn in letzter Minute ein Fehler erkannt wird, fallen viele Kosten an.
- Der Zeitaufwand für die Behebung des Fehlers und das erneute Testen des Fehlers, bevor er in die Produktion aufgenommen wird, ist enorm.
Daher tauchte eine neue Idee auf, um die Testphase nach links zu verschieben, was zu Shift Left Testing führte.
Empfohlene Lektüre => Shift Left Testing: Ein geheimes Mantra für den Softwareerfolg
Phasen des Linksverschiebungstests
Linksverschiebungstests führten zu einer erfolgreichen Migration von der Fehlererkennung zur Fehlervermeidung. Es half auch der Software, schnell zu versagen und alle Fehler frühestens zu beheben.
Web-API
Im Allgemeinen kann eine Web-API als etwas definiert werden, das die Anforderung von einem Client-System an einen Webserver weiterleitet und die Antwort von einem Webserver an einen Client-Computer zurücksendet.
Wie funktioniert eine API?
Nehmen wir ein sehr häufiges Szenario für die Buchung eines Fluges auf www.makemytrip.com, einem Online-Reisedienst, der Informationen von mehreren Fluggesellschaften zusammenfasst. Wenn Sie eine Flugbuchung vornehmen, geben Sie Informationen wie Reisedatum / Rückflugdatum, Klasse usw. ein und klicken auf Suchen.
Dies zeigt Ihnen den Preis mehrerer Fluggesellschaften und deren Verfügbarkeit. In diesem Fall interagiert die Anwendung mit APIs mehrerer Fluggesellschaften und ermöglicht so den Zugriff auf die Daten der Fluggesellschaft.
Ein weiteres Beispiel ist www.trivago.com, das den Preis, die Verfügbarkeit usw. verschiedener Hotels einer bestimmten Stadt vergleicht und auflistet. Diese Website kommuniziert mit APIs mehrerer Hotels, um auf die Datenbank zuzugreifen, und listet die Preise und die Verfügbarkeit auf ihrer Website auf.
Eine Web-API kann daher als „Schnittstelle definiert werden, die die Kommunikation zwischen einem Client-Computer und dem Webserver erleichtert“.
Internetdienste
Webdienste sind (wie die Web-API) die Dienste, die von einem Computer zum anderen bereitgestellt werden. Der Hauptunterschied zwischen API und Web Services besteht jedoch darin, dass die Web Services ein Netzwerk verwenden.
Man kann mit Sicherheit sagen, dass alle Webdienste Web-APIs sind, aber alle Web-APIs keine Webdienste (wird im letzten Teil des Artikels erläutert). Daher sind Webdienste eine Teilmenge der Web-API. Weitere Informationen zu Web-API und Webdiensten finden Sie in der folgenden Abbildung.
Web API vs Web Services
Web Services vs Web API
Sowohl die Web-API als auch die Webdienste werden verwendet, um die Kommunikation zwischen dem Client und dem Server zu erleichtern. Der Hauptunterschied besteht nur in der Art und Weise, wie sie kommunizieren.
Jeder von ihnen benötigt einen Anforderungshauptteil, der in einer bestimmten Sprache akzeptabel ist, seine Unterschiede bei der Bereitstellung einer sicheren Verbindung, seine Geschwindigkeit bei der Kommunikation mit dem Server und bei der Beantwortung des Clients usw.
Die Unterschiede zwischen Webdiensten und Web-API werden unten als Referenz aufgeführt.
Internetservice
- Webdienste verwenden im Allgemeinen XML (Extensible Markup Language), was bedeutet, dass sie sicherer sind.
- Web Services sind sicherer, da sowohl Web Services als auch APIs während der Datenübertragung SSL (Secure Socket Layer) bereitstellen, aber auch WSS (Web Services Security).
- Der Webdienst ist eine Teilmenge der Web-API. Zum Beispiel, Webdienste basieren nur auf drei Verwendungsstilen, d. H. SOAP, REST und XML-RPC.
- Webdienste benötigen zum Betrieb immer ein Netzwerk.
- Web Services unterstützen 'One Code verschiedene Anwendungen'. Dies bedeutet, dass ein allgemeinerer Code für verschiedene Anwendungen geschrieben wird.
Web-API
- Eine Web-API verwendet im Allgemeinen JSON (JavaScript Object Notation), was bedeutet, dass die Web-API schneller ist.
- Die Web-API ist schneller, da JSON im Gegensatz zu XML leichtgewichtig ist.
- Web-APIs sind die Obermenge der Webdienste. Zum Beispiel, Alle drei Arten von Webdiensten sind auch in der Web-API vorhanden, aber abgesehen davon werden andere Stile wie JSON-RPC verwendet.
- Für den Betrieb der Web-API ist nicht unbedingt ein Netzwerk erforderlich.
- Die Web-API unterstützt je nach Art des Systems oder der Anwendung möglicherweise die Interoperabilität.
Einführung in API-Tests in Ihrer Organisation
In unserem täglichen Leben sind wir alle daran gewöhnt, mit den Apps mit APIs zu interagieren, und dennoch denken wir nicht einmal an die Back-End-Prozesse, die die zugrunde liegende Funktionalität steuern.
Zum Beispiel, Nehmen wir an, Sie durchsuchen die Produkte auf Amazon.com und sehen ein Produkt / Angebot, das Ihnen wirklich gefällt, und möchten es mit Ihrem Facebook-Netzwerk teilen.
Sobald Sie auf das Facebook-Symbol im Freigabebereich der Seite klicken und Ihre Facebook-Kontoanmeldeinformationen eingeben, um sie freizugeben, interagieren Sie mit einer API, die die Amazon-Website nahtlos mit Facebook verbindet.
Fokusverschiebung zu API-Tests
Bevor wir mehr über API-Tests sprechen, wollen wir die Gründe diskutieren, aus denen die API-basierten Anwendungen in letzter Zeit an Popularität gewonnen haben.
Es gibt mehrere Gründe, aus denen Unternehmen auf API-basierte Produkte und Anwendungen umsteigen. Und einige von ihnen sind unten als Referenz aufgeführt.
# 1) API-basierte Anwendungen sind im Vergleich zu herkömmlichen Anwendungen / Software skalierbarer. Die Geschwindigkeit der Codeentwicklung ist schneller und dieselbe API kann mehr Anforderungen ohne größere Code- oder Infrastrukturänderungen bearbeiten.
#zwei) Entwicklungsteams müssen nicht jedes Mal von Grund auf neu programmieren, wenn sie an der Entwicklung einer Funktion oder Anwendung arbeiten. APIs verwenden vorhandene, wiederholbare Funktionen, Bibliotheken, gespeicherte Prozeduren usw. am häufigsten wieder. Daher kann dieser Prozess sie insgesamt produktiver machen.
Zum Beispiel, Wenn Sie als Entwickler an einer E-Commerce-Website arbeiten und Amazon als Zahlungsabwickler hinzufügen möchten, müssen Sie den Code nicht von Grund auf neu schreiben.
Sie müssen lediglich die Integration zwischen Ihrer Website und der Amazon-API mithilfe von Integrationsschlüsseln einrichten und die Amazon-API aufrufen, um Zahlungen während der Kaufabwicklung zu verarbeiten.
#3) APIs ermöglichen eine einfache Integration in die anderen Systeme sowohl für unterstützte Standalone-Anwendungen als auch in API-basierte Softwareprodukte.
Zum Beispiel Nehmen wir an, Sie möchten eine Sendung von Toronto nach New York senden. Sie gehen online, navigieren zu einer bekannten Website für Fracht oder Logistik und geben die erforderlichen Informationen ein.
Nachdem Sie die obligatorischen Informationen angegeben haben und auf die Schaltfläche 'Tarife abrufen' klicken, wird diese Logistik-Website im Back-End möglicherweise mit mehreren APIs und Anwendungen von Netzbetreibern und Dienstanbietern verbunden, um die dynamischen Tarife für die Kombination von Standorten zwischen Ursprung und Ziel abzurufen.
Volles Spektrum der API-Tests
Das Testen von APIs ist nicht darauf beschränkt, eine Anforderung an die API zu senden und die Antwort allein auf Richtigkeit zu analysieren. Die APIs müssen auf ihre Leistung unter verschiedenen Belastungen für Schwachstellen getestet werden.
Lassen Sie uns dies im Detail diskutieren.
(i) Funktionsprüfung
Funktionstests können aufgrund des Fehlens einer GUI-Schnittstelle eine herausfordernde Aufgabe sein.
Mal sehen, wie die Funktionsprüfungsansatz for APIs unterscheidet sich von GUI-basierten Anwendungen und wir werden auch einige Beispiele dazu diskutieren.
zu) Der offensichtlichste Unterschied ist, dass es keine GUI gibt, mit der man interagieren kann. Tester, die normalerweise GUI-basierte Funktionstests durchführen, finden es etwas schwieriger, auf Nicht-GUI-Anwendungstests umzusteigen, als wenn sie bereits mit jemandem vertraut sind.
Bevor Sie mit dem Testen der API beginnen, müssen Sie zunächst den Authentifizierungsprozess selbst testen und überprüfen. Die Authentifizierungsmethode variiert von einer API zur anderen und umfasst eine Art Schlüssel oder Token für die Authentifizierung.
Wenn Sie keine erfolgreiche Verbindung zur API herstellen können, können keine weiteren Tests durchgeführt werden. Dieser Vorgang kann als vergleichbar mit der Benutzerauthentifizierung in Standardanwendungen angesehen werden, in denen Sie gültige Anmeldeinformationen benötigen, um sich anzumelden und die Anwendung zu verwenden.
b) Das Testen von Feldvalidierungen oder die Validierung von Eingabedaten ist beim Testen von APIs sehr wichtig. Wenn eine tatsächliche formularbasierte (GUI) Schnittstelle verfügbar wäre, könnten Feldvalidierungen im Front-End oder Back-End implementiert werden, um sicherzustellen, dass ein Benutzer keine ungültigen Feldwerte eingeben darf.
Zum Beispiel, Wenn für eine Anwendung das Datumsformat TT / MM / JJJJ erforderlich ist, können wir diese Validierung auf das Formular anwenden, um Informationen zu sammeln, um sicherzustellen, dass die Anwendung ein gültiges Datum empfängt und verarbeitet.
Dies gilt jedoch nicht für API-Anwendungen. Wir müssen sicherstellen, dass die API gut geschrieben ist und alle diese Überprüfungen erzwingen, zwischen gültigen und ungültigen Daten unterscheiden und den Statuscode und die Validierungsfehlermeldung über eine Antwort an den Endbenutzer zurücksenden kann.
c) Das Testen der Richtigkeit der Antworten von der API auf gültige und ungültige Antworten ist in der Tat von entscheidender Bedeutung. Wenn ein Statuscode von 200 (dh alles in Ordnung) als Antwort von der Test-API empfangen wird, der Antworttext jedoch besagt, dass ein Fehler aufgetreten ist, handelt es sich um einen Fehler.
Wenn die Fehlermeldung selbst falsch ist, kann dies für den Endkunden, der versucht, sich in diese API zu integrieren, sehr irreführend sein.
Im folgenden Screenshot hat der Benutzer ein ungültiges Gewicht eingegeben, das mehr als die zulässigen 2267 kg beträgt. Die API antwortet mit dem Fehlerstatuscode und der Fehlermeldung. In der Fehlermeldung werden die Gewichtseinheiten jedoch fälschlicherweise als lbs anstelle von KG angegeben. Dies ist ein Fehler, der den Endkunden verwirren kann.
(ii) Last- und Leistungstests
APIs sollen vom Design her skalierbar sein.
Dies wiederum macht Load und Leistungstest Dies ist besonders wichtig, wenn erwartet wird, dass das zu entwerfende System je nach Anforderung Tausende von Anforderungen pro Minute oder Stunde bearbeitet. Die routinemäßige Durchführung von Last- und Leistungstests auf der API kann dabei helfen, die Leistung, die Spitzenlasten und die Bruchstelle zu vergleichen.
Diese Daten sind nützlich, wenn Sie planen, eine Anwendung zu skalieren. Die Verfügbarkeit dieser Informationen hilft bei der Unterstützung von Entscheidungen und Planungen, insbesondere wenn die Organisation plant, mehr Kunden hinzuzufügen, was mehr eingehende Anfragen bedeuten würde.
Dateieingabe Ausgabe c ++
Zum Beispiel Angenommen, basierend auf den bereitgestellten Anforderungen wissen wir, dass die API, die entwickelt wurde, mindestens 500 Anforderungen pro Stunde bearbeiten und die durchschnittliche Antwortzeit von weniger als 0,01 Sekunden einhalten muss.
Basierend auf unseren Last- und Leistungstests haben wir herausgefunden, dass die API, solange sie weniger als 500 Anforderungen pro Stunde empfängt, die SLA für die durchschnittliche Antwortzeit beibehalten kann. Wenn jedoch weitere 200 Anforderungen empfangen werden, erhöht sich die durchschnittliche Antwortzeit und der Bruchpunkt wird erreicht, wenn die eingehende Anforderung 1200 pro Stunde überschreitet.
Normalerweise zeigt sich, dass in den ersten Entwurfsphasen häufig die funktionalen Aspekte der API im Vordergrund stehen. Mit der Zeit unterstützt ein Produkt mehrere Live-Clients. In diesem Fall werden die Tests auf API-Leistung und Lasttests routinemäßiger ausgeführt.
(iii) Sicherheitstests
Anwendungsprogrammierschnittstellen oder APIs sind anfällig und der einfachste Zugangspunkt für böswillige Hacker, die auf Daten zugreifen oder die Kontrolle über eine Anwendung erlangen möchten.
Dies kann jedes Unternehmen in rechtliche Schwierigkeiten bringen, wenn aufgrund einer Sicherheitsverletzung unbeabsichtigte Personen und / oder Organisationen über eine ehrwürdige API auf Kundendaten zugreifen können.
Sicherheitstests ist ein spezialisierter Testzweig und sollte von Spezialisten behandelt werden. Die Ressourcen für Sicherheitstests können von der Organisation oder von unabhängigen Beratern stammen.
Lesen Sie auch = >> Was ist Paktvertragstests?
So führen Sie API-Tests in Ihrer Organisation ein
Der Prozess zum Einführen von API-Tests in jeder Organisation ähnelt dem Prozess zum Implementieren oder Ausrollen anderer Testtools und Frameworks.
In der folgenden Tabelle sind die Hauptschritte zusammen mit dem erwarteten Ergebnis jedes Schritts zusammengefasst.
Phase | Schritt | Erwartetes Ergebnis |
---|---|---|
Werkzeugauswahl | Sammeln Sie Anforderungen und identifizieren Sie Einschränkungen | Verstehen Sie die Anforderungen für die Marktforschung nach geeigneten API-Testwerkzeugen. Z.B. Welche Art von API wird getestet - SOAP oder REST? Müssen wir einen Tester für diese Rolle einstellen oder einen vorhandenen Tester schulen? Welche Art von Tests werden durchgeführt - Funktions-, Leistungstests usw. Wie hoch ist das Budget für die Umsetzung? |
Bewerten Sie die verfügbaren Tools | Vergleichen Sie die verfügbaren Tools und wählen Sie 1 oder 2 Tools aus, die den Anforderungen am besten entsprechen. | |
Konzeptioneller Beweiß | Implementieren Sie eine Teilmenge von Tests mit dem Shortlist-Tool. Präsentieren Sie die Ergebnisse den Stakeholdern. Finalisieren Sie das zu implementierende Tool. | |
Implementierung | Einstieg | Abhängig von Ihrem gewählten Tool müssen Sie das erforderliche Tool nicht auf einem PC, einer virtuellen Maschine oder einem Server installieren. Wenn das Tool Ihrer Wahl abonnementbasiert ist, erstellen Sie die erforderlichen Teamkonten. Trainieren Sie das Team bei Bedarf. |
Loslegen | Erstellen Sie Tests Führen Sie Tests durch Mängel melden |
Gemeinsame Herausforderungen und Möglichkeiten, sie zu entschärfen
Lassen Sie uns einige der allgemeinen Herausforderungen diskutieren, denen sich QA-Teams bei der Implementierung eines API-Testframeworks in einer Organisation gegenübersehen.
# 1) Das richtige Werkzeug auswählen
Die Auswahl des richtigen Werkzeugs für den Job ist die häufigste Herausforderung. Es gibt verschiedene API-Testtools, die auf dem Markt verfügbar sind.
Es mag sehr ansprechend erscheinen, das neueste und teuerste auf dem Markt erhältliche Tool zu implementieren. Wenn es jedoch nicht die gewünschten Ergebnisse liefert, ist dieses Tool nicht von Nutzen.
Wählen Sie daher immer das Tool aus, das die Anforderungen erfüllt, die Sie haben müssen, basierend auf Ihren organisatorischen Anforderungen.
Hier ist eine Beispiel-Tool-Bewertungsmatrix für die verfügbaren API-Tools
Werkzeug | Preisgestaltung | Anmerkungen |
---|---|---|
Soap UI | Kostenlose Version für SoapUI Open Source verfügbar (Funktionstests) | * REST, SOAP und andere beliebte API- und IoT-Protokolle. * In der kostenlosen Version enthalten Ad-hoc-Tests für SOAP und REST Nachrichtensicherung Erstellung von Drag & Drop-Tests Testprotokolle Testkonfiguration Test von Aufnahmen Unit Reporting. * Eine vollständige Liste der Funktionen finden Sie auf ihrer Website. |
Postbote | Kostenlose Postman App verfügbar | * Am häufigsten für REST verwendet. * Funktionen finden Sie auf ihrer Website. |
Parasoft | Es handelt sich um ein kostenpflichtiges Tool, für das eine Lizenz erworben und anschließend installiert werden muss, bevor das Tool verwendet werden kann. | * Umfassende API-Tests: Funktions-, Last-, Sicherheitstests, Testdatenverwaltung |
vREST | Basierend auf der Anzahl der Benutzer | * Automatisierte REST-API-Tests. * Aufnehmen und wiedergeben. * Entfernt die Abhängigkeit von Frontend und Backend mithilfe von Schein-APIs. * Leistungsstarke Antwortvalidierung. * Funktioniert für Testanwendungen, die im lokalen Host / Intranet / Internet bereitgestellt werden. * JIRA Integration, Jenkins Integration Importe von Swagger, Postman. |
HttpMaster | Express Edition: Kostenloser Download Professionelle Version: Basierend auf der Anzahl der Benutzer | * Hilft beim Testen von Websites sowie beim Testen von APIs. * Weitere Funktionen umfassen die Möglichkeit, globale Parameter zu definieren, und bieten dem Benutzer die Möglichkeit, Überprüfungen für die Validierung von Datenantworten mithilfe der zahlreichen unterstützten Validierungstypen zu erstellen. |
Runscope | Basierend auf der Anzahl der Benutzer und Planarten | * Zum Überwachen und Testen von APIs. * Kann zur Datenvalidierung verwendet werden, um sicherzustellen, dass korrekte Daten zurückgegeben werden. * Enthält die Funktion zum Nachverfolgen und Benachrichtigen bei einem API-Transaktionsfehler (wenn Ihre Anwendung eine Zahlungsüberprüfung erfordert, kann sich dieses Tool als gute Wahl erweisen). |
PingAPI | Kostenlos für 1 Projekt (1.000 Anfragen) | * Vorteilhaft für automatisiertes Testen und Überwachen von APIs. |
# 2) Fehlende Testspezifikationen
Als Tester müssen wir die erwarteten Ergebnisse kennen, um eine Anwendung effektiv testen zu können. Dies ist oft eine Herausforderung, da wir klare genaue Anforderungen haben müssen, um die erwarteten Ergebnisse zu ermitteln - was nicht der Fall ist.
Zum Beispiel Beachten Sie die folgenden Anforderungen:
'Der Antrag sollte nur ein gültiges Versanddatum akzeptieren und alle ungültigen Anforderungen sollten abgelehnt werden.'
Diesen Anforderungen fehlen wichtige Details und sie sind sehr vieldeutig - wie definieren wir ein gültiges Datum? Was ist mit dem Format? Senden wir eine Ablehnungsnachricht an den Endbenutzer usw. zurück?
Beispiel für klare Anforderungen:
1) Die Anwendung sollte nur ein gültiges Versanddatum akzeptieren.
Das Versanddatum gilt als gültig, wenn es ist
- Nicht in der Vergangenheit
- Größer oder gleich dem heutigen Datum
- Ist im akzeptablen Format: TT / MM / JJJJ
zwei)
Antwortstatuscode = 200
Meldung: OK
3) Das Versanddatum, das die oben genannten Kriterien nicht erfüllt, sollte als ungültig angesehen werden. Wenn ein Kunde ein ungültiges Versanddatum sendet, muss er mit den folgenden Fehlermeldungen antworten:
3.1
Antwortstatuscode NICHT 200
Fehler: Das angegebene Versanddatum ist ungültig. Bitte stellen Sie sicher, dass das Datum im Format TT / MM / JJJJ vorliegt
3.2
Antwortstatuscode NICHT 200
Fehler: Vorausgesetzt, das Versanddatum liegt in der Vergangenheit
# 3) Lernkurve
Wie bereits erwähnt, unterscheidet sich der Ansatz für API-Tests im Vergleich zu dem Ansatz, der beim Testen von GUI-basierten Anwendungen verfolgt wird.
Wenn Sie interne Spezialisten oder Berater für API-Tests einstellen, ist die Lernkurve des API-Testansatzes oder des API-Testtools möglicherweise minimal. Jede Lernkurve wäre in diesem Fall mit dem Erwerb des Produkt- oder Anwendungswissens verbunden.
Wenn ein vorhandenes Teammitglied mit dem Erlernen von API-Tests beauftragt ist, kann die Lernkurve je nach ausgewähltem Tool mittel bis hoch sein und den Testansatz ändern. Die Lernkurve für das Produkt oder die Anwendung selbst kann niedrig bis mittel sein, je nachdem, ob dieser Tester diese Anwendung zuvor getestet hat oder nicht.
# 4) Vorhandene Fähigkeiten
Dies knüpft direkt an den vorherigen Punkt über die Lernkurve an.
Wenn ein Tester von GUI-basierten Tests übergeht, muss der Tester den Testansatz ändern und das neue Tool oder Framework nach Bedarf erlernen. Z.B. Wenn die API die Anforderungen im JSON-Format akzeptiert, muss der Tester lernen, was JSON ist, um mit der Erstellung der Tests zu beginnen.
Fallstudie
Aufgabe
Um eine vorhandene Anwendung zu skalieren, wollte ein Unternehmen ein Produkt in API sowie eine Standard-GUI-Anwendung anbieten. Das QA-Team wurde gebeten, einen Testabdeckungsplan vorzulegen, um sicherzustellen, dass es bereit ist, API-Tests über die regulären GUI-basierten Tests hinaus durchzuführen.
Herausforderungen
- Keines der anderen Softwareprodukte verfügte über eine API-basierte Architektur. Um Tests für diese Aufgabe durchführen zu können, muss das Team den API-Testprozess von Grund auf neu einrichten. Dies bedeutet, dass die Tools evaluiert, in die engere Wahl gezogen, finalisiert und das Team für die Tests geschult werden musste.
- Für den Erwerb und die Implementierung des Tools wurde kein zusätzliches Budget bereitgestellt. Dies bedeutet, dass das Team ein kostenloses oder Open-Source-API-Testtool auswählen musste und jemand aus dem vorhandenen Team geschult werden musste, um diese Aufgabe zu übernehmen.
- Es gab keine Anforderungen für API-Felder und Datenvalidierung. Die Anforderungen lauteten 'sollten genauso funktionieren wie die entsprechende GUI-Anwendung'.
Der Ansatz des Teams, Risiken zu minimieren und die Herausforderungen zu bewältigen
- Das QA-Team arbeitete mit dem Projektteam zusammen, um die folgenden Anforderungen zu ermitteln:
- API-Typ (REST / SOAP): SICH AUSRUHEN
- Erforderliche Tests (Funktion, Last, Sicherheit): Nur Funktionsprüfung
- Automatisierte Tests erforderlich (Ja / Nein): Vorerst optional
- Prüfberichte (Ja / Nein): Erforderlich
- Das QA-Team hat eine Tool-Evaluierung der verfügbaren Tools durchgeführt API-Testtools basierend auf den Must-Have-Anforderungen. Das Postman API Tool wurde als Tool ihrer Wahl fertiggestellt, da es kostenlos und einfach zu verwenden war, wodurch die Lernkurve minimiert wurde und das Potenzial zur Automatisierung von Tests bestand. Es enthielt gute integrierte Berichte.
- Derselbe Tester, der die Anwendung getestet hat, wurde für die Verwendung von Postman zur Erstellung erster Tests geschult, wodurch Produktwissenslücken beseitigt wurden.
- Um die fehlenden Anforderungen zu erfüllen, erstellte das Projektteam mit Swagger die Dokumentation auf Feldebene auf hoher Ebene. Dies ließ jedoch einige Lücken in Bezug auf akzeptable Datenformate und dies wurde mit dem Projektteam aufgenommen und die erwarteten Formate wurden vereinbart und dokumentiert.
Fazit
API-basierte Anwendungen haben in letzter Zeit an Popularität gewonnen. Diese Anwendungen sind im Vergleich zu herkömmlichen Anwendungen / Software skalierbarer und ermöglichen eine einfachere Integration mit den anderen APIs oder Anwendungen.
In diesem Tutorial zum Testen von APIs wurde alles über API-Tests, Shift Left-Tests, Webdienste und Web-API ausführlich erläutert. Wir haben auch die Unterschiede zwischen Web Services und Web API anhand von Beispielen untersucht.
Im zweiten Teil des Tutorials haben wir das gesamte Spektrum des API-Testens, die Einführung des API-Testens in Ihr Unternehmen und einige häufig auftretende Herausforderungen in diesem Prozess sowie Lösungen für diese besprochen.
In unserem nächsten Tutorial erfahren Sie mehr über Web Services und Beispiele!
Literatur-Empfehlungen
- Alpha-Tests und Beta-Tests (eine vollständige Anleitung)
- Funktionstests gegen nichtfunktionale Tests
- Tutorial zum Testen der Benutzerfreundlichkeit: Eine vollständige Anleitung für die ersten Schritte
- Vollständige Anleitung zum Erstellen von Verifikationstests (BVT-Tests)
- DevOps-Test-Tutorial: Wie wirkt sich DevOps auf QS-Tests aus?
- Tutorial zum Testen der Barrierefreiheit (Eine vollständige Schritt-für-Schritt-Anleitung)
- Beste Software-Test-Tools 2021 (QA Test Automation Tools)
- Was ist Softwaretest? Über 100 kostenlose Tutorials zum manuellen Testen