Die neuen Features per Video: 'QF-Test
Features 4.1'.
Neue Features:
- Web
Das eingebettete Selenium WebDriver Framework wurde auf Version 3.6.0 aktualisiert, ChromeDriver
auf Version 2.33 (unterstützt Chrome bis Version 62) und GeckoDriver auf Version 0.19, welche auch
Firefox Versionen 55-57 unterstützt.
- Web
Für Window und Panel Knoten der unterstützten AJAX Toolkits gibt es nun eigene Checks für deren Titel.
Beseitigte Bugs:
-
Es wurde ein Workaround für einen Fehler im Linux JRE 8_152 implementiert, durch den QF-Test beim Start
hängen bleiben konnte.
- Swing
Ein Swing-basiertes SUT, welches über die Prozedur
qfs.daemon.startRemoteSUT
auf
einem anderen Rechner gestartet wird, verbindet sich nun auch dann korrekt mit QF-Test, wenn die Option
Über QF-Test Agent verbinden im Daemon deaktiviert ist.
- JavaFX
Es wird nun die Interaktion mit der JavaFX HTMLEditor Komponente unterstützt, inklusive Checks für deren
rohen HTML-Code und den dargestellten Text.
- Web
Bei der Aufnahme von HTTP Requests wurden einige Sonderzeichen nicht mit der korrekten Kodierung
gespeichert.
- SWT
Die Behandlung von Frames in einem in SWT eingebetteten Browser funktioniert nun wieder.
Neue Features:
-
Der eingebettete ChromeDriver wurde auf Version 2.33 aktualisiert (unterstützt
Chrome bis Version 62) und GeckoDriver auf Version 0.19, welche auch Firefox Version 55 und höher
unterstützt.
Beseitigte Bugs:
-
Eine Race Condition in der Demo-Testsuite für Lasttests wurde beseitigt.
-
Das Fenster zur Code-Vervollständigung wurde versehentlich auch in Protokollen angezeigt.
-
Die Prozedur
qfs.utils.files.readExcelFile
in der qfs.qft
Standardbibliothek behandelt Excel Dateien mit leeren Zeilen nun korrekt.
-
Ein von einer Resolver-Methode zurückgelieferter Groovy GString wird zur Weiterverarbeitung nun korrekt in
einen Java String konvertiert.
-
Eine Regression in der Performance der Komponenten-Erkennung basierend auf qfs:label wurde korrigiert und
die Performance für Swing Tests allgemein verbessert.
-
Bei der Ausführung von manuellen Tests über die Suite
ManualTestRunner.qft
bleiben Größe und
Position der ManualStepDialog
Fenster nun erhalten.
- JavaFX
Ein modaler JavaFX Dialog, der beim Abspielen eines WINDOW_CLOSING Event geöffnet wird, konnte zu einer
DeadlockTimeoutException führen.
- JavaFX
Der editable Check fehlte für JavaFX ComboBoxen.
- JavaFX
Die Unterstützung für JavaFX SplitMenuButtons wurde verbessert, so dass Klicks auf den Hauptteil des
Buttons und den kleinen Pfeil bei der Aufnahme sauber unterschieden werden.
- Web
Das Erzeugen vieler JxBrowser Instanzen konnte zu einem Memory Leak führen.
- Web
Zweimaliges Warten auf das Laden der gleichen Webseite schlug nicht wie erwartet fehl, wenn die Seite
zwischendurch nicht aktualisiert wurde.
- Web
Die Wiedergabe eines Auswahl Events für eine Liste im Firefox mit dem QF-Driver Verbindungsmodus
löst nun nur dann einen Change Event aus, wenn sich die Selektion in der Liste wirklich ändert.
Neue Features:
- SWT
Es wird nun Eclipse/SWT 4.7 "Oxygen" unterstützt.
- Web
Das eingebettete Selenium WebDriver Framework wurde auf Version 3.4.0 aktualisiert, ChromeDriver
auf Version 2.29 (unterstützt Chrome bis Version 58) und GeckoDriver auf Version 0.16.1, welche auch
Firefox Version 53 und höher unterstützt.
- Web
Die Unterstützung für das AJAX Toolkit Qooxdoo wurde auf den aktuellen Stand des Konzepts für generische
Klassen gebracht.
-
Bei Fortsetzung der Testausführung nach einer Unterbrechung wird nun automatisch von der Anzeige der
Variablen auf das Terminal umgeschaltet.
-
Die Reiter in der Projektansicht haben nun ein Kontextmenü und können durch einen Klick mit der mittleren
Maustaste geschlossen werden.
- Web
Das Handbuch-Kapitel über die Anpassung des
CustomWebResolver
für ein AJAX Toolkit wurde auf
den aktuellen Entwicklungsstand gebracht (Abschnitt 49.1).
-
Die Prozedur
qfs.autowin.acrobat.saveAsText
behandelt nun automatisch
Warnungen bzgl. des geschützten Modus durch einen Klick auf "Alle Funktionen aktivieren".
-
Mit Hilfe der neuen Methode
resolvers.addSpecificExtraFeatureMatcher
zum Registrieren eines
ExtraFeatureMatcher
über das resolvers
Modul kann der Name des Features bereits
beim Registrieren angegeben werden.
Beseitigte Bugs:
-
Eine mögliche
NumberFormatException
- eingeschleust in QF-Test 4.1.3 - bei Ausführung im
Batchmodus mit -verbose [<level>]
wurde beseitigt.
-
Wurde über den erweiterten Suchen/Ersetzen Dialog der reguläre Ausdruck .* durch einen leeren String
ersetzt, konnte dies zu einer Exception führen, oder zum Löschen von Tabelleneinträgen ohne vorherige
Rückfrage.
-
Die Importskripte für TestLink konnten über Unicode-Zeichen in Testfall-Namen von TestLink stolpern.
-
Wurde Text mit Anführungsstrichen aus der Zwischenablage in Variablen oder andere Tabellen eingefügt,
konnten die Anführungsstriche verloren gehen.
-
Bei Ermittlung des weiteren Merkmals
qfs:label
konnte bei ComboBox, Spinner oder Slider
Komponenten fälschlicherweise der Tooltip einem nahestehenden Label vorgezogen werden.
-
Der @rerun Doctag wurde nicht korrekt ermittelt, wenn noch andere Zeilen im Kommentar eines Knotens
enthalten waren.
-
Das Kommandozeilenargument
-plugindir <Verzeichnis>
wurde im Batchmodus ignoriert.
-
Bei Auswahl einer Komponente über den Dialog konnte eine explizite Referenz erstellt werden, obwohl die
Komponente in einer inkludierten Testsuite enthalten war.
-
Explizite Referenzen auf Komponenten innerhalb der lokalen Testsuite wurden bei der Suche nach ungenutzten
Komponenten nicht berücksichtigt.
-
Die Analyse von Referenzen funktionierte bei relativen Testaufrufen nicht korrekt.
-
Dauer und Echtzeit werden nun beim Zusammenführen von Protokollen korrekt aktualisiert.
-
Falls die Jython Version 2.5 installiert ist, wird der Jython Package Cache nun wieder automatisch
aktiviert, wie es in QF-Test 4.0 der Fall war.
-
War die Option Intelligentes Scrollen in Bäumen deaktiviert, wurde der selektierte Knoten im Baum
teilweise gar nicht mehr sichtbar gescrollt, z.B. nach einer Suche oder beim Betreten des Debuggers.
- Web
In speziellen Fällen wurden eigene Zuweisungen für Klassen in AJAX Resolvern nicht ausgewertet.
- Web
Die Bibliotheken für hardwaregestützte Grafik im eingebetteten Chrome Browser wurden wieder entfernt,
da sie beim Öffnen eines Popup-Fensters zu einem Crash führen konnten.
- Web
Der Attribut-Cache im eingebetteten Chrome Browser funktionierte in QF-Test 4.1.3 für nicht-Standard Attribute
nicht korrekt, was in einzelnen Fällen zu Problemen bei der Wiedererkennung führen konnte.
- Web
Viele Debug-Ausgaben von GeckoDriver und Mozilla Marionette werden nun aus dem gemeinsamen Terminal
gefiltert.
-
In einzelnen Fällen konnte durch das Löschen des Browser-Caches der Start von Edge minutenlang verzögert
werden.
- JavaFX
Der Eintrag zur Anzeige der vorhandenen Methoden fehlte im Menü für die Komponenten-Aufnahme bei JavaFX.
Wichtige Hinweise:
-
Selenium WebDriver für Firefox unterstützt jeweils nur die letzten beiden Firefox Versionen sowie die
aktuelle ESR Release. Zum Zeitpunkt dieser QF-Test Release sind das Firefox 51, 52 und 52ESR. Wir tun unser
Bestes, um darüber hinaus zu gehen und unterstützen immer noch Firefox 38ESR, 45 und höher, aber ältere
Firefox Versionen laufen einfach nicht so stabil wie aktuelle. Es gab einen großen Sprung für Selenium
WebDriver zwischen Firefox 47 und 48, so dass WebDriver basierte Tests ab Firefox 48 wesentlich schneller
laufen. Für eine längerfristige Unterstützung empfehlen wir aktuell Firefox 52ESR.
Neue Features:
- Web
Ein Schwerpunkt dieser Release ist die Performance, vor allem beim Webtesten. Sie wurde für den WebDriver
Modus und den JxBrowser drastisch verbessert und auch signifikant für Webtesten allgemein. Einige der
erzielbaren Effekte fallen allerdings, abhängig von der Implementierung der jeweiligen Webanwendung,
unterschiedlich stark aus.
- Web
Dank der verbesserten Performance ist die Aufnahme im WebDriver Modus nun stabil und sollte die gleichen
Ergebnisse liefern wie die Aufnahme im QF-Driver Modus.
-
Die Aufnahme und Wiedergabe von Doppelklicks mit der Maus ist nun intuitiver und konsistent für alle GUI
Engines. Bisher wurde ein 'Mausevent' Knoten mit dem Event-Typ 'Mausklick' und dem Wert 2 für
'Anzahl Klicks' als 'Doppelklick' dargestellt, obwohl es lediglich der Zweite der beiden
Events war, die zur Simulation eines Doppelklicks benötigt wurden. Solche Knoten werden nun als 'Folgeklick'
bezeichnet und es gibt den neuen Event-Typ 'Doppelklick', der korrekt alle benötigten Einzelevents
simuliert, um einen kompletten Doppelklick mit einem einzigen Knoten durchzuführen.
-
Testsuiten können nun durch einen Klick mit der mittleren Maustaste auf ihren Tab geschlossen
werden.
-
Die Prozedur
qfs.database.executeSelectStatement
in der QF-Test Standardbibliothek
qfs.qft
wurde im Bezug auf das Setzen einer Property-Gruppe für das Ergebnis verbessert. Die
Gruppe wird nun zunächst gelöscht, bevor das aktuelle Ergebnis eingetragen und die Zahl der
Ergebniszeilen darin als Property 'count' gesetzt wird.
-
Es können nun Fallback-Werte als Platzhalter im der Template-Datei für die Aufnahme von Prozeduren definiert
werden.
-
QF-Test zeigt nun den kompletten Pfad der aktuellen Testsuite sowie die QF-Test Version in der Titelzeile des
Hauptfensters an. Über die Option Vollständigen Dateipfad und QF-Test Version in der Titelzeile anzeigen lässt sich dies wieder auf den
Dateinamen reduzieren.
- Web
WebDriver wurde für die aktuellen Chrome und Firefox Versionen aktualisiert und QF-Test ist nun kompatibel
zur mit dem Windows 10 "Creators Update" kommenden Version des Microsoft Edge Browsers.
Beseitige Bugs:
-
Bisher wurden Resolver stets global registriert und galten für alle GUI Engines eines SUT Clients, was bei
hybriden Anwendungen zu ungewollten Seiteneffekten führen konnte. Durch Setzen des
'GUI Engine' Attributs im 'SUT Skript' Knoten, der einen Resolver
registriert, kann der Resolver nun auf eine bestimmte Engine eingeschränkt werden.
-
QF-Test umgeht nun ein Problem in Jython 2.7, das den Start von QF-Test in dem Fall verhinderte, dass das
Home-Verzeichnis des Anwenders internationale Zeichen enthält.
-
Groovy wurde zu Version 2.4.8 aktualisiert, in der ein Leck im PermGen Speicher von Java 7 beseitigt wurde.
-
Wurde die Aufnahme zu schnell beendet, konnten die zuletzt aufgenommenen Events, Checks, Komponenten oder
Prozeduren verloren gehen. Die Synchronisation mit dem SUT wurde nun verbessert, so dass dies nur noch bei
sehr großer Last auftreten sollte.
-
Beim Umschalten zwischen Projekten ging der Status der ausgeklappten Knoten im Baum der Projektansicht
verloren.
-
Die Zusammenfassung der Ergebnisse bei der Batchausführung mit
-verbose [<level>]
stimmte nicht mit den
Informationen in der Statuszeile und im Report überein.
- Web
JxBrowser Komponenten, deren Inhalt vor Ihrer Anzeige geladen wurde, werden jetzt korrekt behandelt.
- Web'Texteingabe' Knoten funktionieren nun auch für eingebettete Browser (FX WebView, JxBrowser und
in SWT eingebettete Browser), wenn 'Einzelne Events wiedergeben' deaktiviert ist. Die Wiedergabe von
einzelnen Events funktioniert weitgehend, die Events müssen aber hart simuliert werden, was aktuell nur
unter Windows möglich ist.
- Web
Im WebDriver Modus wurden in einigen Fällen TEXT Knoten einer Webanwendung als deaktiviert angesehen.
- Web
Nach Änderungen an einer Seite in einer Webanwendung wies die WebDriver-API einem WebDriver Element nicht
mehr zuverlässig die korrekte QF-Test Komponente zu.
- Web
Beim Schließen eines zusätzlichen Fensters im Edge Browser konnte versehentlich der ganze Browser-Prozess
beendet werden. Neben diesem wurden einige weitere Probleme beim Schließen verschiedener Browser im
WebDriver Modus behoben.
- Web
Es wurden verschiedene Probleme beim Embedded WebView Browser in JavaFX behoben
wie Mutation Behandlung, Refresh und Goto Befehle sowie Rückgabewerte von evalJS.
- Web
Die Einstellungen für Firefox werden jetzt nur dann persistent im Test-Profil gespeichert, wenn die
System-Property "qftest.web.mozilla.save_profile" beim Start des Browsers auf true gesetzt wird.
- Web
Für den eingebetteten Chrome Browser im QF-Driver Modus werden nun zusätzliche Bibliotheken ausgeliefert,
die für hardwaregestützte Grafik benötigt werden.
- SWT
Unter Linux konnten Tests für Eclipse mit eingebetteten JavaFX Komponenten zu einem harten Deadlock auf
Gtk Ebene führen. Dieses Problem wurde für Eclipse/SWT Versionen 4.3 und höher beseitigt.
Neue Features:
Beseitige Bugs:
-
QF-Test protokolliert nun eine Warnung, falls eine mit
rc.getComponent
in einem
'SUT Skript' Knoten ermittelte Komponente nicht zu der GUI Engine gehört, in welcher das
Skript ausgeführt wurde. Ab dem Medium Upgrade QF-Test 4.2 wird hier eine Exception geworfen. Der Versuch,
eine Komponente der falschen GUI Engine an rc.overrideElement
zu übergeben, wird bereits
jetzt mit einer Exception unterbunden.
-
Wurden Details eines Knotens bearbeitet und die Testsuite geschlossen, ohne die Änderungen zu bestätigen,
wurden diese verworfen.
-
Falls ein Resolver mit einer Exception scheitert, werden nun wie in QF-Test 4.0 weitere registrierte Resolver
trotzdem ausgeführt.
-
QF-Test entfernt nun temporäre Dateien, die von WebDriver Implementierungen erstellt werden.
- JavaFX
Zellen in speziellen Table Komponenten mit ungewöhnlicher Sortierung werden jetzt korrekt adressiert.
- SWT
QF-Test konnte bei Eclipse/SWT Anwendungen mit mehreren Display Instanzen ein Deadlock auslösen.
- Web
Beim Auslesen der Geometrie eines Unterelements in einer Webanwendung wurden fälschlicherweise die Werte
der übergeordneten Komponente zurückgeliefert.
- Web
Bei Webanwendungen werden Leerzeichen vor und nach Namen, die von einem NameResolver geliefert werden,
nun automatisch entfernt.
- Web
Das automatische Scrollen von Unterelementen für Abbild-Checks funktionierte nicht mehr korrekt.
Neue Features:
-
Die Projektansicht verfügt nun über einen Filter oben am Baum, der sich auf die Namen von Testsuiten
bezieht und die Hierarchie entsprechend einschränkt, was sehr hilfreich bei der Suche nach Testsuiten in
großen Projekten ist.
-
Unter macOS sollten nun alle Tastaturkürzel zum Systemstandard passen und Mac freundliche Modifier-Tasten
verwenden.
- Web
Selenium WebDriver wurde zu Version 3.0.1 aktualisiert.
-
Die Dokumentation und Beispiele für schlüsselwort-getriebenes Testen wurden um ein neues Beispiel
für Behavior-Driven Testing (BDT) ergänzt (siehe Abschnitt 29.4).
-
Die Parameter für das @rerun Doctag wurden um die Option newerrorlevel=keep und den neuen Parameter
keepfirst ergänzt. Weitere Information finden Sie in Abschnitt 23.3.2.
-
Das Attribut 'Maximale Ausführungszeit' ist nun auch für 'Testschritt' Knoten verfügbar.
Beseitige Bugs:
-
QF-Test startete nicht, wenn die Java Version für QF-Test noch durch eine ältere QF-Test Version (vor 4.1)
instrumentiert war. Auch wenn die Instrumentierung des JRE schon seit Jahren überflüssig ist, kann dieser
Fall noch auftreten. Er wird nun erkannt und die Deinstrumentierung angeboten.
-
Der Test auf BusyPanes fehlte, wenn ein Check über den in QF-Test 4.1.0 eingeführten Generic Retry
Mechanismus ausgeführt wurde.
-
Bei der interaktiven Auswahl einer Zielkomponente für einen Event Knoten war das bestehende Ziel nicht
vorausgewählt.
-
Fehlgeschlagene Checks aus einer Fehlerliste heraus zu aktualisieren führte zu einer unerwarteten
Exception, wenn das zugehörige Protokoll bereits geschlossen war.
-
Bei Verwendung der API
databinder.bindList
für datengetriebenes Testen ignoriert QF-Test nun
leere Listen anstatt eine einzelne Iteration ohne Daten durchzuführen.
-
Beim Import von Testergebnissen in TestLink werden übersprungene Testfälle nun korrekt als übersprungen
angezeigt.
-
Die bisherige
WebDriver
API wurde in WebDriverConnection
(vgl. Abschnitt 52.12) umbenannt, um Verwechslungen mit dem WebDriver Objekt von Selenium zu
vermeiden.
-
Die Fehlermeldung nach dem Ablauf eines über das Kommandozeilenargument
-timeout <Millisekunden>
angegebenen
Wertes bezieht sich nun korrekt auf das -timeout <Millisekunden>
Argument des Batchlaufs statt auf den Wurzelknoten
der Testsuite.
-
In großen Projekten treten beim Bearbeiten von Komponenten IDs in Tabellen nun keine Verzögerungen mehr
auf, während QF-Test nach der hervorzuhebenden Komponente sucht.
-
Wurde bei der Suche in einem Projekt ein ungültiger regulärer Ausdruck verwendet, wurden statt einer
einzigen Fehlermeldung viele angezeigt.
-
Kurze Timeouts für visible false Checks auf Komponenten wurden nicht eingehalten.
- Swing
Ist die Option AWT EventQueue instrumentieren aktiv, stellt QF-Test nun eine Verbindung mit der
awt:security Engine her, wenn von Java WebStart ein Authentifizierungsdialog angezeigt wird. In einem
solchen Fall muss das Attribut 'GUI Engine' des 'Warten auf Client' Knotens auf
awt:security gesetzt werden.
- Web
Die Auflösung von Klassen für AJAX Toolkits funktionierte in einigen speziellen Fällen nicht richtig.
- Web
Für TextField Komponenten im PrimeFaces Toolkit funktionierte der editable Check nicht.
- Web
Im WebDriver Modus war bei der Aufnahme eines Klicks im Browser, der einen Alert Dialog auslöst,
die Reihenfolge der aufgenommenen Events nicht immer korrekt.
- Web
Die automatische Erkennung für AJAX Toolkit Resolver wurde verbessert. Sie gibt nun konsistente Meldungen
in das Terminal aus und behandelt den Fall, dass kein Toolkit erkannt wird, korrekt.
Die folgenden wichtigen neuen Features wurden für Version 4.1 von QF-Test implementiert:
| Beschreibung | Weitere Info |
---|
Zusätzliche Browser via Selenium WebDriver
|
Darunter Firefox 44 und höher, Edge und Safari sowie Chrome unter Linux und macOS (Testen von Webseiten), Selenium Skripte können über QF-Test ausgeführt werden, auch beide Ansätze
gemischt (Abschnitt 52.12).
Performanz und Funktionsumfang noch nicht auf dem Stand von QF-Driver, erfordert Java 8
|
Eigene QF-Test App für macOS
|
Unterstützung für Swing, JavaFX und Web (im WebDriver Modus für Safari, Chrome und Firefox). Aktuell
keine Unterstützung für SWT.
|
Eclipse Plugin
|
Spezielle Run Configurations kombinieren den Start des SUT, den Start von QF-Test und das Ausführen
initialer Testschritte direkt aus Eclipse heraus (Abschnitt 27.1).
|
Jython Update auf Version 2.7,
Groovy auf Version 2.4.7
|
Siehe Abschnitt B.8.7.8 zu Inkompatibilitäten und Rückgriff auf Jython 2.5 /
Groovy 2.1.
|
Lizenzserver Mechanismus
|
Lizenzen können global verteilt genutzt werden statt nur im lokalen Netz.
Bei Interesse kontaktieren Sie bitte QFS via sales@qfs.de |
Unterstützung für 64 Bit Browser auf allen Systemen
|
Beim Verbindungsmodus QF-Driver müssen Browser und JRE von der gleichen Architektur sein (Kapitel 14)
|
Unterstützung für das AJAX Framework Kendo UI
| |
Verbesserte Synchronisation für Webtests
|
QF-Test verfolgt HTTP Requests im Browser um zu verhindern, dass Events ausgelöst werden während AJAX
Anfrage noch offen sind
(Optionen Mit HTTP Requests synchronisieren, Timeout für Synchronisierung mit HTTP Requests (ms) und
Erweitertes HTTP Request Timeout für neue Dokumente (ms)). Nur QF-Driver Modus.
|
Web Komponentenerkennung via XPath und CSS-Selektoren
| Adressierung mit XPath und/oder CSS-Selektoren |
Alternativer Verbindungsmechanismus für Swing
|
Löst viele Problemfälle mit Java WebStart, Applets oder eigenen EventQueues
(AWT EventQueue instrumentieren)
|
Beschränkung der Ausführungszeit
|
Maximale Ausführungszeit für einzelne Sequenzen, Testfälle, Testfallsätze oder ganze Batchläufe
(Attribut 'Maximale Ausführungszeit', Kommandozeilenargument -timeout <Millisekunden> )
|
Wiederausführung: Fehlgeschlagene Sequenzen oder Testfälle automatisch oder manuell aus dem Protokoll
heraus erneut anstoßen
| Erneute Ausführung von Knoten (Rerun) |
Zusammenführen von Protokollen
| Protokolle zusammenführen |
Generic Retry
|
Intelligentere Wiedergabe von Events, die Timing-Probleme besser löst, speziell wenn Komponenten
gerade dann verschwinden oder durch andere ersetzt werden, wenn QF-Test versucht darauf zuzugreifen.
|
Finden von Prozeduren oder Komponenten mit variablen Namen/IDs
|
Variablenexpansion ist nun auch in einem statischen Kontext möglich, so dass Sprünge von einem
Prozeduraufruf wie "checksFor${qftest:testcase.name}" zur korrekten Prozedur funktionieren.
Zu diesem Zweck puffert QF-Test sogar die Werte der Variablen der letzten Testausführung.
|
Updates für das QF-Test Handbuch mit neuen Kapiteln zu schlüsselwortgetriebenem Testen und Lasttests,
einer kompletten Überarbeitung wichtiger Themen und umfassender Dokumentation zu QF-Test's pseudo DOM
API und zur Erstellung von Resolvern aller Art.
| Aufbau und Organisation einer Testsuite,
'Abhängigkeit' Knoten,
Schlüsselwortgetriebenes bzw. Keyword-Driven Testing mit QF-Test,
Durchführung von Lasttests mit QF-Test,
Pseudo DOM API für Webanwendungen,
Das NameResolver Interface |
|
| | Tabelle B.4: Highlights in QF-Test Version 4.1 | |
- Jython 2.7
Das Update auf Jython 2.7 war durch Konflikte mit nativen Bibliotheken im WebDriver Modul unvermeidlich.
Zudem war Jython 2.5 schon sehr veraltet und die Python Module von Jython 2.7 sind deutlich moderner
und ausgereifter. Falls daraus zu große Probleme resultieren, können Sie zu Jython 2.5 zurückkehren,
indem Sie die Datei https://archive.qfs.de/pub/qftest/jython-2.5.1.jar herunterladen und damit die Datei
lib/jython.jar
in QF-Test's Installationsverzeichnis überschreiben.
-
Java 7 oder höher benötigt.
-
Keine Unterstützung mehr für Wildcard Import (z.B.
from java.util import *
), alle
importierten Klassen müssen explizit aufgeführt werden.
-
Weitere Unterschiede zwischen Jython 2.5 und 2.7 finden Sie in den Jython Release Notes der Jython Versionen 2.6 und 2.7.
Sie finden die Release Notes zu Jython 2.6 auf https://docs.python.org/3.0/whatsnew/2.6.html
und die Release Notes zu Jython 2.7 auf
https://docs.python.org/3.2/whatsnew/2.7.html.
- Groovy 2.4
Diese Update war zwar nicht zwingend erforderlich, aber es ist besser, nicht zu weit hinter die
offizielle Groovy Release zurückzufallen. Groovy 2.4 funktioniert zwar noch weitgehend mit Java 6, so
dass dass ein echtes Problem nur zu erwarten ist, wenn Sie noch alte Anwendungen mit Java 5 testen
müssen. In diesem Fall können Sie die Datei https://archive.qfs.de/pub/qftest/groovy-all-2.1.0.jar herunterladen und damit die Datei
lib/groovy-all.jar
in QF-Test's Installationsverzeichnis überschreiben.
-
Java 6 oder höher benötigt (Java 7 oder höher empfohlen).
- Neuer Verbindungsmechanismus für Swing
-
Dieser Mechanismus sollte besser mit besonders kniffligen Swing SUTs klar kommen, die ihre eigene
EventQueue implementieren, speziell in Kombination mit WebStart oder Applets. Er ist standardmäßig aktiv
und kann bei Problemen mit dem SUT über die Option AWT EventQueue instrumentieren deaktiviert
werden.
- Chrome unterstützt keine Java Applets mehr
-
Google hat die Unterstützung für Java Applets komplett aus Chrome entfernt. Dies gilt auch für den von QF-Test im
QF-Driver Modus eingebetteten Chrome Browser, der auf CEF Version 45 aktualisiert wurde.
Hinweis
Eine detaillierte Aufstellung der Systemvoraussetzungen und der unterstützten
Technologieversionen finden Sie in Abschnitt 1.1.
QFS bemüht sich um Rückwärtskompatibilität auch mit sehr alter Software. QF-Test läuft nach wie vor z.B. unter
Windows XP und - nach Downgrade von Jython und Groovy - mit einem auf Java 5 oder 6 basierenden SUT, aber
wir können für Systeme, die von deren Herstellern nicht mehr unterstützt werden, keinen umfassenden Support
bieten.
Bibliotheken für die unten aufgeführten Firefox und Eclipse/SWT Versionen sind nicht mehr Teil der
Standard-Installation von QF-Test. Sie werden zum größten Teil noch weiter gepflegt, aber nur eingeschränkt
getestet. Für Eclipse/SWT 3.5 - 3.8 können Sie https://archive.qfs.de/pub/qftest/swt_legacy.zip herunterladen und in das swt
Verzeichnis
Ihrer QF-Test Installation entpacken. Für die Unterstützung älterer Browser wenden Sie sich bitte via
support@qfs.de
an QFS.
Offiziell nicht mehr unterstützt werden Java 5, Java 6, Internet Explorer 10 und älter, Firefox
37 und älter sowie Eclipse/SWT 3.8 und älter.
Neue Features:
-
Die Möglichkeiten zur Wiederausführung von Tests sind nun offiziell verfügbar und in
Abschnitt 23.3 dokumentiert.
-
Das Jenkins Plugin für QF-Test wurde für Jenkins Version 2.1 aktualisiert.
-
Unter macOS verwendet QF-Test nun die Standard-Tastenkürzel für dieses System. Anwender, die Windows-Kürzel
bevorzugen (oder sich ganz einfach an die nicht-Mac Kürzel von QF-Test gewöhnt haben), können über das
Kommandozeilenargument
-keybindings=classic
darauf zurückschalten.
-
Die QF-Test macOS App beinhaltet nun ein eigenes JRE, die manuelle Installation eines JRE ist damit nicht
länger nötig.
- Web
Die Unterstützung für das AJAX Toolkit Vaadin wurde aktualisiert, so dass der Vaadin Resolver nun wie in
Abschnitt 49.1 beschrieben individuell erweitert werden kann.
-
Beim Debuggen von Tests zeigt QF-Test nun eine Warnung an, wenn 'Ausführung hier fortsetzen' für einen Knoten
gewählt wird, der nicht zum aktuellen Ausführungs-Stapel gehört, da durch diese Aktion die aktuellen
Variablendefinitionen verloren gehen.
-
Auswahl-Dialoge verfügen nun über einen Suchfilter.
-
Über das Popupmenü für eine QF-Test ID in einer Variablen-Tabelle oder einem
rc.getComponent
Ausdruck in einem SUT Skript kann die Zielkomponente im SUT nun direkt hervorgehoben werden.
Beseitige Bugs:
-
Im Dialog für die Java Konfiguration von QF-Test (qfconfig) wurde beim Start immer die Standard Java
Installation angezeigt.
-
Die kleinen Pfeile zur Anzeige des Ausführungszustands von Baumknoten wurden nicht immer korrekt
dargestellt.
-
Fehler durch Überschreiten der maximalen Ausführungszeit wurden im Report nicht korrekt dargestellt.
- Web
Im WebDriver Modus vermeidet QF-Test nun den Start von zwei Chrome Instanzen mit demselben Verzeichnis für
das Nutzerprofil.
- Web
Jars im Plugin Verzeichnis von QF-Test konnten den Start eines WebDriver basierten SUT verhindern.
- Web
Alert Dialoge werden nun in allen WebDriver basierten Browsern korrekt behandelt.
en/
Neue Features:
-
Groovy wurde auf Version 2.4.7 aktualisiert. Ein Rückgriff auf
Groovy 2.1.0 ist möglich und in Abschnitt B.8.7.8 beschrieben.
- Web
Die Anbindung von WebDriver wurde deutlich verbessert und ist nun um einiges performanter. Firefox 48
funktioniert nun dank des Selenium Updates für Firefox Marionette ebenfalls.
- Web
Für Web unterstützt QF-Test nun die Komponentenerkennung mittels XPath und CSS-Selektoren. Näheres hierzu in
Adressierung mit XPath und/oder CSS-Selektoren.
-
Die Prozedur
qfs.utils.xml.compareXMLFiles
wurde um bessere Filterung und die
Möglichkeit ergänzt, fehlende Tags oder Attribute zu ignorieren, wenn sie im "noCheck" Parameter angebeben
sind.
- Web
Unter Windows können 'Texteingabe' Knoten nun im JxBrowser wiedergegeben werden.
-
Die Prozedur
qfs.utils.email.sendEmail
in der Standardbibliothek qfs.qft
unterstützt nun auch Dateianhänge.
-
Jython wurde so angepasst, dass
NotImplementedErrors
abgefangen werden, die durch nur
teilweises Implementieren von Interfaces entstehen, was mit Jython 2.5 kein Problem war. Dieses Verhalten
kann durch Setzen der System Property qftest.workarounds.abstractMethodsHandling
auf einen der Werte "ignore", "warning", "error" oder "exception" modifiziert werden.
Beseitige Bugs:
- JavaFX
Nicht gefangene Exceptions auf dem JavaFX Application Thread wurden von QF-Test zwar korrekt erkannt und
gemeldet, in manchen Fällen aber nicht korrekt weitergereicht, was Fehler im SUT verstecken oder zumindest
das Testen der SUT-eigenen Behandlung von solchen Exceptions verhindern konnte.
-
Gelegentlich konnte ein Aufruf von
DaemonLocator.locateInstance(long timeout)
einen Daemon
zwar finden, ihn aber bis zum Ablauf des Timeouts wieder "vergessen" und so kein Ergebnis liefern.
Änderungen im Vergleich zu QF-Test Version 4.0.11:
Neue Features:
- Web
Durch den neuen Verbindungsmodus via Selenium WebDriver werden viele weitere Browser unterstützt, darunter
Firefox 44 und höher, Edge und Safari, dazu Chrome nun auch unter Linux und macOS.
-
Selenium Skripte können über QF-Test ausgeführt werden. Auch das Mischen von QF-Test und Selenium basierten
Tests ist möglich. In
Abschnitt 52.12 finden Sie Informationen zum Zugriff auf die WebDriver API von
'SUT Skript' Knoten aus.
-
QF-Test unterstützt nun offiziell Swing, JavaFX und Webtests unter macOS. Eine eigene Installationsdatei für
macOS steht nun ebenfalls zur Verfügung.
-
Jython wurde auf Version 2.7.0 aktualisiert. QF-Test benötigt damit nun mindestens Java 7. Ein Rückgriff auf
Jython 2.5.1 ist möglich und in Abschnitt B.8.7.8 beschrieben.
-
Mit Hilfe unseres neuen Lizenzserver Mechanismus können Lizenzen nun auch global verteilt werden, nicht
nur im lokalen Netz. Bei Interesse wenden Sie sich bitte an QFS via
sales@qfs.de
.
- Web
64 Bit Browser werden nun auf allen Systemen unterstützt.
- Web
Es wird nun das AJAX Framework Kendo UI unterstützt.
-
Viele bestehende AJAX Resolver wurden aktualisiert und generalisiert, so dass sie nun einfacher erweitert
werden können. Weitere Information dazu in Besondere Unterstützung für verschiedene Web-Komponentenbibliotheken und Verbesserte Komponentenerkennung mittels
CustomWebResolver
.
- Web
Im Verbindungsmodus QF-Driver kann QF-Test Webtests auf Basis ausstehender HTTP Requests synchronisieren.
Das genaue Verhalten kann über die Optionen Mit HTTP Requests synchronisieren, Timeout für Synchronisierung mit HTTP Requests (ms) und Erweitertes HTTP Request Timeout für neue Dokumente (ms) festgelegt werden.
- Swing
Der neue Verbindungsmechanismus für Swing löst viele Problemfälle mit Java WebStart, Applets oder eigenen
EventQueues. Er kann mittels der Option AWT EventQueue instrumentieren deaktiviert werden.
-
Die maximale Ausführungszeit für einzelne Sequenzen, Testfälle, Testfallsätze oder ganze Batchläufe kann
über das Attribut 'Maximale Ausführungszeit' und das Kommandozeilenargument
-timeout <Millisekunden>
begrenzt
werden.
-
Protokolle können nun zusammengeführt werden (Protokolle zusammenführen).
-
Die Event-Wiedergabe verwendet für alle Engines nun einen neuen Ansatz,den wir Generic Retry nennen. Er
ermöglicht flexiblere Reaktionen bei Timing-Problemen, speziell wenn Komponenten gerade dann verschwinden
oder durch andere ersetzt werden, wenn QF-Test versucht darauf zuzugreifen.
-
Variablenexpansion ist nun auch in einem statischen Kontext möglich, so dass Sprünge von einem
Prozeduraufruf wie "checksFor${qftest:testcase.name}" zur korrekten Prozedur funktionieren. QF-Test
puffert hierzu QF-Test die Werte der Variablen der letzten Testausführung, so dass dies sogar dynamisch
gebundenen Werten klappt.
-
Die verschiedenen Daten Knoten wie 'Datenbank' oder 'Excel Datei' können nun
auch außerhalb eines Datentreibers ausgeführt werden, um die Werte direkt als Variablen zu binden statt
über die Zeilen zu iterieren. In diesem Fall definiert das Attribut 'Name' des
Knotens gleichzeitig die Property-Gruppe, in welche die Variablen gebunden werden.
- Swing
Die JxBrowser Unterstützung wurde für JxBrowser Version 6 aktualisiert.
-
Abhängig von der Aufteilung des Bildschirms kann es hilfreich sein, im Fenster von QF-Test mehr Platz für den
Baum oder für das Terminal zur Verfügung zu haben. Der neue Menüeintrag »Ansicht«-»Terminal«-»Baum dem Terminal vorziehen« schaltet den Bereich links unten im Fenster zwischen beiden um.
-
Verbessertes Packen von Mausevents sollte zu klareren Aufnahmen mit weniger Streuevents führen. Für
Sonderfälle, in denen es auf einzelne
MOUSE_PRESSED
oder MOUSE_RELEASED
Events ankommt, kann über die Option
Vereinfachte Aufnahme von 'Mausklick' Events auf die alte Methode zurückgestellt werden.
-
Einige Kapitel im Handbuch wurden hinzugefügt (Schlüsselwortgetriebenes bzw. Keyword-Driven Testing mit QF-Test, Durchführung von Lasttests mit QF-Test) oder neu geschrieben (Aufbau und Organisation einer Testsuite, 'Abhängigkeit' Knoten und Pseudo DOM API für Webanwendungen.
-
Der eingebettete Skripteditor bietet nun die Tastaturkürzel [Umschalt-Hoch/Runter] zum verschieben einzelner oder mehrerer selektierter Zeilen sowie [Umschalt-Eingabe] zum Einfügen einer neuen Zeile nach dem Ende der aktuellen Zeile an.
-
In der Werkzeugleiste gibt es einen neuen Button zum Öffnen des letzten Protokolls.
-
Fehlgeschlagene boolean Checks haben nun eine aussagekräftigere Fehlermeldung, die den Checktyp
beinhaltet.
-
Die
DOMProcessor
Erweiterungs-API kann nun auch zur Anpassung der Zusammenfassungs-Dokumente
verwendet werden.
-
Skript APIs wurden in Vorbereitung für weitere unterstützte Skriptsprachen vereinheitlicht. Die
Implementierung und Registrierung von Resolvern wurde vereinfacht und Module wie autowin und ssh sind nun
auch für Groovy verfügbar.
- Web
Es gibt nun einen generischen String Check für Attribute von DOM Knoten, die mit
getAttribute
ausgelesen werden können. Setzen Sie einfach den 'Name des Check-Typs' auf
attribute:NAME
wobei NAME
der Name des zu prüfenden Attributs ist.
-
Durch Drücken von [Strg-C] im Projektbaum oder auf dem Wurzelknoten einer
Testsuite wird nun der Pfad der Testsuite in die Zwischenablage kopiert.
-
Die Suche nach Referenzen funktioniert nun auch für 'Package' Knoten. Die Ergebnisliste umfasst
dann Referenzen für alle in dieser Hierarchie enthaltenen
'Prozeduren'.
-
Beim Einfügen von Knoten in eine Testsuite ist QF-Test nun flexibler. Falls die aktuelle Position für den
einzufügenden Knotentyp nicht geeignet, das korrekte Ziel aber implizit klar ist, wird einfach an der
richtigen Stelle eingefügt.
- Web
Die mit QF-Test gelieferte Chrome Version für QF-Driver basierte Webtests wurde zu CEF Version 45
aktualisiert.
-
Die Prozeduren
qfs.utils.getDate
, qfs.utils.getTime
und
qfs.check.compareDates
in der Standardbibliothek qfs.qft
haben nun alle
Parameter zur Angabe der landesspezifischen Formatierung.
-
Alle
getRowCount
Prozeduren für Swing, JavaFX und SWT Bäume wurden überarbeitet um die Zahl
der sichtbaren Knoten zu liefern. Der neue Parameter
"countOnlyVisibleNodes" schränkt dazu die Suche auf sichtbare Knoten unterhalb des angegebenen Knoten ein.
Hinzugekommen sind außerdem die Prozeduren ...tree.getChildNodeCount
mit ähnlicher
Funktionalität sowie ...tree.check.checkChildNodeCount
zum Prüfen der Zahl der Kindknoten
eines Knotens.
-
Das Verzeichnis zum Austausch von Dateien mit einem externen Editor kann nun explizit über die Option
Verzeichnis zur Übergabe temporärer Dateien an externen Editor angegeben werden.
-
Einige Tabellen in der Detailansicht von QF-Test wurden zur besseren Sichtbarkeit neu arrangiert. Zudem kann
in allen Tabellen nun eine neue Zeile auch durch Doppelklick im freien Bereich der Tabelle hinzugefügt
werden.
Beseitige Bugs:
- JavaFX
Änderungen der ID einer JavaFX Komponente wurden nicht korrekt erkannt.
- JavaFX
Das weitere Merkmal "imagehash" ist nun auch für JavaFX implementiert.
-
Die interne Verwaltung von Abbildern in Testsuiten und Protokollen benötigt nun wesentlich weniger
Speicher.
- Web
Checks für den enabled Status von DOM Knoten berücksichtigt nun auch umgebende
FIELDSET
Knoten.
- Web
Expliziter Bezug von Label Elementen über deren "for" Attribut wird nun besser erkannt.
-
Wurde im Debugger "Ausführung hier fortsetzen" auf einer 'Prozedur' verwendet, die von einer anderen
Suite aus aufgerufen wurde, konnte der Ausführungskontext durcheinander geraten.