Ich möchte eine automatisierte Testsuite für eine REST-API schreiben. Wenn wir neue Services abschließen, möchten wir überprüfen, ob alle zuvor erstellten Services wie erwartet funktionieren. Irgendwelche Vorschläge zu den besten Tools, um dies zu erreichen? Ich weiß, dass es Tools wie Apigee gibt, mit denen Sie jeweils einen Dienst testen können, aber wir möchten eine Möglichkeit finden, alle Dienste mit einem Klick auf eine Schaltfläche zu testen.
api
rest
testing
automation
Prasad
quelle
quelle
Antworten:
Bei meiner Arbeit haben wir kürzlich einige in Java geschriebene Testsuiten zusammengestellt, um einige von uns erstellte RESTful-APIs zu testen. Unsere Services können andere RESTful-APIs aufrufen, von denen sie abhängen. Wir haben es in zwei Suiten aufgeteilt.
Ich würde es auf jeden Fall empfehlen. Es hat wirklich gut für uns funktioniert. Die Hauptvorteile sind:
Für diese Suite müssen wir Daten in Peer-Diensten einrichten, was bedeutet, dass das Schreiben von Tests im Allgemeinen mehr Zeit in Anspruch nimmt. So oft wie möglich verwenden wir REST-Clients, um Daten in Peer-Services einzurichten.
Das Schreiben von Tests in dieser Suite dauert normalerweise länger, daher legen wir den größten Teil unserer Berichterstattung in Suite 1 ab. Allerdings ist diese Suite immer noch von klarem Wert, da sich unsere Verspottungen in Suite 1 möglicherweise nicht ganz wie die tatsächlichen Dienste verhalten.
quelle
Frisby ist ein REST-API-Testframework, das auf node.js und Jasmine basiert und das Testen von API-Endpunkten einfach, schnell und unterhaltsam macht. http://frisbyjs.com
Beispiel:
quelle
Aus diesem Grund habe ich mit einem meiner Mitarbeiter zusammengearbeitet, um das PyRestTest-Framework zu starten: https://github.com/svanoort/pyresttest
Obwohl Sie mit den Tests in Python arbeiten können, ist das normale Testformat in YAML.
Beispieltestsuite für eine grundlegende REST-App - Überprüft, ob APIs korrekt reagieren, und überprüft die HTTP-Statuscodes. Sie können jedoch auch Antwortkörper untersuchen lassen:
quelle
Ich habe die SOAP-Benutzeroberfläche für funktionale und automatisierte Tests verwendet. Mit der SOAP-Benutzeroberfläche können Sie die Tests auf Knopfdruck ausführen. Es gibt auch eine Testseite für Federregler, die von Ted Young erstellt wurde. Ich habe diesen Artikel verwendet, um Rest-Unit-Tests in unserer Anwendung zu erstellen.
quelle
Eines der Probleme beim automatisierten Testen von APIs besteht darin, dass für viele Tools der API-Server betriebsbereit sein muss, bevor Sie Ihre Testsuite ausführen. Es kann ein echter Vorteil sein, über ein Unit-Test-Framework zu verfügen, mit dem die APIs in einer vollautomatisierten Testumgebung ausgeführt und abgefragt werden können.
Eine Option, die für mit Node.JS / Express implementierte APIs gut ist, ist die Verwendung von Mokka für automatisierte Tests. Zusätzlich zu Unit-Tests ist es einfach, Funktionstests für die APIs zu schreiben, die in verschiedene Testsuiten unterteilt sind. Sie können den API-Server automatisch in der lokalen Testumgebung starten und eine lokale Testdatenbank einrichten. Mit make, npm und einem Build-Server können Sie ein "make test" -Ziel und einen inkrementellen Build erstellen, der die gesamte Testsuite jedes Mal ausführt, wenn ein Code an Ihr Repository gesendet wird. Für den wirklich anspruchsvollen Entwickler wird sogar ein netter HTML-Code-Coverage-Bericht erstellt, der Ihnen zeigt, welche Teile Ihrer Codebasis durch Tests abgedeckt sind oder nicht. Wenn dies interessant klingt, finden Sie hier einen Blog-Beitrag mit allen technischen Details.
Wenn Sie keinen Knoten verwenden, können Sie unabhängig vom Defacto-Unit-Test-Framework für die Sprache (jUnit, cucumber / capybara usw.) die Unterstützung für das Hochfahren von Servern in der lokalen Testumgebung und das Ausführen der HTTP-Abfragen überprüfen. Wenn es sich um ein großes Projekt handelt, wird sich der Aufwand für automatisierte API-Tests und kontinuierliche Integration schnell auszahlen.
Hoffentlich hilft das.
quelle
Runscope ist ein Cloud-basierter Dienst, der Web-APIs mithilfe einer Reihe von Tests überwachen kann. Tests können über parametrisierte Web-Hooks geplant und / oder ausgeführt werden. Tests können auch von Rechenzentren auf der ganzen Welt ausgeführt werden, um sicherzustellen, dass die Antwortzeiten für den globalen Kundenstamm akzeptabel sind.
Die kostenlose Stufe von Runscope unterstützt bis zu 10.000 Anfragen pro Monat.
Haftungsausschluss: Ich bin ein Entwickleranwalt für Runscope.
quelle
Ich habe viele Automatisierungsfälle basierend auf REST Assured implementiert, einem Jave-DSL zum Testen eines erholsamen Dienstes. https://code.google.com/p/rest-assured/
Die Syntax ist einfach und unterstützt JSON und XML. https://code.google.com/p/rest-assured/wiki/Usage
Vorher habe ich SOAPUI ausprobiert und hatte einige Probleme mit der kostenlosen Version. Außerdem sind die Fälle in XML-Dateien, die schwer zu erweitern und wiederzuverwenden sind, einfach mag ich nicht
quelle
Sie können auch die Rest Assured-Bibliothek verwenden. Eine Demo mit Beispielskript finden Sie unter http://artoftesting.com/automationTesting/restAPIAutomationGetRequest.html
quelle
API-Testautomatisierung, bis zu einmal pro Minute, ist ein Dienst, der über die RightAPI verfügbar ist . Sie erstellen Ihre Testszenarien und führen sie aus. Sobald diese Tests das tun, was Sie von ihnen erwarten, können Sie sie planen. Tests können für Szenarien, die eine Authentifizierung erfordern, miteinander verkettet werden. Sie können beispielsweise einen Test durchführen lassen, der eine OAuth-Anforderung an Twitter sendet, und ein freigegebenes Token erstellen, das dann von jedem anderen Test verwendet werden kann. An Tests können auch Validierungskriterien angehängt werden, um http-Statuscodes sicherzustellen, oder sogar eine detaillierte Überprüfung der Antworten mithilfe von Javascript oder Schemaüberprüfung. Sobald Tests geplant sind, können Sie durch Warnungen benachrichtigt werden, sobald ein bestimmter Test die Validierung nicht besteht oder sich für die Antwortzeit oder die Antwortgröße außerhalb der festgelegten Bereiche verhält.
quelle
Ich habe TestNG- und Apache-HTTP-Klassen verwendet, um mein eigenes REST-API-Testframework zu erstellen. Ich habe dieses Konzept entwickelt, nachdem ich zwei Jahre in Selen gearbeitet hatte.
Alles ist gleich, außer dass Sie Apache HTTP-Klassen anstelle von Selenium-Klassen verwenden sollten.
Probieren Sie es aus, es ist wirklich süß und gut. Sie haben die Möglichkeit, Ihr Test-Framework an Ihre Möglichkeiten anzupassen.
quelle