Ich muss Web-API-Funktionen im REST-Format testen. Derzeit wird Selenium RC zum Testen der Website verwendet. Und mit XmlUnit
und HttpClient
unsere REST-API funktional zu testen. Aber es scheint, dass das Leben einfacher wäre, wenn wir unseren funktionalen Testcode wirklich in das gesamte Selen aufteilen könnten. Insbesondere mit WebDriver von Selenium 2.0 ist es einfacher denn je, XML-Antworten mit XPath
zu testen.Selenium vs XmlUnit + HttpClient für Web-REST-API-Test
Meine Gedanken im Pro XmlUnit+HttpClient
Lager:
- erlaubt direkte Datenbankaufrufe oder Spring-Beans
- leichter Antworten Tests JSON erlaubt auf einfache Weise zu testen, wenn/falls wir unterstützen, dass in Zukunft
- Selen wurde für Web-UI gemeint, nicht API-Tests
Meine Gedanken im Pro Selenium WebDriver
Lager Ruhe:
- trennt die Funktionsprüfung aller in Standard-Selen-Tests aus
- leicht Ergebnisse testen, indem Sie unsere anderen Selen UI-Tests verwendet wird, weiter die Benutzeroberfläche testen
- ermöglicht andere als Kernentwickler funktionelle API Tests
- vielleicht Meinung leichter zu bedienende Dienste wie BrowserMob, die Selen-Tests verwendet, um Test-API zu laden?
- hoffentlich schnellen Funktionstests mit Selen Rahmen
Wir verwenden Frühling 3 und überwintert. Was ist das Beste, um unsere API funktional zu testen?
hmmm ... Ich denke, das Testen einer API ist zwischen Einheit und Funktion ... guter Punkt. –
Ich würde es eher Integrationstests als Unit-Tests nennen. Unter der Annahme, dass der Code hinter der API Unit-getestet ist, würde diese Art von Tests meist sicherstellen, dass die Unit-Test-Annahmen korrekt sind und somit die verschiedenen Einheiten richtig integriert werden können. –
Ein Funktions- und Unit-Test schließen sich nicht gegenseitig aus. Die niedrigste testbare Funktion, die möglich ist, könnte sehr gut die gesamte Funktionalität sein. Auch wenn ein Web-Service so konzipiert ist, dass er von einem anderen System genutzt werden kann, ist es immer noch eine Website, und ein Test, der die gesamte Funktionalität umfasst, wäre ein Funktionstest. Nichtsdestotrotz ist die Verwendung von Selenium zum Testen von nicht-Javascript/statischen Webseiten wahrscheinlich ein Overkill. Wie Konfuzius sagte: "Benutze keine Kanone, um Moskitos zu töten." – Manatax