Guide

Codeless Load Generator

loadGenerator: apiClientId

Load generator tightly integrates with the Perforator platform communicating via API requests. We treat security as a first-class citizen, so all API requests require proper authentication and authorization.

You have your own API Client ID, which uniquely identifies your account in our platform. Such key stays unchanged the whole time while you are still active with us.

Please navigate to the API Settings page to get your own API Client ID and update its value in your config.yml.

Scope:
loadGenerator
Property Name:
apiClientId
Required:
Yes
Default Value:
N/A
Command line arg:
-DloadGenerator.apiClientId=...
Environment variable:
LOADGENERATOR_APICLIENTID=...

loadGenerator: apiClientSecret

Perforator API authentication scheme requires a valid pair of API Client ID / API Client Secret.
While client id acts as your account identifier, client secret is like a password for API-level calls.

You can get a new API Client Secret via navigating to the API Settings page and clicking the "Regenerate" button. Please don't forget to update your config.yml once you get your secret key.

Note: You should generate API Secret Key only once, and then you can reuse it across all subsequent load tests. You can always regenerate such a key if you lose it. Please keep in mind that generating a new secret key invalidates the previously generated one.

Scope:
loadGenerator
Property Name:
apiClientSecret
Required:
Yes
Default Value:
N/A
Command line arg:
-DloadGenerator.apiClientSecret=...
Environment variable:
LOADGENERATOR_APICLIENTSECRET=...

loadGenerator: apiToken

OAuth 2.0 access token for Perforator API calls. You can generate an access token outside the load generator and bypass such token without specifying apiClientId and apiClientSecret.

Note: Please keep in mind that the access token has a limited validity period and usually expires 8 hours after authentication.

Scope:
loadGenerator
Property Name:
apiToken
Required:
No
Default Value:
N/A
Command line arg:
-DloadGenerator.apiToken=...
Environment variable:
LOADGENERATOR_APITOKEN=...

loadGenerator: apiBaseUrl

This property is for informational purpose only and you don't need it in majority of the cases.

Scope:
loadGenerator
Property Name:
apiBaseUrl
Required:
No
Default Value:
https://api.perforator.io
Command line arg:
-DloadGenerator.apiBaseUrl=...
Environment variable:
LOADGENERATOR_APIBASEURL=...

loadGenerator: projectKey

Every project has a unique identifier - project key, and it is available in immutable UUID format once the project is created. Project key is a mandatory field for every load test configuration, and it tells the load generator where to store new executions data.

Please copy the project key from the project details page and update it in your config.yml

Scope:
loadGenerator
Property Name:
projectKey
Required:
Yes
Default Value:
N/A
Command line arg:
-DloadGenerator.projectKey=...
Environment variable:
LOADGENERATOR_PROJECTKEY=...

loadGenerator: executionKey

Key of the execution where to create a new browser cloud. A new execution is automatically created within the parent project if an executionKey is not provided.

This property is not required in majority of the cases. The only case where it might be needed, when you would like to run multiple independent load generators in parallel and combine statistics together to get 360 view.

Scope:
loadGenerator
Property Name:
executionKey
Required:
No
Default Value:
N/A
Command line arg:
-DloadGenerator.executionKey=...
Environment variable:
LOADGENERATOR_EXECUTIONKEY=...

loadGenerator: browserCloudAwaitQueued

How much time to wait till the browser cloud changes state from QUEUED to PROVISIONING?

Scope:
loadGenerator
Property Name:
browserCloudAwaitQueued
Required:
No
Default Value:
1h
Command line arg:
-DloadGenerator.browserCloudAwaitQueued=...
Environment variable:
LOADGENERATOR_BROWSERCLOUDAWAITQUEUED=...

loadGenerator: browserCloudAwaitProvisioning

How much time to wait till the browser cloud changes state from PROVISIONING to OPERATIONAL?

Scope:
loadGenerator
Property Name:
browserCloudAwaitProvisioning
Required:
No
Default Value:
15m
Command line arg:
-DloadGenerator.browserCloudAwaitProvisioning=...
Environment variable:
LOADGENERATOR_BROWSERCLOUDAWAITPROVISIONING=...

