Features Added to TestComplete 5.0

Applies to TestComplete 15.44, last modified on November 10, 2022

This topic describes the changes made to TestComplete 5.0. For information on the changes made to other versions of the product, see Version History.

Overall Improvements

  • Testing under a different user account. TestComplete 5 lets you launch and test applications under a different user account and test your application under different user accounts without rebooting. See Working With TestComplete Under User Accounts and Testing Applications Running Under Another User Account for more information.

  • Tested application improvements. The Tested Applications editor has been improved. Now you can specify the run mode for applications: Simple, RunAs, Debug or Profile (see Run Modes and Parameters). If Simple mode is selected, the application is launched as it normally would be launched in earlier versions of TestComplete. RunAs mode lets you specify the user account under which the application will be executed (see Testing Applications Running Under Another User Account).

    If Debug mode is used, TestComplete traces events and exceptions that occur in the application under test and posts them to the test log (see Tracing Events and Exceptions With Debug Services).

    Profile mode lets you select an AQtime profiler, which will trace the application execution. That is, your TestComplete project will simulate user actions or perform unit tests and AQtime will simultaneously check for memory leaks, performance bottlenecks, or perform the coverage analysis. The TestComplete test log will contain references to files storing AQtime results. See Coverage Testing and Integration With AQtime.

    You can set up the run mode and run parameters in the TestedApps editor or from scripts.

  • Support for third-party menu controls. In earlier versions, TestComplete only provided special scripting support for standard (Win32) menus. The simulation of user actions over third-party menus were limited by mouse clicks, or were not supported at all. In version 5, the third-party menu support has been improved. Now, window objects contain specific properties that let you simulate user actions and work with items from most popular third-party menu components such as those from Microsoft, Borland, Developer Express, ComponentOne, Janus, Infragistics and Syncfusion. To work with these menus, TestComplete adds new properties to the window object:

    All of these properties return the Menu object that provides a scripting interface to the menus. The object’s methods and properties coincide with the methods and properties of the Win32Menu object. The Win32Menu object was renamed to Menu and the Win32MenuItem object was renamed to MenuItem.

  • Test items parameters. In earlier versions a test item could refer to a project item or script routine to be executed. The script routine could not use parameters. Now you can run routines that have parameters. Using a special dialog you specify the parameter values for the run.

  • Better protection from unsafe operations. To obtain property values, TestComplete calls the get methods of these properties. In general, these methods can perform any operations including those that can cause errors in the application under test. To make testing safer, TestComplete 5 by default hides the protected and private properties from the Object Browser and other panels and dialogs, though, these properties remain available in scripts. To view these properties in TestComplete panels and dialogs, enable the new Show hidden properties option in the Engines - General Options dialog. See Access to Properties for detailed information.

    This new option makes the Object Browser’s Show hidden properties option obsolete. So, the Object Browser’s Show hidden properties option has been removed.

    Also, to avoid possible application damage, TestComplete does not display properties of those .NET objects that inherit methods and properties of the System.Windows.Forms.Control class and whose IsHandleCreated property is False. If the property is True, the object properties are visible.

  • Improvements in Connected and Self-Testing Applications. In earlier versions of TestComplete, a Connected or Self-Testing Application had to be started from a TestComplete project, since TestComplete posts messages to the log and only provides access to scripting objects when a script was running.

    In TestComplete 5, the files that are used to create these applications have been updated. Now these files include a special RunTest routine that lets you switch TestComplete to the script-running mode from an external application. In other words, now there is no need to launch Connected and Self-Testing Applications from scripts even though the previous launching approach is also supported. For more information, see Running Connected and Self-Testing Applications.

Windows Vista Technologies Support

TestComplete version 5 provides an extensive support for Microsoft Windows Vista:

  • Script recording and playback. TestComplete can record and play back scripts under Windows Vista. Note that in order to run tests on Windows Vista, TestComplete and the application under test must have the same security privileges. For complete information, see Using TestComplete With Administrator Privileges.

  • UI Automation support. TestComplete 5 supports the Microsoft UI Automation technology. Using UI Automation providers, TestComplete retrieves information on application controls and their methods and properties, thus, giving you a possibility to use these methods and properties in your test projects. Also, TestComplete adds a new UIAObject method to the process and window objects. This method is used to address application objects through the UI Automation technology. See Using Microsoft UI Automation Technology - Overview for complete information.

  • WPF (XAML) support. TestComplete 5 includes support for XAML (WPF) controls and applications. It adds special method (WPFObject) to process and window objects. Using this method you can work with controls in your WPF application. TestComplete also includes special new objects for different types of XAML controls: combo boxes, list boxes, toolbar, and others. These objects contain specific methods and properties that let you easily obtain information on the control’s state and simulate user actions over the control. See Testing WPF Applications for complete information.

