FT-Lernprogramm, Übung 8: Objektübersicht aktualisieren

Dies ist Übung 8 des Lernprogramms zu Functional Test. Möchten Sie das Lernprogramm von Anfang an durcharbeiten, müssen Sie mit Functional Test - Lernprogramm beginnen.

Objektübersicht aktualisieren

In diesem Abschnitt werden Sie die Warnung bezüglich der Objekterkennung mit Hilfe der Objektübersicht korrigieren. Dabei werden Sie zwecks größerer Flexibilität bei der Objekterkennung auch einen regulären Ausdruck verwenden.

Wenn Ihnen ein Fehler oder eine Warnung in Bezug auf die Objekterkennung angezeigt wird, lesen Sie die entsprechende Protokollnachricht. Am Ende von Übung 7 haben Sie das Protokoll weiterhin geöffnet gelassen. Sollte es jedoch geschlossen sein, müssen Sie es jetzt durch Doppelklicken im Solution-Explorer öffnen.  

Das Protokoll enthält nur eine Warnung. Die Ereigniskopfzeile lautet: "Objekterkennung ist schwach (oberhalb der Warnschwelle)".

  1. Prüfen Sie die Felder ObjectLookedFor und objectFound im Bereich zu den Warnungen kurz vor Ende des Protokolls.

In "ClassicsA" lautet der Name des Kennwortfelds Remember Password. In "ClassicsB" lautet dieser Name Remember The Password. Als Sie das Script für "ClassicsB" ausgeführt haben, gab es auf Grund dieser Differenz keine Übereinstimmung bei der Objekterkennung.

  1. Schauen Sie im Feld Zeilennummer im Protokoll nach und notieren Sie sich die Nummer.

  2. Schließen Sie das Protokoll und kehren Sie zu Functional Test zurück.

  3. Möchten Sie zu der Zeile navigieren, die Sie sich notiert haben, müssen Sie an einer beliebigen Position in das Scriptfenster klicken und dann nacheinander auf Bearbeiten > Gehe zu klicken.

  4. Geben Sie die Zeilennummer der Fehlernachricht aus dem Protokoll ein und klicken Sie auf OK.

Der Cursor wird zum linken Rand dieser Zeilennummer versetzt. Sie können die Zeilennummer allerdings auch über die Anzeige unten im Functional Test-Fenster finden. Dort werden Zeilennummer und Cursorposition innerhalb der Zeile angezeigt. Beispiel: Die Angabe "Ln 66 Col 9" bezieht sich auf eine Position in Zeile 66, die sich 9 Zeichen rechts vom linken Rand befindet. Die Zeile in Ihrem Script muss wie folgt lauten:

RememberPassword().ClickToState(SELECTED)

Über diese Zeile wird Ihr Klicken auf das Kennwortfenster dargestellt. In dieser Zeile des Scripts wird angegeben, bei welchem Objekt der Fehler aufgetreten ist. Jetzt können Sie sich das betreffende Objekt in der Objektübersicht anschauen.

  1. Suchen Sie nach dem Objekt über die Liste mit Testobjekten im Script-Explorer (im linken Fensterbereich).

Unter dem Ordner Test Objects muss "RememberPassword" angezeigt werden.

  1. Klicken Sie doppelt auf dieses Objekt, um es in der Objektübersicht zu öffnen.

  2. Klicken Sie im Objektübersichtmenü auf Testobjekt > Alle akzeptieren . Ist der Befehl abgeblendet, müssen Sie nichts unternehmen.

Beachten Sie, dass jetzt der Text bei allen Objekten in schwarzer Farbe dargestellt wird. Der Text wird immer solange in blau dargestellt (so werden neue Objekte gekennzeichnet), bis Sie die Objekte in eine Übersicht übernehmen. Sie müssen die Objekte immer bei der ersten Anzeige einer neu erstellten Objektübersicht übernehmen.

  1. Ist das Markierungsfeld für das Kennwort nicht ausgewählt, holen Sie das jetzt nach. (Das Objekt lautet wie folgt: "Java: checkBox: checkRemeber: javax.swing.JCheckBox".)

  2. Schauen Sie sich die Erkennungseigenschaften auf der Registerkarte Erkennung unten in der Objektübersicht an.

