Querying values of object properties
Components in the application-under-test, such as dialog boxes, command buttons, and labels, have associated pieces of information called properties. Properties have a name and a value. This topic provides examples of why you may want to modify your script to access an object property.
- You may want to compare previous versions of a value to the current value and to do so would require a calculation (such as factoring in a depreciation rate).
- Sometimes querying a property may return a reference to other objects. In cases like this, you might need to test the value of a property of the returned object. This kind of scenario cannot be handled through the user interface. See Unregistering references to test objects for more information.
- You also might want to branch in your Functional Tester script based on the current value of a property.
You can retrieve the value of a property programmatically by calling the getProperty method, which has the following syntax:
Object getProperty(String propertyName);The following example uses the getProperty method to test whether a value of a property is being captured and reproduced correctly. The call to getProperty retrieves the value of the text property associated with the yourOrderHasBeenReceivedYourOr object.
import resources.QueryingObjectHelper; import com.rational.test.ft.*; import com.rational.test.ft.object.interfaces.*; import com.rational.test.ft.object.interfaces.SAP.*; import com.rational.test.ft.object.interfaces.siebel.*; import com.rational.test.ft.script.*; import com.rational.test.ft.value.*; import com.rational.test.ft.vp.*; /** * Description : Functional Test Script * @author Administrator */ public class QueryingObject extends QueryingObjectHelper { /** * Script Name : QueryingObject * Generated : Jul 19, 2006 2:31:56 PM * Description : Functional Test Script * Original Host : WinNT Version 5.1 Build 2600 (S) * * @since 2006/07/19 * @author Administrator */ public void testMain(Object[] args) { startApp("ClassicsJavaA"); // Frame: ClassicsCD placeOrder().click(); // Frame: Member Logon ok().click(); // Frame: Place an Order cardNumberIncludeTheSpacesText().click(atPoint(28,6)); placeAnOrder().inputChars("1234123412341234"); expirationDateText().click(atPoint(9,2)); placeAnOrder().inputChars("12/12"); placeOrder2().click(); //Waiting for Object yourOrderHasBeenReceivedYourOr().waitForExistence(); //Querying the Object String confirmationText = (String)yourOrderHasBeenReceivedYourOr().getProperty("text"); logTestResult(confirmationText, confirmationText.startsWith("Your order has")); yourOrderHasBeenReceivedYourOr().click(); ok2().click(); // Frame: ClassicsCD classicsJava(ANY,MAY_EXIT).close(); } }Functional Tester also supports a setProperty method, but do not use it unless you are sure of the result. This method calls internal methods that may violate the integrity of the application-under-test.