Description
In TestComplete, you can create cross-platform web tests that you run in your device cloud.
To run several cross-platform web tests in parallel from a TestComplete test, you can use methods of the Parallel
object. Use the Parallel.RunTests
method to run several tests in your device cloud in parallel.
Tests you run must include commands that connect to your device cloud and launch a web browser in which test operations will be executed. To learn how to create tests that include these commands, see Creating and Running Cross-Platform Web Tests.
Requirements
To run tests in parallel, you must have:
-
The Device Cloud Parallel license.
If you do not have the license yet, you can get it from our Sales Team.
You can also get a free trial version of the Device Cloud Parallel license automatically when you try running your cross-platform web tests in parallel by using the
Parallel
object. -
The TestExecute Lite utility installed on your test workstation.
The utility comes with TestComplete and is installed automatically.
To orchestrate cross-platform web tests from a computer where TestComplete is not installed, you can use the standalone version of the utility. It comes with the Device Cloud Parallel license by default. You can get the installation file from the My SmartBear > My Products section of our web site.
For additional requirements, see the Requirements section in the Running Cross-Platform Web Tests in Parallel topic.
Declaration
Parallel.RunTests(Tests, TestTimeOut, LicenseCount)
Tests | [in] | Required | Array of strings | |
TestTimeOut | [in] | Optional | Integer | Default value: 0 |
LicenseCount | [in] | Optional | Integer | Default value: 0 |
Result | None |
Applies To
The method is applied to the following object:
Parameters
The method has the following parameters:
Tests
The list of tests you want to run in parallel. It can be script routines, keyword tests, and BDD scenarios. The tests must belong to the same project from which you run the method.
You can specify tests either by their full name or by tags.
The full name includes the name of the collection to which the test belongs, and the test name separated by the pipe character. For script tests, the full name also includes the name of the unit.
To run tests that match a tag, specify the tag name in the @tag_name
format.
TestTimeOut
The number of minutes that TestComplete waits for the test run to finish. If the test run time exceeds the specified timeout, TestComplete will stop the test run and report an error to the test log.
If the value is 0 (default value), the wait time is not limited.
LicenseCount
The maximum number of Device Cloud Parallel licenses that you want to use simultaneously during the test run.
Result Value
None.
Example
The sample code below runs MyTest1
and MyTest2
cross-platform web tests in parallel. Each test connects to a device cloud, launches a web browser there, and simulates user actions in that web browser.
JavaScript, JScript
function Main()
{
// Set a list of tests to run in parallel
var tests = ['Script|Unit1|MyTest1', 'Script|Unit1|MyTest2'];
// Run tests in parallel
Parallel.RunTests(tests);
}
function MyTest1()
{
var url = "http://services.smartbear.com/samples/TestComplete14/smartstore/";
// Set the URL of the device cloud server
var server = "http://hub.crossbrowsertesting.com:80/wd/hub";
// Set an environment for the test to run
var capabilities = {
"platform": "Mac OSX 10.14",
"browserName": "Safari",
"version": "12",
"screenResolution": "1366x768"
};
// Launch a browser in the environment
Browsers.RemoteItem(server, JSON.stringify(capabilities)).Run(url);
var browser = Sys.Browser();
var page = browser.Page("*services.smartbear.com/samples/TestComplete*/smartstore/");
…
}
function MyTest2()
{
var url = "http://services.smartbear.com/samples/TestComplete14/smartstore/";
// Set the URL of the device cloud server
var server = "http://hub.crossbrowsertesting.com:80/wd/hub";
// Set an environment for the test to run
var capabilities = {
"deviceName": "Pixel 4",
"platformName": "Android",
"platformVersion": "10.0",
"browserName": "Chrome",
"deviceOrientation": "portrait"
};
// Launch a browser in the environment
Browsers.RemoteItem(server, JSON.stringify(capabilities)).Run(url);
var browser = Sys.Browser();
var page = browser.Page("*services.smartbear.com/samples/TestComplete*/smartstore/");
…
}
Python
def Main():
# Set a list of tests to run in parallel
tests = ['Script|Unit1|MyTest1', 'Script|Unit1|MyTest2']
# Run tests in parallel
Parallel.RunTests(tests)
def MyTest1():
url = "http://services.smartbear.com/samples/TestComplete14/smartstore/"
# Set the URL of the device cloud server
server = "http://hub.crossbrowsertesting.com:80/wd/hub"
# Set an environment for the test to run
capabilities = {
"platform": "Mac OSX 10.14",
"browserName": "Safari",
"version": "12",
"screenResolution": "1366x768"}
# Launch a browser in the environment
Browsers.RemoteItem[server, capabilities].Run(url)
browser = Sys.Browser()
page = browser.Page("*services.smartbear.com/samples/TestComplete*/smartstore/")
…
def MyTest2():
url = "http://services.smartbear.com/samples/TestComplete14/smartstore/"
# Set the URL of the device cloud server
server = "http://hub.crossbrowsertesting.com:80/wd/hub"
# Set an environment for the test to run
capabilities = {
"deviceName": "Pixel 4",
"platformName": "Android",
"platformVersion": "10.0",
"browserName": "Chrome",
"deviceOrientation": "portrait"
}
# Launch a browser in the environment
Browsers.RemoteItem(server, capabilities).Run(url)
browser = Sys.Browser()
page = browser.Page("*services.smartbear.com/samples/TestComplete*/smartstore/")
…
VBScript
Sub Main
' Set a list of tests to run in parallel
Dim tests : tests = Array("Script|Unit1|MyTest1", "Script|Unit1|MyTest2")
' Run tests in parallel
Parallel.RunTests(tests)
End Sub
Sub MyTest1()
url = "http://services.smartbear.com/samples/TestComplete14/smartstore/"
' Set the URL of the device cloud server
server = "http://hub.crossbrowsertesting.com:80/wd/hub"
' Set an environment for the test to run
capabilities = "{""platform"":""Mac OSX 10.14"",""browserName"":""Safari"",""version"":""12"",""screenResolution"":""1366x768""}"
' Launch a browser in the environment
Browsers.RemoteItem(server, capabilities).Run(url)
Set browser = Sys.Browser()
Set page = browser.Page("*services.smartbear.com/samples/TestComplete*/smartstore/")
…
End Sub
Sub MyTest2()
url = "http://services.smartbear.com/samples/TestComplete14/smartstore/"
' Set the URL of the device cloud server
server = "http://hub.crossbrowsertesting.com:80/wd/hub"
' Set an environment for the test to run
capabilities = "{""deviceName"":""Pixel 4"",""platformName"":""Android"",""platformVersion"":""10.0"",""browserName"":""Chrome"",""deviceOrientation"":""portrait""}"
' Launch a browser in the environment
Call Browsers.RemoteItem(server, capabilities).Run(url)
Set browser = Sys.Browser()
Set page = browser.Page("*services.smartbear.com/samples/TestComplete*/smartstore/")
…
End Sub
DelphiScript
procedure Main();
var tests : Array[0..1];
begin
// Set a list of tests to run in parallel
tests[0] := 'Script|Unit1|MyTest1';
tests[1] := 'Script|Unit1|MyTest2';
// Run tests in parallel
Parallel.RunTests(tests);
end;
procedure MyTest1();
var url, server, capabilities, browser, page;
begin
url := 'http://services.smartbear.com/samples/TestComplete14/smartstore/';
// Set the URL of the device cloud server
server := 'http://hub.crossbrowsertesting.com:80/wd/hub';
// Set an environment for the test to run
capabilities := '{"platform":"Mac OSX 10.14","browserName":"Safari","version":"12","screenResolution":"1366x768"}';
// Launch a browser in the environment
Browsers.RemoteItem(server, capabilities).Run(url);
browser := Sys.Browser();
page := browser.Page('*services.smartbear.com/samples/TestComplete*/smartstore/');
…
end;
procedure MyTest2();
var url, server, capabilities, browser, page;
begin
url := 'http://services.smartbear.com/samples/TestComplete14/smartstore/';
// Set the URL of the device cloud server
server := 'http://hub.crossbrowsertesting.com:80/wd/hub';
// Set an environment for the test to run
capabilities := '{"deviceName":"Pixel 4","platformName":"Android","platformVersion":"10.0","browserName":"Chrome","deviceOrientation":"portrait"}';
// Launch a browser in the environment
Browsers.RemoteItem(server, capabilities).Run(url);
browser := Sys.Browser();
page := browser.Page('*services.smartbear.com/samples/TestComplete*/smartstore/');
…
end;
C++Script, C#Script
function Main()
{
// Set a list of tests to run in parallel
var tests = ['Script|Unit1|MyTest1', 'Script|Unit1|MyTest2'];
// Run tests in parallel
Parallel["RunTests"](tests);
}
function MyTest1()
{
var url = "http://services.smartbear.com/samples/TestComplete14/smartstore/";
// Set the URL of the device cloud server
var server = "http://hub.crossbrowsertesting.com:80/wd/hub";
// Set an environment for the test to run
var capabilities = {
"platform": "Mac OSX 10.14",
"browserName": "Safari",
"version": "12",
"screenResolution": "1366x768"
};
// Launch a browser in the environment
Browsers.RemoteItem(server, JSON["stringify"](capabilities))["Run"](url);
var browser = Sys["Browser"]();
var page = browser["Page"]("*services.smartbear.com/samples/TestComplete*/smartstore/");
…
}
function MyTest2()
{
var url = "http://services.smartbear.com/samples/TestComplete14/smartstore/";
// Set the URL of the device cloud server
var server = "http://hub.crossbrowsertesting.com:80/wd/hub";
// Set an environment for the test to run
var capabilities = {
"deviceName": "Pixel 4",
"platformName": "Android",
"platformVersion": "10.0",
"browserName": "Chrome",
"deviceOrientation": "portrait"
};
// Launch a browser in the environment
Browsers["RemoteItem"](server, JSON["stringify"](capabilities))["Run"](url);
var browser = Sys["Browser"]();
var page = browser["Page"]("*services.smartbear.com/samples/TestComplete*/smartstore/");
…
}
See Also
Parallel Object
RunEnvironments Method
Running Cross-Platform Web Tests in Parallel