loadGenerator: browserCloudStatusPollInterval

Time interval on how often to check browser cloud status.

This property affects the behavior of the load generator during QUEUED, PROVISIONING, and OPERATIONAL stages. For example, if you terminate the browser cloud manually from the UI, the load generator should stop its execution after the next polling attempt.

Scope:
loadGenerator
Property Name:
browserCloudStatusPollInterval
Required:
No
Default Value:
1s
Command line arg:
-DloadGenerator.browserCloudStatusPollInterval=...
Environment variable:
LOADGENERATOR_BROWSERCLOUDSTATUSPOLLINTERVAL=...

loadGenerator: browserCloudHttpHeaders

You can supply a field 'browserCloudHttpHeaders', and as a result, all browsers from the cloud will include such headers in every HTTP request. For example, to set the Authorization bearer token.


Scope:
loadGenerator
Property Name:
browserCloudHttpHeaders
Required:
No
Default Value:
N/A
Command line arg:
-DloadGenerator.browserCloudHttpHeaders=...
Environment variable:
LOADGENERATOR_BROWSERCLOUDHTTPHEADERS=...

loadGenerator: browserCloudHosts

You can set the ‘browserCloudHosts’ parameter if you would like to propagate additional /etc/hosts to remote browsers. It might be a case where a target website domain name is not resolvable via public DNS servers. So, to reach such domains from the browsers started in the cloud, you can supply a map of additional DNS records via 'browserCloudHosts' parameter, for example: example.com => 1.2.3.4


Scope:
loadGenerator
Property Name:
browserCloudHosts
Required:
No
Default Value:
N/A
Command line arg:
-DloadGenerator.browserCloudHosts=...
Environment variable:
LOADGENERATOR_BROWSERCLOUDHOSTS=...

loadGenerator: browserCloudTerminateAutomatically

Should a browser cloud be turned off at the end of the test?

Scope:
loadGenerator
Property Name:
browserCloudTerminateAutomatically
Required:
No
Default Value:
true
Command line arg:
-DloadGenerator.browserCloudTerminateAutomatically=...
Environment variable:
LOADGENERATOR_BROWSERCLOUDTERMINATEAUTOMATICALLY=...

loadGenerator: httpConnectTimeout

This property controls how long to wait while establishing a new HTTP connection with the remote browser(s).

Note: Load generator uses HTTP connections pooling to improve performance while communicating with the remote browsers. So, we are trying to reuse as much as possible existing HTTP connections to avoid additional delays on TCP and SSL handshakes.

Scope:
loadGenerator
Property Name:
httpConnectTimeout
Required:
No
Default Value:
30s
Command line arg:
-DloadGenerator.httpConnectTimeout=...
Environment variable:
LOADGENERATOR_HTTPCONNECTTIMEOUT=...

loadGenerator: httpReadTimeout

This property controls how long to wait while awaiting a response from remote browser via an already established HTTP connection.

Note: Load generator treats remote browser as dead if HTTP response for submitted selenium command has not arrived within such timeout. As a result, the currently processed suite instance and its step are automatically marked as failed.

Scope:
loadGenerator
Property Name:
httpReadTimeout
Required:
No
Default Value:
60s
Command line arg:
-DloadGenerator.httpReadTimeout=...
Environment variable:
LOADGENERATOR_HTTPREADTIMEOUT=...

loadGenerator: eventsFlushInterval

Interval on how often to send transaction events data to API.

Scope:
loadGenerator
Property Name:
eventsFlushInterval
Required:
No
Default Value:
0.25s
Command line arg:
-DloadGenerator.eventsFlushInterval=...
Environment variable:
LOADGENERATOR_EVENTSFLUSHINTERVAL=...

loadGenerator: eventsFlushThreshold

How many transaction events should be sent to API per one request?

Note: This value might be as high as 2000, everything else on top will be rejected on API end.

Scope:
loadGenerator
Property Name:
eventsFlushThreshold
Required:
No
Default Value:
500
Command line arg:
-DloadGenerator.eventsFlushThreshold=...
Environment variable:
LOADGENERATOR_EVENTSFLUSHTHRESHOLD=...

