QT Testing

Aus expecco Wiki (Version 2.x)
Zur Navigation springen Zur Suche springen

Deutsche Version | English Version

Vorbedingungen[Bearbeiten]

Qt-Download[Bearbeiten]

https://www.qt.io/download

Unterstützte Versionen[Bearbeiten]

Expecco unterstützt das Testen von Qt-Applikationen unter Windows und Linux, Qt Quick/QML-Anwendungen ab der Qt Version 5.

Für die verschiedenen Qt-Versionen, Betriebssysteme, Entwicklungsumgebungen (VisualStudio, ...) und Rechnerarchitekturen (32/64 bit) stellen wir eigens erzeugte Bibliotheken (dll, so) zur Verfügung. Einige davon werden standardmäßig mit expecco ausgeliefert. Für andere Versionen erzeugen wir die Bibliothek auf Anfrage.

Eine Übersicht über die ausgelieferten Bibliotheken und ihren Versionsstand finden sie hier.

Testen von Qt-Programmen[Bearbeiten]

Testvorbereitungen[Bearbeiten]

Einbinden der expeccoTestService-Bibliothek[Bearbeiten]

Um mit expecco ein Qt-Programm zu testen, wird in das zu testenden Programms die von uns ausgelieferte Bibliothek expeccoTestService.[dll/so] eingebunden. Dies erfolgt über ein Batch- bzw. Shell-Skript ohne Eingriff in den Sourcecode des zu testenden Programms.

Im Batch- bzw. Shell-Skript können Sie auch das Logging für die expeccoTestService-Bibliothek aktivieren.

Eine Anleitung für das jeweilige Betriebssystem des Testrechners finden Sie hier:

Alternativ kann der Aufruf der ExpeccoTestService-Bibliothek auch in den Sourcecode der zu testenden Applikation eingefügt werden (Beschreibung).

Startparameter[Bearbeiten]

Die ExpeccoTestService-Bibliothek kann über Umgebungsvariablen eingestellt werden:

  • Log-Level: ETS_QT_LOG_LEVEL
0 keine Logausgaben (Standardwert)
vor expecco-Version 24.1: 2: Debug-Logausgaben
ab expecco-Version 24.1: 2 or DEBUG (Debug-Logausgaben), 3 or INFO (Info-Logausgaben), 4 or WARN (Warnungen und Fehler)
  • Log-File: ETS_QT_LOG_FILE (Standardwert: c:\Windows\temp\etsQt.log bzw. /tmp/etsQt.log)
  • Server-Port: ETS_QT_PORT_NUMBER (Standardwert: 8866)
  • Timeout Vorschau im ms (nur Qt Quick): ETS_TIMEOUT_QUICK_IMAGE (Standardwert: 200)

Benötigte Qt-Bibliotheken zur Laufzeit[Bearbeiten]

Die ExpeccoTestService-Bibliothek ist abhängig von folgenden Qt-Bibliotheken:

  • Qt5Core
  • Qt5Gui
  • Qt5Network
  • Qt5Qml
  • Qt5Quick (V2 mit Qt Quick-Integration (expecco 21.2))
  • Qt5QmlModel (V2 mit Qt Quick-Integration (expecco 21.2))
  • Qt5Widgets

Verbinden mit expecco GUI Browser[Bearbeiten]

Mit dem GUI Browser kann eine Verbindung zum zu testenden Programm aufgebaut werden:

Verbinden - Qt

Im nachfolgenden Dialog die Netzwerkadresse des Rechners, auf dem die Applikation läuft eingeben sowie den Port für die Verbindung (Standardmäßig 8866)

Anleitung GUI Browser.

Qt Quick-/QML-Programme[Bearbeiten]

Qt Quick-/QML-Anwendungen können ab expecco 21.2 mit der expecco QtLibrary getestet werden.

Hierfür wird eine neue ExpeccoTextService-Bibliothek mit dem Namenszusatz V2 ausgeliefert. Die Bibliothek ist von zusätzlichen Qt-Bibliotheken abhängig (siehe Benötigte Qt-Bibliotheken zur Laufzeit).

Nur expecco 21.2
Es wird nur eine ExpeccoTextService-Bibliothek ausgeliefert, die aber bereits Qt Quick-/QML-Support bietet. Erst ab Version 22.1 werden zwei separate Bibliotheken bereitsgestellt.


Qt Quick/QML-Aktionen[Bearbeiten]

Für den Test von Qt Quick-/QML-Programmen können fast alle Aktionen der QtLibrary verwendet werden, die für das Testen von Qt-Programmen auf Basis von QWidget / QApplication definiert sind.

QWidget-Aktionen sind dabei für Qt Quick-Elemente, die sich von QQuickItem ableiten, anwendbar. QQuickItemView-Aktionen sind für die Listen-Elemente von Qt Quick geeignet.

Die unterschiedliche Behandlung kapselt der ExpeccoTestService. Die Aktion und die Eingangs- und Ausgangspins bleiben somit für beide Qt-Technologien gleich.

Die Aktionen, die auch für Tests von Qt Quick-/QML-Programmen geeignet sind, sind mit dem Etikett / Tag qt-quick versehen. Die Aktionen können dadurch mit einer konfigurierbaren Farbe dargestellt werden (Extras - Einstellungen - Look & Feel - Farben per Etikett (Tag)).

Qt Quick-/QML-Besonderheiten[Bearbeiten]

Steuerung über Eigenschaften / Properties[Bearbeiten]

