How to reset a dataset for each transaction

Document ID : KB000014918
Last Modified Date : 14/02/2018
Show Technical Document Details

Dataset will be reset when it is loaded in DevTest, which is when the VS is deployed. To reset a dataset for every transaction, create a subprocess test case and configure dataset in it. Then use the subprocess testcase with a Subprocess step inside the VSM.

The dataset should reset each time the subprocess is invoked.


How to reset a dataset for each transaction

All DevTest supported releases.


1. You will need to save the value, you will look for in the dataset, to a property. In this example, we want to save an argument value.

  • It is possible to add the "Request Data Copier" DPH in the request side during the virtual service creation and configured it to copy the arguments key to the property "request_<argumentName>".

Request Data Copier DPH Example

  • It is also possible to add a filter to the Listener step and save the argument value from the request payload during the VSM execution. For more details on how to save a value from execution to a property see the knowledge document - TEC1431274.

2. Add a Sub Process step to the VSM.

Add a Subprocess step to the VSM after the Router step:

subprocess step in the VSM

The Subprocess step needs to be configured to run a subprocess test case. In the below image, test.tst is the subprocess.  

subprocess details - testcase name

If there is no test case, create a new test case and make it as a Sub Process. Select the check box "This is a subprocess" in the Test case information.  

subprocess details - This is a Subprocess

3.  Create a subprocess to run the Data Set.

 The Test Case, test.tst, was created and set as a subprocess:

subprocess test Case 

The "Subprocess Input Parameters" will be the property that is coming from the VSM. In our case, "request_user" is the property from the VSM request payload that will be used in the subprocess.

subprocess Input Parameters

The sub process test case contains an "Output Log Message" step and a data set. That is all this sub process will use.

The data set is an Excel spreadsheet, but it can be a CSV file or database table.

Subprocess Step and DataSet

The data set needs to be set as "Local" and "At end of data,"  Execute: "End the test”.

Subprocess DataSet Config

The sample dataset contains userDS and pwdDS:

Subprocess sample DataSet

Add the "Ensure Properties Are Equal" assertion to the test step.

This assertion compares the value of "userDS", from the dataset, and "request_user", that comes from the VSM request.

Subprocess Assertion.png

If the properties are equal, the assertion will return True and the test will be ended. 

When the test is ended, the result will be returned to the VSM. 

If the properties are not equal, the test will loop through all the data set rows and end.

4. Return the values from the subprocess execution to be used with the virtual service.

In the VSM, Subprocess step, select the "Result Properties" that returns from the sub process. For example, in the below image selected userDS and pwdDS.

VSM Result Properties

It is possible to use the properties returned from the sub process in the VSM and/or in VSI response:

Using Subprocess Properties in the VSI


Additional Information:

For more details regarding Subprocess: Create a Subprocess Test CaseSubprocess ExampleExecute Subprocess.