loadGenerator: reportingInterval

How often progress statistics should be reported in the log?
You can turn off progress reporting by specifying this value as 0s.

Note: This property only affects reporting to the load generator log and doesn't affect transactions and browser events reporting to the primary analytical system.

Scope:
loadGenerator
Property Name:
reportingInterval
Required:
No
Default Value:
5s
Command line arg:
-DloadGenerator.reportingInterval=...
Environment variable:
LOADGENERATOR_REPORTINGINTERVAL=...

loadGenerator: concurrencyAutoAdjustment

It might be a case when tests start failing too often, either due to the problem with the test(s) logic or due to overloading of the target system.

Perforator automatically determines when to introduce a slowdown in case of any abnormalities with tests execution.

This flag controls whether automatic slowdown is enabled or not.

Scope:
loadGenerator
Property Name:
concurrencyAutoAdjustment
Required:
No
Default Value:
true
Command line arg:
-DloadGenerator.concurrencyAutoAdjustment=...
Environment variable:
LOADGENERATOR_CONCURRENCYAUTOADJUSTMENT=...

loadGenerator: concurrencyRecalcPeriod

How often desired concurrency should be recalculated?

Scope:
loadGenerator
Property Name:
concurrencyRecalcPeriod
Required:
No
Default Value:
30s
Command line arg:
-DloadGenerator.concurrencyRecalcPeriod=...
Environment variable:
LOADGENERATOR_CONCURRENCYRECALCPERIOD=...

loadGenerator: concurrencyScaleDownMultiplier

Perforator automatically decreases concurrency if there are too many failing transactions.

This property determines concurrency multiplier to use while calculating scale-down adjustment.

For example, suppose the target concurrency is 1000, and the multiplier is 0.05. In that case, the scale-down adjustment for concurrency is 1000 x 0.05 = 50, so the system should decrease concurrency by 50 threads in case of too many failing transactions.

Scope:
loadGenerator
Property Name:
concurrencyScaleDownMultiplier
Required:
No
Default Value:
0.05
Command line arg:
-DloadGenerator.concurrencyScaleDownMultiplier=...
Environment variable:
LOADGENERATOR_CONCURRENCYSCALEDOWNMULTIPLIER=...

loadGenerator: concurrencyScaleUpMultiplier

Perforator automatically increases concurrency if previously it was slowing down due to failing transactions, and the amount of such failing transactions decreases.

This property determines concurrency multiplier to use while calculating scale-up adjustment.

For example, suppose the target concurrency is 1000, and the multiplier is 0.025. In that case, the scale-up adjustment for concurrency is 1000 x 0.025 = 25, so the system should increase concurrency by 25 threads in case failing transactions percent goes down.

Scope:
loadGenerator
Property Name:
concurrencyScaleUpMultiplier
Required:
No
Default Value:
0.025
Command line arg:
-DloadGenerator.concurrencyScaleUpMultiplier=...
Environment variable:
LOADGENERATOR_CONCURRENCYSCALEUPMULTIPLIER=...

loadGenerator: failOnSuiteErrors

Should a performance test fail at the end of the execution in case of any suite errors?

Scope:
loadGenerator
Property Name:
failOnSuiteErrors
Required:
No
Default Value:
true
Command line arg:
-DloadGenerator.failOnSuiteErrors=...
Environment variable:
LOADGENERATOR_FAILONSUITEERRORS=...

loadGenerator: failOnTransactionErrors

Should a performance test fail at the end of the execution in case of any transaction errors?

Scope:
loadGenerator
Property Name:
failOnTransactionErrors
Required:
No
Default Value:
true
Command line arg:
-DloadGenerator.failOnTransactionErrors=...
Environment variable:
LOADGENERATOR_FAILONTRANSACTIONERRORS=...

loadGenerator: usePreAllocatedIPs

The platform automatically assigns random public IP addresses when creating a browser cloud, and such IPs are not known in advance.

Please set usePreAllocatedIPs parameter to true if you would like all browsers to have preallocated IPs, for example, to establish network trust on your firewall side.

