When you open a test project or a project suite created in an earlier version of TestComplete for the first time, TestComplete offers to convert the project to the new format. You need to convert projects to work with them in TestComplete and use the new automated testing features. This topic explains how to convert projects and what you need to do before and after that.
In This Topic
Each new version of TestComplete includes new features – project items, project properties and so on. As a result, projects created in earlier TestComplete versions must be converted to the current TestComplete format before you can continue working with them. TestComplete can convert projects created in previous versions automatically when you open them.
TestComplete converts projects “in place”, that is, updates the project files. This is a one-way process: the converted projects cannot be opened in earlier TestComplete versions. When you convert a project suite, all the projects of this suite are converted.
After converting projects, you may also want to update your tests to use the new TestComplete functionality – new keyword test operations, scripting methods and so on. To learn about the new features, see What's New in TestComplete 14.73 and Version History.
Before Upgrading Projects
Important: If you do not use source control, make a backup copy of your project or project suite in a different folder. Remember that converted projects cannot be opened in earlier TestComplete versions.
To create a backup, you can copy your project or project suite files and folder to another location. You can do this with Windows Explorer or with any other file manager. In addition, TestComplete suggests creating a backup copy automatically when you open a legacy project (see below).
If you use source control:
If you are going to use TestComplete 14 along with an earlier TestComplete version, create a new branch in the repository for the TestComplete 14 version of the project.
Check out the project (project suite) you want to upgrade. Make sure that no files have the read-only attribute or are exclusively checked out by other users.
Export your custom options (from Tools > Options), default project properties (Tools > Default Project Properties) and name mapping templates from an earlier TestComplete version and import them to TestComplete. For more information, see Exporting and Importing Custom User Settings.
Note: Project and project suite properties are preserved during the project conversion.
Install your custom script extensions with keyword test operations into TestComplete 14. Without the necessary script extensions, the data of custom keyword test operations may be lost during the project upgrade.
How to Upgrade Projects
Upgrading Projects Interactively
To upgrade your test project to the current TestComplete format:
Open the project in TestComplete.
TestComplete will show a message informing you that it is about to convert your project to the new format and asking for your approval.
If you have not created a backup of your project, click Backup and Convert (recommended).
A project can include references to project items that are located outside of your project folder. For instance, your project can refer to a keyword test or script unit that belongs to another project suite. TestComplete converts these “external“ project items to make the new project functional. However, it does not create a backup copy of them. You have to back up these items manually. Otherwise, you will not be able to open them in earlier TestComplete versions.
If you do not need a backup copy of your project, click Convert.
TestComplete will convert the project to the new format and open it.
Depending on the project structure and on the TestComplete version in which the project was created, you may need to make additional changes to your project. See the upgrade notes below.
Some notes for source control users:
When converting a project that was bound to source control, TestComplete asks you to specify the information needed for connecting to the source control system and working with the project (such as the user name, password and the project folder).
The upgraded project may include new project items and files. If you use source control, select the Bind new items to SCC automatically option in Tools > Options > Source Control to add these files to source control. You can also add new files to source control manually (see Binding Test Projects to Source Control (Legacy)).
Earlier versions of TestComplete worked with source control systems via SCC API Providers. These APIs are compatible with a wide number of source control systems, however they offer a mediocre level of integration.
Starting from version 11, TestComplete has dedicated plugins which provide a higher level of integration with Subversion, Git, and Mercurial.
If you store your projects in these source control systems, we recommend that you use newer plugins instead of the legacy SCC API Providers. To learn how to switch a source control provider after the project was converted, see Migrating From Legacy SCC API Providers.
Upgrading Projects From the Command Line
CrossBrowserTesting environment manager
In TestComplete versions prior to version 14.40, you can run web tests in remote CrossBrowserTesting environments by assigning them to environments via the CrossBrowserTesting manager. Starting from TestComplete version 14.40, this approach to running tests in CrossBrowserTesting environments was declared obsolete. In TestComplete version 14.72, it was removed from the product completely.
When you open project suites created in earlier TestComplete versions, they will be converted to the new format that does not support the CrossBrowserTesting environment manager. The manager will be removed from the project suite. Logs of tests run via the manager will also be removed.
Test Items and Test Cases
When you open a project created in a TestComplete version prior to version 14.10, the project’s test items are marked as test cases automatically. When you run the project, TestComplete will include these test items in the Summary report. To exclude test items from the Summary report, you can unmark them as test cases in the Execution Plan editor of your project.
Runtime Project Properties
In TestComplete versions prior to version 14, projects had a number of properties that controlled TestComplete behavior when an error or warning occurred during the test run. In addition, test items had the Stop on error and Stop on exception properties that controlled TestComplete behavior when an error or exception occurred during the test item run.
In TestComplete 14, the way how you control TestComplete behavior during the test run has been changed, and so have the properties (for details, see the list of changes introduced in TestComplete version 14.0). Depending on how your projects and test items were configured in earlier TestComplete versions, after converting your project to a new format, they will be as follows:
|Older TestComplete versions||TestComplete 14 (and later)||How it works in TestComplete 14 (and later)|
Project runtime properties
|Stop on error||Error handling > On error|
|Enabled||Stop project||TestComplete will stop the test run whenever an error is posted to the test log.|
|Disabled||Continue running||TestComplete will ignore errors posted to the test log and continue running tests.|
|Stop on warning||Error handling > On warning|
|Enabled||Stop project||TestComplete will stop the test run whenever a warning is posted to the test log.|
|Disabled||Continue running||TestComplete will ignore warnings posted to the test log and continue running tests.|
|Stop on window recognition error||Error handling > On object recognition error|
|Enabled||Stop project||When TestComplete is not able to get an object referred by its full name in an Open tested application, it will stop the test run.|
|Disabled||Continue running||When TestComplete is not able to get an object referred by its full name in an Open tested application, it will continue running the test.|
|Error dialog||Show a notification when unhandled script exception occurs||Specifies whether TestComplete will show an error dialog when an unhandled error occurs during the script test run.|
Test item properties
|If the project’s Stop on error property was enabled|
|Test Item||Use project’s 'On error' property||If an error occurs during the test run, TestComplete will act according to the Error handling > On error property specified in your project. That is, it will ignore the error and continue running the tests, stop the current test item, or stop the entire project run.|
|None||Use project’s 'On error' property|
|Project||Use project’s 'On error' property|
|If the project’s Stop on error property was disabled|
|Test Item||Stop current item||If an error occurs, TestComplete will stop the current test run immediately and proceed with the next test item.|
|None||Continue running||If an error occurs, TestComplete will ignore the error and continue running the current test item.|
|Project||Stop project||If an error occurs, TestComplete will stop the current test item run immediately and will not run anymore test item specified in the current project.|
Web Components Support
Starting from version 14.0, TestComplete provides advanced support for web applications that use the following Web Components technologies: Shadow DOM and Custom Elements. Projects you create in this TestComplete version (or later) have support for Web Components enabled by default.
TestComplete versions prior to version 14.0 could recognize some web elements implemented with Web Components technologies as
TextNode objects (or other regular web elements). If you have legacy tests working with those elements via the
TextNode objects, you can do one of the following:
(Recommended.) Configure your test projects to support Web Components as it is described in Test Project Configuration and update your tests to work with your web application using provided support.
Keep your legacy tests. Make sure that the Enable support for Web Components option is disabled in your projects; otherwise, your tests will fail.
Optical Character Recognition (OCR)
TestComplete versions prior to version 12.60 included the Optical Character Recognition (OCR) engine that could capture and recognize text rendered on the screen. Starting from version 12.60, the engine has been deprecated and replaced with a new OCR engine powered by Google Vision API.
If in your tests you use the deprecated OCR engine, you can do one of the following:
Update your tests to use the new engine. See Migrate Tests Created in Earlier Versions.
Continue using the deprecated engine (not recommended).
If you have TestComplete version 12.60 and want to use the deprecated OCR engine with this TestComplete version, please contact our Customer Care team. If you have TestComplete version 14.0 (or later), you need to install and enable the appropriate plugin manually. See Using Optical Character Recognition - Requirements.
TestComplete 10 - 12.4x
TestComplete versions prior to version 12.40 used the
Layoutname for controls of the
android.widget.ActionMenuViewclasses. TestComplete version 12.4x and later use the
Barname for these classes. To avoid errors, you need to modify the tests created in TestComplete versions prior to 12.40.Possible WorkaroundsPossible Workarounds
Name Mapping. Remap the corresponding objects to update their identification criteria.
Default Naming. Modify the name of the corresponding objects, when you address them or their child objects. For example:
In TestComplete 12.31 and earlier:Mobile.Device("Nexus 4").Process("smartbear.example.orders").RootLayout("").Layout("action_bar_container").ActionBar("action_bar").Layout("NO_ID", 2).SearchView("action_search")
In TestComplete 12.40 and later:Mobile.Device("Nexus 4").Process("smartbear.example.orders").RootLayout("").Layout("action_bar_container").ActionBar("action_bar").Bar("NO_ID").SearchView("action_search")
The table checkpoints you created for WPF ListView controls in TestComplete 12.42 and earlier are not compatible with the updated table checkpoints that TestComplete 12.50 introduces. So, if your legacy tests have table checkpoints created for WPF ListView controls, you need to update these checkpoints after migrating your test project to TestComplete 14.73.
TestComplete 7 and 8 Projects
TestComplete 14 does not include the load testing plugin anymore. SmartBear offers a dedicated product for load testing – LoadComplete. You can learn more about it on our web site: smartbear.com/loadcomplete. For an overview of all load testing offerings, visit the SmartBear Load Test Solutions page.
If you convert a load testing project created in TestComplete 7 or 8 to the new format:
If your scripts use variables with the same names the scripting objects added in later TestComplete versions have, you need to rename the variables to avoid playback errors.
TestComplete 14 uses the
snamespace prefix instead of the
SOAPprefix in SOAP requests to the tested web services. If your tests parse the result of the
PrepareRequestsmethod or the
LastRequestproperty value, you may need to change the tests to use the new SOAP request structure. See an example of a new SOAP request.
Test Visualizer settings are converted as follows:
In converted TestComplete 7 projects, Test Visualizer is disabled for test recording and for test runs.
In converted TestComplete 8 projects, disabled Test Visualizer remains disabled. Enabled Test Visualizer uses the Capture images option.
For a description of the new options, see Default Project Properties - Visualizer Options.
Projects Created in TestComplete 6 or Earlier
The TestComplete 14 project format differs significantly from the format used in TestComplete 6 and earlier versions. If you experience issues with converting or running your converted project, please contact SmartBear Support for help.
In TestComplete 6 and earlier versions, you had to compile Delphi, C++Builder and Visual C++ applications with TestComplete libraries (tcOpenApp.pas, tcOpenAppClasses.pas, tcPublicInfo.pas and TCClient.cpp) to make them testable. This is no longer needed. To test your applications with TestComplete 14, recompile the applications without these libraries.
TestComplete 14 uses a different SOAP namespace for web service testing (see above). You may need to update your tests to use the new namespace.