Web Testing Improvements

TestComplete 5 includes the following new features intended for functional testing of web pages:

  • Firefox support. Earlier versions of TestComplete provided access to web page elements only shown in Internet Explorer. Version 5 lets you work with elements of web pages that are displayed in Firefox. Testing these pages is very similar to testing web pages shown in Internet Explorer. See Classic Web Testing for more information.

  • Scripting interface to Internet Explorer settings. The Options object contains two new properties: IESettings and IEZoneSettings that provide program access to Internet Explorer options that are displayed on the Advanced and Security pages of Internet Explorer’s Internet Properties dialog.

Name Mapping Improvements

The Name Mapping engine has been greatly improved:

  • Name Mapping templates. The Name Mapping engine provides predefined sets of property values that are commonly used for recognition of mapped objects. Instead of selecting the set of custom object’s properties manually, you now can select the appropriate name mapping template. TestComplete contains predefined templates for standard Win32 controls, VCL controls, .NET controls and so on. See Name Mapping Templates.

  • Enhanced Name Mapping aliases. In TestComplete 5 the concept of aliases has been improved. Now you can create a custom tree of mapped object that differ from the physical object tree. This gives you a possibility to call mapped objects only by alias, that is, skipping the NameMapping.Sys.MyProcessName notation. Also, you can hide any intermediate levels of object hierarchy and make, for example, a control a child of a process (in normal hierarchy, a control is a child of a window, which in its turn is a child of a process). See Name Mapping and Aliases Object.

  • Using Project Variables to specify property values. In earlier versions of TestComplete, you can specify property values only by using constants. Now you can link a project variable with the property, so TestComplete will use this variable’s value to recognize objects.

User Forms

In TestComplete 5 you can create user-defined forms to be displayed during the test execution. The forms can contain various controls - buttons, check boxes, edit boxes, combo boxes and many others - so you can easily create a form that will ask you to select one of possible testing scenarios or to specify initial test conditions.

The form creation is visual and it is very similar to the form creation in Microsoft Visual Studio or Borland Delphi. Using the powerful form editor, you are able not just set controls’s properties, but also create event handlers to implement complex processing.

To manage user-defined forms TestComplete includes special project item - User Forms. To work with forms in script, TestComplete provides a new UserForms object. For more information on using the forms, see User Forms.

Changes in Stores

Three new improvements have been made to the Stores engine:

  • The Regions, Objects and Files objects’Compare method’s behavior has been changed. According to new options and settings made in the Regions, Files and Object editors, the methods are not only able to compare the images (files, objects), but update the stored items with the image, file or object properties being compared. That is, you can use the same script code to update the images and to compare them. For more information, see Regions.Compare, Files.Compare and Objects.Compare.

  • The methods of the Regions and Objects object that added images and object properties to the Stores project item now have an extra parameter that let you specify the file and folder where the image and object properties will be saved. In earlier versions, the images and properties were saved to the folder where the Stores project item file resided. See Regions.AddPicture and Objects.Save.

  • The Files.Compare and Objects.Compare methods have a new ReportDifference parameter. It specifies whether the method will post a message about comparison results to the test log when the comparison fails.

  • The Objects editor has been modified. Now you are not only able to change the stored property values, but you can also create new objects in the stored hierarchy.

Load Testing Improvements

  • The HTTP Load Testing project item now supports the Kerberos authentication type. Also, the Load Testing engine can work through proxies that use the Basic, Negotiate, Kerberos, NTLM ver. 2 or Digest authentication.

  • Now you can specify the connection speed for your load tests. This feature lets you make testing conditions closer to real life. The Load Test Editor contains a new column, Connection Speed, where you can type the desired speed or select one of the predefined speed values from the drop-down list. The HTTPTask object now has a new BandWidth property that lets you specify the desired speed from scripts.

  • Now, if the load testing engine was unable to simulate connection requests, TestComplete logs a warning or an error message.

  • To manage cookies more efficiently, TestComplete 5 adds a new ClearCookies property to VirtualUser and TestInstance objects that are used to perform load testing.

  • The HTTPRequest object now contains two new URLVariables and BodyVariables properties that provide access to request variables passed via the URL string and request body.

  • The load tests created visually now have a new property that lets you specify whether TestComplete will simulate virtual users simultaneously or in a series.

  • The context menu of the Load Testing Task editor contains a new Show Connections item. When this item is checked, the tree on the left of the editor contains the connection and request nodes. When the item is unchecked, the tree only displays request nodes.