Basis aller Qt Quick-/QML-Oberflächenelemente ist die Klasse QQuickItem. Über Properties / Eigenschaften können in ihr die meisten Eigenschaften eingestellt werden. Von QQuickItem gibt es eine Vielzahl von Ableitungen. Expecco stellt dafür keine speziellen Bausteine zur Verfügung, die Elemente sind aber über ihre Eigenschaften steuerbar.

Qt Quick-Element Eigenschaft Kommentar
Tumbler currentIndex
Switch checked Geeignete Aktionen:
QCheckButton::GetState
QCheckButton::SetState = %2
wird fortgesetzt

Aktionen für selektiertes Element[Bearbeiten]

Die Anzeige von Aktionen für GUI-Elemente im GUI-Browser ist nicht vollständig, da Qt Quick/QML nicht für jeden Oberflächenelement vordefinierte Elemente hat.

Noch nicht implementiert[Bearbeiten]

  • TreeView
  • Menu
  • Selektion von Zellen - bisher kann nur eine Zeile selektiert werden

Bekannte Probleme[Bearbeiten]

XPath-Implementierung[Bearbeiten]

Mit XPath kann auf Übereinstimmung von Namen oder Index der Elemente gesucht werden. Filterung nach Namensteilen (Anfang, Ende, Mitte) wird derzeit nicht unterstützt.

QApplication::ShortCutEvent[Bearbeiten]

Aufgrund von internen Änderungen in Qt Version 5 funktioniert der Baustein nicht mehr. Ein Workaround besteht darin, die Tastenereignisse separat zu senden, wie im Beispiel im Reiter Test/Demo der Aktion gezeigt.

ExpeccoTestService-Bibliothek: Auslieferung in Expecco-Versionen[Bearbeiten]

Aufstellung der Expecco-Versionen mit der letzten Aktualisierung der ExpeccoTestService-Bibliothek für die verschieden Qt-Versionen und Buildsysteme.

Weitere Versionen können auf Anfrage geliefert werden.

Windows[Bearbeiten]

Expecco-Version Qt Version Architektur Build-System Verzeichnis Kommentar
2023-2 6.2.4 x64 vs2019 vs2019_x64_Qt6.2.4
  • Neuer Baustein QButton::Click: Direkter Klick, nicht an Thread delegiert
5.15.0 x64 vs2022 vs2022_x64_Qt5.15.0
5.15.0 x64 vs2019 vs2019_x64_Qt5.15.0
2023-1 6.2.4 x64 vs2019 vs2019_x64_Qt6.2.4
  • Anbindung von Qt 6-Programmen
  • Bugfix QtQuick: MouseClick
5.15.0 x64 vs2019 vs2019_x64_Qt5.15.0
2022-2 5.15.0 x64 vs2019 vs2019_x64_Qt5.15.0
  • Ausgabe von QT-Version und Buildparameter in Log-Datei bei DLL-Start
5.15.0 x86 vs2019 vs2019_Qt5.15.0
5.14.2 x86 vs2017 vs2017_Qt5.14.2
2022-1 5.15.0 x64 vs2019 vs2019_x64_Qt5.15.0
  • Separate DLLs für QtQuick/QWidget und nur QWidget
  • Feature: Auslesen Vertikaler Header bei Tabellen
  • Feature: Screenshot bei Fehler
5.15.0 x86 vs2019 vs2019_Qt5.15.0
5.14.2 x86 vs2017 vs2017_Qt5.14.2
2021-2 5.15.0 x64 vs2019 vs2019_x64_Qt5.15.0 QtQuick / QML
5.15.0 x86 vs2019 vs2019_Qt5.15.0
5.9.3 x64 vs2015 vs2015_x64_Qt5.9.3
5.9.1 x64 vs2015 vs2015_x64_Qt5.9.1
2021-1 5.9.3 x86 vs2015 vs2015_x86_Qt5.9.3
2020-1 5.8.0 x86 vs2013 vs2013_Qt5.8.0
2019-2 5.9.3 x64 vs2013 vs2013_x64_Qt5.9.3
5.9.1 x64 vs2013 vs2013_x64_Qt5.9.1
2018-2 5.4.2 x86 vs2010 vs2010_Qt5.4.2

Linux / macOS[Bearbeiten]

Expecco-Version Qt Version Architektur Build-System Verzeichnis Kommentar
2023-2 6.2.4 x64 gcc gcc_x64_Qt6.2.4
  • Neuer Baustein QButton::Click: Direkter Klick, nicht an Thread delegiert
5.15.0 x64 gcc gcc_x64_Qt5.15.0
2023-1 6.2.4 x64 gcc gcc_x64_Qt6.2.4
  • Anbindung von Qt 6-Programmen
  • Bugfix QtQuick: MouseClick
5.15.0 x64 gcc gcc_x64_Qt5.15.0
2022-2 5.15.0 x64 gcc gcc_x64_Qt5.15.0
  • Ausgabe von QT-Version und Buildparameter in Log-Datei bei DLL-Start
2022-1 5.15.0 x64 gcc gcc_x64_Qt5.15.0
  • Separate DLLs für QtQuick/QWidget und nur QWidget
  • Feature: Auslesen Vertikaler Header bei Tabellen
  • Feature: Screenshot bei Fehler
2021-2 5.15.0 x64 gcc gcc_x64_Qt5.15.0 QtQuick / QML
2021-1 5.12.2 arm32 gcc gcc_arm32_Qt.12.2
5.9.5 x64 gcc gcc_x64_Qt5.9.5
2020-2 5.9.1 x64 gcc gcc_x64_Qt5.9.1
2020-1 5.12.3 x64 gcc gcc_x64_Qt5.12.3

Zurück zu Qt Plugin Reference



Copyright © 2014-2024 eXept Software AG