This section covers our Java library which can be directly embedded into any framework coded in the Java language. To integrate data allocations with Java frameworks we expose a Java library which calls the API endpoints mentioned above. This is broken down into the two same functions as before to:

  1. Tag the data allocations against test cases to specify which allocations are required.

  2. Retrieve the allocation results to utilise them as values within a test.

The library and source code can be accessed at the following GitHub repository.

With TestNG you can tag each test with a ‘@DataAllocation’ annotation which is provided by the data allocate java library, shown below:

@DataAllocation(poolName  =  “pool”,  suiteName  =  “suite”,  groups  =  {“testname”})
Public  void  testDefinition()

Here you can specify the data allocation to connect the test with. This corresponds to three parameters:

  • poolName – Name of the allocation pool the tests reside in.

  • suiteName – Name of the test suite the test resides in.

  • groups – The tests to perform allocation on. These are the allocation tests associated with the current test being tagged. Wildcards can be used to match multiple test names. The groups tag also takes a list so multiple test types can be specified.

These three parameters must match the data values specified for each matching test case specified within the appropriate allocation pool within the portal.

Within the test case you can retrieve the results using the ‘dataAllocationEngine.GetDataResult’ function. Here you can specify the pool, suite name, and test name to retrieve the results for. Again, this must match the specifications given in the associated allocation pool within the portal. The DataAllocationResult class shown below contains the functions to retrieve results by the column names, and column indexes as specified in the initial test criteria.

DataAllocationResult  allocResult=  dataAllocationEngine.GetDataResult(“pool”,  “suite”,  “test  name”);

Before the tests are executed in TestNG we have defined a @BeforeSuite function which is executed before all the specified tests are executed. Within this function we collect all @DataAllocate functions tagged against any tests that are about to be executed, then we call the data allocation API to perform the associated executions.

It is more efficient to perform these operations in bulk. Which is why they are collected into one list and then sent for allocation as opposed to directly performing the allocation inside each individual script.

This implementation can be transposed to other testing frameworks (e.g. Nunit, Junit, etc) by replacing the appropriate keywords (@BeforeSuite, and @Test) with their corresponding values. The purpose of this java library is to provide a set of out-the-box methods for enabling you to call the data allocation API within your framework seamlessly.