QT Testing: Unterschied zwischen den Versionen
Alkurz (Diskussion | Beiträge) |
Alkurz (Diskussion | Beiträge) |
||
| Zeile 49: | Zeile 49: | ||
Anleitung [[Expecco GUI Tests_Extension Reference|GUI Browser]]. |
Anleitung [[Expecco GUI Tests_Extension Reference|GUI Browser]]. |
||
== |
==Qt Quick-/QML-Programme== |
||
Qt Quick-/QML-Anwendungen können ab expecco 21.2 mit der expecco QtLibrary getestet werden. |
|||
=== |
===Qt Quick/QML-Aktionen=== |
||
Für den Test von |
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, die auf QWidget / QApplication basieren, definiert sind. |
||
Diese Aktionen für QML-Tests sind mit dem Etikett / Tag <code>qt-quick</code> versehen. Um dies an den Bausteinen zu verdeutlichen, können diese mit einer konfigurierbaren Farbe dargestellt werden ([[Settings TagColorSettings/en|Extras - Einstellungen - Look & Feel - Farben per Etikett (Tag)]]). |
Diese Aktionen für QML-Tests sind mit dem Etikett / Tag <code>qt-quick</code> versehen. Um dies an den Bausteinen zu verdeutlichen, können diese mit einer konfigurierbaren Farbe dargestellt werden ([[Settings TagColorSettings/en|Extras - Einstellungen - Look & Feel - Farben per Etikett (Tag)]]). |
||
QWidget-Aktionen sind dabei für |
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 |
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 |
Die unterschiedliche Behandlung kapselt der ExpeccoTestService. Die Aktion und die Eingangs- und Ausgangspins bleiben somit für beide Qt-Technologien gleich. |
||
=== |
===Qt Quick-/QML-Besonderheiten=== |
||
====Steuerung über Properties==== |
====Steuerung über Properties==== |
||
Basis aller |
Basis aller Qt Quick-/QML-Oberflächenelemente ist QQuickItem. Über Properties können die meisten Eigenschaften eingestellt werden. Von QQuickItem gibt es eine Vielzahl von Ableitungen. Expecco dafür keine speziellen Bausteine dar, die Elemente sind aber über ihre Eigenschaften steuerbar. |
||
{| class="wikitable" |
{| class="wikitable" |
||
! |
! Qt Quick-Element !! Eigenschaft !! Kommentar |
||
|- |
|- |
||
| Tumbler || currentIndex || |
| Tumbler || currentIndex || |
||
| Zeile 81: | Zeile 81: | ||
====Aktionen für selektiertes Element==== |
====Aktionen für selektiertes Element==== |
||
Anzeige von Aktionen für GUI-Elemente ist nicht umfassend, da |
Anzeige von Aktionen für GUI-Elemente ist nicht umfassend, da Qt Quick/QML keine vordefinierten Elemente hat. |
||
====Noch nicht implementiert==== |
====Noch nicht implementiert==== |
||
Version vom 6. Dezember 2021, 09:48 Uhr
Vorbedingungen
QT-Download
Unterstützte Versionen
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
Testvorbereitungen
Einbinden der expeccoTestService-Bibliothek
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 (Beschreibung).
Alternativ kann der Aufruf der ExpeccoTestService-Bibliothek auch in den Sourcecode der zu testenden Applikation eingefügt werden (Beschreibung).
Startparameter
Die ExpeccoTestService-Bibliothek kann über Umgebungsvariablen eingestellt werden:
- Log-Level:
ETS_QT_LOG_LEVEL(Standardwert: 0, für Logging: 2) - Log-File:
ETS_QT_LOG_FILE(Standardwert: c:\Windows\temp\etsQt.log bzw. /tmp/etsQt.log) - Server-Port:
ETS_QT_PORT_NUMBER(Standardwert: 8866)
Benötigte QT-Bibliotheken zur Laufzeit
Die ExpeccoTestService-Bibliothek ist abhängig von folgenden QT-Bibliotheken:
- Qt5Core
- Qt5Gui
- Qt5Network
- Qt5QmlModels
- Qt5Qml
- Qt5Quick
- Qt5Widgets
Verbinden mit expecco GUI Browser
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
Qt Quick-/QML-Anwendungen können ab expecco 21.2 mit der expecco QtLibrary getestet werden.
Qt Quick/QML-Aktionen
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, die auf QWidget / QApplication basieren, definiert sind.
Diese Aktionen für QML-Tests sind mit dem Etikett / Tag qt-quick versehen. Um dies an den Bausteinen zu verdeutlichen, können diese mit einer konfigurierbaren Farbe dargestellt werden (Extras - Einstellungen - Look & Feel - Farben per Etikett (Tag)).
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.
Qt Quick-/QML-Besonderheiten
Steuerung über Properties
Basis aller Qt Quick-/QML-Oberflächenelemente ist QQuickItem. Über Properties können die meisten Eigenschaften eingestellt werden. Von QQuickItem gibt es eine Vielzahl von Ableitungen. Expecco dafür keine speziellen Bausteine dar, die Elemente sind aber über ihre Eigenschaften steuerbar.
| Qt Quick-Element | Eigenschaft | Kommentar |
|---|---|---|
| Tumbler | currentIndex | |
| Switch | checked | Geeignete Aktionen:QCheckButton::GetStateQCheckButton::SetState = %2
|
| wird fortgesetzt | ||
Aktionen für selektiertes Element
Anzeige von Aktionen für GUI-Elemente ist nicht umfassend, da Qt Quick/QML keine vordefinierten Elemente hat.
Noch nicht implementiert
- TreeView
- Menu
- Selektion von Zellen - bisher kann nur eine Zeile selektiert werden
Qt Bekannte Probleme
QApplication::ShortCutEvent
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
Windows
| Expecco-Version | QT-Version | Architektur | Build-System | Verzeichnis | Kommentar |
|---|---|---|---|---|---|
| 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 / MaxOS
| Expecco-Version | QT-Version | Architektur | Build-System | Verzeichnis | Kommentar |
|---|---|---|---|---|---|
| 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