Difference between revisions of "FAQ zu GuiBrowser"

From expecco Wiki (Version 2.x)
Jump to navigation Jump to search
m (Cg verschob die Seite GuiBrowser nach FAQ zu GuiBrowser)
 
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
  +
== Warum wird die Widget-Hierarchie im Browser nicht automatisch aktualisiert? ==
  +
  +
Viele Anwendungen ändern ihren Zustand mit Mausbewegungen (enter/leave) und insbesondere mit Fokus-Ereignissen (lost focus).
  +
Typisch ist auch, daß Dialoge und Popupfenster verschwinden, sobald in ein anderes Fenster geklickt wird (i.e. auch Fokus).
  +
Ein automatisches Aktualisieren würde es sehr schwer machen, diese Art von Fenster zu inspizieren oder zu automatisieren.
  +
Daher wird expecco die Fensterhierarchie nur auf Anforderung aktualisieren; entweder per Mausklick, oder via Hotkey, oder indem man eine zeitverzögerte Aktualisierung aufsetzt. Siehe dazu die Einträge im Update-Menu des GuiBrowsers ([[Datei:guiBrowserUpdateButton.png]]).
  +
  +
Ein typisches Problem sind PopUpMenus, die erst mit einem Klick angelegt werden (vorher also gar nicht im Widget Baum erscheinen), und mit dem Loslassen bzw. Verlust des Fokus wieder verschwinden (danach also auch nicht mehr existieren).
  +
Ein einfaches Aufzeichnen ist hier durchaus möglich; will man aber zwischendurch den Baum analysieren, locator optimieren oder zusätzliche Schritte in expecco einfügen, verschwindet das Menu, und damit auch die unterliegenden Objekte.
  +
Um solch ein Menu im Baum zu analysieren, kann man eine verzögerte Aktualisierung (z.B. "in 5 Sekunden") anwählen, dann die Maus solange gedrückt halten, damit das Menu offen bleibt, und erst nach dem Update wieder loslassen. Der Widgetbaum ist dann im GUI Browser "eingefroren".
  +
  +
Ähnliches passiert in vielen Webseiten, welche dynamisch durch "Mous-Over" Events Elemente hinzufügen, löschen oder ändern.
  +
  +
== Warum werden geschlossene Verbindungen nicht immer als solche sofort angezeigt? ==
  +
  +
Auch wenn keine Interaktion mit der Anwendung erfolgt, werden alle Verbindunged regelmäßigen Zeitabständen geprüft (eine Art "ping"). Dieses Intervall beträgt standardmäßig 5 Sekunden (kann aber mit "<CODE>GuiBrowser::GUIApplication connectionAliveCheckCycle:&lt;seconds&gt;</CODE>" geändert werden; dies kann im expecco startup Skript, in einem expecco NotePad oder in einer Elementar-Aktion gemacht werden).
  +
 
== Windows Applikationen starten ==
 
== Windows Applikationen starten ==
Über den GuiBrowser werden i.A. keine Applikationen gestartet (*). Er stellt vielmehr Verbindungen zu laufenden Applikationen her.
+
Über den GuiBrowser werden i.A. keine Applikationen gestartet (es ist aber möglich *). Er stellt zumeist Verbindungen zu laufenden Applikationen her.
   
Wenn Sie Ihren Client schon auf Ihrem Rechner gestartet haben, wählen Sie im GuiBrowser beim Verbinden "''WindowsAutomation''" aus und belassen die Standard Einstellungen im Verbinden-Dialog (localhost, 9988, 30). Dann wird ein Prozess gestartet (WindowsAutomation Client) der expecco mit Ihrem Desktop verbindet. Nach dem Verbinden sehen Sie im GuiBrowser unter der WindowsAutomation Verbindung alle Applikationen auf Ihrem Rechner.
+
Wenn Sie Ihren Client schon auf Ihrem Rechner gestartet haben, wählen Sie im GuiBrowser beim Verbinden z.B. "''WindowsAutomation2''" aus und belassen die Standard Einstellungen im Verbindungsdialog (localhost, port=xxx, timeout=xx s). Dann wird ein Prozess gestartet (WindowsAutomation Client) der expecco mit Ihrer Anwendung oder dem Desktop verbindet. Nach dem Verbinden sehen Sie im GuiBrowser unter der Verbindung die Elemente der Anwendung (bzw. aller Anwendungen) auf Ihrem Rechner.
   
 
Um die Applikation zu starten, legen Sie
 
Um die Applikation zu starten, legen Sie
am besten dazu in der Testsuite einen neuen Baustein an, benennen diesen z.B. "<code>Starte Client2</code>" und fügen einen der existierenden Startbausteine ein.
+
am besten dazu in der Testsuite einen neuen Baustein an, benennen diesen z.B. "<code>Starte Client2</code>" und fügen einen der existierenden "OS-Starte-Prozess" Bausteine (aus der Standardbibliothek) ein.
  +
  +