Changes in .NET, Java and Other Open Applications

  • New option. Java and .NET application objects can be addressed by their names defined in application code or by class name, caption (or accessible name) and index. In TestComplete 5, the project property’s Open Applications group includes a new Use native object names for TestComplete object names option. It specifies whether TestComplete will use the names defined in the application code to name objects of .NET and Java applications. See Addressing Objects in .NET Applications and Addressing Objects in Java Applications. The option also affects naming WPF application objects (see Addressing Objects in WPF Applications).

  • New properties of Java applications’ objects. TestComplete adds new properties to objects of Java applications: JavaClassName, JavaFullClassName, AWTComponentAccessibleName and AWTComponentIndex.

    The AWTObject and WaitAWTObject methods of the window object have a new WndIndex parameter that is used to identify controls in addition to the class name, accessible name and index. See the methods descriptions for more information.

  • New properties to determine a Java virtual machine’s version. The process objects that correspond to Java applications now contains the JavaVMCount and JavaVMVersion properties. Using these properties you can determine the number of Java virtual machines loaded into the process and the version of each machine.

  • Support for arrays in Java applications. TestComplete recognizes objects that contain arrays and adds two properties to them: Items and Length. These properties provide access to array items. Multi-dimensional arrays are also supported. See Testing Java Applications - Overview.

  • Delphi CLX Open Applications. In addition to Delphi VCL applications, TestComplete now supports Delphi Open Applications compiled with the CLX library. See Testing Delphi Applications - Overview and Testing C++Builder Applications - Overview.

  • New modules for creating Visual C++, Delphi and C++Builder Open Applications. The helper files that were used to create Visual C++, Delphi and C++Builder Open Applications have been changed. To create an Open Application compatible with TestComplete 5, use the files shipped with TestComplete 5. For more information, see Migrating Projects Created in TestComplete 4 to TestComplete 5.

  • The Object Browser does not display WinForms objects’ private and protected property values, which are descendants of the System.Windows.Forms.Control class and whose IsHandleCreated property returns False. See Access to Properties.

Manual Testing Improvements

  • The Manual Test editor contains new toolbar items providing more editing capabilities for HTML text in step instructions:

    • Adding tables.

    • Support for numbered and non-numbered lists.

    • Special items for indenting and outdenting text blocks.

    Also the editor of the root step now contains the Step notes and comments edit box.

  • Using the new ManualTestBuilder object you can create manual tests directly from your scripts.

Low-Level Procedures Improvements

Low-level procedures can now be recorded and executed in window coordinates. In earlier versions, low-level procedures only worked with screen coordinates. This new feature lets you create low-level procedures that will only operate over one window. This is useful, if the window location on screen changes between different test runs and you cannot position the window before running the low-level procedure.

To record a low-level procedure, use a new button on the Recording toolbar - .

The Execute method of the LowLevelProcedure object has been changed. Now it uses a parameter that specifies a window where the procedure will simulate user actions. If you skip this parameter, the procedure will work for the whole screen.

The low-level procedures, whose execution is started from the Project Explorer panel always work in screen coordinates. The same concerns low-level procedures that are executed as test items.

Network Suite Enhancements

  • The Network Suite editor contains a new Run State page that lets you trace the status of a task, job or network suite execution.

  • The Tools menu contains a new Network Suite submenu, whose items let you start and stop the Network Suite Remote Agent executable (tcrea) and control its run mode.

  • The Task object contains a new PriorInstanceMode property that lets you specify whether TestComplete will close the remote TestComplete (or TestExecute) instance before executing the task.

