- Created by SS Doc Editor, last modified by SS Doc Editor on Jun 30, 2021
Some test cases with loops may require extractors from the previous loop's iteration to be used in the next iteration. For example, a single page wizard test case where the number of steps varies, and every next step depends on the previous step.
Let's go through an example of setting up such a test and explaining its playback.
Recording & configuring the test case
After recording a test case, the test case tree looks as follows.
- There is a wizard transaction that contains all wizard-related requests.
- There is a start wizard request (#3 /start-wizard)
- There are multiple wizard step requests (#4-18 /wizard-step)
- Each /wizard-step has a step_id field that specifies which step in the wizard to display. Each subsequent step_id field value is extracted from the previous response.
Setting up the test case.
Since the number of wizard steps varies, a Do...While loop should be created around the first /wizard-step request, and the rest should be deleted.
The last step is to correlate the step_id field. The first step_id value comes from /start-wizard (#3) response. The rest step_id values come from the/wizard-step (#4) response from the previous loop iteration.
- Create an extractor called stepId from /start-wizard (#3) response.
- Use this extractor to parameterize the step_id request field in /wizard-step (#4).
- Create an extractor called stepId2 from /start-wizard (#4) response.
- Set the Copy value to Extractor property to stepId.
Loop until an extractor is no longer found
When a virtual user evaluates an extractor from a response during a load test, the result value is persisted throughout the entire test until the extractor is re-evaluated.
By default, if an extractor is not found, then the previous value is retained. To change this behavior, set the Override previous value when not found property to Yes.
Consider an example where a Do...While container will loop until the extractor value is no longer found
- No labels