Automatisiertes Test-Framework

8

Ich versuche, ein automatisiertes Test-Framework für einige unserer internen Web-Services (Java) bei der Arbeit zu erstellen. Jeder Dienst hat eine Reihe von APIs (3-5), obwohl dies relativ einfach zu erreichen ist, kommt das Problem mit einigen APIs, die sich nicht wie reine Funktionen verhalten, zB: etwas wie persistX, könnte dies etwas in einer Datenbank speichern und gibt eine Ausnahme zurück, falls ein Fehler auftritt. Es gibt keine einfache Möglichkeit zu validieren, da hier keine Ausgabe erfolgt.

Ich habe mich also gefragt, ob das ein bisschen verallgemeinert sein könnte, sagen wir beim Testen der API, dass der Benutzer ein einfaches Plugin oder Skript für das Framework bereitstellen könnte, das den Test validieren könnte. Dies ist nur eine Idee wäre toll, wenn jemand mir bessere oder irgendwelche Ressourcen über das gleiche sagen könnte.

Danke

    
jack_carver 03.02.2012, 03:08
quelle

2 Antworten

6

Ich empfehle das Roboter-Framework . Es ist ein schlüsselwortgesteuertes Framework, das in Python geschrieben ist. Aus diesem Grund können Sie es in der JVM mit jython ausführen, was bedeutet, dass Sie es mit Java-Code (oder natürlich Python) erweitern können. Ich habe es erfolgreich zum Aufruf von APIs verwendet und dann das Ergebnis überprüft, indem ich in eine Datenbank geblickt oder das Dateisystem abgefragt habe.

Es funktioniert auch auf der .NET-Plattform, hat ein Selenium-Modul zum Testen des Frontends, ein jenkins-Plugin und mehrere andere Tools. Es ist sehr erweiterbar und flexibel.

    
Bryan Oakley 03.02.2012, 03:14
quelle
4

Was Sie sehen, ist die Anwendung von Black-Box- und White-Box-Tests und die Tools, die beides unterstützen.

Für Webdienste, die eine ordnungsgemäße Antwort zurückgeben, können Sie Black-Box-Tests durchführen, indem Sie die Daten in zurückgegebenen Antworten überprüfen. SoapUI ist das beste Werkzeug dafür.

Für die APIs, die sich nicht wie reine Funktionen verhalten, führen Sie White-Box-Tests durch, indem Sie ihre Nebenwirkungen wie Persistenz, Ereignisgenerierung, Protokollierung usw. überprüfen. Sie mögen programmierbare Tools und SoapUI kann oder kann nicht die richtige Option sein.

Wir machen beides bei unserer Arbeit und nachdem ich mehrere Tools / Frameworks evaluiert habe (SoapUI, RSSPec, Robotframework), habe ich mich für Spock entschieden Spock . Warum Spock?

  1. Es ermöglicht Ihnen, Absicht enthüllen Tests im BDD-Stil
  2. zu schreiben
  3. Wir sind ein Java-Shop und möchten die gleiche vertraute Sprache für die Automatisierung verwenden, aber mit vereinfachtem syntaktischem Zucker. Und Spock ist alles groovy basiert.
  4. Ausgezeichnete Unterstützung für Webdriver / Selenium 2 (einschließlich PageFactory) mit Geb
  5. Es ist auf JUNIT aufgebaut, so dass alle Plugins von JUNIT genutzt werden können (Code-Coverage, Hudson / Jenkins-Integration usw.)
  6. Viele Webservice-APIs und XML-DSLs (keine Notwendigkeit, mit XPATH für einfache Szenarien zu arbeiten)
  7. Vereinfachtes Setup (im Gegensatz zu Robotframe erfordert es kein Python, jython setup)

usw. ....

    
Aravind R. Yarram 03.02.2012 03:37
quelle