Dabei werden Sie feststellen, dass es sich hier um das Objekt aus "ClassicsA" handelt, da für die Eigenschaft accessibleContext.accessibleName "Remember Password" eingetragen ist. Dies ist also das "alte" Objekt. Als Sie das Script jedoch für "ClassicsB" ausgeführt haben, wurde der Text zu diesem Objekt geändert, weshalb das Objekt von Functional Test als das "neue" Objekt erkannt wird. Da Sie in diesem Fall die neuen Objekteigenschaften verwenden möchten, müssen Sie das Objekt zur Übersicht hinzufügen.

Öffnen Sie "ClassicsB" und das Dialogfenster für die Memberanmeldung, um das neue Objekt zur Übersicht hinzuzufügen.

  1. Klicken Sie im Objektübersichtmenü auf Anwendungen > Ausführen.

  2. Wählen Sie über den Pfeil "ClassicsJavaB" aus. (Achten Sie darauf, dass Sie wirklich "B" auswählen.)

  3. Klicken Sie auf OK.

  4. Wählen Sie in "ClassicsCD" eine beliebige CD aus und klicken Sie auf Place Order.

Daraufhin wird das Dialogfenster für die Memberanmeldung angezeigt.

  1. Verschieben Sie die Objektübersicht (bei Bedarf) in Ihrer Anzeige weiter nach unten, um den kompletten Inhalt anschauen zu können. Klicken Sie im Objektübersichtmenü auf Testobjekt > Objekt(e) einfügen.

Das entspricht dem Tool für die Objektsuche auf der Seite Objekt auswählen im Prüfpunktassistenten.

  1. Ist die Option zum Fortfahren auf der nächsten Seite aktiviert, heben Sie diese Aktivierung wieder auf.

  2. Verwenden Sie das Tool für die Objektsuche, um das Markierungsfeld "Remember the Password" im Dialogfenster für die Memberanmeldung auszuwählen.

Wenn Sie das Markierungsfeld ausgesucht haben, werden Sie bemerken, dass die Eigenschaft accessibleContext.accessibleName jetzt "Remember The Password" lautet. Vergrößern Sie (bei Bedarf) den Rahmen um die Objektübersicht, um alle Eigenschaften sehen zu können.

  1. Klicken Sie auf der Seite Objekt auswählen auf Weiter.

  2. Nehmen Sie auf der Seite Optionen für die Objektauswahl keinerlei Änderungen vor und klicken Sie auf Fertig stellen.

Das neue Markierungsfeldobjekt wird jetzt in der Objektübersicht angezeigt.

  1. Klicken Sie auf ein anderes Objekt. Beachten Sie, dass das neue Element blau dargestellt und am Anfang der Zeile der Hinweis "Neu" angezeigt wird.

Jetzt werden sowohl altes als auch neues Objekt in der Übersicht aufgeführt. Sie möchten die beiden Objekte unifizieren und die Eigenschaften der beiden für das neue Objekt übernehmen.

  1. Klicken Sie zum Unifizieren auf das alte Objekt (das ursprüngliche Markierungsfeld mit dem Titel "CheckBox: checkRemember") und ziehen Sie es zum neuen Objekt in der Liste. Positionieren Sie die Spitze des Cursorpfeils auf dem neuen Objekt und lassen Sie die Maustaste dann wieder los.

Der Assistent zum "Unifizieren von Testobjekten" wird angezeigt.

  1. Erweitern Sie den Assistenten bei Bedarf, um auch die Informationen in den unteren Abschnitten sehen zu können.