Here is the list of public IPs for the browser cloud if you enable this flag:
34.235.233.123.23.160.13113.57.125.22134.217.161.952.60.65.181TODO18.169.80.16818.162.233.176

Note: Pre-allocated IPs functionality is disabled by default.
Please let us know at support@perforator.io if you would like it to be enabled for your account.

Scope:
loadGenerator
Property Name:
usePreAllocatedIPs
Required:
No
Default Value:
false
Command line arg:
-DloadGenerator.usePreAllocatedIPs=...
Environment variable:
LOADGENERATOR_USEPREALLOCATEDIPS=...

loadGenerator: dataCapturingExcludes

It might be a case when you would like to exclude specific HTTP requests from capturing by browsers running in the cloud and avoid storing such requests in the analytical system. For example, your security team doesn't want to expose test user credentials to external systems, or you know in advance that specific requests are failing all the time, and it is desired to exclude such requests from any analysis.

'dataCapturingExcludes' property allows you to specify a list of URLs to be excluded from capturing by cloud-based browsers.

You can specify either absolute URLs to exclude or JS-based patterns to match against the tested HTTP request URL.

Scope:
loadGenerator
Property Name:
dataCapturingExcludes
Required:
No
Default Value:
N/A
Command line arg:
-DloadGenerator.dataCapturingExcludes=...
Environment variable:
LOADGENERATOR_DATACAPTURINGEXCLUDES=...

loadGenerator: dataCapturingIncludeRequestHeaders

It may be a case when you need precise control over capturing HTTP request headers by browsers running in the cloud and persisting it for analytics purposes. For example, your security team doesn't want sensitive information from any HTTP request headers to be preserved by external platforms.

The 'dataCapturingIncludeRequestHeaders' property allows you to control capturing of any HTTP request headers.


Scope:
loadGenerator
Property Name:
dataCapturingIncludeRequestHeaders
Required:
No
Default Value:
true
Command line arg:
-DloadGenerator.dataCapturingIncludeRequestHeaders=...
Environment variable:
LOADGENERATOR_DATACAPTURINGINCLUDEREQUESTHEADERS=...

loadGenerator: dataCapturingIncludeRequestBody

It may be a case when you need precise control over capturing HTTP requests body by browsers running in the cloud and persisting it for analytics purposes. For example, your security team doesn't want sensitive information from any HTTP request body to be preserved by external platforms.

The 'dataCapturingIncludeRequestBody' property allows you to control capturing of any HTTP request body.


Scope:
loadGenerator
Property Name:
dataCapturingIncludeRequestBody
Required:
No
Default Value:
true
Command line arg:
-DloadGenerator.dataCapturingIncludeRequestBody=...
Environment variable:
LOADGENERATOR_DATACAPTURINGINCLUDEREQUESTBODY=...

loadGenerator: dataCapturingIncludeResponseHeaders

It may be a case when you need precise control over capturing HTTP response headers by browsers running in the cloud and persisting it for analytics purposes. For example, your security team doesn't want sensitive information from any HTTP response headers to be preserved by external platforms.

The 'dataCapturingIncludeResponseHeaders' property allows you to control capturing of any HTTP response headers.


Scope:
loadGenerator
Property Name:
dataCapturingIncludeResponseHeaders
Required:
No
Default Value:
true
Command line arg:
-DloadGenerator.dataCapturingIncludeResponseHeaders=...
Environment variable:
LOADGENERATOR_DATACAPTURINGINCLUDERESPONSEHEADERS=...

loadGenerator: dataCapturingIncludeResponseBody

It may be a case when you need precise control over capturing HTTP responses body by browsers running in the cloud and persisting it for analytics purposes. For example, your security team doesn't want sensitive information from any HTTP response body to be preserved by external platforms.

The 'dataCapturingIncludeResponseBody' property allows you to control capturing of any HTTP response body.


Scope:
loadGenerator
Property Name:
dataCapturingIncludeResponseBody
Required:
No
Default Value:
true
Command line arg:
-DloadGenerator.dataCapturingIncludeResponseBody=...
Environment variable:
LOADGENERATOR_DATACAPTURINGINCLUDERESPONSEBODY=...

