Welche Optionen gibt es zum Erstellen automatisierter Tests für in Java Swing geschriebene GUIs?
Ich möchte einige GUIs testen, die mit dem NetBeans Swing GUI Builder geschrieben wurden. Ideal wäre also etwas, das funktioniert, ohne dass der zu testende Code speziell manipuliert werden muss.
java
swing
testing
automated-tests
pauldoo
quelle
quelle
Antworten:
Kürzlich bin ich auf FEST gestoßen, was vielversprechend schien, außer dass der Entwickler 2012 angekündigt hat, dass die Entwicklung nicht fortgesetzt werden soll .
AssertJ ist eine Gabelung von FEST, die für mich sehr gut funktioniert. Es wird aktiv gewartet (zum Zeitpunkt des Schreibens), unterstützt Java 8, enthält Zusicherungen für einige beliebte Bibliotheken wie Guava und Joda Time und ist sehr gut dokumentiert. Es ist auch kostenlos und offen.
quelle
Ich benutze derzeit FEST . Es funktioniert mit JUnit und macht auch Screenshots von fehlgeschlagenen Tests.
Es verfügt über Standardmethoden für die Komponentenjagd, die nach dem Namen der zu testenden Komponente suchen (die manuell festgelegt werden müssen). Sie können die Tester für eine bestimmte Komponente jedoch auch generieren, indem Sie ihr die Komponente übergeben.
quelle
Sie können versuchen, mit Cucumber und Swinger funktionale Abnahmetests in einfachem Englisch für Swing-GUI-Anwendungen zu schreiben. Swinger verwendet die Jemmy-Bibliothek von Netbeans unter der Haube, um die App zu steuern.
Mit Gurke können Sie Tests wie folgt schreiben:
Scenario: Dialog manipulation Given the frame "SwingSet" is visible And the frame "SwingSet" is the container When I click the menu "File/About" Then I should see the dialog "About Swing!" Given the dialog "About Swing!" is the container When I click the button "OK" Then I should not see the dialog "About Swing!"
Schauen Sie sich diese Swinger-Video-Demo an, um sie in Aktion zu sehen.
quelle
Wir erwägen jemmy , einige der GUI-Tests zu automatisieren. Sieht vielversprechend aus.
quelle
Ich benutze
java.awt.Robot
. Ist nicht schön, ist nicht einfach, funktioniert aber jedes Mal.Vorteile:
Nachteile:
Wenn Sie jetzt das Budget haben, würde ich mich für LoadRunner entscheiden. Klassenbester.
(Offenlegung: Beziehung zu dem Unternehmen, dem LR gehört, aber ich habe vor der Beziehung mit LR zusammengearbeitet)
quelle
Robot
extrem spröde sind. Ein Hauptproblem ist, dass die Low-Level- API mit absoluten Koordinaten arbeitet. Tests können sogar dann ausfallen, wenn sich Ihr zu testendes System (SUT) nicht geändert hat (z. B. wenn es auf einem anderen Betriebssystem ausgeführt wird).Wir verwenden QF-Test und sind sehr zufrieden.
quelle
Ich habe es nicht persönlich benutzt, aber SwingUnit sieht ziemlich gut aus. Sie können es mit jUnit verwenden und es basiert nicht auf der "Position der Komponenten" (dh x- und y-Koordinaten).
Mit dem NetBeans GUI Builder müssen Sie möglicherweise nur eindeutige Namen für Ihre Komponenten festlegen.
quelle
Sie können Marathon verwenden : "MarathonITE Integrated Testing Environment, MarathonITE, ist ein erschwingliches, benutzerfreundliches und plattformübergreifendes Java / Swing ™ GUI-Testautomatisierungsframework. Sie können den integrierten Skriptrekorder von MarathonITE verwenden, um saubere, lesbare Testskripte zu erstellen Mit erweiterten Funktionen wie Refactoring von Extraktmethoden, Erstellen von datengesteuerten Tests und Bearbeiten von Objektkarten können Sie wartbare, ausfallsichere Testsuiten erstellen. "
quelle
Sikuli: ein GUI-Tester mit Screenshots http://sikuli.org/
quelle
Du könntest es versuchen ReTest , ein neuartiges Tool, das einen innovativen Ansatz für funktionale Regressionstests implementiert und mit ai-basierten Affentests kombiniert. Es wird auch Open Source ...
Haftungsausschluss: Ich bin einer der Gründer des Unternehmens hinter ReTest.
quelle
Für Abenteuerlustige gibt es https://github.com/robertoaflores/Gooey ein (sehr einfaches und in der Entwicklung befindliches) programmatisches Testwerkzeug für Swing-Anwendungen.
quelle
Sie können Sikuli oder Automa zum Testen Ihres GUI-Teils verwenden. Dies sind gut dokumentierte und getestete Tools
quelle
Habe gerade ein paar schnelle Scans gemacht. Squish war das vielversprechendste. Nicht kostenlos
quelle