BatchClose method

Class: BatchClosePlatform: Selenium 3Language: Java SDK:

The constructor for the BatchClose class.

Introduction

The Test Manager displays test results in batches. The article Grouping tests into batches with the SDK explains how tests are associated with batches based on a batch ID, and how you can use the SDK to control which tests will be part of a particular batch.

Here, we will focus on understanding the notions of an active batch and closing a batch.

A batch is created and becomes active when a test is started with a batch ID that does not match an existing active batch. As long as a batch is active, new tests that have a matching batch ID will be added to the batch.

Batches are closed automatically in one of two ways. By default, runner-based SDKs implement the Auto batch closure feature. This feature closes the batches associated with the runner's test after the tests have completed. In addition, in order to prevent large batches that could cause performance issues, the Eyes server closes active batches that have not been used for several hours, or if they have been in continuous use for more than a few days.

When a batch is closed, the Eyes server can send the user a batch completion notification. This feature must be enabled explicitly, see Batch completion notifications for details.

You can manage Auto batch closure by:

To manually close a batch, instantiate an object of this class and then call BatchClose.setBatchId followed by BatchClose.close in a fluent method style - see the example below.

Syntax

BatchClose obj = new BatchClose();

Parameters

This method does not take any parameters.

Return value

Type: BatchClose

Example

The example below illustrates:

Note that the batch ID of the batch being closed needs to be passed to the BatchClose.setBatchId method. In this example, we assume that a batch ID was set for all of the batches by assigning a unique ID to the APPLITOOLS_BATCH_ID environment variable. This is used as a default by the Configuration.setBatch method which is set up in the suite Configuration object and then assigned to each Eyes instance.

/*
 * After creating the runner, configure it so that won't close the batch
 */
runner = new VisualGridRunner(new RunnerOptions().testConcurrency(10));
runner.setDontCloseBatches(true);
/*
 * Setup a common batch for all tests
 */
BatchInfo batchInfo = new BatchInfo(batchName);
batchInfo.setId(myGetUniqueBatchID()); // User defined
suiteConfig = new Configuration() 
        .setBatch(batchInfo)
/* ... other configurations */; 
/*
 * Assign the configuration to all newly created Eyes instances
 */
eyes = new Eyes(runner);
eyes.setConfiguration(suiteConfig);
/*
 * After all the tests have completed, in all the runners
 */
List<String> batchIds = Arrays.asList(System.getenv("APPLITOOLS_BATCH_ID"));
BatchClose batchClose = new BatchClose();
batchClose.setBatchId(batchIds).close();