variables

You can set the variables key-value map to allow common values reuse across different suites and actions.
Suite actions can refer to a value from a variables map using the following syntax: ${key_name}
This is an optional property.

suite: concurrency

Concurrency level of the suite processing, i.e., how many concurrent threads will process suite instances.

Also, this parameter controls how many browsers are allowed to be launched concurrently in the cloud for cloud-based executions.

Scope:
suite
Property Name:
concurrency
Required:
Yes
Default Value:
30
Command line arg:
-Dsuite.concurrency=...
Environment variable:
SUITE_CONCURRENCY=...

suite: duration

Duration of the performance test for the given suite.

Also, this parameter controls how much time the browser cloud will be accessible once the performance test starts in cloud mode.

Duration of the browser cloud is rounded up to the closest hour value. For example, if duration = 45m, then browser cloud is created for 1 hour.

Scope:
suite
Property Name:
duration
Required:
No
Default Value:
15m
Command line arg:
-Dsuite.duration=...
Environment variable:
SUITE_DURATION=...

suite: delay

How much time to wait before executing suite logic once performance test starts?

Scope:
suite
Property Name:
delay
Required:
No
Default Value:
0s
Command line arg:
-Dsuite.delay=...
Environment variable:
SUITE_DELAY=...

suite: rampUp

The time interval for ramping up concurrent processing of suite instances from 1 up to defined concurrency level. Concurrency is increased evenly during rampUp period.

For example, if you have concurrency = 10 and rampUp = 10s, then every second additional worker thread will be launched, starting from 1 thread up to 10 threads.

Scope:
suite
Property Name:
rampUp
Required:
No
Default Value:
0s
Command line arg:
-Dsuite.rampUp=...
Environment variable:
SUITE_RAMPUP=...

suite: rampDown

The time interval before the end of the test to stop launching new suite instances.

For example, if you have duration = 10m and rampDown = 2m, then after the 8th minute of execution no new suite instances will be launched.

At the same time, if a suite instance started execution before the 8th minute - such instance will proceed execution till its natural completion

Scope:
suite
Property Name:
rampDown
Required:
No
Default Value:
2m
Command line arg:
-Dsuite.rampDown=...
Environment variable:
SUITE_RAMPDOWN=...

suite: iterations

Iterations count to execute the suite.

This is an upper bound of maximum attempts to run the suite. The suite should be stopped when the pre-configured duration is elapsed, or iterations count is reached, whatever comes first.

Scope:
suite
Property Name:
iterations
Required:
No
Default Value:
9999999
Command line arg:
-Dsuite.iterations=...
Environment variable:
SUITE_ITERATIONS=...

suite: webDriverMode

The mode of launching browsers for the test suite.

Available modes:
- cloud
- local

Note: Neither transactions nor browser events are reported to the analytics system when browsers are launched locally.

Scope:
suite
Property Name:
webDriverMode
Required:
No
Default Value:
cloud
Command line arg:
-Dsuite.webDriverMode=...
Environment variable:
SUITE_WEBDRIVERMODE=...

suite: chromeMode

The mode of launching chrome instances.
Available modes:
- headful
- headless

Scope:
suite
Property Name:
chromeMode
Required:
No
Default Value:
headful
Command line arg:
-Dsuite.chromeMode=...
Environment variable:
SUITE_CHROMEMODE=...

suite: chromeDriverSilent

Should a chrome driver be started in silent mode?

Chrome driver service sends all output by default to System::out stream, and its output is not necessary in a majority of the cases. Please turn off this flag if you would like to see output from Chrome driver service.

Note: This property is only considered when you launch suite in local mode.

Scope:
suite
Property Name:
chromeDriverSilent
Required:
No
Default Value:
true
Command line arg:
-Dsuite.chromeDriverSilent=...
Environment variable:
SUITE_CHROMEDRIVERSILENT=...

suite: defaultSelectorType

The mode controlling selector type to use while searching elements on the page.

Available modes:
- css
- xpath

Scope:
suite
Property Name:
defaultSelectorType
Required:
No
Default Value:
css
Command line arg:
-Dsuite.defaultSelectorType=...
Environment variable:
SUITE_DEFAULTSELECTORTYPE=...

