In einigen Situationen während der Wiedergabe ist Functional Test möglicherweise nicht in der Lage, zwischen zwei ähnlichen Objekten in der getesteten Software zu unterscheiden. Wenn beispielsweise in HTML-Anwendungen mehr als eine Instanz eines Browsers aktiv ist, kann bei Symbolleistenaktionen nicht zwischen einem Browser und einem anderen unterschieden werden, wenn sie wie in den folgenden Beispielen aufgezeichnet wurden:
BrowserToolbar_Back().click()
BrowserToolbar_Forward().click()
In solchen Fällen verhindert Functional Test eine mehrdeutige Objekterkennung, indem nach der Symbolleistenschaltfläche in dem Browser gesucht wird, der durch das aktuell geladene Dokument angegeben ist (wird als Anker für das Zielobjekt bezeichnet). Beispiel:
BrowserToolbar_Back(Browser_htmlBrowser(Document_MyHomePage(),
DEFAULT), DEFAULT).click();
Die Schaltfläche "Zurück" (Back) in der Symbolleiste ist durch den Browser verankert, der wiederum durch das Dokument "My HomePage" verankert ist. Dieses Beispiel würde natürlich nicht funktionieren, wenn in jeder Instanz des Browsers dasselbe Dokument geladen wäre. Beachten Sie, dass die Helper-Scriptmethoden, die einen Anker als Argument verwenden, ein weiteres Argument erfordern, das den Status der Komponente angibt (das Argument DEFAULT im Beispiel oben). Der Standardstatus für HTML-Objekte ist LOADED. Im Falle von HTML-Komponenten sind auch LOADING und UNINITIATED möglich. Der Standardstatus für Java-Objekte ist SHOWING und ENABLED. Weitere unterstützte Statusattribute für Java-Objekte sind NOT_SHOWING und DISABLED.
Darüber hinaus können Sie die Browserinstanz angeben, indem Sie eine TestObject
-Referenz verwenden, die die Suchmethode im Browser auf folgende Weise aufruft (denken Sie daran, die Registrierung für TestObject anschließend wieder zurücknehmen):
TestObject
browserOne = Browser_htmlBrowser(Document_MyHomePage(),
DEFAULT).find();
Die Befehle in der Symbolleiste des Browsers würden im Testscript wie folgt aussehen:
BrowserToolbar_Back(myBrowser,
DEFAULT).click();
Eine weitere Situation, in der eine mehrdeutige Objekterkennung ein Problem darstellen kann, ist dann gegeben, wenn bei einem Test mehrere Anwendungen gleichzeitig aktiv sind.
Während der Wiedergabe sind Befehle wie b5().click()
mehrdeutig. Da der Befehl startApp
einen Befehl ProcessTestObject
zurückgibt, kann diese Referenz für die Angabe verwendet werden, auf welche Anwendung ein bestimmter Befehl zutrifft.
Beispiel:
ProcessTestObject
p1 = startApp("SwingTest");
ProcessTestObject p2 = startApp("TryIt");
...
//b5().click(); ambiguous on playback; which application?
b5(p1, DEFAULT).click();
In der letzten Zeile des Beispiels dient ProcessTestObject
als ein Anker zum Auffinden der gewünschten Anwendung.
Das Aufrufen der Methode zum Zurücknehmen der Registrierung ist im Falle von ProcessTestObject
nicht erforderlich.
Nutzungsbedingungen | Feedback
(C) Copyright IBM Corporation 2002, 2004. Alle Rechte vorbehalten.