Es ist sinnvoll, den start/stop der Anwendung in einer separaten expecco Aktion zu halten, um während der Testentwicklung den oft langsamen start/stop-Vorgang zu überspringen. Im Testplan platzieren Sie dann als ersten "Testcase" die Startaktion, und als letzten eine Stopaktion. Damit können dann einzelne Testfälle und Aktionen ausgeführt werden, ohne daß jedesmal die Anwendung neu gestartet werden muss.
  +
Dies ist der Grund, warum der GuiBrowser den Verbindungsauf- und Abbau nicht automatisch aufzeichnet, sondern lediglich einen Vorschlag macht, wenn man eine Anwendungsverbindung im Baum anwählt.
  +
   
 
[[Datei:faq_guibrowser1.png|600px]]
 
[[Datei:faq_guibrowser1.png|600px]]
Line 20: Line 41:
   
 
[[Datei:faq_guibrowser5.png|400px]]
 
[[Datei:faq_guibrowser5.png|400px]]
  +
 
Führen Sie nun den Baustein "''Starte Client2''" aus (click auf "''Play''")und die gewünschte Applikation öffnet sich.
 
Führen Sie nun den Baustein "''Starte Client2''" aus (click auf "''Play''")und die gewünschte Applikation öffnet sich.
   
Der neue Baustein (Starte Client2) kann nun innerhalb Ihrer Testsequenz verwendet werden, um die Applikaton zu starten.
+
Der neue Baustein (Starte Client2) kann nun innerhalb Ihrer Testsequenz (oder besser: als erster Schritt in einem Testplan) verwendet werden, um die Applikaton zu starten.
  +
 
(*) allerdings finden sich in den mitgelieferten Bibliotheken auch Bausteine zum Starten von Anwendungen, die Sie natürlich wie jede andere Aktion in eine aufgezeichnete Sequenz einfügen können. Wir empfehlen aber, Start und Stop von Aktionen als eigenstädnige seperate Schritte im Testplan zu definieren. Damit können diese gegebenenfalls disabled werden, um lange Startupzeiten während der Testentwicklung zu vermeiden.
  +
  +
== Wozu dient das Preview Fenster unten links ==
  +
* für fensterlose Anwendungen (headless browser)
  +
* für Geräte an remote-Rechnern (auch Mobilgeräte im Serverraum)
  +
* um das Bild transienter (verschwindender) Fenster zu halten (i.e. Menus und Dialoge, die bei Fokusverlust verschwinden)
  +
* um Ausschnitte zu vergrößern
  +
* um Geometriedaten zu ermitteln (Rechtecke und Positionen)
  +
* um einzelne Elemente hervorzuheben auch in GUI Technologien welche dies nicht selbst unterstützen
   
  +
Zurück zur [[FAQ | FAQ Liste]]
(*) allerdings finden sich in den mitgelieferten Bibliotheken auch Beustein zum Starten von Anwendungen, die Sie natürlich wie jede andere Aktion in eine aufgezeichnete Sequenz einfügen können. Wir empfehlen aber, Start und Stop von Aktionen als eigenstädnige seperate Schritte im Testplan zu definieren. Damit können diese gegebenenfalls disabled werden, um lange Startupzeiten während der Testentwicklung zu vermeiden.
 

Latest revision as of 00:34, 28 November 2020

Warum wird die Widget-Hierarchie im Browser nicht automatisch aktualisiert?[edit]

Viele Anwendungen ändern ihren Zustand mit Mausbewegungen (enter/leave) und insbesondere mit Fokus-Ereignissen (lost focus). Typisch ist auch, daß Dialoge und Popupfenster verschwinden, sobald in ein anderes Fenster geklickt wird (i.e. auch Fokus). Ein automatisches Aktualisieren würde es sehr schwer machen, diese Art von Fenster zu inspizieren oder zu automatisieren. Daher wird expecco die Fensterhierarchie nur auf Anforderung aktualisieren; entweder per Mausklick, oder via Hotkey, oder indem man eine zeitverzögerte Aktualisierung aufsetzt. Siehe dazu die Einträge im Update-Menu des GuiBrowsers (GuiBrowserUpdateButton.png).

Ein typisches Problem sind PopUpMenus, die erst mit einem Klick angelegt werden (vorher also gar nicht im Widget Baum erscheinen), und mit dem Loslassen bzw. Verlust des Fokus wieder verschwinden (danach also auch nicht mehr existieren). Ein einfaches Aufzeichnen ist hier durchaus möglich; will man aber zwischendurch den Baum analysieren, locator optimieren oder zusätzliche Schritte in expecco einfügen, verschwindet das Menu, und damit auch die unterliegenden Objekte. Um solch ein Menu im Baum zu analysieren, kann man eine verzögerte Aktualisierung (z.B. "in 5 Sekunden") anwählen, dann die Maus solange gedrückt halten, damit das Menu offen bleibt, und erst nach dem Update wieder loslassen. Der Widgetbaum ist dann im GUI Browser "eingefroren".