suite: webDriverCreateSessionRetryTimeout

The system automatically retries to create a new selenium session, in case of an error(s), starting from the timestamp of the initial attempt up until webDriverCreateSessionRetryTimeout is reached.

Note: This parameter is only applicable when webDriverMode = cloud.

Scope:
suite
Property Name:
webDriverCreateSessionRetryTimeout
Required:
No
Default Value:
1m
Command line arg:
-Dsuite.webDriverCreateSessionRetryTimeout=...
Environment variable:
SUITE_WEBDRIVERCREATESESSIONRETRYTIMEOUT=...

suite: webDriverDeleteSessionRetryTimeout

The system automatically retries to delete existing selenium session, in case of an error(s), starting from the timestamp of the initial attempt up until webDriverDeleteSessionRetryTimeout is reached.

Note: This parameter is only applicable when webDriverMode = cloud.

Scope:
suite
Property Name:
webDriverDeleteSessionRetryTimeout
Required:
No
Default Value:
1m
Command line arg:
-Dsuite.webDriverDeleteSessionRetryTimeout=...
Environment variable:
SUITE_WEBDRIVERDELETESESSIONRETRYTIMEOUT=...

suite: webDriverSessionImplicitlyWait

Implicit wait timeout for selenium session.

This parameter controls the amount of time the driver should wait when searching for an element if it is not immediately present.

Scope:
suite
Property Name:
webDriverSessionImplicitlyWait
Required:
No
Default Value:
0s
Command line arg:
-Dsuite.webDriverSessionImplicitlyWait=...
Environment variable:
SUITE_WEBDRIVERSESSIONIMPLICITLYWAIT=...

suite: webDriverSessionScriptTimeout

This parameter controls the amount of time to wait for an asynchronous JavaScript to finish execution before throwing an error.

Scope:
suite
Property Name:
webDriverSessionScriptTimeout
Required:
No
Default Value:
30s
Command line arg:
-Dsuite.webDriverSessionScriptTimeout=...
Environment variable:
SUITE_WEBDRIVERSESSIONSCRIPTTIMEOUT=...

suite: webDriverSessionPageLoadTimeout

This parameter controls how much time to wait for a page load to complete before throwing an error.

Scope:
suite
Property Name:
webDriverSessionPageLoadTimeout
Required:
No
Default Value:
30s
Command line arg:
-Dsuite.webDriverSessionPageLoadTimeout=...
Environment variable:
SUITE_WEBDRIVERSESSIONPAGELOADTIMEOUT=...

suite: webDriverUseLocalFileDetector

The flag allowing file uploads functionality while working with browsers in the cloud.

Note: This parameter is only applicable when webDriverMode = cloud.

Scope:
suite
Property Name:
webDriverUseLocalFileDetector
Required:
No
Default Value:
true
Command line arg:
-Dsuite.webDriverUseLocalFileDetector=...
Environment variable:
SUITE_WEBDRIVERUSELOCALFILEDETECTOR=...

suite: webDriverWindowWidth

Default window width of the browser.

Scope:
suite
Property Name:
webDriverWindowWidth
Required:
No
Default Value:
1920
Command line arg:
-Dsuite.webDriverWindowWidth=...
Environment variable:
SUITE_WEBDRIVERWINDOWWIDTH=...

suite: webDriverWindowHeight

Default window height of the browser.

Scope:
suite
Property Name:
webDriverWindowHeight
Required:
No
Default Value:
1080
Command line arg:
-Dsuite.webDriverWindowHeight=...
Environment variable:
SUITE_WEBDRIVERWINDOWHEIGHT=...

suite: webDriverAcceptInsecureCerts

Allow browsers connecting to web-sites with insecure HTTPS certificates.

Scope:
suite
Property Name:
webDriverAcceptInsecureCerts
Required:
No
Default Value:
false
Command line arg:
-Dsuite.webDriverAcceptInsecureCerts=...
Environment variable:
SUITE_WEBDRIVERACCEPTINSECURECERTS=...

suite: webDriverHttpsUpgrades