Program Objects Enhancements

  • Win32 controls support. Support for Win32 controls has been greatly improved. TestComplete includes special program objects for working with IP Address and SysLink controls.

    Existing Win32 objects now have new methods and properties that provide extended access to controls. Now it is possible to obtain images displayed by buttons, checkboxes, tab pages, toolbars and controls, retrieve application-defined data or get the bounds of the control’s items, labels or icons. Control-specific properties and methods has also been extended, for instance, the TreeView control has a new wItems property that allows a user to access all tree view control items.

  • The Runner.Stop method has a new CurrentTestOnly parameter. Using this parameter you can stop the current test or the whole test run.

  • Picture object enhancements. The Picture object contains the following new members:

    • A new Pixels property - Use it to access individual pixels of the image.

    • A new Stretch method - Use it to stretch or shrink the image at your desire.

    • A new GetRect method - Use it to obtain a Picture object that corresponds to a rectangular area within the given image.

    • The Compare, Difference and Find methods have a new Mouse parameter that lets you include the mouse pointer in the comparison.

  • The TestedApp object contains a new Params property. This property returns a new TestedAppParams object that provides a scripting interface to run parameters of various run modes through its properties (SimpleParams, RunAsParams, DebugParams and ProfileParams). Now, to specify the command line for a tested application, you should use these properties. The Parameters and WorkFolder properties of the TestedApp object became obsolete. They are supported for backward compatibility only.

  • The object returned by the TestedApp.Run method depends on the run mode that is set for the tested application in the Test Applications editor. If Profile mode is selected, the method returns a new AQtime object. Else, it returns the process object.

  • The TestedApp.Run and TestedApp.RunAs methods contain two new parameters: IgnoreRunning and Timeout. Using the IgnoreRunning parameter you can control the number of application instances to be launched and using the Timeout parameter you can specify the time period to wait until the application is started.

  • TestComplete adds new properties to Java application objects: JavaClassName, JavaFullClassName, AWTComponentAccessibleName and AWTComponentIndex.

  • The process objects that correspond to Java applications now contains the JavaVMCount and JavaVMVersion properties.

  • The AWTObject and WaitAWTObject methods of the window object have a new WndIndex parameter that is used to identify controls in addition to the class name, accessible name and index.

  • The functionality of the DbgServices.LaunchTestedApplication and DbgServices.LaunchAllTestedApplications methods has been changed. Now, these methods launch the tested application according to the application’s run mode.

  • Version 5 includes new ManualTestBuilder and ManualTestStep scripting objects that let you create manual tests from scripts.

  • The Variables object contains two new methods:

    • AddVariable - Lets you create project, project suite or network suite variables directly from your script code.

    • GetVariableDefaultValue - Returns the default value of the specified variable.

  • A new StopWatch object has been added. Using this object you can time the execution of your script code.

  • A new RegExpr object lets you use regular expressions in scripts.

  • A new action - HoverMouse - has been added to onscreen objects. It lets you hot-track the object with the mouse pointer by moving the pointer to the specified position within the object.

  • The Task object contains a new PriorInstanceMode property that lets you specify whether TestComplete will close the remote TestComplete (or TestExecute) instance before executing a network suite task.

  • The ReturnValue property of the CallObjectMethodAsyncResult object does not support object references. Now it can only return ordinary values (integer, string, boolean and so on).

  • The built-in _Ord routine has been renamed to GetOrd.

AQtime Integration Improvements

  • Integration has been made easier. Now you can select the Profile run mode for a tested application, and when TestComplete launches the application, it also launches AQtime to profile this application during the test run. AQtime now traces for bottlenecks or checks the application for memory and resource leaks while TestComplete is simulating user actions over the application. The Profile run mode can be set in the TestedApps editor or from script code. See Integration With AQtime.

  • Version-independent scripting. The AQtimeIntegration object includes new CurrentVersion and AQtime properties. Using the AQtime property you can create scripts that are not dependant on the AQtime version (the scripts will work for both AQtime 4 and AQtime 5). The only thing you have to change is your AQtime version with the CurrentVersion property at the beginning of the test run.

    TestComplete also includes a new AQtime object that contains the same methods and properties as the object returned by the AQtimeIntegration.AQtime property and is used for version-independent work with AQtime.

  • A new WaitAndExportResult method. The AQtime4 and AQtime5 objects contain a new WaitAndExportResult method that pauses the script execution until profiling is over and then exports profiling results to a file.

Other Improvements

  • Now you can use Opera and Mozilla to view exported test log data.

  • Using a new Character encoding project property, you can now select three formats for storing script files: ANSI, UTF-8 and UTF-16. TestComplete 3 and earlier used the ANSI format. TestComplete 4 uses the UTF-16 format to support Unicode. However, some version control systems do not support Unicode files or provide limited support for them. To resolve the problem, TestComplete 5 includes a new option that lets you change the script file format to UTF-8 or ANSI. See also Units Encoding.

  • Now you can rename log items displayed in the Project Explorer panel. See Rename for more details.

  • The Code Editor now copies script code to the clipboard keeping the color and font attributes, for example, if you paste the copied text to WordPad, the formatting will be the same as it was in the Code Editor.

  • Context menus in the ODT editors now include special items that allow you to change the method’s or property’s position in a class or object.

  • In earlier versions of TestComplete, the Code Templates Options dialog displayed templates defined for only one language. In TestComplete 5 the dialog lets you modify code templates for all supported scripting languages. Also, by default, TestComplete offers a number of pre-defined templates.

  • The context menu that is displayed when you right-click an editor’s caption in the Workspace panel now contains new items that let you check the file in or out of source code control, get the latest version of the file or compare it with another file.

  • TestComplete COM interfaces have been improved and now they provide access to projects’ and project suites’ test items. See Working With TestComplete via COM - Overview for more information.

See Also

Version History

Highlight search results