Links unten werden die Eigenschaften des Originalobjekts angezeigt. Dort müsste "Quelle: RememberPassword" angezeigt werden. So lautete der Text zum Markierungsfeld in "ClassicsA". Unten rechts müsste "Ziel: RememberThePassword" zu lesen sein. So lautet der Text zum Markierungsfeld in "ClassicsB". Da Sie das alte Objekt zum neuen Objekt bewegt haben, werden oben die Erkennungseigenschaften des neuen Objekts eingetragen. Gewöhnlich werden die neuen Eigenschaften, sofern es sich um die bevorzugten Eigenschaften handelt, von Functional Test immer oben eingetragen. Möglicherweise werden aber auch einige alte Verwaltungseigenschaften bevorzugt. Beispielsweise werden von Functional Test reguläre Ausdrücke in den alten Eigenschaften beibehalten. Möchten Sie eine Eigenschaft aus dem alten Objekt verwenden, müssen Sie im Raster des alten Objekts doppelt auf die betreffende Eigenschaft klicken. Daraufhin wird diese Eigenschaft in das unifizierte Objekt kopiert. Im vorliegenden Fall sollen alle Eigenschaften des neuen Objekts verwendet werden. Diese Eigenschaften sind bereits alle übernommen worden.

  1. Klicken Sie auf Weiter.

Alle Scripts, die von dieser Änderung in der Objektübersicht betroffen sind, werden aufgelistet. Es ist allerdings nur ein einziges Script, nämlich "Classics", davon betroffen.

  1. Klicken Sie auf Fertig stellen.

  2. Klicken Sie in der Objektübersicht auf Datei: Speichern, um die vorgenommenen Änderungen zu speichern. Schließen Sie die Objektübersicht dann wieder.

Nun soll das Script erneut auf "ClassicsB" angewendet werden, um zu prüfen, ob es jetzt funktioniert.

  1. Schließen Sie zunächst die beiden Dialogfenster von "ClassicsCD".

  2. Klicken Sie auf eine beliebige Stelle im Functional Test-Fenster, um die Funktionsleiste zu aktivieren.

  3. Klicken Sie auf Functional Test-Script ausführen.

  4. Wählen Sie das Protokoll Classics aus und klicken Sie auf Fertig stellen.

Das Script läuft jetzt ohne Ausgabe von Warnungen ab! Beachten Sie dabei, dass die Wiedergabe jetzt nicht mehr am Markierungsfeldobjekt unterbrochen wird, da die Erkennungseigenschaften einander jetzt entsprechen.

Mit diesem Feature für die Objektunifizierung verfügen Sie über eine bequeme Methode zum Aktualisieren von Scripts für den Fall, dass die Erkennungseigenschaften eines Objekts absichtlich geändert werden. Einer der größten Vorteile, den dieses Feature bietet, besteht darin, dass Sie für den Fall, dass Ihre Objektübersicht von mehreren Scripts verwendet wird, bei Einsatz des Assistenten alle Scripts gleichzeitig aktualisieren können. Statt also mehrere Scripts manuell zu editieren, können Sie die Änderung einmalig in der Übersicht vornehmen, von wo aus sie automatisch an alle betroffenen Scripts weiterverbreitet wird. Mit diesem Feature können Sie viel Zeit sparen.

Hinweis: Es gibt noch einen einfacheren Weg, um die Erkennungseigenschaften eines Testobjekts bei einer Änderung zu aktualisieren. Statt (wie in diesem Schritt beschrieben) den Unifizierungsassistenten zu verwenden, können Sie von der Objektübersicht aus einfach das Testobjekt auswählen, dessen Erkennungseigenschaften aktualisiert werden sollen. Klicken Sie mit der rechten Maustaste in der Baumstruktur der Objektübersicht auf das Testobjekt und wählen Sie aus dem Popup-Menü Erkennungseigenschaften aktualisieren aus. Voraussetzung für diese Aktion ist allerdings, dass die Testanwendung in Betrieb ist, so dass Functional Test in der Lage ist, auf die aktualisierten Erkennungseigenschaften zuzugreifen. Diese Aktualisierungsmethode kann aber nur angewendet werden, wenn Sie keinerlei Eigenschaften des alten Objekts verwenden möchten.

  1. Schließen Sie das Protokoll.

Weiter mit Übung 9: Erkennungseinstellungen ändern.  

Nutzungsbedingungen | Feedback

(C) Copyright IBM Corporation 2002, 2004. Alle Rechte vorbehalten.