Stressless Load Testing

All About Performance Testing & Tools for Web, Mobile and API

StresStimulus 3.5 Part 2 - Advanced Parameterization

1. Three controls for simpler request parameterization. Previous concept of Parameterization Grid and Parameterization Editor is reworked to achieve more functionality and consistency and remove several restrictions. Now you can parameterize requests by selecting one of three controls most suitable for a particular situation. Follow these steps:

  1. Select Parameters node in the Workflow Tree.
  2. Select a request on the Test Case Tree.
  3. Select a tab corresponding to one of three request parts.
    • Request Header
    • Request URL and Query
    • Request Body

Note: GET requests do not have Body.

 

  1. Depending on the selected tab and content of the request, StresStimulus will automatically select one of three parameterization controls:
    • Parameterization Grid
    • Parameterization Editor
    • Free Format Request Editor

For example,

  • A request part that can be represented as a name/value pair form is shown in Parameterization Grid, by default.
  • A request part that cannot be represented as a name/value pair form is shown in Free Format Request Editor.

Parameterization controls that should not be used are automatically disabled to prevent user errors.

 

  1. If necessary, select another available control, which is more suitable for your situation. For example, you can switch from Parameterization Grid to Parameterization Editor if you need to enter long value strings or use Find and Replace by value feature. To select a different Parameterization Control, click the corresponding button on the toolbar.

 

Three parameterization controls are compared in the table below.

 

Parameterization Controls
Category Feature Parameterization Grid Parameterization Editor Free Format Request Editor
Toolbar button
Functionality Supports name/value pair format Yes Yes Yes
Preserves name/value pair structure automatically automatically manually
Supports free format (non-name/value pair) No No Yes
Scope of editing one parameter at a time one parameter at a time entire request part
Edit short string values Yes Yes Yes
Edit long string values No Yes Yes
Find parameters by name and Replace their values Yes No No
Find and Replace value No Yes Yes
Supports Variable Picker left-click right-click right-click
In what request part can be used Request Header Yes Yes No
Request URL and Query Yes Yes Yes
Request Body Yes Yes Yes

 

 

2. Parameterization: more databinding methods. Databinding is a rule for selecting dataset records used for parameterization requests. Dataset stores multiple sequential records. Every time a dynamic request with a parameter bound to the dataset is generated, a single dataset record is consumed. In some tests it is necessary to use different records every time. In other tests, however, it is required that a record is repeated for either the same VU, or requests or iterations or combinations of thereof.

 

For example, in login requests, a VU has to use the same credentials stored in the dataset on all requests and all iterations. At the same time, to realistically load test a data entry scenario, a VU need to use different dataset records. Select a data binding method that ensures servicing records required by your test, while multiple VUs iterating through the test case.

 

A list of seven databinding methods appears in the parameterization control under selected data set field as shown below. Description of each method appears on mouse-over.

 

 

Databinding methods are described in the table below. The following example show which data set record is used in each method:

A data set has 20 records. A test case includes 5 parameterized requests bound to this dataset. Two VUs run the test through two iterations. Note, that VUs traverse through their respective iteration asynchronously, as they emulate independent physical users, so there is no synchronization between requests issued by different users.

 

 

Description

Example

1. Request-Bound data-binding method (Req-Bound).

Every parameter requested by any VU in any iteration gets a subsequent dataset row.

 

 

VU1

VU2

VU1

VU2

Req.

 

Iter. 1

Iter. 1

Iter. 2

Iter. 2

1

1

2

10

13

2

3

4

12

14

3

5

7

17

15

4

6

9

18

16

5

8

11

19

20

2. VU-Bound data-binding method (VU-Bound).

Every VU gets a subsequent dataset row used for all its parameters requested in all iterations.

 

 

VU1

VU2

VU1

VU2

Req

Iter. 1

Iter. 1

Iter. 2

Iter. 2

1

1

2

1

2

2

1

2

1

2

3

1

2

1

2

4

1

2

1

2

5

1

2

1

2

3. Iteration-Bound data-binding method (Iter-Bound).

Every iteration gets a subsequent dataset row used by all VUs in all requested parameters.

 

 

VU1

VU2

VU1

VU2

Req

Iter. 1

Iter. 1

Iter. 2

Iter. 2

1

1

1

2

2

2

1

1

2

2

3

1

1

2

2

4

1

1

2

2

5

1

1

2

2

4. Iteration-Request-Bound data-binding method (Iter-Req-Bound).

Every subsequently requested parameter in every iteration gets the subsequent dataset row shared by all VUs.

 

 

 

VU1

VU2

VU1

VU2

Req

Iter. 1

Iter. 1

Iter. 2

Iter. 2

1

1

1

6

6

2

2

2

7

7

3

3

3

8

8

4

4

4

9

9

5

5

5

10

10

5. VU-Iteration data-binding method (VU-Iter-Bound).

Every VU on every iteration gets a unique value. The value is the same for all requests within the iteration.

 

VU1

VU2

VU1

VU2

Req

Iter. 1

Iter. 1

Iter. 2

Iter. 2

1

1

2

3

4

2

1

2

3

4

3

1

2

3

4

4

1

2

3

4

5

1

2

3

4

6. Parameter- Bound data-binding method (Param-Bound).

Every requested parameter gets a subsequent dataset row shared by all VUs in all iterations.

 

 

VU1

VU2

VU1

VU2

Req

Iter. 1

Iter. 1

Iter. 2

Iter. 2

1

1

1

1

1

2

2

2

2

2

3

3

3

3

3

4

4

4

4

4

5

5

5

5

5

7. Random data-binding method (Random).

Every request parameter gets a random dataset row.

 

 

 

To navigate to other parts of the v3.0 release notes, click the links below:

StresStimulus 3.5 beta is available here.

blog comments powered by Disqus