abonnieren verfolgen erleben

Willkommen zurück zu unserer Blog Serie über GeNiEnd2End Skripting!

Heute behandeln wir das GUI basierte Front-End Skripting und was dort beachtet werden sollte.

Skripte, die mit dem Desktop interagieren, sind einfacher in AutoIt zu erstellen, dadurch aber nur auf der Windows-Platform lauffähig.

Die Hardware des Roboters sollte der von normalen Benutzern entsprechen, ansonsten werden die Messergebnisse von denen der normalen Benutzer abweichen. Es sollte eine physikalische Hardware genommen werden und keine virtuelle Maschine. Schliesslich geht es darum, Probleme zu finden, die ein Benutzer haben könnte und Messwerte zu bekommen, wie lange eine Transaktion für einen Benutzer dauert.

Jede Messung, die wie ein Benutzer agieren soll, sollte mit einer Klickstrecke starten. Diese enthält alle Schritte die das Skript durchführen soll, und man setzt dort die Messpunkte bzw. kann sie dadurch herausfinden. Diese hilft später beim Auffinden von Problemursachen, wenn das Skript an einer spezifischen Stelle hängen bleibt.

 

Beispiel Klickstrecke von einem unserer Produktionsskripte:

 PDF Klickstrecken Dokumentation

Best Practices

  1. Schreiben Sie ein Log, vielleicht mit einer "Debug" Einstellung, das ein erweitertes Logging aktiviert wenn Sie es benötigen. Dieses kann sehr hilfreich sein, um schnell Probleme zu identifizieren, aufzuzeigen, wo es hängt bzw. welche Unterschiede es zwischen Programmierumgebung und der kompilierten Version gibt. Der GeNiAgent sucht ausserdem nach einem "error.log" und "detail.log" im Skript Ordner und lädt diese auf den GeNiEnd2End Server hoch. Diese sind dann direkt in der Weboberfläche einsehbar.
     
  2. Hat die Applikation eine sich schnell verändernde Oberfläche (viele Änderungen am GUI)? Wenn das so ist, sollten Sie versuchen, Fenstertexte (Titel / Inhalt) für die Messungen zu nehmen, so dass Ihr Skript nicht so einfach von GUI-Änderungen beeinflusst wird.
     
  3. Wenn Sie die Bildersuche (Image search) benutzen müssen:
    Dann sollten Sie versuchen, die Bildausschnitte so neutral wie möglich zu machen. Das heisst: Nehmen Sie Bildausschnitte von GUI-Elementen, die sich so wenig wie möglich verändern können oder einfach zu finden sind, auch wenn sich die Lokation etwas verändert hat. Die Größe des Bildausschnitts der gesucht wird, sollte so klein wie möglich sein. Dadurch ist die Chance höher, dass er auch nach Änderungen gefunden wird. Die Screenshots sollten auf einen Roboter erstellt werden, so das keine Farbunterschiede oder andere Eigenheiten vorhanden sind.
     
  4. Wird die Applikation anzeigen, wenn etwas fehlschlägt - z.B. Fehlermeldungen \ Fehlerbehandlung?
    Sie sollten überprüfen, ob nach einer fehlgeschlagenen Messung Fehlermeldungen bestätigt werden müssen oder was passiert, wenn die Applikation sich nicht richtig geschlossen hat. Behalten Sie das im Hinterkopf und skripten Sie für diese Fälle. Schreiben Sie ein "error.log" und "detail.log".
     
  5. Können Sie die Schritte nur mit Mausklicks vornehmen oder auch mit Tastaturkürzeln?
    Sie können Tastatureingaben senden, das ist meistens der bessere Weg, um mit dem Desktop zu interagieren. Dies gelingt natürlich nur, wenn es die selbe Funktion ist wie bei einem Mausklick.
    Wenn Sie einen Mausklick machen müssen und die Lokation des Klicks sich möglicherweise ändert, machen Sie eine Bildersuche (Image search). Dazu suchen Sie nach einem Stück des Buttons und klicken dann darauf, so das Sie nicht den falschen Button anklicken, weil er sich eventuell leicht bewegt hat.
    Wenn Ihre Applikation keine IDs / Namen der Designelemente vergibt, können Sie diese auch direkt ansprechen. (Überprüfen Sie das mit dem AutoIt Window Info Programm)
     
  6. Wenn Sie viele Transaktionen nacheinander durchführen oder Sie die Packet Trace / CNS Option benutzen, sollten Sie darauf achten, nach jeder Transaktion 5 Sekunden Pause einzuhalten bevor die nächste Transaktion gestartet wird.
 

Dieses Beispiel Skript läuft auf einem Roboter, es ist ein AutoIT Skript was mit dem IBM Notes Client 8.5 und 9.0 ohne größere Änderrungen agiert.

 
 

Nächstes Mal befassem Wir uns mit Back-End Skripting.