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:Window.ActionMainMenu
Window.C1MainMenu
Window.EssMainMenu
Window.JMainMenu
Window.StripMainMenu
Window.UICtrlsMainMenu
Window.UltraMainMenu
Window.XtraMainMenu
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 theWin32Menu
object. TheWin32Menu
object was renamed toMenu
and theWin32MenuItem
object was renamed toMenuItem
. -
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 whoseIsHandleCreated
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
) toprocess
andwindow
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 Testing Web Applications for more information.
-
Scripting interface to Internet Explorer settings. The Options object contains two new properties:
IESettings
andIEZoneSettings
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 About 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
andFiles
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, seeRegions.Compare
,Files.Compare
andObjects.Compare
. -
The methods of the
Regions
andObjects
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. SeeRegions.AddPicture
andObjects.Save
. -
The
Files.Compare
andObjects.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 newBandWidth
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 toVirtualUser
andTestInstance
objects that are used to perform load testing. -
The
HTTPRequest
object now contains two newURLVariables
andBodyVariables
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
andAWTComponentIndex
.The
AWTObject
andWaitAWTObject
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 theJavaVMCount
andJavaVMVersion
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
andLength
. 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 whoseIsHandleCreated
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 newPriorInstanceMode
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
andFind
methods have a new Mouse parameter that lets you include the mouse pointer in the comparison.
-
-
The
TestedApp
object contains a newParams
property. This property returns a newTestedAppParams
object that provides a scripting interface to run parameters of various run modes through its properties (SimpleParams
,RunAsParams
,DebugParams
andProfileParams
). Now, to specify the command line for a tested application, you should use these properties. TheParameters
andWorkFolder
properties of theTestedApp
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 newAQtime
object. Else, it returns theprocess
object. -
The
TestedApp.Run
andTestedApp.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
andAWTComponentIndex
. -
The
process
objects that correspond to Java applications now contains theJavaVMCount
andJavaVMVersion
properties. -
The
AWTObject
andWaitAWTObject
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
andDbgServices.LaunchAllTestedApplications
methods has been changed. Now, these methods launch the tested application according to the application’s run mode. -
Version 5 includes new
ManualTestBuilder
andManualTestStep
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 toonscreen
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 newPriorInstanceMode
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 theCallObjectMethodAsyncResult
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 toGetOrd
.
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 newCurrentVersion
andAQtime
properties. Using theAQtime
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 theCurrentVersion
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 theAQtimeIntegration.AQtime
property and is used for version-independent work with AQtime. -
A new WaitAndExportResult method. The
AQtime4
andAQtime5
objects contain a newWaitAndExportResult
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.