Using an XML file to run multiple Web UI tests and compound tests simultaneously from the command line
You can use an XML file and the command line to run multiple Web UI tests and compound tests simultaneously on instances of Chrome and Firefox. You can also distribute these tests across multiple remote agent computers. Starting from 9.1.1.1, this feature is also available from the command line.
Before you begin
- Read and been familiar with the command line arguments to use with the cmdline command. See Configuration of test runs from the command line.
- There are licensing limitations when attempting to run multiple combinations of tests, browsers, and remote agents. See License descriptions.
- See Running multiple Web UI tests on multiple browsers and platforms simultaneously for the installation and shell-sharing requirements for running tests across multiple browsers and remote agents.
Procedure
-
Set up an XML file similar to one of the following samples.
Sample XML file 1
This sample XML file lists the full path to the tests and compound tests to run and the browsers (Firefox, Chrome, or both) on which to run the tests. An XML file such as this one is supported in 9.1 and later.
<?xml version="1.0" encoding="UTF-8"?> <inits> <tests> <test path="/TestProject/CompoundTests/ACompound.testsuite"/> <test path="/TestProject/Tests/AWebTest.testsuite"/> </tests> <browsers> <browser name="chrome"/> <browser name="firefox"/> </browsers> </inits>
Sample XML file 2
Starting from 9.1.1.1, you can also list the remote agents where you can run the tests. This sample XML file automatically distributes multiple tests across different browsers, remote agents, and the local computer.
In this sample, tests that run in Chrome use Chrome Device Mode to emulate an Apple iPhone6 Plus and a Google Nexus 5 and also run in Chrome headless mode. With headless mode, tests can run in an automated testing environment where a visible user interface shell is not required.
<?xml version="1.0" encoding="UTF-8"?> <inits> <group> <tests> <test path="/WebUProj/ariesweb1.testsuite"/> <test path="/WebUProj/ariesweb2.testsuite"/> <test path="/WebUProj/ariesweb3.testsuite"/> <test path="/WebUProj/ariesweb4.testsuite"/> <test path="/WebUProj/ariesweb5.testsuite"/> </tests> <browsers> <browser name="chrome" devicemode="Apple iPhone 6 Plus" headless="true"/> <browser name="chrome" devicemode="Google Nexus 5"/> <browser name="firefox"/> </browsers> <locations> <location host="9.113.29.29"/> <location host="9.113.29.30"/> <location host="9.113.29.31"/> <location host="9.113.29.32"/> <location host="civcez228.company1.com"/> </locations> </group> <group> <tests> <test path="/WebUProj/ariesweb6.testsuite"/> </tests> <browsers> <browser name="chrome" devicemode="Apple iPhone6 Plus" headless="true"/> <browser name="firefox"/> </browsers> <locations> <location host="localhost"/> </locations> </group> </inits>
-
If you are running tests on emulators and device clouds, edit the XML file to add the
following values:
<browsers> <browser name="<name_of_the_browser>" id="Emulator: <device_name>"/> <browser name="<name_of_the_browser>" id="<device_cloud_name>: <device_name>"/> </browsers>
For example,<browsers> <browser name="Chrome" id="Emulator:Google_Pixel_7_Pro"/> <browser name="Chrome" id="BrowserStack : Google Pixel 7 Pro"/> </browsers>
-
If you are running a compound test that contains Web UI tests and mobile tests by using
a .varinit file, edit the XML file to add the values for
Mobile_Device_Selection and
RTW_WebUI_Browser_Selection:
<?xml version="1.0" encoding="UTF-8"?> <inits> <variable_init value="BrowserStack user name" name="browserstack.username"/> <variable_init value="BrowserStack host URL" name="browserstack.host"/> <variable_init value="BrowserStack API key" name="browserstack.apikey"/> <variable_init value="project name" name="browserstack.project"/> <variable_init value="BrowserStack : device name" name="Mobile_Device_Selection"/> <variable_init value="Browser(BrowserStack : device name)" name="RTW_WebUI_Browser_Selection"/> </inits>
For example,<?xml version="1.0" encoding="UTF-8"?> <inits> <variable_init value="tester_1" name="browserstack.username"/> <variable_init value="api-cloud.browserstack.com" name="browserstack.host"/> <variable_init value="KBk7PjhpqgfeVmxasUye" name="browserstack.apikey"/> <variable_init value="CMDLINETest" name="browserstack.project"/> <variable_init value="BrowserStack : Google Pixel 7 Pro" name="Mobile_Device_Selection"/> <variable_init value="Chrome(BrowserStack : Google Pixel 7 Pro)" name="RTW_WebUI_Browser_Selection"/> </inits>
- Issue the cmdline command as shown in the following example for a Windows™ computer. The XML file is specified in the -aftsuite argument for an AFT Suite or the varfile argument for the XML file with the .varinit extension.
Example
AFT Suite:
cmdline -workspace C:\workspaces\workspace -project Demo_Proj -plugins "C:\Program Files\HCL\HCLIMShared\plugins" -eclipsehome "C:\Program Files\HCL\HCLOneTest" -aftsuite "aftSuiteName" -results "Results\webUItest_on_off" -exportlog "C:\temp\webLog.txt"
Variable file:
cmdline -workspace C:\workspaces\workspace -project Demo_Proj -plugins "C:\Program Files\HCL\HCLIMShared\plugins" -eclipsehome "C:\Program Files\HCL\HCLOneTest" -suite Tests\myWebUITest.testsuite -varfile "C:\temp\comp.varinit"