Use a grid configuration

The OpenText Functional Testing for Developers grid dynamically allocates machines for test runs according to machine capabilities and test requirements.

Supported for tests written using the OpenText Functional Testing for Developers Java or .NET SDK.

Architecture

Use the grid to run the same test operations on different environments by changing the parameters the test uses to describe the required environment.

You can also leverage the power of your testing lab and achieve distributed parallel test running. Do this by running all of your tests on the grid, locally or remotely, letting the grid allocate nodes for each test run, as needed.

The grid configuration includes the following:

A grid machine

Allocates a node machine for each test run, based on the testing environment capabilities that your test requires.

On this machine: 

  • Install OpenText Functional Testing for Developers
  • Run the runtime engine as a grid
Node machines 

Machines that you set up with the environments on which you want to test your applications.

On each node:

  • Install OpenText Functional Testing for Developers
  • Run the runtime engine as a node

In the node's runtime engine settings, specify the grid it connects to and the capabilities provided by the node.

For more details, see Configure a grid node's runtime engine settings

Tests

Start each test with a statement that specifies the testing environment capabilities required for this run.

For example:

EnvironmentFactory.get(envDescription);

Run your tests using the grid

Run tests on the grid machine locally or remotely. For each test, the grid selects a connected node whose capabilities match the test's environment description.

  • All of the test's OpenText Functional Testing for Developers operations run on the selected node.

  • Other code statements in your tests are run on the machine where the test itself is located.

  • The report is generated on the machine where the test itself is located.

Note: When using a grid configuration, you can also use Digital Lab for your tests.

Configure the Digital Lab connection details in the grid runtime engine settings.

Back to top

Set up a grid system

To set up and use a Grid configuration, perform the following steps:

  1. Independently of OpenText Functional Testing for Developers, set up machines with the environments on which you want to test your applications. These are the nodes on which the test operations are performed.

  2. Install the runtime engine on the grid machine, and on each node machine.

    Caution: Do not use the same machine as both a grid and a node.

  3. On the grid machine, run the run-time engine as a grid and define how nodes connect to this grid.

    For details, see Start the runtime engine and Set up and configure a grid machine.

  4. On node machines, run the run-time engine as a node, and configure the node settings. Specify the following: 

    • The grid this node connects to

    • The testing environment capabilities this node provides

    For details, see Start the runtime engine and Configure a grid node's runtime engine settings.

  5. Make sure that your tests start with a statement specifying the required environment specifications. For example:

    EnvironmentFactory.get(envDescription);

    or

    BrowserFactory.launch(BrowserDescription);

    For more details, see Write tests for a grid.

  6. Run your tests locally or remotely on the grid machine. For details, see Run tests or Run tests remotely.

    You can run as many tests as you want at the same time. For each test, the grid finds a connected node with the required capabilities and uses it to run the test's OpenText Functional Testing for Developers operations.

Back to top

Run tests remotely using the grid

You can use the grid to run your tests remotely. This means that you store your tests and run them on a machine other than the grid machine. When running, the tests connect remotely to the grid to run the OpenText Functional Testing for Developers test operations. The grid allocates a node with the environment capabilities requested by the test, and runs the OpenText Functional Testing for Developers test operations on that node. For details, see Run tests remotely.

Back to top

Grid license consumption

The OpenText Functional Testing for Developers grid can handle four OpenText Functional Testing for Developers operations at once, for each license consumed. To enable the grid to run more than four operations simultaneously, use a concurrent license. While the grid handles requests to run operations, it gradually consumes and releases licenses as needed.

In the grid's runtime engine settings, define the following to control the grid's use of licenses:

  • The maximum number of concurrent licenses that this grid machine can consume.

  • The license idle timeout. If no OpenText Functional Testing for Developers operations are running and the timeout expires, the license is released. The runtime engine remains active and ready to receive requests, but does not consume a license until it needs to run another operation.

For details, see Configure the grid's runtime engine settings.

Back to top

Lock node machines

To control the load placed on a grid node machine, a locking system is used. Each time the grid selects a node to use for a test, it adds a lock on that node. This happens as a the result of the test calling one of the following methods, in which the test describes the environment to use for its operations:

  • EnvironmentFactory.get(EnvironmentDescription)
  • BrowserFactory.launch(BrowserDescription)

For details about these methods, see the Java and .NET SDK references.

Locks are released automatically at the end of the test run. You can also release them during the run, using the Release method on the locked DesktopEnvironment.

To configure locking details:

  • On each node, configure the maximum number of locks that can be placed on that node (default=4). For details, see Grid Connection Settings.
  • On the grid, configure the node-wait timeout This is the number of seconds to wait for one of the relevant nodes connected to the grid to become available for locking. For details, see Node Connection Settings.

Back to top

View grid management data

The Grid Management console enables you to view the nodes connected to your grid and the capabilities provided by each node. You can also see additional information, such as the number of clients currently using the grid to run OpenText Functional Testing for Developers test operations (number of sessions) and the number of licenses in use.

To open the console, make sure the grid runtime engine is running and do one of the following: 

  • On the grid machine, browse to: localhost:<Grid management port>
  • From a different machine, browse to: http://<grid address>:<Grid management port>

The Grid management port number is defined in the grid runtime engine settings (Default=8080). For details, see Configure the grid's runtime engine settings.

This console provides general information about the grid machine and a table showing information about each node. For each node, you can see the capabilities provided by this node as well as the number of runs it is currently handling:

  • Capabilities include the node's name, operating system, browsers, currently loaded add-ins, and other capabilities defined in the node's settings.
  • CONCURRENT RUNS shows the number of locks currently placed on the node, out of the maximum locks defined for that node.

Back to top

See also: