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:
- Select Parameters node in the Workflow Tree.
- Select a request on the Test Case Tree.
- 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.
- 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.
- 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.