Ähnliches passiert in vielen Webseiten, welche dynamisch durch "Mous-Over" Events Elemente hinzufügen, löschen oder ändern.

Warum werden geschlossene Verbindungen nicht immer als solche sofort angezeigt?[edit]

Auch wenn keine Interaktion mit der Anwendung erfolgt, werden alle Verbindunged regelmäßigen Zeitabständen geprüft (eine Art "ping"). Dieses Intervall beträgt standardmäßig 5 Sekunden (kann aber mit "GuiBrowser::GUIApplication connectionAliveCheckCycle:<seconds>" geändert werden; dies kann im expecco startup Skript, in einem expecco NotePad oder in einer Elementar-Aktion gemacht werden).

Windows Applikationen starten[edit]

Über den GuiBrowser werden i.A. keine Applikationen gestartet (es ist aber möglich *). Er stellt zumeist Verbindungen zu laufenden Applikationen her.

Wenn Sie Ihren Client schon auf Ihrem Rechner gestartet haben, wählen Sie im GuiBrowser beim Verbinden z.B. "WindowsAutomation2" aus und belassen die Standard Einstellungen im Verbindungsdialog (localhost, port=xxx, timeout=xx s). Dann wird ein Prozess gestartet (WindowsAutomation Client) der expecco mit Ihrer Anwendung oder dem Desktop verbindet. Nach dem Verbinden sehen Sie im GuiBrowser unter der Verbindung die Elemente der Anwendung (bzw. aller Anwendungen) auf Ihrem Rechner.

Um die Applikation zu starten, legen Sie am besten dazu in der Testsuite einen neuen Baustein an, benennen diesen z.B. "Starte Client2" und fügen einen der existierenden "OS-Starte-Prozess" Bausteine (aus der Standardbibliothek) ein.

Es ist sinnvoll, den start/stop der Anwendung in einer separaten expecco Aktion zu halten, um während der Testentwicklung den oft langsamen start/stop-Vorgang zu überspringen. Im Testplan platzieren Sie dann als ersten "Testcase" die Startaktion, und als letzten eine Stopaktion. Damit können dann einzelne Testfälle und Aktionen ausgeführt werden, ohne daß jedesmal die Anwendung neu gestartet werden muss. Dies ist der Grund, warum der GuiBrowser den Verbindungsauf- und Abbau nicht automatisch aufzeichnet, sondern lediglich einen Vorschlag macht, wenn man eine Anwendungsverbindung im Baum anwählt.


Faq guibrowser1.png

Drücken Sie dazu im Editor die rechte Maustaste und wählen im Menu "New Step (Neuer Schritt)" aus.

Faq guibrowser3.png

Es öffnet sich ein Dialog mit einer Liste von verfügbaren Bausteinen, die Sie Ihrem aktuellen Baustein hinzufügen können. Dort geben Sie als Pattern "Background OS" ein und sehen nun die gefilterte Liste. Wählen Sie bitte den Baustein "Background OS Process [ Start ]" aus und drücken OK.

Faq guibrowser4.png

Der Dialog wird geschlossen und es erscheint ein Mauscursor über den Sie auswählen können, wo Sie den neuen Baustein im Netzwerk plazieren möchten. Nachdem der Baustein plaziert ist, können Sie den Baustein parametrisieren (über Doppelklick auf den Eingangspin öffnet sich ein Editor, oder Pin auswählen und über rechtes Maus Menu die gewünschte Funktion auswählen). Dort tragen Sie dann die entsprechenden Vorgaben ein z.B.

Faq guibrowser5.png

Führen Sie nun den Baustein "Starte Client2" aus (click auf "Play")und die gewünschte Applikation öffnet sich.

Der neue Baustein (Starte Client2) kann nun innerhalb Ihrer Testsequenz (oder besser: als erster Schritt in einem Testplan) verwendet werden, um die Applikaton zu starten.

(*) allerdings finden sich in den mitgelieferten Bibliotheken auch Bausteine zum Starten von Anwendungen, die Sie natürlich wie jede andere Aktion in eine aufgezeichnete Sequenz einfügen können. Wir empfehlen aber, Start und Stop von Aktionen als eigenstädnige seperate Schritte im Testplan zu definieren. Damit können diese gegebenenfalls disabled werden, um lange Startupzeiten während der Testentwicklung zu vermeiden.

Wozu dient das Preview Fenster unten links[edit]

  • für fensterlose Anwendungen (headless browser)
  • für Geräte an remote-Rechnern (auch Mobilgeräte im Serverraum)
  • um das Bild transienter (verschwindender) Fenster zu halten (i.e. Menus und Dialoge, die bei Fokusverlust verschwinden)
  • um Ausschnitte zu vergrößern
  • um Geometriedaten zu ermitteln (Rechtecke und Positionen)
  • um einzelne Elemente hervorzuheben auch in GUI Technologien welche dies nicht selbst unterstützen

Zurück zur FAQ Liste



Copyright © 2014-2020 eXept Software AG