Wednesday, July 25, 2007

Selecting an Object Order Preference

Robot uses a variety of object recognition methods in order to uniquely identify objects in the application-under-test that are acted on during recording sessions. For example, Robot can identify a check box in the application-under-test by its object name, associated label or text string, index value, or ID value.

These recognition methods are saved as arguments in script commands so that Robot can correctly identify the same objects during playback.

Robot has two predefined preferences for the recognition method order for each standard object type. While recording an action on an object, Robot tries each method within the selected preference in sequence until it finds a method that uniquely identifies the object.
The following table describes the two predefined preferences.
Object Order PreferenceRecognition Method OrderComments
<Default>Object Name Label and/or Text Index IDIndex comes before ID. In some environments, such as PowerBuilder and Visual Basic, the ID changes each time the developer creates an executable file and is therefore not a good recognition method.
C++ Recognition OrderObject Name Label and/or Text IDIndex ID comes before index. In some environments, suchas C++, the ID does not usually change and is therefore a good recognition method.

The object order preference is the initial setting. If you plan to test C++ applications, change the preference to C++ Recognition Order.

Note

Settings in the Object Recognition Order tab of the GUI Record Options dialog box do not affect HTML recording. When recording against HTML, Robot always uses HTMLID, if available, and then name, text, and index recognition and ignores any settings in the Object Recognition Order tab.

To change the object order preference:

  1. Open the GUI Record Options dialog box.
  2. Click the Object Recognition Order tab.
  3. Select a preference in the Object order preference list.
  4. Click OK or change other options.

Note

The object order preference is specific to each user. For example, you can record with C++ preferences while another user is recording with preferences at the same time.

Setting GUI Recording Options

GUI recording options provide instructions to Robot about how to record and generate GUI scripts. You can set these options either before you begin recording or early in the recording process.

To set the GUI recording options:
  1. Open the GUI Record Options dialog box by doing one of the following:
    • Before you start recording, click Tools > GUI Record Options.
    • Start recording by clicking the Record GUI Script button on the toolbar. In the Record GUI dialog box, click Options.

  2. Set the options on each tab.
  3. Click OK.

Naming Scripts Automatically

Robot can assist you in assigning names to scripts with its script autonaming feature. Autonaming inserts your specified characters into the Name box of a new script and appends a consecutive number to the prefix.

This is a useful feature if you are recording a series of related scripts and want to identify their relationship through the prefix in their names. For example, if you are testing the menus in a Visual Basic application, you might want to have every script name start with VBMenu.

To turn on script autonaming:
  1. Open the GUI Record Options dialog box.
  2. In the General tab, type a prefix in the Prefix box. Clear the box if you do not want a prefix. If the box is cleared, you need to type a name each time you record a new script.
  3. Click OK or change other options.

The next time you record a new script, the prefix and a number appear in the Name box of the Record GUI dialog box.

For example the autonaming prefix is Test. When you record a new script, Test7 appears in the Name box because six other scripts begin with Test.

If you change the script autonaming prefix by clicking Options in the Record GUI dialog box, changing the prefix, and then clicking OK, the name in the Name box changes immediately.

Controlling How Robot Responds to Unknown Objects

During recording, Robot recognizes all standard Windows GUI objects that you click, such as check boxes and list boxes. Each of these objects is associated with one of a fixed list of object types. The association of an object with an object type is generally based on the class name of the window associated with the object.

Robot also recognizes many custom objects defined by IDEs that Robot supports, such as Visual Basic, Oracle Forms, Java, and HTML. For example, if you click a Visual Basic check box, Robot recognizes it as a standard Windows check box. This mapping is based on the object’s Visual Basic assigned class name of ThunderCheckBox.

These built-in object mappings are delivered with Robot and are available to all users no matter which project they are using. During recording, you might click an object that Robot does not recognize. In this case, Robot’s behavior is controlled by a recording option that you set. You can have Robot do either of the following:

  • Open the Define Object dialog box, so that you can map the object to a known object type.
    Mapping an object to an object type permanently associates the class name of the object’s window with that object type, so that other objects of that type are recognized.
  • Automatically map unknown objects encountered while recording with the Generic object type. This permanently associates the class name of the unknown object’s window with the Generic object type.

This is a useful setting if you are testing an application that was written in an IDE for which Robot does not have special support and which therefore might contain many unknown objects. When an object is mapped to the Generic object type, Robot can test a basic set of its properties, but it cannot test the special properties associated with a specific object type. Robot also records the object’s x,y coordinates instead of using the more reliable object recognition methods to
identify the object.

These custom object mappings are stored in the project that was active when the mappings were created.

To control how Robot behaves when it encounters an unknown object during recording:

  1. Open the GUI Record Options dialog box.
  2. In the General tab, do one of the following:
    • Select Define unknown objects as type "Generic" to have Robot automatically associate unknown objects encountered while recording with the Generic object type.
    • Clear Define unknown objects as type "Generic" to have Robot suspend recording and open the Define Object dialog box if it encounters an unknown object during recording. Use this dialog box to associate the object with an object type.
  3. Click OK or change other options.

Thursday, July 12, 2007

Enabling IDE Applications for Testing

Robot provides specialized support for testing the objects in applications that are created in many integrated development environments (IDEs).

To successfully test the objects in Oracle Forms, HTML, Java, C++, Delphi, and Visual Basic 4.0 applications, you need to enable the applications as follows before you start recording your scripts:
  • Oracle Forms – Install the Rational Test Enabler for Oracle Forms. Run the Enabler to have it add the Rational Test Object Testing Library and three triggers to the .fmb files of the application.
  • HTML – While recording or editing a script, use the Start Browser toolbar button to start Internet Explorer or Netscape Navigator from Robot. This loads the Rational ActiveX Test Control, which lets Robot recognize Web-based objects.
  • Java – Run the Java Enabler to have it scan your hard drive for Java environments such as Web browsers and Sun JDK installations that Robot supports. The Java Enabler only enables those environments that are currently installed.
  • C/C++ – To test the properties and data of ActiveX controls in your applications, install the Rational ActiveX Test Control. This is a small, nonintrusive custom control that acts as a gateway between Robot and your application. It has no impact on the behavior or performance of your application and is not visible at runtime. Manually add the ActiveX Test Control to each OLE container (Window) in your application.
  • Visual Basic 4.0 – Install the Rational Test Enabler for Visual Basic. Attach the Enabler to Visual Basic as an add-in. Have the Enabler add the Rational ActiveX Test Control to every form in the application. This is a small, nonintrusive custom control that acts as a gateway between Robot and your application.
  • Delphi – Install the Rational Object Testing Library for Delphi and the Rational Test Delphi Enabler. Run the Enabler, and then recompile your project to make it Delphi testable.


You can install the Enablers and the ActiveX Test Control from the Rational Software Setup wizard.