Custom Servers (Version 2022 or later)

Relevant for version 2022 or later

This topic describes Custom Server for the version 2022 or later. For version 2021 R1 or earlier, see Custom Servers (Version 2021 R1 or earlier).

For each custom control that you want to support, you develop a custom server class, that derives from the CustomServerBase class. The resulting custom server DLL runs in the context of the application and interfaces between OpenText Functional Testing and the custom control. At OpenText Functional Testing's request, it can retrieve the values of identification properties from the control, perform operations on the control, or determine what steps to record in response to user activity on the control. You can compile more than one custom server into a single DLL.

OpenText Functional Testing 2022 and later: Following the discontinuance of the Silverlight development framework, OpenText Functional Testing no longer supports the Silverlight Add-in by default.

If you need to use and extend the Silverlight Add-in, contact OpenText Support.

You implement each of these abilities by implementing the relevant interface in the custom server class:

  • To support running test object operations, you develop a run interface that contains the methods that run the operations you defined in the test object configuration file. You must tag this interface with the RunInterfaceAttribute attribute.

  • To support retrieving identification property values from the control, you develop a property interface that contains properties that retrieve the values for the identification properties you defined in the test object configuration file. You must tag this interface with the CustomPropInterfaceAttribute attribute.

    Note: In the test object configuration file, you must define all identification properties relevant for your test object class. However, the implementation for retrieving the property values is inherited from the base class for any properties that it supports.

  • To support table checkpoints and output values, you implement the methods in the ITableVerify interface.

  • To support recording, you implement the IRecord interface.

  • To instruct OpenText Functional Testing to ignore children of a control (because they are functionally part of the control, and not independent controls themselves), design the IsKnownPartOf method in the IComponentDetector interface to return true for those child controls.

For task details, see How to develop a Custom Server.

When you design your custom server, you can use utility methods and properties provided by the WPF Add-in Extensibility API. For details, see Utility Methods and Properties.