Ich bin auf der TPTP Seite nicht fündig geworden. Ein Forum zu dieser speziellen Platform habe ich auch (noch) nicht gefunden. Also vielleicht hat hier jemand Erfahrung mit dem Testen und "Profilen" einer komplexen Web-App, die mit Sessions, Cookies, JSP Beans und allem drum und dran arbeitet.
In den Tutorials der TPTP Seite - zum Beispiel hier http://www.eclipse.org/tptp/home/documents/communityresources.php#profile - finde ich nur sehr einfach gestrickte Java-Apps. Auch die Beispiele für das Testen einer URL (TPTP URL Test), das ja sonst eine feine Sache ist, beschränkt sich auf super-einfachen HTTP Verkehr. (Einfache Servlets). Meine gebauten (generierten) JUnits und TestCases, etc. funzen natürlch nicht mit unserer App, weil das ohne HTTP-Session nicht funktioniert. POST statt GET ist zwar möglich, aber jetzt bräuchte ich beispielsweise noch eine Möglichkeit eine Session zu erzeugen und als Referenz mit anzugeben. Oder so ähnlich. Gut wäre auch das Emulieren eines ganzen HTTP Verkehrs, so daß server-seitige Objekte peu-a-peu angelegt werden.
Vielleicht hat jemand Erfahrung. Ich hoffe, daß ich das Problem einigermaßen verständlich auf den Punkt bringen konnte. Sonst helfen manchmal auch schon Nachfragen.
Sollte ich zu einer Lösung kommen, werde ich diese dann hier der Vollständigkeit halber die Tage auch noch anfügen.
Okay, kleiner Nachtrag zum Ende des Tages. Ich scheine wohl in die richtige Richtung gedacht zu haben.
Also mit einer Aneinanderreihung von HTTP requests in einem .testsuite (TPTP URL TEST) muß der Austausch mit dem Server nur ab einem frühen Punkt gestartet werden, an dem man sich einloggt, so daß eine Session mit dem TestCode als Client zustande kommt. Soweit verständlich?
Das sollte klappen. Nach Adam Riese. Einfach mit mehreren HTTP Requests einen regulären Austausch mit der Web-App simulieren, dann sollten Sessions, etc. kein Problem sein.
Klappt bei mir leider nicht, weil schon das Abfragen der Startseite (index.jspx), die dem Login dient (in unserem Fall dem Auto-Login), läuft nicht durch, sondern wird mit einem Status-Code 400 beendet. Das ist schonmal schocking. 400!
SELFHTML hat gesagt.:
400 - bad request - Die Anfrage enthält Syntaxfehler. Der Server kann die Anfrage deshalb nicht bearbeiten. Das kann beispielsweise vorkommen, wenn der verwendete Browser einen Programmierfehler aufweist und ungültige Anfragen sendet, oder ein Mensch versucht, händisch (also etwa mit telnet) mit dem Server zu kommunizieren und dabei einen Fehler macht.
Per GET an unsere index.jspx sollte ganz einfach über HTTP etwas HTML zurückgeschickt werden. Ja, der Server (locahost:8080) läuft. Im Behaviour des URL TEST habe ich genau eine Invocation. Nämlich genau den einzigen definierten HTTP Request (index.jspx). Einfacher geht es kaum.
Also das sind ja nun absolute Startschwierigkeiten bei TPTP URL TEST. Hat jemand damit Erfahrung?
Okay, also wir geben auf. Das Möglichkeit komplexe Web Apps zu testen, scheint über TPTP URL TEST gar nicht vorgesehen zu sein. Abgesehen davon, daß nicht mal eine vernünftige GET Abfrage an localhost:8080 funktioniert. (Status Code 400).
Danke für den Tip!
Cactus macht einen ordentlichen Eindruck, beschränkt sich, so weit ich sehen kann, aber auf Testing.
Wir bräuchten auch die Möglichkeit ein Profiling (Performance, etc.) unserer App zu bauen.
Kannst Du dazu bzgl. Cactus etwas sagen?
Nein, scheint nicht zu funktionieren.
Hat noch jemand Erfahrung mit einem anderen Tool als TPTP für Testing UND Profiling (open-source?)
Eine Zusammenstellung habe ich hier gefunden: http://www.oio.de/j2ee-testtools.htm
Starte doch deine WebApp in TPTP und stelle dann anfragen per browser, wenn du an einem Profiler interessiert bist.
Falls du dich für Unittests interessierst, dann gibt es oft spezielle Libs für das Webframework deiner Wahl (struts1, JSF,..), manche (shale/struts2) bringen schon Unittest Unterstützung von Haus aus mit). Das erwähnte Cactus wäre eine Möglichkeit für Integrationstests, für funktionale Tests eignet sich Selenium.
Das geht leider nicht. (Siehe mein Urproblem.)
Mit TPTP fing eigenlich alles so vielversprechend an (Auto-Generierung der HyadesTestCases, etc.). Wäre super, wenn wir ein TestUnit- UND Profiling-Framework, dazu auch noch als Eclipse-PlugIn, nutzen könnten. Leider entpuppte sich TPTP dann doch als Mogelpackung. Jedenfalls bei der Emulierung des Netz-Betriebes.
Wenn jemand ein TPTP URL TEST erfolgreich durchgeführt hat, (ohne den de facto nicht vorhandenen 'HTTP Recorder', wie er im Tutorial erwähnt wird), kann er mir gerne beschreiben, wie das gehen soll. Unsere App kann man damit nicht ansprechen (responseCode 400, s.o.). Sogar eine super-einfache Applikation, die nur eine index.html hat, liefert ResponseCode 400. Pfad (/SimpleWebSite/index.html), Hostname (127.0.0.1 oder localhost), Port (8080) sind alle nach Vorgabe eingestellt. TPTP ist wohl als UnitTest ganz klasse, im Web Bereich für uns aber nicht nutzbar.
Was dagegen besser zu sein scheint (nach unseren ersten Versuchen) ist Cactus und für das Profiling JMeter. Leider im Fall von JMeter außerhalb von Eclipse.