Mehrdeutige Objekterkennung

Bei der Wiedergabe können Situationen auftreten, in denen Functional Test möglicherweise nicht zwischen zwei einander ähnlichen Objekten in der getesteten Software unterscheiden kann. Sind beispielsweise in HTML-Anwendungen mehrere Instanzen eines Browsers aktiv, ist die Unterscheidung zwischen den verschiedenen Browsern für Aktionen über die Symbolleiste nicht möglich, wenn wie in den folgenden Beispielen aufgezeichnet wurde:

     BrowserToolbar_Back().Click()
     BrowserToolbar_Forward().Click()

In Fällen wie diesem vermeidet Functional Test eine mehrdeutige Objekterkennung, indem nach der Schaltfläche in der Symbolleiste des Browsers gesucht wird, die durch das aktuell geladene Dokument (auch als Anker für das Zielobjekt bezeichnet) gekennzeichnet ist. Beispiel:

     BrowserToolbar_Back(Browser_htmlBrowser(Document_MyHomePage(), _
        DEFAULT), DEFAULT).Click()

Für die Taste "Zurück" in der Symbolleiste fungiert der Browser als Anker, für den Browser fungiert das Dokument "My HomePage" als Anker. Dieses Beispiel kann natürlich nicht funktionieren, wenn in jeder Instanz des Browsers dasselbe Dokument geladen ist. Achten Sie darauf, dass bei den Helper-Scriptmethoden, die einen Anker als Argument verwenden, ein weiteres Argument erforderlich ist, in dem der Status der Komponenten (im oben genannten Beispiel das Argument DEFAULT) angegeben wird. Der Standardstatus für HTML-Objekte lautet READY. Für HTML-Komponenten sind auch LOADING und UNINITIALIZED möglich. Standardstatus für Java-Objekte sind SHOWING und ENABLED. Unterstützt werden außerdem NOT_SHOWING und DISABLED.

Außerdem können Sie die Browserinstanz identifizieren, indem Sie eine entsprechende TestObject-Referenz verwenden und wie folgt die Methode Find im Browser aufrufen:

     TestObject BrowserOne = Browser_htmlBrowser(Document_MyHomePage(),
        DEFAULT).Find()

Hinweis: Denken Sie daran, die Registrierung von TestObject danach wieder zurückzunehmen.

Die Symbolleistenbefehle des Browsers im Testscript entsprechen dem folgenden Beispiel:

     BrowserToolbar_Back(MyBrowser, DEFAULT).Click()

Eine andere Situation, in der die mehrdeutige Objekterkennung zum Thema werden kann, ergibt sich dann, wenn in einem Test mehrere Anwendungen gleichzeitig ausgeführt werden. Bei der Wiedergabe sind Befehle wie b5().Click() mehrdeutig. Da über den Befehl StartApp ein "ProcessTestObject" erstellt wird, können Sie über diese Referenz angeben, für welche Anwendung ein bestimmter Befehl Gültigkeit hat. Beispiel:

     ProcessTestObject P1 = StartApp("SwingTest")
     ProcessTestObject P2 = StartApp("TryIt")
     ...
     B5().Click() REM (ambiguous on playback; which application?)
     B5(P1, DEFAULT).Click()

In der letzten Zeile des Beispiels fungiert ProcessTestObject als Anker für die Suche nach der gewünschten Anwendung. Beachten Sie, dass es nicht erforderlich ist, die Methode Unregister für ein ProcessTestObject aufzurufen.

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