Automatically and optimistically upgrade all main-frame navigations to HTTPS, with fast fallback to HTTP.
See more details.

Scope:
suite
Property Name:
webDriverHttpsUpgrades
Required:
No
Default Value:
true
Command line arg:
-Dsuite.webDriverHttpsUpgrades=...
Environment variable:
SUITE_WEBDRIVERHTTPSUPGRADES=...

suite: webDriverUserAgent

Customized user-agent string for the launched browser.

Scope:
suite
Property Name:
webDriverUserAgent
Required:
No
Default Value:
utilize default chrome user agent
Command line arg:
-Dsuite.webDriverUserAgent=...
Environment variable:
SUITE_WEBDRIVERUSERAGENT=...

suite: webDriverContentScript

JS content script to be injected on every page.

Scope:
suite
Property Name:
webDriverContentScript
Required:
No
Default Value:
no additional JS is injected by default
Command line arg:
-Dsuite.webDriverContentScript=...
Environment variable:
SUITE_WEBDRIVERCONTENTSCRIPT=...

suite: logWorkerID

All the suites are processed concurrently via multiple thread workers. Every thread worker has a dedicated ID.

This flag determines should the worker ID be logged as a part of every log item.

Scope:
suite
Property Name:
logWorkerID
Required:
No
Default Value:
false
Command line arg:
-Dsuite.logWorkerID=...
Environment variable:
SUITE_LOGWORKERID=...

suite: logSuiteInstanceID

A new suite instance ID is generated whenever a thread worker starts processing a test suite.

This flag determines should the suite instance ID be logged for all log items related to the processing of the suite instance.

Scope:
suite
Property Name:
logSuiteInstanceID
Required:
No
Default Value:
false
Command line arg:
-Dsuite.logSuiteInstanceID=...
Environment variable:
SUITE_LOGSUITEINSTANCEID=...

suite: logRemoteWebDriverSessionID

Should a selenium session-id be logged while processing a test suite?

Scope:
suite
Property Name:
logRemoteWebDriverSessionID
Required:
No
Default Value:
true
Command line arg:
-Dsuite.logRemoteWebDriverSessionID=...
Environment variable:
SUITE_LOGREMOTEWEBDRIVERSESSIONID=...

suite: logTransactionID

Should a transaction id be logged for every transaction in an active state?

Scope:
suite
Property Name:
logTransactionID
Required:
No
Default Value:
false
Command line arg:
-Dsuite.logTransactionID=...
Environment variable:
SUITE_LOGTRANSACTIONID=...

suite: logSteps

Should we log every step when it is executed by the load generator?

Scope:
suite
Property Name:
logSteps
Required:
No
Default Value:
false
Command line arg:
-Dsuite.logSteps=...
Environment variable:
SUITE_LOGSTEPS=...

suite: logActions

Should we log every action when it is executed by the load generator?

Scope:
suite
Property Name:
logActions
Required:
No
Default Value:
false
Command line arg:
-Dsuite.logActions=...
Environment variable:
SUITE_LOGACTIONS=...

suite: props

Props is an array of key-value pairs which can be referenced in the actions. Load generator automatically picks the next item from the array when it starts executing a new suite instance and preserves key-value pairs till the end of the suite instance.

Action can refer to a value from a key-values map using the following syntax: ${key_name}


Scope:
suite
Property Name:
props
Required:
No
Default Value:
N/A

suite: propsFile

Props is an array of key-value pairs which can be referenced in the actions.
Contradictory to props, where you specify values directly in the config, propsFile allows you to supply values stored in an external CSV file.
Load generator automatically picks the next row from CSV file when it starts executing a new suite instance and preserves key-value pairs till the end of the suite instance.

Action can refer to a value from a key-values map using the following syntax: ${key_name}

Example CSV file's data:

user_name password
user1@example.com user1Password
user2@example.com user2Password
user3@example.com user3Password
user4@example.com user4Password

Scope:
suite
Property Name:
propsFile
Required:
No
Default Value:
N/A
Command line arg:
-Dsuite.propsFile=...
Environment variable:
SUITE_PROPSFILE=...