Create and work with a user-defined function

Relevant for: GUI tests and components

Prerequisites - Open the function library or test

  1. Determine whether you want to store the function in an action or in a function library.

    • If you insert the function in a function library, the function will be accessible to any associated test.

    • If you insert the function directly in an action in the Editor, it can be called only from within the specific action.

  2. Create a new function library or action, open an existing one, or click on the tab of an open function library or action to bring it into focus.

Back to top

Create the function

You can define functions manually or using the Function Definition Generator, which creates the basic function definition for you automatically.

Tip: If you want to add a comment about your function, you can add a comment immediately above the function name with @description line and the string describing the function. This description is displayed as a custom tooltip in UFT's autocomplete window. For example

'@Description This function displays a Hello World message box.
Function Hello_World
	MsgBox "Hello world"
End Function

Then, when you use UFT's autocomplete menu, you can see the tooltip:

Note:  

  • If you want to register the function to a test object class, define it as a public function, and make sure that it expects the test object as the first argument.

  • If you want to override an existing test object method, make sure that after the test object argument, your function accepts the same number of arguments as the method it overrides.

Back to top

Register the function to a test object class - optional

You can register your function as a new method for the test object class, or you can register it using an existing method name to (temporarily) override the existing functionality of the specified method.

You can perform this step manually, or using the Function Definition Generator Dialog Box:

Manually

Add a RegisterUserFunc statement in your action or function library. The name of the test object operation you register cannot contain spaces. In this statement, you can also instruct UFT to use the function as the default operation for the test object class.

Example:  

RegisterUserFunc "WebEdit", "MySet", "MySetFunc", True

After this statement runs (during the run session), the MySet method (operation) is added to the WebEdit test object class using the MySetFunc user-defined function, and defined to be the default operation (as specified in the last argument of the statement).

If you or the Subject Matter Expert choose the WebEdit test object from the Item list in the Keyword View, the MySet operation is selected automatically in the Operation column. It is also displayed in the Operation list together with other registered and out of the box operations for the WebEdit test object.

Using the Function Definition Generator

If you use the Function Definition Generator Dialog Box to create your function definition, a RegisterUserFunc statement is automatically added immediately after the definition if you select the Register to a test object option.

If the function you are registering is defined in a function library, we recommend including the RegisterUserFunc statement in the function library as well so that the method will be immediately available for use in any test or component using that function library.

Back to top

Associate the function library with a test or application area

If you inserted the code in a function library, you must associate the function library with a test or application area to enable tests and components to access to the user-defined functions.

Alternatively, you can add a LoadFunctionLibrary statement to your test or component to load the function library during the run session and access its functions.

Back to top

Call the function

In your test, component, or function library, do one or both of the following:

  • Create steps that call your user-defined function as a global function.

  • Run the user-defined function by calling the test object method to which it is registered.

Back to top

Navigate to the function's definition - optional

You can navigate directly from a function call to the function's definition.

  1. In the Editor, in an action, click in the step containing the relevant function.

  2. Perform one of the following:

    • Select Search > Go to > Definition.

    • Right-click the step and select Go to Definition from the context menu.

      UFT activates the relevant document (if the function definition is located in a function library) and positions the cursor at the beginning of the function definition.

Back to top

Unregister the function - optional

If you do not want your function to remain registered until the end of the run session, add an UnregisterUserFunc statement in your test or function library.

If you register a method within a reusable action, you should unregister the method at the end of the action (and then re-register it at the beginning of the next action if necessary), so that tests calling your action are not affected by the method registration.

Back to top