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 some 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 test 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(ByVal PropertyName As String)

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 ThankYouXLabel object.

#Region " Script Header "
' Functional Test Script
' author Administrator
Imports Microsoft.VisualBasic
Imports Rational.Test.Ft
Imports Rational.Test.Ft.Object.Interfaces
Imports Rational.Test.Ft.Object.Interfaces.SAP
Imports Rational.Test.Ft.Object.Interfaces.Siebel
Imports Rational.Test.Ft.Script
Imports Rational.Test.Ft.Value
Imports Rational.Test.Ft.Vp
#End Region

Public Class QueryingObject
    Inherits QueryingObjectHelper

    'Script Name   : QueryingObject
    'Generated     : Jul 20, 2006 2:20:49 PM
    'Description   : Functional Test Script
    'Original Host : Windows XP x86 5.1 build 2600 Service Pack 2 

    'since  2006/07/20
    'author Administrator

    Public Function TestMain(ByVal args() As Object) As Object
        StartApp("ClassicsJavaA")

        ' Frame: ClassicsCD
        PlaceOrder().Click()

        ' Frame: Member Logon
        OK().Click()

        ' Frame: Place an Order
        CardNumberIncludeTheSpacesText().Click(AtPoint(53, 4))
        PlaceAnOrder().InputChars("1234123412341234")
        ExpirationDateText().Click(AtPoint(10, 5))
        PlaceAnOrder().InputChars("12/12")
        PlaceOrder2().Click()

        'Waiting for Object 
        YourOrderHasBeenReceivedYourOr().WaitForExistence()

        'Querying the Object
        Dim confirmationText As String = YourOrderHasBeenReceivedYourOr().GetProperty("text")
        LogTestResult(confirmationText, confirmationText.startsWith("Your order has"))
        YourOrderHasBeenReceivedYourOr().Click()
        ' 
        OK2().Click()

        ' Frame: ClassicsCD
        ClassicsJava(ANY, MAY_EXIT).Close()
        Return Nothing
    End Function
End Class


Rational® 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.