...
Code Block | ||
---|---|---|
| ||
{ "headers": [], "steps": [ { "name": "HelloPick and EchoOne", "type": "SequenceRandom", "headers": [], "steps": [ { "name": "HelloCall World1", "type": "Request", "method": "GET" "url": "{{ServerDomain}}/hellocall1", "body": null, "actions": [ ] }, { "name": "CaptureCall Result2", "type": "jsonRequest", "extractionPairsmethod": "GET" ["url": "{{ServerDomain}}/call2", {"headers": [], "jsonPathbody": "text"null, "variableNameactions": "myvar" } [ ] } ] }, { "name": "EchoHello World", "type": "Request", "method": "POSTGET" "url": "{{ServerDomain}}/echohello", "headersbody": []null, "bodyactions": {[ "text": "[[myvar]]" }, "actions": [ ] } ] } ] }} |
When this test is run, the Random group step is executed first. The group will pick either Call 1 or Call 2 to execute. The test then moves on to execute the Hello World step. During the next loop, the Random group will make another random selection.
Using the Initial Script
The Initial script is used to perform any setup tasks required by the Main script such as authentication or gathering data to use in variables. It is run prior to the Main and Maintenance scripts and unlike the other scripts, the initial script is only executed once. Let’s look at an example that uses the Initial script to perform authentication that will be used by the requests in the Main script:
Code Block | ||
---|---|---|
| ||
{
"headers": [],
"steps":
[
{
"name": "Authenticate",
"type": "Request",
"method": "POST"
"url": "{{ServerDomain}}/login",
"body":
{
"username": "{{username}}",
"password": "{{password}}"
},
"actions":
[
]
}
]
} |
The login endpoint sets a cookie that contains the authentication token. This cookie will be sent as part of any requests made by the Main or Maintenance scripts automatically. Note that cookies set in the Initial and Maintenance scripts are global and shared with all sessions running the Main script. Unlike Main script cookies they will not be cleared between session loops. The Initial script is great for authentication, but what if that authentication will expire before the test has finished? Some tests might take several hours to complete. This is where the Maintenance script comes into play.
Using the Maintenance Script
The Maintenance script and delay are used to perform periodic actions that support the Main script. The platform will wait for the delay period before running the Maintenance script for the first time. Once it it complete, it will be run again after the same delay period. This loop will continue until the Main script has finished. In this example we’ll use the Maintenance script to refresh our authentication cookie every 10 minutes:
Code Block | ||
---|---|---|
| ||
{
"headers": [],
"steps":
[
{
"name": "Refresh Authentication",
"type": "Request",
"method": "GET"
"url": "{{ServerDomain}}/refreshlogin",
"body": null,
"actions":
[
]
}
]
} |
In this case we don’t need to send any additional information because our /refreshlogin endpoint will receive the cookie that was set by the Initial script (it is shared globally) and set an updated cookie value during the response. The updated cookie is also shared globally so any new requests made by the Main script will use the new value.
Info |
---|
The Maintenance Delay field is the amount of milliseconds between Maintenance script runs. |