Handbuch
Version 8.0.1 |
Die Accessibility-Schnittstelle erlaubt den programmatischen
Zugriff auf GUI Elemente von nativen MacOS-Anwendungen. In QF-Test
kann dieses Framework in Skriptknoten über das Jython Modul automac
angesprochen werden
(alternativ de.qfs.automac
für Groovy automac
für Javascript).
Zur direkten und einfachen Nutzung für die Testerstellung bietet QF-Test in der Standardbibliothek ein Package, das QF-Test Prozeduren für häufig benötigte Interaktionen mit GUI-Elementen zur Verfügung stellt. Dieses wird im Folgenden beschrieben.
Die für die Ansteuerung von nativen MacOS-Elementen relevanten Prozeduren
befinden sich im Package qfs.automac
.
Die grundsätzliche Vorgehensweise bei der Erstellung von Tests für native MacOS-Anwendungen ist folgende:
Die zu testende Anwendung kann, muss aber nicht, über QF-Test gestartet werden.
Auf jeden Fall muss eine "Verbindung" zur Anwendung hergestellt werden.
Dies geschieht über die Prozedur qfs.automac.app.connect
,
wobei der Zugriff auf die Accessibilty-Schnittstelle der
Anwendung von QF-Test in einer Variablen abgespeichert werden. Diese Jython
Variable wird in den Prozeduren, die Aktionen auf der Anwendung ausführen,
genutzt. Für das Auffinden der Anwendung oder ggf. deren Start stehen mehrere
Möglichkeiten zur Verfügung.
Über den Parameter bundleId
wird die für die Anwendung eindeutige Bundle Id
angegeben, z.B. com.apple.Calculator. Falls die Anwendung bereits gestartet ist,
wird ein Zugriff auf diese Anwendung abgespeichert, ansonsten wird die
Anwendung gestartet.
Über den Parameter bundleFile
wird für die Anwendung das Bundle file
angegeben unter dem die Anwendung zu finden ist, z.B. /Applications/Calculator.app.
Falls die Anwendung bereits gestartet ist,
wird ein Zugriff auf diese Anwendung abgespeichert, ansonsten wird die
Anwendung gestartet. In letzterem Fall wird auch ein QF-Test Prozess gestartet, der
in der Liste der QF-Test Clients im Menü »Clients« erscheint.
Durch Beendigung dieses Prozesses wird auch die Applikation selbst beendet.
Über den Parameter title
wird der Zugriff auf die Anwendung mit
dem angegebenen Fenstertitel abgespeichert. In diesem Fall muss die Anwendung
bereits anderweitig gestartet worden sein, z.B. über den Knoten 'Shell-Kommando ausführen'.
Über den Parameter processId
wird der Zugriff auf die Anwendung mit
der angegebenen Prozessidentifikationsnummer (PID) abgespeichert.
In diesem Fall muss die Anwendung
bereits anderweitig gestartet worden sein, z.B. über den Knoten 'Shell-Kommando ausführen'.
Die Prozedur qfs.automac.helpers.DumpDesktopWindows
gibt
den Titel, die PID, Bundle id und Bundle file aller gestarteten Applikationen
im Terminal aus.
Bevor Tests erstellt werden können, ist es notwendig, sich einen Überblick über
die in der Anwendung vorhandenen GUI-Elemente zu verschaffen. Hierzu stehen
die Prozeduren qfs.automac.helpers.dumpComponents
und
qfs.automac.helpers.dumpComponentsToFile
zur Verfügung.
Diese listen die GUI-Elemente für das angegebene Fenster auf. Erstere gibt
das Ergebnis im QF-Test Terminal, letztere in eine Datei aus.
qfs.automac.helpers.dumpComponents
gibt Label, Titel,
Rolle, Subrole, Typ und Identifier des GUI-Elements aus, soweit diese für
das GUI-Element implementiert wurden.
Alle auf dem Desktop sichtbaren GUI-Elemente sind in einer Baumstruktur organisiert, mit dem Desktop als Wurzelelement. Die Verschachtelung der GUI-Elemente wird in der Ausgabe mittels Einrückungen dargestellt. Die Dump-Prozedur bezieht sich auf die verbundene Applikation oder auf die im Aufruf der Prozedur spezifizierte.
Hinweis Die Ausgabe der Prozedur dumpComponents() wird im QF-Test Terminal, das standardmäßig unten im QF-Test Fenster angezeigt wird, ausgegeben. Inm Client-Terminal und den Skript-Konsolen, die separat geöffnet werden können, wird das Ergebnis dieses Dump-Befehls nicht angezeigt.
In der Standardbibliothek steht die Prozedur
qfs.automac.helpers.dumpComponent
zur Verfügung,
um sich zu einem einzelnen GUI-Element weitere Informationen ausgeben zu lassen.
Dies umfasst die Liste der zur Verfügung stehenden Methoden sowie einzelne Attributwerte.
Über den Accessibility Inspector von XCode können ebenfalls die Parameter eines GUI-Elements angezeigt werden.
Alle in der Standardbibliothek für die Ausführung von Aktionen auf nativen
MacOS-Anwendungen zur Verfügung gestellten Prozeduren ermitteln im ersten
Schritt das jeweilige GUI-Element und führen dann die entsprechende Aktion
darauf aus. Diese sind im Package qfs.automac.component
zusammengefasst.
Das GUI-Element wird über die Prozedur qfs.automac.component.getControl
ermittelt.
Die Parameter dieser Hilfsprozedur gelten daher für alle Prozeduren, die
eine Aktion auf einem GUI-Element ausführen.
Folgende Parameter sind möglich:
Bei der Angabe mehrerer Parameter wird das GUI-Element gesucht, auf das alle Werte zutreffen.
identifier
identifier
ist die eindeutige Identifikation eines GUI-Elements
innerhalb eines Fensters möglich. Er muss jedoch bei der Anwendungsentwicklung
explizit vergeben werden und ist deshalb nicht immer verfügbar.
label
label
entspricht in der Regel dem angezeigten Text.
label
muss nicht eindeutig sein. Daher kann es notwendig sein,
zusätzlich andere Parameter, z.B. role
anzugeben.
Falls der Accessibility Inspector zur Untersuchung der GUI-Elemente
verwendet wird, heißt dieses Attribut dort entweder Label
oder
AXDescription
.
title
title
entspricht in der Regel dem angezeigten Text.
title
muss nicht eindeutig sein. Daher kann es notwendig sein,
zusätzlich andere Parameter, z.B. role
anzugeben.
role
role
ist ein Wert aus einer vordefinierten Liste von Komponententypen,
z.B. AXButton.
roleType
roleType
bezeichnet den Typ des GUI-Elements.
Falls der Accessibility Inspector zur Untersuchung der GUI-Elemente
verwendet wird, heißt dieses Attribut dort entweder Type
oder
AXRoleDescription
.
subrole
role
.
index
index
das gewünschte GUI-Element
spezifiziert werden. index
beginnt mit 0.
Für die häufigsten Aktionen finden Sie vorgefertigte Prozeduren in der
Standard-Bibliothek qfs.qft im Package qfs.automac.component
.
Sie können das Package
nach Belieben unter Verwendung des Skripting-Moduls "automac" erweitern. Hierbei
empfiehlt es sich, die Erweiterungen nicht direkt in der qfs.qft vorzunehmen,
da wir die Standardbibliothek kontinuierlich weiterentwickeln und mit jeder
QF-Test Version neu ausliefern.
qfs.automac.component.click
qfs.automac.component.waitForComponent
qfs.automac.component.setValue
qfs.automac.sendKey
qfs.automac.component.getValue
qfs.automac.component.getGeometry
qfs.automac.component.checkValue
qfs.automac.component.getGeometry
qfs.automac.component.checkImage
qfs.automac.component.getGeometry
werden die
Bildschirmkoordinaten des zu prüfenden Bereichs ermittelt. Die eigentliche
Prüfung wird über die Prozedur getPositionOfImage()
aus dem Package qfs.autoscreen
der Standardbibliothek durchgeführt. qfs.automac.menu.selectItem
Letzte Änderung: 10.9.2024 Copyright © 1999-2024 Quality First Software GmbH |