diff --git a/404.html b/404.html index 211cdab..f980acb 100644 --- a/404.html +++ b/404.html @@ -1,5 +1,5 @@ 404 Page not found | Hyperfoil -

Not found

Oops! This page doesn't exist. Try going back to the home page.

diff --git a/blog/news/_print/index.html b/blog/news/_print/index.html index 7d11a40..37acf9f 100644 --- a/blog/news/_print/index.html +++ b/blog/news/_print/index.html @@ -1,5 +1,5 @@ News | Hyperfoil -

This is the multi-page printable view of this section. +

Beginner's Guide to Hyperfoil: part 3

In this article we’ll show how to run Hyperfoil inside an Openshift cluster, benchmarking workload within the same cluster.

In this article we’ll show how to run Hyperfoil inside an Openshift cluster, benchmarking workload within the same cluster. This assumes that you have sufficient privileges to install operators and create new namespaces (projects).

Demo workload

We will install Vehicle Market, our demo application we’ve used in the first article using console and Openshift Template.

Login into your cluster and run this:

# Fetch the default domain your cluster uses
 export DOMAIN=$(oc get ingresscontrollers.operator.openshift.io \
     -n openshift-ingress-operator default -o jsonpath='{ .status.domain }')
diff --git a/blog/news/index.html b/blog/news/index.html
index 7958a44..81f0557 100644
--- a/blog/news/index.html
+++ b/blog/news/index.html
@@ -1,10 +1,10 @@
 News | Hyperfoil
-
Posts in 2021
  • Beginner's Guide to Hyperfoil: part 3

    Tuesday, February 16, 2021 in News

    In this article we’ll show how to run Hyperfoil inside an Openshift cluster, benchmarking workload within the same cluster. This assumes that you have sufficient privileges to install operators and create new namespaces (projects). Demo …

    Read more

  • Beginner's Guide to Hyperfoil: part 2

    Tuesday, February 09, 2021 in News

    This article is intended to be published on other sites, too - therefore it contains introduction to concepts this blog’s readers are probably familiar with. In the previous part we’ve deployed our demo application (Vehicle Market) and …

    Read more

  • Beginner's Guide to Hyperfoil: part 1

    Monday, January 25, 2021 in News

    TLDR You’ll learn how to write a simple Hyperfoil benchmark and run it straight from the CLI. This article is intended to be published on other sites, too - therefore it contains introduction to concepts this blog’s readers are probably …

    Read more

Posts in 2020
  • Compensation for coordinated omission

    Wednesday, December 09, 2020 in News

    Results for closed-model tests show maximum throughput your SUT can achieve; the response times are skewed though due to the coordinated omission. There are still cases where you’d like to run in this mode and check the size of the error …

    Read more

  • Automatic follow of redirects

    Monday, November 16, 2020 in News

    Hyperfoil is trying to imitate how users will hit your site with requests as realistically as possible. Therefore it supports one of the browser features: redirections. diff --git a/blog/releases/_print/index.html b/blog/releases/_print/index.html index 72f0a35..13e7808 100644 --- a/blog/releases/_print/index.html +++ b/blog/releases/_print/index.html @@ -1,5 +1,5 @@ Releases | Hyperfoil -

    This is the multi-page printable view of this section. +

    This is the multi-page printable view of this section. Click here to print.

    Return to the regular view of this page.

    Releases

    Check out latest release updates

    1 - Release Notes

    Summary of the main features and/or fixes by release

    0.26 (2024-05-31)

    • Remove java.net.preferIPv4Stack=true
    • Disable automatic report opening with –silent option
    • Throw exception for misconfigured multi-host HTTP benchmark
    • Add agent property to configure the ssh key used
    • Set CPU Request in Benchmark
    • s390x: Define utf-8 encoding in compiler plugin
    • Dependecies upgrades, e.g., infinispan and vertx

    0.25.2 (2023-08-03)

    • Bug fix: Version command not working

    0.25.1 (2023-08-02)

    • Update dependencies

    0.25 (2023-06-28)

    • startWith: Delay feature
    • Enhancements
    • Bug fixes

    0.24.2 (2023-05-02)

    • Bug fix and enhancements

    0.24.1 (2023-02-02)

    • Return correct protocol
    • Validate wrk benchmark before running simulation

    0.24 (2022-12-15)

    • Initial support for Mac OS/x86_64
    • Fix serialization for Timestamp
    • Dependency updates

    0.23 (2022-10-31)

    • Fix for HTTP2 requests not flushing request body
    • Reimplemented randomCsvRow CSV parsing and quotes handling
    • Command upload in CLI/WebCLI now accepts URL

    0.22 (2022-09-19)

    • Fixes and output synchronization in wrk/wrk2 commands
    • Fixes for aarch-64
    • Formatting in timestamp step
    • When a template is missing referenced file CLI asks user to provide it
    • One-key switch for interactive statistics in CLI

    0.21 (2022-07-12)

    • Minor bugfix-only release.

    0.20 (2022-05-26)

    • Vert.x 4.3 and Infinispan 13 for clustering
    • Bugfixes in templating and documentation

    0.19 (2022-02-22)

    0.18 (2021-12-16)

    • New benchmark templating system: !param, !concat and !foreach
    • Mechanisms for storing global, agent-wide and thread-wide data
    • Improved error reporting and logging
    • HTTP endpoints can be referred to using a name rather than authority (host:port combination)
    • Custom SLAs: Tests that have external statistics can place SLAs on these.
    • Closed-model phases can be configured with .usersPerAgent and .usersPerThread
    • New actions for manipulating collections
    • New step and action for restarting current sequence
    • New action for marking request as invalid manually
    • Other utility processors and added properties on existings steps/actions
    • Fix various issues with statistics from auxiliary verticles.

    0.17 (2021-10-21)

    • More options for configuration of agent pods (resources, labels…) - courtesy of Stephen Connolly
    • Upgrade of Apache MINA

    0.16 (2021-06-11)

    • This release removes some code-bloat for extension developers, using reflection to scan the scenario:
      • Session variables do not need to be explicitly reserved in ResourceUtilizer.reserve() method.
      • Components owning another components do not have to propagate the resource resevation calls.
    • Automatic check for reading from a variable that’s never written to.
    • Controller can loads statistics from old runs (therefore CLI can show stats from runs before reboot)
      • Statistics from old runs are unloaded in order to prevent running out-of-memory in constrained environments.
    • Phases can now be marked with isWarmup: true - reporting can hide data from these phases by default
    • Agents deployed via SSH can set list of cpus on which to run (using taskset).
    • Self-checks for excessive CPU usage on agents, record CPU usage in each phase.
    • Various fixes and improvements in WebCLI.

    0.15 (2021-04-09)

    • Introduced statistics for connections (#connections by type, active connections and in-flight requests…)
    • New connection strategies: Open connections for each session/request
      • ergonomics.privatePools replaced by http.connectionStrategy
    • http.sharedConnections can be set using sub-properties core, max, buffer and keepAliveTime.
    • Dropped RequestProcessorBuilder and HttpRequestProcessorBuilder in favor of Processor.Builder
      • If the processor is used in an incompatible context it should cause a runtime error
    • POC support for Hot Rod protocol connecting to Infinispan clusters.
    • k8s deployer: agent labels and tolerations
    • Many improvements to WebCLI, notably automatic reconnect and plot command
    • Statistics rework: HTTP-related statistics are separated into extensions, some fields were dropped or renamed
      • Report schema changed to v3.0 to reflect this (+piggybacked agent address/name changes)
    • Upgrade to Vert.x 4.0

    0.14 (2021-02-22)

    • Significant refactoring of HTTP-related code into its own module
      • Programmatic configuration requires some changes but there were no changes for YAML definitions
    • Hyperfoil Controller now serves WebCLI at root path
      • OpenAPI definition moved to /openapi

    0.13 (2021-01-28)

    This is mostly a bugfix release with minor convenience improvements.

    • Run CLI in container simply using docker/podman run -it --rm --network=host quay.io/hyperfoil/hyperfoil cli

    0.12 (2020-12-16)

    • Hyperfoil now requires JDK 11
    • BREAKING CHANGE: extra files are now loaded relative to benchmark YAML file, not working directory
    • CLI improvements:
      • Upload benchmarks in text-mode (lower chance of serialization issues)
      • Ask for re-upload of extra files
      • inspect command to reveal detailed structure of the benchmark
    • Status 4xx and 5xx is not counted as error for purposes of SLA.errorRatio (use SLA.invalidRatio)
    • Hyperfoil controller can be exposed using HTTPS and offers Basic authentication scheme.
    • Mode with coordinated-omission compensation: see httpRequest.compensation.
    • Support for GZIP compression of responses: see httpRequest.compression.
    • New generator step: randomFile
    • Image build now can be done using podman

    0.11 (2020-11-18)

    • Fix a critical memory leak in the use of Netty’s direct buffers.
    • Fix problems in HTML redirect.

    0.10 (2020-11-13)

    • Explicit concurrency limits on sequences, e.g mySequence[6].
      • maxSequences on scenario is not used anymore.
    • Concurrent sequences have its own copy of each resource by default.
    • Reworked loop step.
    • Renamed simple recorder (processor) to store.
    • Step httpRequest now implements handler.followRedirect, automatically sending another request(s) upon 3xx status or <meta http-equiv=“refresh” …> in HTML.
    • HTTP 1.1 is now implemented without relying on Netty’s parser - saving allocations (HTTP 2.0 is still TODO).
    • Reworked ways to modify other parts of the benchmark from withing the builder (Locator).
    • Reduced need for boilerplate code in builders.
    • Many bugfixes and small improvements.

    0.9 (2020-05-28)

    This is a bugfix-release.

    0.8 (2020-04-24)

    • Renamed phase types:
      • constantPerSecconstantRate
      • rampPerSecincreasingRate/decreasingRate
    • Change meaning of SLA.blockedRatio: the value should be between 0 and 1 (inclusively) where 1 allows blocking without limits.
    • New SLA check invalidRatio.
    • 4xx and 5xx responses mark the request as invalid by default (configurable through ergonomics.autoRangeCheck).
    • When a response is marked as invalid session execution stops immediately (configurable through ergonomics.stopOnInvalid).
    • Implemented replace and delete operation in the json step and processor.
    • responseSizeRecorder replaced with transferSizeRecorder, calculating uploaded bytes as well.
    • Agents now host a default section where you can define common configuration.
    • Each agent can have different number of threads, using the threads property.
    • Report schema changed, now using schema http://hyperfoil.io/run-schema/v2.0

    0.7.1 (2020-02-26)

    Bugfix-only release.

    • Fixed threading model when using wrk command
    • Fixed HTTP parsing for rawBytesHandlers
    • Fixed stop used either as step or in a handler

    Please see git log for info about older releases.

    diff --git a/blog/releases/index.html b/blog/releases/index.html index 24f53bf..0f08e70 100644 --- a/blog/releases/index.html +++ b/blog/releases/index.html @@ -1,11 +1,11 @@ Releases | Hyperfoil -

    Releases

    Check out latest release updates

    Release Notes

    Summary of the main features and/or fixes by release

    +

    diff --git a/blog/releases/release_notes/index.html b/blog/releases/release_notes/index.html index 2149b02..4b6e77f 100644 --- a/blog/releases/release_notes/index.html +++ b/blog/releases/release_notes/index.html @@ -1,11 +1,11 @@ -Release Notes | Hyperfoil -

    Release Notes

    Summary of the main features and/or fixes by release

    0.26 (2024-05-31)

    • Remove java.net.preferIPv4Stack=true
    • Disable automatic report opening with –silent option
    • Throw exception for misconfigured multi-host HTTP benchmark
    • Add agent property to configure the ssh key used
    • Set CPU Request in Benchmark
    • s390x: Define utf-8 encoding in compiler plugin
    • Dependecies upgrades, e.g., infinispan and vertx

    0.25.2 (2023-08-03)

    • Bug fix: Version command not working

    0.25.1 (2023-08-02)

    • Update dependencies

    0.25 (2023-06-28)

    • startWith: Delay feature
    • Enhancements
    • Bug fixes

    0.24.2 (2023-05-02)

    • Bug fix and enhancements

    0.24.1 (2023-02-02)

    • Return correct protocol
    • Validate wrk benchmark before running simulation

    0.24 (2022-12-15)

    • Initial support for Mac OS/x86_64
    • Fix serialization for Timestamp
    • Dependency updates

    0.23 (2022-10-31)

    • Fix for HTTP2 requests not flushing request body
    • Reimplemented randomCsvRow CSV parsing and quotes handling
    • Command upload in CLI/WebCLI now accepts URL

    0.22 (2022-09-19)

    • Fixes and output synchronization in wrk/wrk2 commands
    • Fixes for aarch-64
    • Formatting in timestamp step
    • When a template is missing referenced file CLI asks user to provide it
    • One-key switch for interactive statistics in CLI

    0.21 (2022-07-12)

    • Minor bugfix-only release.

    0.20 (2022-05-26)

    • Vert.x 4.3 and Infinispan 13 for clustering
    • Bugfixes in templating and documentation

    0.19 (2022-02-22)

    0.18 (2021-12-16)

    • New benchmark templating system: !param, !concat and !foreach
    • Mechanisms for storing global, agent-wide and thread-wide data
    • Improved error reporting and logging
    • HTTP endpoints can be referred to using a name rather than authority (host:port combination)
    • Custom SLAs: Tests that have external statistics can place SLAs on these.
    • Closed-model phases can be configured with .usersPerAgent and .usersPerThread
    • New actions for manipulating collections
    • New step and action for restarting current sequence
    • New action for marking request as invalid manually
    • Other utility processors and added properties on existings steps/actions
    • Fix various issues with statistics from auxiliary verticles.

    0.17 (2021-10-21)

    • More options for configuration of agent pods (resources, labels…) - courtesy of Stephen Connolly
    • Upgrade of Apache MINA

    0.16 (2021-06-11)

    • This release removes some code-bloat for extension developers, using reflection to scan the scenario:
      • Session variables do not need to be explicitly reserved in ResourceUtilizer.reserve() method.
      • Components owning another components do not have to propagate the resource resevation calls.
    • Automatic check for reading from a variable that’s never written to.
    • Controller can loads statistics from old runs (therefore CLI can show stats from runs before reboot)
      • Statistics from old runs are unloaded in order to prevent running out-of-memory in constrained environments.
    • Phases can now be marked with isWarmup: true - reporting can hide data from these phases by default
    • Agents deployed via SSH can set list of cpus on which to run (using taskset).
    • Self-checks for excessive CPU usage on agents, record CPU usage in each phase.
    • Various fixes and improvements in WebCLI.

    0.15 (2021-04-09)

    • Introduced statistics for connections (#connections by type, active connections and in-flight requests…)
    • New connection strategies: Open connections for each session/request
      • ergonomics.privatePools replaced by http.connectionStrategy
    • http.sharedConnections can be set using sub-properties core, max, buffer and keepAliveTime.
    • Dropped RequestProcessorBuilder and HttpRequestProcessorBuilder in favor of Processor.Builder
      • If the processor is used in an incompatible context it should cause a runtime error
    • POC support for Hot Rod protocol connecting to Infinispan clusters.
    • k8s deployer: agent labels and tolerations
    • Many improvements to WebCLI, notably automatic reconnect and plot command
    • Statistics rework: HTTP-related statistics are separated into extensions, some fields were dropped or renamed
      • Report schema changed to v3.0 to reflect this (+piggybacked agent address/name changes)
    • Upgrade to Vert.x 4.0

    0.14 (2021-02-22)

    • Significant refactoring of HTTP-related code into its own module
      • Programmatic configuration requires some changes but there were no changes for YAML definitions
    • Hyperfoil Controller now serves WebCLI at root path
      • OpenAPI definition moved to /openapi

    0.13 (2021-01-28)

    This is mostly a bugfix release with minor convenience improvements.

    • Run CLI in container simply using docker/podman run -it --rm --network=host quay.io/hyperfoil/hyperfoil cli

    0.12 (2020-12-16)

    • Hyperfoil now requires JDK 11
    • BREAKING CHANGE: extra files are now loaded relative to benchmark YAML file, not working directory
    • CLI improvements:
      • Upload benchmarks in text-mode (lower chance of serialization issues)
      • Ask for re-upload of extra files
      • inspect command to reveal detailed structure of the benchmark
    • Status 4xx and 5xx is not counted as error for purposes of SLA.errorRatio (use SLA.invalidRatio)
    • Hyperfoil controller can be exposed using HTTPS and offers Basic authentication scheme.
    • Mode with coordinated-omission compensation: see httpRequest.compensation.
    • Support for GZIP compression of responses: see httpRequest.compression.
    • New generator step: randomFile
    • Image build now can be done using podman

    0.11 (2020-11-18)

    • Fix a critical memory leak in the use of Netty’s direct buffers.
    • Fix problems in HTML redirect.

    0.10 (2020-11-13)

    • Explicit concurrency limits on sequences, e.g mySequence[6].
      • maxSequences on scenario is not used anymore.
    • Concurrent sequences have its own copy of each resource by default.
    • Reworked loop step.
    • Renamed simple recorder (processor) to store.
    • Step httpRequest now implements handler.followRedirect, automatically sending another request(s) upon 3xx status or <meta http-equiv=“refresh” …> in HTML.
    • HTTP 1.1 is now implemented without relying on Netty’s parser - saving allocations (HTTP 2.0 is still TODO).
    • Reworked ways to modify other parts of the benchmark from withing the builder (Locator).
    • Reduced need for boilerplate code in builders.
    • Many bugfixes and small improvements.

    0.9 (2020-05-28)

    This is a bugfix-release.

    0.8 (2020-04-24)

    • Renamed phase types:
      • constantPerSecconstantRate
      • rampPerSecincreasingRate/decreasingRate
    • Change meaning of SLA.blockedRatio: the value should be between 0 and 1 (inclusively) where 1 allows blocking without limits.
    • New SLA check invalidRatio.
    • 4xx and 5xx responses mark the request as invalid by default (configurable through ergonomics.autoRangeCheck).
    • When a response is marked as invalid session execution stops immediately (configurable through ergonomics.stopOnInvalid).
    • Implemented replace and delete operation in the json step and processor.
    • responseSizeRecorder replaced with transferSizeRecorder, calculating uploaded bytes as well.
    • Agents now host a default section where you can define common configuration.
    • Each agent can have different number of threads, using the threads property.
    • Report schema changed, now using schema http://hyperfoil.io/run-schema/v2.0

    0.7.1 (2020-02-26)

    Bugfix-only release.

    • Fixed threading model when using wrk command
    • Fixed HTTP parsing for rawBytesHandlers
    • Fixed stop used either as step or in a handler

    Please see git log for info about older releases.

    +

    diff --git a/categories/actions/index.html b/categories/actions/index.html index 8758b9f..eea59ac 100644 --- a/categories/actions/index.html +++ b/categories/actions/index.html @@ -1,5 +1,5 @@ Actions | Hyperfoil -
    diff --git a/docs/getting-started/quickstart5/index.html b/docs/getting-started/quickstart5/index.html index 62024c4..cd23bc6 100644 --- a/docs/getting-started/quickstart5/index.html +++ b/docs/getting-started/quickstart5/index.html @@ -1,10 +1,10 @@ -Phases - advanced | Hyperfoil -

    Phases - advanced

    Delve into more advanced phase configuration

    Previous quickstart presented a benchmark with three phases that all started at the same moment (when the benchmark was started) and had the same duration - different phases represented different workflows (types of user). In this example we will adjust the benchmark to scale the load gradually up.

    At this point it would be useful to mention the lifecycle of phases; phase is in one of these states:

    • not started: As the name clearly says, the phase is not yet started.
    • running: The agent started running the phase, i.e., performing the configured load.
    • finished: When the duration elapses, no more new users are started. However, some might be still executing their scenarios.
    • terminated: When all users complete their scenarios the phase becomes terminated. Users may be forcibly interrupted by setting maxDuration on the phase.
    • cancelled If the benchmark cannot continue further, all remaining stages are cancelled.

    Let’s take a look into the example, where we’ll slowly (over 5 seconds) increase load to 10+5 users/sec, run with this load for 10 seconds, again increase it by another 10+5 users/sec and so forth until we reach 100+50 users per second. As we define maxIterations for these phases the benchmark will actually contain phases browsingUserRampUp/0, browsingUserRampUp/1, browsingUserRampUp/2 and so forth.

    name: eshop-scale
     http:
       host: http://localhost:8080
       sharedConnections: 80
    @@ -166,7 +166,7 @@
               weight: 1
               scenario: *buyingUser
     # Operator phase is omitted for brevity as we wouldn't scale that up

    This definition will create phases rampUp/0/browsingUser, rampUp/0/buyingUser, rampUp/1/browsingUser etc. - you’ll see them in statistics.

    You could orchestrate the phases as it suits you, using startAfter, startAfterStrict (this requires the referenced phase to me terminated instead of finished as with startAfter) or startTime with relative time since benchmark start.

    This sums up basic principles, in next quickstart you’ll see how to start and use Hyperfoil in distributed mode.

    -

    Last modified September 30, 2024: Fix Github website links (eb62dd6)

diff --git a/docs/getting-started/quickstart6/index.html b/docs/getting-started/quickstart6/index.html index e9d1cfb..4f85cea 100644 --- a/docs/getting-started/quickstart6/index.html +++ b/docs/getting-started/quickstart6/index.html @@ -1,10 +1,10 @@ -Running the server | Hyperfoil -

Running the server

Learn how to start the Hyperfoil server in standalone mode

Until now we have always started our benchmarks using an embedded controller in the CLI, using the start-local command. This spawns a server in the CLI JVM. CLI communicates with it using standard REST API, though the server port is randomized and listens on localhost only. All the benchmarks and run results are also stored in /tmp/hyperfoil/ - you can change the directory as an argument to the start-local command. While the embedded controller might be convenient for a quick test or when developing the scenario it’s not something that you’d use for a full-fledged benchmark.

When testing a reasonably performing system you need multiple nodes driving the load - we call them agents. These agents sync up, receive commands and report statistics to a master node, the controller. This node exposes a RESTful API to upload & start the benchmark, watch its progress and download results.

There are two other scripts in the bin/ directory:

  • standalone.sh starts both the controller and (one) agent in a single JVM. This is not too different from the controller embedded in CLI.
  • controller.sh starts clustered Vert.x and deploys the controller. Agents are started as needed in different nodes. You’ll see this in the next quickstart.

Also note that it is possible to run Hyperfoil in Openshift.

Open two terminals; in one terminal start the standalone server and in second terminal start the CLI.

bin/standalone.sh
 

and

bin/cli.sh
 

Then, let’s try to connect to the server (by default running on http://localhost:8090) and upload the single-request benchmark:

# This is the name of the benchmark. It's recommended to keep this in sync with
@@ -79,7 +79,7 @@
 Kill run 0002, benchmark eshop-scale(phases: 2 running, 0 finished, 40 terminated) [y/N]: y
 Killed.
 

In the next quickstart we will deal with starting clustered Hyperfoil.

-

Last modified September 30, 2024: Fix Github website links (eb62dd6)

diff --git a/docs/getting-started/quickstart7/index.html b/docs/getting-started/quickstart7/index.html index d3f492c..6dc2ae1 100644 --- a/docs/getting-started/quickstart7/index.html +++ b/docs/getting-started/quickstart7/index.html @@ -1,10 +1,10 @@ -Clustered mode | Hyperfoil -

Clustered mode

Learn how to start the Hyperfoil server in clustered mode

Previously we’ve learned to start Hyperfoil in standalone server mode, and to do some runs through CLI. In this quickstart we’ll see how to run your benchmark distributed to several agent nodes.

Hyperfoil operates as a cluster of Vert.x. When the benchmark is started, it deploys agents on other nodes according to the benchmark configuration - these are Vert.x nodes, too. Together controller and agents form a cluster and communicate over the event bus.

In this quickstart we’ll use the SSH deployer; make sure your machine has SSH server running on port 22 and you can login using your pubkey ~/.ssh/id_rsa. The SSH deployer copies the necessary JARs to /tmp/hyperfoil/agentlib/ and starts the agent there. For instructions to run Hyperfoil in Kubernetes or Openshift please consult the Installation docs.

When we were running in the standalone or local mode we did not have to set any agents in the benchmark definition. That changes now as we need to inform the controller where the agents should be deployed. Let’s see a benchmark - two-agents.hf.yaml that has those agents defined.

name: two-agents
 # List of agents the Controller should deploy
 agents:
   # This defines the agent using SSH connection to localhost, port 22
@@ -44,7 +44,7 @@
 main:
 	test:          106   3.12 ms   2.83 ms   3.23 ms  19.53 ms  25.30 ms  25.30 ms    106      0      0      0        0      0
 

You see that we did 106 requests which fits the assumption about running 10 user sessions per second over 10 seconds, while we have used 2 agents.

Vert.x clustering is using Infinispan and JGroups; depending on your networking setup it might not work out-of-the-box. If you experience any trouble, check out the FAQ.

Next quickstart will get back to the scenario definition; we’ll show you how to extend Hyperfoil with custom steps and handlers.

-

Last modified September 30, 2024: Fix Github website links (eb62dd6)

diff --git a/docs/getting-started/quickstart8/index.html b/docs/getting-started/quickstart8/index.html index 5bdf475..b843cf0 100644 --- a/docs/getting-started/quickstart8/index.html +++ b/docs/getting-started/quickstart8/index.html @@ -1,14 +1,14 @@ Custom components | Hyperfoil -

Custom components

Hyperfoil offers some basic steps to do HTTP requests, generate data, alter control flow in the scenario etc., but your needs may surpass the features implemented so far. Also, it might be just easier to express your logic in Java code than combining steps in the YAML. The downside is reduced ability to reuse and more tight dependency on Hyperfoil APIs.

This quickstart will show you how to extend Hyperfoil with custom steps and handlers. As we use the standard Java ServiceLoader approach, after you build the module you should drop it into extensions directory. (Note: if you upload the benchmarks through CLI you need to put it to both the machine where you run the CLI and to the controller.)

Each extension will consist of two classes:

  • Builder, is loaded as service and creates the immutable extension instance
  • extension (Step, Action or handler)

Let’s start with a io.hyperfoil.api.config.Step implementation. The interface has single method invoke(Session) that should return true if the step was executed and false if its execution has been blocked and should be retried later. In case that the execution is blocked the invocation must not have any side effects - e.g. if the step is fetching objects from some pools and one of the pools is depleted, it should release the already acquired objects back to the pool.

We’ll create a step that will divide variable from a session by a (configurable) constant and store the result in another variable.

Java

 public class DivideStep implements Step {
    // All fields in a step are immutable, any state must be stored in the Session
    private final ReadAccess fromVar;
@@ -140,7 +140,7 @@
 </settings>
 

you can use the short syntax for the generator:

mvn hyperfoil-codegen:skeleton -Dskeleton.name=....
 

See also further information about custom extensions development.


This is the last quickstart in this series; if you seek more info check out the documentation or talk to us on GitHub Discussions.

-

Last modified September 30, 2024: Fix Github website links (eb62dd6)

diff --git a/docs/howtos/_print/index.html b/docs/howtos/_print/index.html index dadb6c4..755e91f 100644 --- a/docs/howtos/_print/index.html +++ b/docs/howtos/_print/index.html @@ -1,6 +1,6 @@ How To | Hyperfoil -

This is the multi-page printable view of this section. -Click here to print.

Return to the regular view of this page.

How To

A collection of practical advices for common things in Hyperfoil

This section contains practical advices for common things you could want to use in a benchmark.

1 - Benchmark schema support

How to make your life easier while building your own benchmarks

For your convenience we recommend using editor with YAML validation against JSON schema; you can point your editor to docs/schema.json. We can recommend Visual Studio Code +

This is the multi-page printable view of this section. +Click here to print.

Return to the regular view of this page.

How To

A collection of practical advices for common things in Hyperfoil

This section contains practical advices for common things you could want to use in a benchmark.

1 - JSON schema support

How to make your life easier while building your own benchmarks

For your convenience we recommend using editor with YAML validation against JSON schema; you can point your editor to docs/schema.json. We can recommend Visual Studio Code with redhat.vscode-yaml plugin.

You need to edit settings file to map benchmark configuration files (with .hf.yaml extension) to the schema, adding:

"yaml.schemas" : {
     "file:///path/to/hyperfoil-distribution/docs/schema.json" : "/*.hf.yaml"
 },
@@ -150,7 +150,52 @@
 use-cookie        after-login            34.48 req/s         1  3.69 ms  3.70 ms  3.70 ms  3.70 ms  3.70 ms  3.70 ms         0       0     0 ns    1    0    0    0      0
 use-cookie        before-login           34.48 req/s         1  9.60 ms  9.63 ms  9.63 ms  9.63 ms  9.63 ms  9.63 ms         0       0     0 ns    0    0    1    0      0
 use-cookie        login-with-form        34.48 req/s         1  4.96 ms  4.98 ms  4.98 ms  4.98 ms  4.98 ms  4.98 ms         0       0     0 ns    1    0    0    0      0
-

The list of possibilities is endless; if your use case does not fit any of the above please check out the reference. You can also have a look at a full example in the second part of the Beginner’s Guide.

The list of possibilities is endless; if your use case does not fit any of the above please check out the reference. You can also have a look at a full example in the second part of the Beginner’s Guide.

3 - Hyperfoil run script

How to quickly run Hyperfoil benchmarks

Starting from release 0.27, Hyperfoil includes an easy-to-use script that simplifies running benchmarks, allowing users to try tests faster when in-vm controller server is acceptable.

This script is particularly beneficial when you need to quickly test, validate or refine your benchmark +definitions, ensuring they run as expected without needing to manually orchestrate the controller and +agent processes. It also enables seamless integration into automation scripts or CI/CD pipelines, where +you can configure benchmarks to run as part of routine testing, with results saved for further analysis. +By simplifying the benchmark execution process, this script accelerates your workflow and allows for +more streamlined performance testing with Hyperfoil.

Key features

  • In-vm controller: The script launches an in-VM Hyperfoil controller, so there’s no need for users to +set up or manage an external controller.

  • Benchmark upload & execution: Once the controller is running, the script automatically uploads the +benchmark you provide and triggers its execution. This minimizes manual setup, allowing users to +focus on their test scenarios.

  • No CLI interactions: Running the script does not require any CLI interaction, making this scipt +suitable for further automation.

  • Automatic report generation: By adding the --output <path-to-dir> option, the script will generate +and save an HTML report of the test results in the specified directory, making it easy to review +performance data immediately after the benchmark completes.

Usage

The syntax of this script is basically a superset of the run command, where the main argument is not the name of the benchmark but the benchmark file itself.

Usage: run [<options>] <benchmark>
+Load and start a benchmark on Hyperfoil controller server, the argument can be the benchmark definition directly.
+
+Options:
+  -o, --output         Output destination path for the HTML report
+  --print-stack-trace
+  -d, --description    Run description
+  -P, --param          Parameters in case the benchmark is a template. Can be set multiple times. Use `-PFOO=` to set the parameter to empty value and `-PFOO` to remove it and use default if available.
+  -E, --empty-params   Template parameters that should be set to empty string.
+  -r, --reset-params   Reset all parameters in context.
+
+Argument:
+                     Benchmark filename.
+

From the unzipped Hyperfoil distribution, you can simply run the script using the following format:

./distribution/bin/run.sh [-o OUTPUT_DIR] [-PPARAM1=.. -PPARAM2=..] BENCHMARK_FILE
+

For instance:

./distribution/bin/run.sh -o /tmp/reports /tmp/first-benchmark.yml
+

A valid output will be something like:

$ ./distribution/target/distribution/bin/run.sh -o /tmp/reports /tmp/first-benchmark.yml
+
+Loaded benchmark first-benchmark, uploading...
+... done.
+Started run 0021
+Monitoring run 0021, benchmark first-benchmark
+Started:    2024/09/30 19:19:38.689
+Terminated: 2024/09/30 19:19:49.532
+Report written to /tmp/reports/0021.html
+

Alternatively you could also run the same directly using the Hyperfoil docker image:

docker run -it -v /tmp/benchmark/:/benchmarks:Z -v /tmp/reports:/tmp/reports:rw,Z -it --network=host quay.io/hyperfoil/hyperfoil run -o /tmp/reports /benchmarks/first-benchmark.yml
+

and the output will be the same:

$ docker run -it -v /tmp/benchmarks/:/benchmarks:Z -v /tmp/reports:/tmp/reports:rw,Z -it --network=host quay.io/hyperfoil/hyperfoil run -o /tmp/reports /benchmarks/first-benchmark.yml
+
+Loaded benchmark first-benchmark, uploading...
+... done.
+Started run 0000
+Monitoring run 0000, benchmark first-benchmark
+Started:    2024/09/30 17:21:22.484
+Terminated: 2024/09/30 17:21:32.490
+Report written to /tmp/reports/0000.html
+
diff --git a/docs/howtos/credentials/index.html b/docs/howtos/credentials/index.html index 13e5d47..237913f 100644 --- a/docs/howtos/credentials/index.html +++ b/docs/howtos/credentials/index.html @@ -1,10 +1,10 @@ -Using credentials | Hyperfoil -

Using credentials

Hyperfoil benchmarks can refer to external files. When you use the upload command in CLI the files are automatically attached the the benchmark YAML (relative paths are resolved relative to this file). Later on when editing the file you can choose to re-upload some of these. Once the benchmark is built the files are loaded to the in-memory representation - Hyperfoil won’t access these files during runtime. With clustered benchmarks these files don’t need to be on the agents either - the controller sends serialized in-memory representation to the agents and that contains everything needed for the actual execution.

When testing a workload you will likely skip user registration and come with a list of username+password keys. A convenient way is to keep these in a CSV file that looks like

"johny","my-5ec12eT_pwd!"
 "bob","superlongpassphrasethatnobodywillguess"
 

We will create a step that selects a random line from such file and stores it in session variables username and password:

- randomCsvRow:
     file: credentials.csv # Path relative to the benchmark
@@ -148,7 +148,7 @@
 use-cookie        before-login           34.48 req/s         1  9.60 ms  9.63 ms  9.63 ms  9.63 ms  9.63 ms  9.63 ms         0       0     0 ns    0    0    1    0      0
 use-cookie        login-with-form        34.48 req/s         1  4.96 ms  4.98 ms  4.98 ms  4.98 ms  4.98 ms  4.98 ms         0       0     0 ns    1    0    0    0      0
 

The list of possibilities is endless; if your use case does not fit any of the above please check out the reference. You can also have a look at a full example in the second part of the Beginner’s Guide.

-

Last modified September 30, 2024: Fix Github website links (eb62dd6)

diff --git a/docs/howtos/editor/index.html b/docs/howtos/editor/index.html index 69de0cd..6102b0d 100644 --- a/docs/howtos/editor/index.html +++ b/docs/howtos/editor/index.html @@ -1,10 +1,10 @@ -Benchmark schema support | Hyperfoil -

JSON schema support

How to make your life easier while building your own benchmarks

For your convenience we recommend using editor with YAML validation against JSON schema; you can point your editor to docs/schema.json. We can recommend Visual Studio Code with redhat.vscode-yaml plugin.

You need to edit settings file to map benchmark configuration files (with .hf.yaml extension) to the schema, adding:

"yaml.schemas" : {
     "file:///path/to/hyperfoil-distribution/docs/schema.json" : "/*.hf.yaml"
 },
@@ -12,7 +12,7 @@
     "https://hyperfoil.io/schema.json" : "/*.hf.yaml"
 },
 
-

Last modified September 30, 2024: Fix Github website links (eb62dd6)

diff --git a/docs/howtos/index.html b/docs/howtos/index.html index cc8f7a1..6a77e8f 100644 --- a/docs/howtos/index.html +++ b/docs/howtos/index.html @@ -1,11 +1,11 @@ How To | Hyperfoil -

How To

A collection of practical advices for common things in Hyperfoil

This section contains practical advices for common things you could want to use in a benchmark.


JSON schema support

How to make your life easier while building your own benchmarks

Using credentials

Hyperfoil run script

How to quickly run Hyperfoil benchmarks

+

diff --git a/docs/howtos/index.xml b/docs/howtos/index.xml index 21333ab..0f23db3 100644 --- a/docs/howtos/index.xml +++ b/docs/howtos/index.xml @@ -1,4 +1,5 @@ -How To on Hyperfoilhttps://hyperfoil.io/docs/howtos/Recent content in How To on HyperfoilHugo -- gohugo.ioenBenchmark schema supporthttps://hyperfoil.io/docs/howtos/editor/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/howtos/editor/For your convenience we recommend using editor with YAML validation against JSON schema; you can point your editor to docs/schema.json. We can recommend Visual Studio Code with redhat.vscode-yaml plugin. +How To on Hyperfoilhttps://hyperfoil.io/docs/howtos/Recent content in How To on HyperfoilHugo -- gohugo.ioenJSON schema supporthttps://hyperfoil.io/docs/howtos/editor/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/howtos/editor/For your convenience we recommend using editor with YAML validation against JSON schema; you can point your editor to docs/schema.json. We can recommend Visual Studio Code with redhat.vscode-yaml plugin. You need to edit settings file to map benchmark configuration files (with .hf.yaml extension) to the schema, adding: &#34;yaml.schemas&#34; : { &#34;file:///path/to/hyperfoil-distribution/docs/schema.json&#34; : &#34;/*.hf.yaml&#34; }, Note that you can also directly point to the hosted JSON schema definition: -&#34;yaml.schemas&#34; : { &#34;https://hyperfoil.Using credentialshttps://hyperfoil.io/docs/howtos/credentials/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/howtos/credentials/Hyperfoil benchmarks can refer to external files. When you use the upload command in CLI the files are automatically attached the the benchmark YAML (relative paths are resolved relative to this file). Later on when editing the file you can choose to re-upload some of these. Once the benchmark is built the files are loaded to the in-memory representation - Hyperfoil won&rsquo;t access these files during runtime. With clustered benchmarks these files don&rsquo;t need to be on the agents either - the controller sends serialized in-memory representation to the agents and that contains everything needed for the actual execution. \ No newline at end of file +&#34;yaml.schemas&#34; : { &#34;https://hyperfoil.Using credentialshttps://hyperfoil.io/docs/howtos/credentials/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/howtos/credentials/Hyperfoil benchmarks can refer to external files. When you use the upload command in CLI the files are automatically attached the the benchmark YAML (relative paths are resolved relative to this file). Later on when editing the file you can choose to re-upload some of these. Once the benchmark is built the files are loaded to the in-memory representation - Hyperfoil won&rsquo;t access these files during runtime. With clustered benchmarks these files don&rsquo;t need to be on the agents either - the controller sends serialized in-memory representation to the agents and that contains everything needed for the actual execution.Hyperfoil run scripthttps://hyperfoil.io/docs/howtos/run_scripts/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/howtos/run_scripts/Starting from release 0.27, Hyperfoil includes an easy-to-use script that simplifies running benchmarks, allowing users to try tests faster when in-vm controller server is acceptable. +This script is particularly beneficial when you need to quickly test, validate or refine your benchmark definitions, ensuring they run as expected without needing to manually orchestrate the controller and agent processes. It also enables seamless integration into automation scripts or CI/CD pipelines, where you can configure benchmarks to run as part of routine testing, with results saved for further analysis. \ No newline at end of file diff --git a/docs/howtos/run_scripts/index.html b/docs/howtos/run_scripts/index.html new file mode 100644 index 0000000..b33da53 --- /dev/null +++ b/docs/howtos/run_scripts/index.html @@ -0,0 +1,57 @@ +Hyperfoil run script | Hyperfoil +

Hyperfoil run script

How to quickly run Hyperfoil benchmarks

Starting from release 0.27, Hyperfoil includes an easy-to-use script that simplifies running benchmarks, allowing users to try tests faster when in-vm controller server is acceptable.

This script is particularly beneficial when you need to quickly test, validate or refine your benchmark +definitions, ensuring they run as expected without needing to manually orchestrate the controller and +agent processes. It also enables seamless integration into automation scripts or CI/CD pipelines, where +you can configure benchmarks to run as part of routine testing, with results saved for further analysis. +By simplifying the benchmark execution process, this script accelerates your workflow and allows for +more streamlined performance testing with Hyperfoil.

Key features

  • In-vm controller: The script launches an in-VM Hyperfoil controller, so there’s no need for users to +set up or manage an external controller.

  • Benchmark upload & execution: Once the controller is running, the script automatically uploads the +benchmark you provide and triggers its execution. This minimizes manual setup, allowing users to +focus on their test scenarios.

  • No CLI interactions: Running the script does not require any CLI interaction, making this scipt +suitable for further automation.

  • Automatic report generation: By adding the --output <path-to-dir> option, the script will generate +and save an HTML report of the test results in the specified directory, making it easy to review +performance data immediately after the benchmark completes.

Usage

The syntax of this script is basically a superset of the run command, where the main argument is not the name of the benchmark but the benchmark file itself.

Usage: run [<options>] <benchmark>
+Load and start a benchmark on Hyperfoil controller server, the argument can be the benchmark definition directly.
+
+Options:
+  -o, --output         Output destination path for the HTML report
+  --print-stack-trace
+  -d, --description    Run description
+  -P, --param          Parameters in case the benchmark is a template. Can be set multiple times. Use `-PFOO=` to set the parameter to empty value and `-PFOO` to remove it and use default if available.
+  -E, --empty-params   Template parameters that should be set to empty string.
+  -r, --reset-params   Reset all parameters in context.
+
+Argument:
+                     Benchmark filename.
+

From the unzipped Hyperfoil distribution, you can simply run the script using the following format:

./distribution/bin/run.sh [-o OUTPUT_DIR] [-PPARAM1=.. -PPARAM2=..] BENCHMARK_FILE
+

For instance:

./distribution/bin/run.sh -o /tmp/reports /tmp/first-benchmark.yml
+

A valid output will be something like:

$ ./distribution/target/distribution/bin/run.sh -o /tmp/reports /tmp/first-benchmark.yml
+
+Loaded benchmark first-benchmark, uploading...
+... done.
+Started run 0021
+Monitoring run 0021, benchmark first-benchmark
+Started:    2024/09/30 19:19:38.689
+Terminated: 2024/09/30 19:19:49.532
+Report written to /tmp/reports/0021.html
+

Alternatively you could also run the same directly using the Hyperfoil docker image:

docker run -it -v /tmp/benchmark/:/benchmarks:Z -v /tmp/reports:/tmp/reports:rw,Z -it --network=host quay.io/hyperfoil/hyperfoil run -o /tmp/reports /benchmarks/first-benchmark.yml
+

and the output will be the same:

$ docker run -it -v /tmp/benchmarks/:/benchmarks:Z -v /tmp/reports:/tmp/reports:rw,Z -it --network=host quay.io/hyperfoil/hyperfoil run -o /tmp/reports /benchmarks/first-benchmark.yml
+
+Loaded benchmark first-benchmark, uploading...
+... done.
+Started run 0000
+Monitoring run 0000, benchmark first-benchmark
+Started:    2024/09/30 17:21:22.484
+Terminated: 2024/09/30 17:21:32.490
+Report written to /tmp/reports/0000.html
+
+

+ + \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 131c3e4..b54fc4c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,11 +1,11 @@ Documentation | Hyperfoil -

Documentation

Here you can find an exhaustive documentation for the Hyperfoil tool, let’s start!


Overview

Generic overview on the Hyperfoil tool

Getting Started

Collection of quickstarts aiming to make the Hyperfoil adoption a lot easier.

User Guide

Comprehensive set of resourcs for everything you need to get started with Hyperfoil

How To

A collection of practical advices for common things in Hyperfoil

Migration

Set of guides to migrate from other tools to Hyperfoil

Reference

List of all possible steps and handlers that can be used for the benchmark development

Extensions

How to develop your own extensions

Controller API

OpenAPI 3 specification of the Hyperfoil controller

Architecture

Deep dive into the Hyperfoil architecture

+

diff --git a/docs/migration/_print/index.html b/docs/migration/_print/index.html index a06c00a..1b54e57 100644 --- a/docs/migration/_print/index.html +++ b/docs/migration/_print/index.html @@ -1,5 +1,5 @@ Migration | Hyperfoil -

This is the multi-page printable view of this section. +

This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Migration

Set of guides to migrate from other tools to Hyperfoil

This section includes some guides to make the migration from other benchmarking tools easier.

1 - Migrating from wrk/wrk2

How and why should I migrate from wrk/wrk2 to Hyperfoil?

Both Will Glozer’s wrk and Gil Tene’s wrk2 are great tools but maybe you’ve realized that you need more functionalities, need to hit more endpoints in parallel or simply have to scale horizontally to more nodes. Hyperfoil offers an adapter that tries to mimic the behaviour of these load drivers. This guide will show how to use these and translate the test into a full-fledged Hyperfoil benchmark.

Let’s start with this command:

./wrk -c 10 -t 2 -d 10s -H 'accept: application/json' http://example.com
 

that will produce something like:

Running 10s test @ http://example.com
   2 threads and 10 connections
diff --git a/docs/migration/index.html b/docs/migration/index.html
index 59034da..6e6cf3c 100644
--- a/docs/migration/index.html
+++ b/docs/migration/index.html
@@ -1,11 +1,11 @@
 Migration | Hyperfoil
-

Migration

Set of guides to migrate from other tools to Hyperfoil

This section includes some guides to make the migration from other benchmarking tools easier.


Migrating from wrk/wrk2

How and why should I migrate from wrk/wrk2 to Hyperfoil?

+

diff --git a/docs/migration/wrk/index.html b/docs/migration/wrk/index.html index 58c9ffc..542e896 100644 --- a/docs/migration/wrk/index.html +++ b/docs/migration/wrk/index.html @@ -1,10 +1,10 @@ -Migrating from wrk/wrk2 | Hyperfoil -

Migrating from wrk/wrk2

How and why should I migrate from wrk/wrk2 to Hyperfoil?

Both Will Glozer’s wrk and Gil Tene’s wrk2 are great tools but maybe you’ve realized that you need more functionalities, need to hit more endpoints in parallel or simply have to scale horizontally to more nodes. Hyperfoil offers an adapter that tries to mimic the behaviour of these load drivers. This guide will show how to use these and translate the test into a full-fledged Hyperfoil benchmark.

Let’s start with this command:

./wrk -c 10 -t 2 -d 10s -H 'accept: application/json' http://example.com
 

that will produce something like:

Running 10s test @ http://example.com
   2 threads and 10 connections
   Thread Stats   Avg      Stdev     Max   +/- Stdev
@@ -89,7 +89,7 @@
       duration: 10s # option -d
       # ...
 

Hopefully this gives you some headstart and you can get familiar with Hyperfoil before diving into the details of benchmark syntax.

-

Last modified September 30, 2024: Fix Github website links (eb62dd6)

diff --git a/docs/overview/_print/index.html b/docs/overview/_print/index.html index 55d347d..1ec2779 100644 --- a/docs/overview/_print/index.html +++ b/docs/overview/_print/index.html @@ -1,5 +1,5 @@ Overview | Hyperfoil -

This is the multi-page printable view of this section. +

This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Overview

Generic overview on the Hyperfoil tool

There’s plenty of web benchmark tools around and it might be hard to pick one, and investing time into not-established tools is risky. Hyperfoil was not created for the pure joy of coding but as a solution to set of problems which could not be solved all by single other existing tool.

Free software

Free software allows you to take your benchmark and publish it for everyone to verify. With proprietary licenses that wouldn’t be so easy.

Hyperfoil is licensed under Apache License 2.0.

Distribution

Generating load with single node stops scaling at certain point and you need to orchestrate the benchmark across a cluster of nodes. Simple command-line tools usually ignore this completely (you’re supposed to start them, gather and merge the data in a bash scripts). Other tools use open-core model with the clustering part being a paid/proprietary option. There are frameworks that have clustering built in as well.

Hyperfoil uses leader-follower model with Vert.x Event bus as the clustering middleware. While running from single VM is possible (and quite easy) as well, the design is distributed by default.

Accuracy

The point of web benchmark is usually finding out what happens when your system is accessed by thousands of concurrent users - each doing a page load every few seconds. However many traditional load drivers simplify the scenario to few dozen of virtual users (VUs) that execute one request after another or with very short delays in between - this is referred to as the Closed System Model (as the set of VUs is finite). This discrepancy leads to problem known as coordinated omission and results in significantly skewed latency results and pathological conditions (queues overflow…) not being triggered.

Hyperfoil embraces Open System Model by default - virtual users are completely independent until it runs out of resources, recording that situation in consequence. Hyperfoil runs a state-machine for each VU and all requests are executed asynchronously.

Versatility

While you can design your benchmark to just hit single endpoint (URL) with desired rate this is likely not what the users would be doing. Randomizing some parts of the query or looping through a list of endpoint might be better but the resulting scenario might be still too simplified.

Hyperfoil introduces a DSL expressed in YAML with which you can sketch the scenario in a fine detail, including timing, concurrent requests, processing responses and so forth. We’re not trying to invent a new programming language, though, so if the DSL gets too complex you can write the logic in Java or any other JVM language.


If you’re eager to try out Hyperfoil go to the first quickstart. Otherwise let’s have a deeper look into the terms and concepts.

1 - Concepts

Hyperfoil key terms and concepts

This document explains some core terms used throughout the documentation.

Controller and agents

While it is possible to run benchmarks directly from CLI, in its nature Hyperfoil is a distributed tool with leader-follower architecture. Controller has the leader role; this is a Vert.x-based server with REST API. When a benchmark is started controller deploys agents (according to the benchmark definition), pushes the benchmark definition to these agents and orchestrates benchmark phases. Agents execute the benchmark, periodically sending statistics to the controller. This way the controller can combine and evaluate statistics from all agents on the fly. When the benchmark is completed all agents terminate.

All communication between the controller and agents happens over Vert.x eventbus - therefore it is independent on the deployment type.

Phases

Conceptually the benchmark consists of several phases. Phases can run independently of each other; these simulate certain load executed by a group of users (e.g. visitors vs. admins). Within one phase all users execute the same scenario (e.g. logging into the system, selling all their stock and then logging off).

Phases are also using for scaling the load during the benchmark; when looking for maximum throughput you schedule several iterations of given phase, gradually increasing the number of users that run the scenario.

A phase can be in one of these states:

  • not running (scheduled)
  • running
  • finished: users won’t start new scenarios but we’ll let already-started users complete the scenario
  • terminated: all users are done, all stats are collected and no further requests will be made

The state of phase on every agent is managed by Controller; this is also the finest grained unit of work it understands (controller has no information about state of each user).

Sessions

The state of each user’s scenario is saved in the session; sometimes we speak about (re)starting sessions instead of starting new users. Hyperfoil tries to keep allocations during benchmark as low as possible and therefore it pre-allocates all memory for the scenario execution ahead. This is why all resources the benchmark uses are capped - it needs to know the sizes of pools.

It is also necessary to know how many sessions we should preallocate - maximum concurrency of the system. If this threshold is exceeded Hyperfoil allocates further session as needed, but this is not the optimal mode of operation. It means that either you’ve underestimated the resources need or you’ve put a load on the system that it can’t handle anymore, requests are not being completed and scenarios are not finished - which means that session objects cannot be recycled for reuse by next user.

Scenario

Scenario consists of one or more sequences that are composed of steps. Steps are similar to statements in programming language and sequences are an equivalent of blocks of code.

While most of the time the scenario will consist of sequential operations as the user is not multi-tasking, the browser (or other system you’re simulating) actually executes some operations in parallel - e.g. during page load it loads images concurrently. Therefore at any time the session contains one or more active sequence instances; when all sequence instances are done, the session has finished and can be recycled for a new user. Most of the time the scenario will start with only one active instance and as it progresses, it might create instances of other sequences (e.g after evaluating a condition it creates a sequence instance according to the branching logic).

2 - FAQ

Frequently Asked Questions

Why is Hyperfoil written in Java?

People are often concerned about JVM performance or predictability. While nowadays JVM is very good in the sense of throughput, dealing with jitter can be challenging. We are Java engineers, though, and we believe that these issues can be mitigated with a right design. That’s why we try to be very careful on the execution hot-path.

We could achieve even better properties with C/C++, but the development effectivity would suffer. We could be succesful in Go, but we’re not as intimate with its internals. Other languages and frameworks would pose its own challenges. So far, the choice of Java was not found to be a limiting factor.

Why are you inventing your own YAML-based DSL instead of using Javascipt/Lua/…?

While some people might be more comfortable with describing their complex scenarios in a familiar language, running a script execution engine would have impact on performance and could put us out of control. We are not trying to invent a new language, written in YAML structure. Instead we propose a set of components common to many scenarios that could be recombined as it suits you. If you ever feel that the YAML is becoming cumbersome, try to move your complex benchmark logic to Java code and use it that way, instead.

I just want to know what is the maximum throughput!

Maximum throughput is a single number which makes comparison very easy. Was my code change for better or worse? However finding the sweet spot is not as simple as throwing in few hundred concurrent threads running one request after another and taking the readings. With too high concurrency you can get worse results due to contention and longer queues, so you need to try different concurrency levels anyway.

There’s nothing wrong with this type of test as long as you know what you’re doing, and that the response latencies might be far off reality. It’s actually very good test when you look only for regressions - and Hyperfoil supports that, too.

Hyperfoil is so hard to set up, I’ll just use …

Some tools can be run from the shell, with everything set just through options and arguments. That is quite handy for a quick test - and if the tool is sufficient for the job, use it. Or you can try runnning the same through Hyperfoil - e.g. for wrk/wrk2 we offer a facade (CLI command wrk or bin/wrk.sh) that creates a benchmark with the same behaviour but you also get all the detailed results as from any other run - see the migration guide. Once that your requirements outgrow what’s possible in these simple tools, you can embrace the full power of benchmark composition.

What does that ‘Exceeded session limit’ error mean?

With open-model phase types (constantRate, increasingRate, decreasingRate) the concurrency should not be limited. However as Hyperfoil tries not to allocate any memory during the benchmark we need to reserve space ahead for all sessions that could run concurrently - we call this the session limit. By default this limit is equal to number of users per second (assuming that the scenario won’t take more than 1 second).

When you get the ‘Exceeded session limit’ error this means that some of the requests took a long time (or you have delays as part of the scenario) and Hyperfoil ran out of session pool. In that case you can change the limit using maxSessions property on the phase to the expected maximum concurrency. E.g. if you expect that the scenario will take 3 seconds and you’re running at usersPerSec: 100 you should set maxSessions: 300 (or rather more to give it a buffer for unexpected jitter).

If increasing the limit doesn’t help it usually means that the load at the tested system is too high and the responses are not arriving as fast as you fire the requests. In that case you should lower the load.

diff --git a/docs/overview/faq/index.html b/docs/overview/faq/index.html index 6a633ef..9ff71a0 100644 --- a/docs/overview/faq/index.html +++ b/docs/overview/faq/index.html @@ -1,11 +1,11 @@ -FAQ | Hyperfoil -

FAQ

Frequently Asked Questions

Why is Hyperfoil written in Java?

People are often concerned about JVM performance or predictability. While nowadays JVM is very good in the sense of throughput, dealing with jitter can be challenging. We are Java engineers, though, and we believe that these issues can be mitigated with a right design. That’s why we try to be very careful on the execution hot-path.

We could achieve even better properties with C/C++, but the development effectivity would suffer. We could be succesful in Go, but we’re not as intimate with its internals. Other languages and frameworks would pose its own challenges. So far, the choice of Java was not found to be a limiting factor.

Why are you inventing your own YAML-based DSL instead of using Javascipt/Lua/…?

While some people might be more comfortable with describing their complex scenarios in a familiar language, running a script execution engine would have impact on performance and could put us out of control. We are not trying to invent a new language, written in YAML structure. Instead we propose a set of components common to many scenarios that could be recombined as it suits you. If you ever feel that the YAML is becoming cumbersome, try to move your complex benchmark logic to Java code and use it that way, instead.

I just want to know what is the maximum throughput!

Maximum throughput is a single number which makes comparison very easy. Was my code change for better or worse? However finding the sweet spot is not as simple as throwing in few hundred concurrent threads running one request after another and taking the readings. With too high concurrency you can get worse results due to contention and longer queues, so you need to try different concurrency levels anyway.

There’s nothing wrong with this type of test as long as you know what you’re doing, and that the response latencies might be far off reality. It’s actually very good test when you look only for regressions - and Hyperfoil supports that, too.

Hyperfoil is so hard to set up, I’ll just use …

Some tools can be run from the shell, with everything set just through options and arguments. That is quite handy for a quick test - and if the tool is sufficient for the job, use it. Or you can try runnning the same through Hyperfoil - e.g. for wrk/wrk2 we offer a facade (CLI command wrk or bin/wrk.sh) that creates a benchmark with the same behaviour but you also get all the detailed results as from any other run - see the migration guide. Once that your requirements outgrow what’s possible in these simple tools, you can embrace the full power of benchmark composition.

What does that ‘Exceeded session limit’ error mean?

With open-model phase types (constantRate, increasingRate, decreasingRate) the concurrency should not be limited. However as Hyperfoil tries not to allocate any memory during the benchmark we need to reserve space ahead for all sessions that could run concurrently - we call this the session limit. By default this limit is equal to number of users per second (assuming that the scenario won’t take more than 1 second).

When you get the ‘Exceeded session limit’ error this means that some of the requests took a long time (or you have delays as part of the scenario) and Hyperfoil ran out of session pool. In that case you can change the limit using maxSessions property on the phase to the expected maximum concurrency. E.g. if you expect that the scenario will take 3 seconds and you’re running at usersPerSec: 100 you should set maxSessions: 300 (or rather more to give it a buffer for unexpected jitter).

If increasing the limit doesn’t help it usually means that the load at the tested system is too high and the responses are not arriving as fast as you fire the requests. In that case you should lower the load.

+

diff --git a/docs/overview/index.html b/docs/overview/index.html index 4b347d7..7016885 100644 --- a/docs/overview/index.html +++ b/docs/overview/index.html @@ -1,11 +1,11 @@ Overview | Hyperfoil -

Overview

Generic overview on the Hyperfoil tool

There’s plenty of web benchmark tools around and it might be hard to pick one, and investing time into not-established tools is risky. Hyperfoil was not created for the pure joy of coding but as a solution to set of problems which could not be solved all by single other existing tool.

Free software

Free software allows you to take your benchmark and publish it for everyone to verify. With proprietary licenses that wouldn’t be so easy.

Hyperfoil is licensed under Apache License 2.0.

Distribution

Generating load with single node stops scaling at certain point and you need to orchestrate the benchmark across a cluster of nodes. Simple command-line tools usually ignore this completely (you’re supposed to start them, gather and merge the data in a bash scripts). Other tools use open-core model with the clustering part being a paid/proprietary option. There are frameworks that have clustering built in as well.

Hyperfoil uses leader-follower model with Vert.x Event bus as the clustering middleware. While running from single VM is possible (and quite easy) as well, the design is distributed by default.

Accuracy

The point of web benchmark is usually finding out what happens when your system is accessed by thousands of concurrent users - each doing a page load every few seconds. However many traditional load drivers simplify the scenario to few dozen of virtual users (VUs) that execute one request after another or with very short delays in between - this is referred to as the Closed System Model (as the set of VUs is finite). This discrepancy leads to problem known as coordinated omission and results in significantly skewed latency results and pathological conditions (queues overflow…) not being triggered.

Hyperfoil embraces Open System Model by default - virtual users are completely independent until it runs out of resources, recording that situation in consequence. Hyperfoil runs a state-machine for each VU and all requests are executed asynchronously.

Versatility

While you can design your benchmark to just hit single endpoint (URL) with desired rate this is likely not what the users would be doing. Randomizing some parts of the query or looping through a list of endpoint might be better but the resulting scenario might be still too simplified.

Hyperfoil introduces a DSL expressed in YAML with which you can sketch the scenario in a fine detail, including timing, concurrent requests, processing responses and so forth. We’re not trying to invent a new programming language, though, so if the DSL gets too complex you can write the logic in Java or any other JVM language.


If you’re eager to try out Hyperfoil go to the first quickstart. Otherwise let’s have a deeper look into the terms and concepts.


Concepts

Hyperfoil key terms and concepts

FAQ

Frequently Asked Questions

+

diff --git a/docs/reference/_print/index.html b/docs/reference/_print/index.html index 6bea8bb..41c1dcf 100644 --- a/docs/reference/_print/index.html +++ b/docs/reference/_print/index.html @@ -1,11 +1,11 @@ Reference | Hyperfoil -

This is the multi-page printable view of this section. +

This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Reference

List of all possible steps and handlers that can be used for the benchmark development

Before exploring this reference you should be familiar with the basic structure of a benchmark. If you’re not sure what is the difference between the phase, scenario and sequence check out the concepts in user guide.

This reference lists all the steps and handlers used in a scenario. The lists below are not finite; you can also easily develop and use your own components, but Hyperfoil provides generic components for the most common tasks out of the box.

There are few generic types of components:

This documentation is auto-generated from Javadoc in source code, explaining format for each key-value pair in benchmark YAML. If there is an issue with these docs (e.g. property showing no description) please file an issue on GitHub.

This is the basic structure of the docs:


EXAMPLE

Example description.

PropertyTypeDescription
KeyClassExplanation for the value

YAML syntax

EXAMPLE:
   Key: Value
 

For example, the POST definition in httpRequest step looks like this:


POST

Generic builder for generating a string.

PropertyTypeDescription
fromVarStringLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

YAML syntax

POST:
   pattern: /user/${userId}/info
 

You might be wondering why the documentation above does not mention anything about issuing a HTTP request. In fact the top-level POST property httpRequest says “Issue HTTP POST request to given path.” but the POST() method returns a generic string builder; this generic builder is used as the path for the HTTP request with POST method.

If the ’type’ is not a scalar value, the key in ‘property’ works as a link to further property mapping. It’s also possible that the property has multiple options, e.g. accepting both property mapping and list of values.

For brevity some components have inline definition like this:


SET

Set variable in session to certain value.

Inline definition
Use var <- value.

YAML syntax

set: myVar <- "This is my value"
-

 

Hyperfoil defines automatically generated JSON schema for the benchmark; you can use that in Visual Studio Code to automatically check the YAML syntax.

1 - Steps

Steps are the basic building blocks that form each sequence of a scenario, similar to statements in a programming language. Steps are potentially blocking (the sequence cannot continue with next step until previous one finishes).

Note that every action can be also used as a step that simply never blocks, as actions do not require any extra input.

1.1 - addItem

Appends value to an array stored in another variable.

Appends value to an array stored in another variable.

PropertyTypeDescription
fromVarStringFetch value from session variable.
toVarStringDestination variable with the array.
valueStringVerbatim value.

1.2 - addToInt

Add value to integer variable in the session.

Add value to integer variable in the session.

Inline definition
Accepting one of: var++, var–, var += value, var -= value.
PropertyTypeDescription
orElseSetTointIf the variable is currently not set, set it to this value instead of addition.
valueintValue added (can be negative).
varStringVariable name.

1.3 - addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

Adds value to a counter shared by all sessions in the same executor.

Inline definition
Use on of: counter++, counter–, counter += <value>,
counter -= <value>
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
operatorenumOperation to perform on the counter. Default is ADD.
Options:
  • ADD
  • SUBTRACT
valueintValue (integer).

1.4 - awaitAllResponses

Block current sequence until all requests receive the response.

Block current sequence until all requests receive the response.

1.5 - awaitDelay

Block this sequence until referenced delay point.

Block this sequence until referenced delay point.

Inline definition
Delay point created in scheduleDelay.key.
PropertyTypeDescription
keyStringDelay point created in scheduleDelay.key.

1.6 - awaitInt

Block current sequence until condition becomes true.

Block current sequence until condition becomes true.

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.
varStringVariable name storing the compared value.

equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

1.7 - awaitVar

Block current sequence until this variable gets set/unset.

Block current sequence until this variable gets set/unset.

Inline definition
Variable name or !variable if we are waiting for it to be unset.
PropertyTypeDescription
varStringVariable name or !variable if we are waiting for it to be unset.

1.8 - breakIfFinished

Stop execution of current sequence if the phase is in finished state.

Stop execution of current sequence if the phase is in finished state.

This is useful for a long-running (looping) sequence that should not extend the duration of its phase.

1.9 - breakSequence

Prematurely stops execution of this sequence if the condition is satisfied.

Prematurely stops execution of this sequence if the condition is satisfied.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
dependencyStringThis step is blocked if this variable does not have set value (none by default).
intConditionBuilderCondition comparing integer variables.
onBreakAction.BuilderAction performed when the condition is true and the sequence is to be ended.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

1.10 - clearHttpCache

Drops all entries from HTTP cache in the session.

Drops all entries from HTTP cache in the session.

1.11 - conditional

Perform an action or sequence of actions conditionally.

Perform an action or sequence of actions conditionally.

PropertyTypeDescription
actionsAction.BuilderActions that should be executed should the condition hold.
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

1.12 - fail

Fail the phase with given message. Used mostly for testing/debugging.

Fail the phase with given message. Used mostly for testing/debugging.

Inline definition
Message to fail with (unconditionally).
PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
messageStringMessage attached to the failure exception.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

1.13 - foreach

Instantiate new sequences based on array variable content.

Instantiate new sequences based on array variable content.

PropertyTypeDescription
counterVarStringVariable to be set to the number of created sequences (optional).
dependencyStringThis step is blocked if this variable does not have set value (none by default).
fromVarStringVariable holding the array.
sequenceStringName of the instantiated sequence.

1.14 - getIndex

Lookup index of an item in an array/collection.

Lookup index of an item in an array/collection.

PropertyTypeDescription
collectionStringVariable to fetch the collection from.
itemBuilderItem that should be looked up (using equality).
toVarStringInteger variable to store the index, or -1 if the item is not found.

item

Inline definition
Verbatim value.
PropertyTypeDescription
fromVarStringFetch value from session variable.
valueStringVerbatim value.

1.15 - getItem

Retrieves n-th item from an array or collection.

Retrieves n-th item from an array or collection.

PropertyTypeDescription
fromVarStringSource variable with an array or list.
indexBuilderSource for index into the array/list.
toVarStringDestination variable for the n-th element.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

1.16 - getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.
If the value exceeds allowed integer range (-2^31 .. 2^31 - 1) it is capped.

Inline definition
Both the key and variable name.
PropertyTypeDescription
keyStringIdentifier for the counter.
toVarStringSession variable for storing the value.

1.17 - getSize

Calculates size of an array/collection held in variable into another variable

Calculates size of an array/collection held in variable into another variable

PropertyTypeDescription
boolFilterBuilderCount only items matching the condition.
fromVarStringVariable holding the collection.
intFilterBuilderCount only items matching the condition.
stringFilterBuilderCount only items matching the condition.
toVarStringVariable storing the size.
undefinedValueintValue to use when fromVar is unset or it does not contain any array/collection.

boolFilter

PropertyTypeDescription
valuebooleanExpected value.

intFilter

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intFilter.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringFilter.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringFilter.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

1.18 - hotrodRequest

Issues a HotRod request and registers handlers for the response.

Issues a HotRod request and registers handlers for the response.

PropertyTypeDescription
cacheNameStringName of the cache used for the operation. This can be a pattern.
cacheName (alternative)Builder<no description>
getStringGet specified entry in the remote cache.
keyStringKey used for the operation. This can be a pattern.
key (alternative)Builder<no description>
metricStringRequests statistics will use this metric name.
metric (alternative)<list of strings>Allows categorizing request statistics into metrics based on the request path.
operationenum
Options:
  • PUTAdds or overrides each specified entry in the remote cache.
  • GETGet specified entry in the remote cache.
putStringAdds or overrides each specified entry in the remote cache.
valueStringValue for the operation. This can be a pattern.
value (alternative)Builder<no description>

cacheName

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

key

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

metric

Allows categorizing request statistics into metrics based on the request path.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

value

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

1.19 - httpRequest

Issues a HTTP request and registers handlers for the response.

Issues a HTTP request and registers handlers for the response.

PropertyTypeDescription
authorityStringHTTP authority (host:port) this request should target. Must match one of the entries in http section. The string can use string interpolation.
authority (alternative)BuilderHTTP authority (host:port) this request should target. Must match one of the entries in http section.
bodyBuilderHTTP request body.
body (alternative)StringHTTP request body (possibly a pattern).
compensationBuilderConfigures additional metric compensated for coordinated omission.
compressionBuilderConfigure response compression.
compression (alternative)StringRequest server to respond with compressed entity using specified content encoding.
CONNECTStringIssue HTTP CONNECT request to given path. This can be a pattern.
CONNECT (alternative)BuilderIssue HTTP CONNECT request to given path.
DELETEStringIssue HTTP DELETE request to given path. This can be a pattern.
DELETE (alternative)BuilderIssue HTTP DELETE request to given path.
endpointBuilderHTTP endpoint this request should target. Must match to the name of the entries in http section.
GETStringIssue HTTP GET request to given path. This can be a pattern.
GET (alternative)BuilderIssue HTTP GET request to given path.
handlerBuilderHTTP response handlers.
HEADStringIssue HTTP HEAD request to given path. This can be a pattern.
HEAD (alternative)BuilderIssue HTTP HEAD request to given path.
headersBuilderHTTP headers sent in the request.
methodenumHTTP method used for the request.
Options:
  • GET
  • HEAD
  • POST
  • PUT
  • DELETE
  • OPTIONS
  • PATCH
  • TRACE
  • CONNECT
metricStringRequests statistics will use this metric name.
metric (alternative)<list of strings>Allows categorizing request statistics into metrics based on the request path.
OPTIONSStringIssue HTTP OPTIONS request to given path. This can be a pattern.
OPTIONS (alternative)BuilderIssue HTTP OPTIONS request to given path.
PATCHStringIssue HTTP PATCH request to given path. This can be a pattern.
PATCH (alternative)BuilderIssue HTTP PATCH request to given path.
pathStringHTTP path (absolute or relative), including query and fragment. The string can use string interpolation.
path (alternative)BuilderHTTP path (absolute or relative), including query and fragment.
POSTStringIssue HTTP POST request to given path. This can be a pattern.
POST (alternative)BuilderIssue HTTP POST request to given path.
PUTStringIssue HTTP PUT request to given path. This can be a pattern.
PUT (alternative)BuilderIssue HTTP PUT request to given path.
slaBuilderList of SLAs the requests are subject to.
syncbooleanThis request is synchronous; execution of the sequence does not continue until the full response is received. If this step is executed from multiple parallel instances of this sequence the progress of all sequences is blocked until there is a request in flight without response.

Default is true.

timeoutStringRequest timeout - after this time the request will be marked as failed and connection will be closed.

Defaults to value set globally in http section.

TRACEStringIssue HTTP TRACE request to given path. This can be a pattern.
TRACE (alternative)BuilderIssue HTTP TRACE request to given path.

authority

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

body

Allows building HTTP request body from session variables.

PropertyTypeDescription
formBuilderBuild form as if we were sending the request using HTML form. This option automatically adds Content-Type: application/x-www-form-urlencoded to the request headers.
fromFileStringSend contents of the file. Note that this method does NOT set content-type automatically.
fromVarStringUse variable content as request body.
patternStringPattern replacing ${sessionvar} with variable contents in a string.
textStringString sent as-is.

body.form

PropertyTypeDescription
<list of mappings><list of builders>Add input pair described in the mapping.

body.form.<list of mappings>

Form element (e.g. as if coming from an INPUT field).

PropertyTypeDescription
fromVarStringInput field value from session variable.
nameStringInput field name.
patternStringInput field value replacing session variables in a pattern, e.g. foo${myvariable}var
valueStringInput field value (verbatim).

compensation

PropertyTypeDescription
metricStringMetric name for the compensated results.
metric (alternative)<list of strings>Configure a custom metric for the compensated results.
targetRatedoubleDesired rate of new virtual users per second. This is similar to constantRate.usersPerSec phase settings but works closer to legacy benchmark drivers by fixing the concurrency.
targetRate (alternative)BuilderDesired rate of new virtual users per second. This is similar to constantRate.usersPerSec phase settings but works closer to legacy benchmark drivers by fixing the concurrency.

compensation.metric

Configure a custom metric for the compensated results.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

compensation.targetRate

PropertyTypeDescription
basedoubleBase value used for first iteration.
incrementdoubleValue by which the base value is incremented for each (but the very first) iteration.

compression

PropertyTypeDescription
encodingStringEncoding used for Accept-Encoding/TE header. The only currently supported is gzip.
typeenumType of compression (resource vs. transfer based).
Options:
  • CONTENT_ENCODINGUse Accept-Encoding in request and expect Content-Encoding in response.
  • TRANSFER_ENCODINGUse TE in request and expect Transfer-Encoding in response.

CONNECT

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

DELETE

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

endpoint

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

GET

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

handler

Manages processing of HTTP responses.

PropertyTypeDescription
autoRangeCheckbooleanInject status handler that marks the request as invalid on status 4xx or 5xx. Default value depends on ergonomics.autoRangeCheck (see User Guide).
bodyProcessor.BuilderHandle HTTP response body.
followRedirectenumAutomatically fire requests when the server responds with redirection. Default value depends on ergonomics.followRedirect (see User Guide).
Options:
  • NEVERDo not insert any automatic redirection handling.
  • LOCATION_ONLYRedirect only upon status 3xx accompanied with a ’location’ header. Status, headers, body and completions handlers are suppressed in this case (only raw-bytes handlers are still running). This is the default option.
  • HTML_ONLYHandle only HTML response with META refresh header. Status, headers and body handlers are invoked both on the original response and on the response from subsequent requests. Completion handlers are suppressed on this request and invoked after the last response arrives (in case of multiple redirections).
  • ALWAYSImplement both status 3xx + location and HTML redirects.
headerHeaderHandler.BuilderHandle HTTP response headers.
onCompletionAction.BuilderAction executed when the HTTP response is fully received.
rawBytesRawBytesHandler.BuilderHandler processing HTTP response before parsing.
statusStatusHandler.BuilderHandle HTTP response status.
stopOnInvalidbooleanInject completion handler that will stop the session if the request has been marked as invalid. Default value depends on ergonomics.stopOnInvalid (see User Guide).

handler.header

Handle HTTP response headers.

PropertyTypeDescription
conditionalConditionalHeaderHandler.BuilderPasses the headers to nested handler if the condition holds. Note that the condition may be evaluated multiple times and therefore any nested handlers should not change the results of the condition.
countHeadersCountHeadersHandler.BuilderStores number of occurences of each header in custom statistics (these can be displayed in CLI using the stats -c command).
filterFilterHeaderHandler.BuilderCompares if the header name matches expression and invokes a processor with the value.
logInvalidLogInvalidHandler.HeaderHandlerBuilderLogs headers from requests marked as invalid.
recordHeaderTimeRecordHeaderTimeHandler.BuilderRecords alternative metric based on values from a header (e.g. when a proxy reports processing time).

handler.header.conditional

Passes the headers to nested handler if the condition holds. Note that the condition may be evaluated multiple times and therefore any nested handlers should not change the results of the condition.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
handlerHeaderHandler.BuilderOne or more header handlers that should be invoked.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

handler.header.conditional.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

handler.header.conditional.allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

handler.header.conditional.allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

handler.header.conditional.allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

handler.header.conditional.allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.conditional.allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

handler.header.conditional.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

handler.header.conditional.handler

One or more header handlers that should be invoked.

PropertyTypeDescription
conditionalConditionalHeaderHandler.BuilderPasses the headers to nested handler if the condition holds. Note that the condition may be evaluated multiple times and therefore any nested handlers should not change the results of the condition.
countHeadersCountHeadersHandler.BuilderStores number of occurences of each header in custom statistics (these can be displayed in CLI using the stats -c command).
filterFilterHeaderHandler.BuilderCompares if the header name matches expression and invokes a processor with the value.
logInvalidLogInvalidHandler.HeaderHandlerBuilderLogs headers from requests marked as invalid.
recordHeaderTimeRecordHeaderTimeHandler.BuilderRecords alternative metric based on values from a header (e.g. when a proxy reports processing time).

handler.header.conditional.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.conditional.intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

handler.header.conditional.stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.conditional.stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.filter

Compares if the header name matches expression and invokes a processor with the value.

PropertyTypeDescription
headerBuilderCondition on the header name.
processorProcessor.BuilderAdd one or more processors.

handler.header.filter.header

Inline definition
Literal value the string should match.
PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

handler.header.filter.header.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.recordHeaderTime

Records alternative metric based on values from a header (e.g. when a proxy reports processing time).

PropertyTypeDescription
headerStringHeader carrying the time.
metricStringName of the created metric.
unitStringTime unit in the header; use either ms or ns.

handler.rawBytes

Handler processing HTTP response before parsing.

PropertyTypeDescription
transferSizeRecorderTransferSizeRecorder.BuilderAccumulates request and response sizes into custom metrics.

handler.rawBytes.transferSizeRecorder

Accumulates request and response sizes into custom metrics.

PropertyTypeDescription
keyStringName of the custom metric for collecting request/response bytes.

handler.status

Handle HTTP response status.

PropertyTypeDescription
actionActionStatusHandler.BuilderPerform certain actions when the status falls into a range.
counterStatusToCounterHandler.BuilderCounts how many times given status is received.
multiplexMultiplexStatusHandler.BuilderMultiplexes the status based on range into different status handlers.
rangeRangeStatusValidator.BuilderMarks requests that don’t fall into the desired range as invalid.
statsStatusToStatsHandler.BuilderRecords number of occurrences of each status counts into custom statistics (these can be displayed in CLI using stats -c).
storeStoreStatusHandler.BuilderStores the status into session variable.

handler.status.action

Perform certain actions when the status falls into a range.

PropertyTypeDescription
<any>BuilderPerform a sequence of actions if the range matches. Use range as the key and action in the mapping. Possible values of the status should be separated by commas (,). Ranges can be set using low-high (inclusive) (e.g. 200-299), or replacing lower digits with ‘x’ (e.g. 2xx).

handler.status.counter

Counts how many times given status is received.

PropertyTypeDescription
addintNumber to be added to the session variable.
expectStatusintExpected status (others are ignored). All status codes match by default.
initintInitial value for the session variable.
setintDo not accumulate (add), just set the variable to this value.
varStringVariable name.

handler.status.multiplex

Multiplexes the status based on range into different status handlers.

PropertyTypeDescription
<any>BuilderRun another handler if the range matches. Use range as the key and another status handler in the mapping. Possible values of the status should be separated by commas (,). Ranges can be set using low-high (inclusive) (e.g. 200-299), or replacing lower digits with ‘x’ (e.g. 2xx).

handler.status.multiplex.<any>

Run another handler if the range matches. Use range as the key and another status handler in the mapping. Possible values of the status should be separated by commas (,). Ranges can be set using low-high (inclusive) (e.g. 200-299), or replacing lower digits with ‘x’ (e.g. 2xx).

PropertyTypeDescription
actionActionStatusHandler.BuilderPerform certain actions when the status falls into a range.
counterStatusToCounterHandler.BuilderCounts how many times given status is received.
multiplexMultiplexStatusHandler.BuilderMultiplexes the status based on range into different status handlers.
rangeRangeStatusValidator.BuilderMarks requests that don’t fall into the desired range as invalid.
statsStatusToStatsHandler.BuilderRecords number of occurrences of each status counts into custom statistics (these can be displayed in CLI using stats -c).
storeStoreStatusHandler.BuilderStores the status into session variable.

handler.status.range

Marks requests that don’t fall into the desired range as invalid.

Inline definition
Single status code (204), masked code (2xx) or range (200-399).
PropertyTypeDescription
maxintHighest accepted status code.
minintLowest accepted status code.

handler.status.store

Stores the status into session variable.

Inline definition
Variable name.
PropertyTypeDescription
toVarObjectVariable name.

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

headers

PropertyTypeDescription
<any>StringUse header name (e.g. Content-Type) as key and value (possibly a pattern).
<any> (alternative)BuilderUse header name (e.g. Content-Type) as key and specify value in the mapping.

headers.<any>

Specifies value that should be sent in headers.

Inline definition
The value. This can be a pattern.
PropertyTypeDescription
fromVarStringLoad header value from session variable.
patternStringLoad header value using a pattern.

metric

Allows categorizing request statistics into metrics based on the request path.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

OPTIONS

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

PATCH

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

path

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

POST

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

PUT

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

sla

Defines a list of Service Level Agreements (SLAs) - conditions that must hold for benchmark to be deemed successful.

PropertyTypeDescription
<list of mappings><list of builders>One or more SLA configurations.

sla.<list of mappings>

Defines a Service Level Agreement (SLA) - conditions that must hold for benchmark to be deemed successful.

PropertyTypeDescription
blockedRatiodoubleMaximum allowed ratio of time spent waiting for usable connection to sum of response latencies and blocked time. Default is 0 - client must not be blocked. Set to 1 if the client can block without limits.
errorRatiodoubleMaximum allowed ratio of errors: connection failures or resets, timeouts and internal errors. Valid values are 0.0 - 1.0 (inclusive). Note: 4xx and 5xx statuses are NOT considered errors for this SLA parameter. Use invalidRatio for that.
invalidRatiodoubleMaximum allowed ratio of requests with responses marked as invalid. Valid values are 0.0 - 1.0 (inclusive). Note: With default settings 4xx and 5xx statuses are considered invalid. Check out ergonomics.autoRangeCheck or httpRequest.handler.autoRangeCheck to change this.
limitsBuilderPercentile limits.
meanResponseTimeStringMaximum allowed mean (average) response time. Use suffix ns, us, ms or s to specify units.
windowStringPeriod over which the stats should be collected. By default the SLA applies to stats from whole phase.

sla.<list of mappings>.limits

Percentile limits.

PropertyTypeDescription
<any>StringUse percentile (value between 0.0 and 1.0) as key and response time with unit (e.g. ms) in suffix as value.

TRACE

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

1.20 - json

Parse JSON in variable into another variable.

Parse JSON in variable into another variable.

PropertyTypeDescription
deletebooleanIf this is set to true, the selected key will be deleted from the JSON and the modified JSON will be passed to the processor.
formatenumConversion to apply on the matching parts with ’toVar’ or ’toArray’ shortcuts.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
fromVarStringVariable to load JSON from.
processorProcessor.BuilderAdd one or more processors.
queryStringQuery selecting the part of JSON.
replaceTransformer.BuilderCustom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.
replace (alternative)StringReplace value of selected item with value generated through a pattern. Note that the result must contain quotes and be correctly escaped.
toArrayStringShortcut to store selected parts in an array in the session. Must follow the pattern variable[maxSize]
toVarStringShortcut to store first match in given variable. Further matches are ignored.
unquotebooleanAutomatically unquote and unescape the input values. By default true.

replace

Custom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.

PropertyTypeDescription
actionsActionsTransformer.BuilderThis transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.
patternPattern.TransformerBuilderUse pattern replacing session variables.

replace.actions

This transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.

PropertyTypeDescription
actionsAction.BuilderActions to be executed.
formatenumFormat into which should this transformer convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
patternStringPattern to use when fetching the transformed value.
varStringVariable used as the intermediate storage for the data.

replace.pattern

Use pattern replacing session variables.

Inline definition
The pattern formatting string.
PropertyTypeDescription
patternStringUse pattern replacing session variables.

1.21 - log

Log a message and variable values.

Log a message and variable values.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
messageStringMessage format pattern. Use string interpolation for variables.

1.22 - loop

Repeats a set of steps fixed number of times.

Repeats a set of steps fixed number of times.

This step is supposed to be inserted as the first step of a sequence and the counterVar should not be set during the first invocation.

Before the loop the counterVar is initialized to zero, and in each after the last step in the steps sequence the counter is incremented. If the result is lesser than repeats this sequence is restarted from the beginning (this is also why the step must be the first step in the sequence).

It is legal to place steps after the looped steps.

Example:

scenario:
+

 

Hyperfoil defines automatically generated JSON schema for the benchmark; you can use that in Visual Studio Code to automatically check the YAML syntax.

1 - Steps

Steps are the basic building blocks that form each sequence of a scenario, similar to statements in a programming language. Steps are potentially blocking (the sequence cannot continue with next step until previous one finishes).

Note that every action can be also used as a step that simply never blocks, as actions do not require any extra input.

1.1 - addItem

Appends value to an array stored in another variable.

Appends value to an array stored in another variable.

PropertyTypeDescription
fromVarStringFetch value from session variable.
toVarStringDestination variable with the array.
valueStringVerbatim value.

1.2 - addToInt

Add value to integer variable in the session.

Add value to integer variable in the session.

Inline definition
Accepting one of: var++, var–, var += value,
var -= value.
PropertyTypeDescription
orElseSetTointIf the variable is currently not set, set it to this value instead of addition.
valueintValue added (can be negative).
varStringVariable name.

1.3 - addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

Adds value to a counter shared by all sessions in the same executor.

Inline definition
Use on of: counter++, counter–, counter += <value>,
counter -= <value>
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
operatorenumOperation to perform on the counter. Default is ADD.
Options:
  • ADD
  • SUBTRACT
valueintValue (integer).

1.4 - awaitAllResponses

Block current sequence until all requests receive the response.

Block current sequence until all requests receive the response.

1.5 - awaitDelay

Block this sequence until referenced delay point.

Block this sequence until referenced delay point.

Inline definition
Delay point created in scheduleDelay.key.
PropertyTypeDescription
keyStringDelay point created in scheduleDelay.key.

1.6 - awaitInt

Block current sequence until condition becomes true.

Block current sequence until condition becomes true.

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.
varStringVariable name storing the compared value.

equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

1.7 - awaitVar

Block current sequence until this variable gets set/unset.

Block current sequence until this variable gets set/unset.

Inline definition
Variable name or !variable if we are waiting for it to be unset.
PropertyTypeDescription
varStringVariable name or !variable if we are waiting for it to be unset.

1.8 - breakIfFinished

Stop execution of current sequence if the phase is in finished state.

Stop execution of current sequence if the phase is in finished state.

This is useful for a long-running (looping) sequence that should not extend the duration of its phase.

1.9 - breakSequence

Prematurely stops execution of this sequence if the condition is satisfied.

Prematurely stops execution of this sequence if the condition is satisfied.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
dependencyStringThis step is blocked if this variable does not have set value (none by default).
intConditionBuilderCondition comparing integer variables.
onBreakAction.BuilderAction performed when the condition is true and the sequence is to be ended.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

1.10 - clearHttpCache

Drops all entries from HTTP cache in the session.

Drops all entries from HTTP cache in the session.

1.11 - conditional

Perform an action or sequence of actions conditionally.

Perform an action or sequence of actions conditionally.

PropertyTypeDescription
actionsAction.BuilderActions that should be executed should the condition hold.
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

1.12 - fail

Fail the phase with given message. Used mostly for testing/debugging.

Fail the phase with given message. Used mostly for testing/debugging.

Inline definition
Message to fail with (unconditionally).
PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
messageStringMessage attached to the failure exception.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

1.13 - foreach

Instantiate new sequences based on array variable content.

Instantiate new sequences based on array variable content.

PropertyTypeDescription
counterVarStringVariable to be set to the number of created sequences (optional).
dependencyStringThis step is blocked if this variable does not have set value (none by default).
fromVarStringVariable holding the array.
sequenceStringName of the instantiated sequence.

1.14 - getIndex

Lookup index of an item in an array/collection.

Lookup index of an item in an array/collection.

PropertyTypeDescription
collectionStringVariable to fetch the collection from.
itemBuilderItem that should be looked up (using equality).
toVarStringInteger variable to store the index, or -1 if the item is not found.

item

Inline definition
Verbatim value.
PropertyTypeDescription
fromVarStringFetch value from session variable.
valueStringVerbatim value.

1.15 - getItem

Retrieves n-th item from an array or collection.

Retrieves n-th item from an array or collection.

PropertyTypeDescription
fromVarStringSource variable with an array or list.
indexBuilderSource for index into the array/list.
toVarStringDestination variable for the n-th element.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

1.16 - getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.
If the value exceeds allowed integer range (-2^31 .. 2^31 - 1) it is capped.

Inline definition
Both the key and variable name.
PropertyTypeDescription
keyStringIdentifier for the counter.
toVarStringSession variable for storing the value.

1.17 - getSize

Calculates size of an array/collection held in variable into another variable

Calculates size of an array/collection held in variable into another variable

PropertyTypeDescription
boolFilterBuilderCount only items matching the condition.
fromVarStringVariable holding the collection.
intFilterBuilderCount only items matching the condition.
stringFilterBuilderCount only items matching the condition.
toVarStringVariable storing the size.
undefinedValueintValue to use when fromVar is unset or it does not contain any array/collection.

boolFilter

PropertyTypeDescription
valuebooleanExpected value.

intFilter

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intFilter.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringFilter.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringFilter.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

1.18 - hotrodRequest

Issues a HotRod request and registers handlers for the response.

Issues a HotRod request and registers handlers for the response.

PropertyTypeDescription
cacheNameStringName of the cache used for the operation. This can be a pattern.
cacheName (alternative)Builder<no description>
getStringGet specified entry in the remote cache.
keyStringKey used for the operation. This can be a pattern.
key (alternative)Builder<no description>
metricStringRequests statistics will use this metric name.
metric (alternative)<list of strings>Allows categorizing request statistics into metrics based on the request path.
operationenum
Options:
  • PUTAdds or overrides each specified entry in the remote cache.
  • GETGet specified entry in the remote cache.
putStringAdds or overrides each specified entry in the remote cache.
valueStringValue for the operation. This can be a pattern.
value (alternative)Builder<no description>

cacheName

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

key

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

metric

Allows categorizing request statistics into metrics based on the request path.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

value

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

1.19 - httpRequest

Issues a HTTP request and registers handlers for the response.

Issues a HTTP request and registers handlers for the response.

PropertyTypeDescription
authorityStringHTTP authority (host:port) this request should target. Must match one of the entries in http section. The string can use string interpolation.
authority (alternative)BuilderHTTP authority (host:port) this request should target. Must match one of the entries in http section.
bodyBuilderHTTP request body.
body (alternative)StringHTTP request body (possibly a pattern).
compensationBuilderConfigures additional metric compensated for coordinated omission.
compressionBuilderConfigure response compression.
compression (alternative)StringRequest server to respond with compressed entity using specified content encoding.
CONNECTStringIssue HTTP CONNECT request to given path. This can be a pattern.
CONNECT (alternative)BuilderIssue HTTP CONNECT request to given path.
DELETEStringIssue HTTP DELETE request to given path. This can be a pattern.
DELETE (alternative)BuilderIssue HTTP DELETE request to given path.
endpointBuilderHTTP endpoint this request should target. Must match to the name of the entries in http section.
GETStringIssue HTTP GET request to given path. This can be a pattern.
GET (alternative)BuilderIssue HTTP GET request to given path.
handlerBuilderHTTP response handlers.
HEADStringIssue HTTP HEAD request to given path. This can be a pattern.
HEAD (alternative)BuilderIssue HTTP HEAD request to given path.
headersBuilderHTTP headers sent in the request.
methodenumHTTP method used for the request.
Options:
  • GET
  • HEAD
  • POST
  • PUT
  • DELETE
  • OPTIONS
  • PATCH
  • TRACE
  • CONNECT
metricStringRequests statistics will use this metric name.
metric (alternative)<list of strings>Allows categorizing request statistics into metrics based on the request path.
OPTIONSStringIssue HTTP OPTIONS request to given path. This can be a pattern.
OPTIONS (alternative)BuilderIssue HTTP OPTIONS request to given path.
PATCHStringIssue HTTP PATCH request to given path. This can be a pattern.
PATCH (alternative)BuilderIssue HTTP PATCH request to given path.
pathStringHTTP path (absolute or relative), including query and fragment. The string can use string interpolation.
path (alternative)BuilderHTTP path (absolute or relative), including query and fragment.
POSTStringIssue HTTP POST request to given path. This can be a pattern.
POST (alternative)BuilderIssue HTTP POST request to given path.
PUTStringIssue HTTP PUT request to given path. This can be a pattern.
PUT (alternative)BuilderIssue HTTP PUT request to given path.
slaBuilderList of SLAs the requests are subject to.
syncbooleanThis request is synchronous; execution of the sequence does not continue until the full response is received. If this step is executed from multiple parallel instances of this sequence the progress of all sequences is blocked until there is a request in flight without response.

Default is true.

timeoutStringRequest timeout - after this time the request will be marked as failed and connection will be closed.

Defaults to value set globally in http section.

TRACEStringIssue HTTP TRACE request to given path. This can be a pattern.
TRACE (alternative)BuilderIssue HTTP TRACE request to given path.

authority

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

body

Allows building HTTP request body from session variables.

PropertyTypeDescription
formBuilderBuild form as if we were sending the request using HTML form. This option automatically adds Content-Type: application/x-www-form-urlencoded to the request headers.
fromFileStringSend contents of the file. Note that this method does NOT set content-type automatically.
fromVarStringUse variable content as request body.
patternStringPattern replacing ${sessionvar} with variable contents in a string.
textStringString sent as-is.

body.form

PropertyTypeDescription
<list of mappings><list of builders>Add input pair described in the mapping.

body.form.<list of mappings>

Form element (e.g. as if coming from an INPUT field).

PropertyTypeDescription
fromVarStringInput field value from session variable.
nameStringInput field name.
patternStringInput field value replacing session variables in a pattern, e.g. foo${myvariable}var
valueStringInput field value (verbatim).

compensation

PropertyTypeDescription
metricStringMetric name for the compensated results.
metric (alternative)<list of strings>Configure a custom metric for the compensated results.
targetRatedoubleDesired rate of new virtual users per second. This is similar to constantRate.usersPerSec phase settings but works closer to legacy benchmark drivers by fixing the concurrency.
targetRate (alternative)BuilderDesired rate of new virtual users per second. This is similar to constantRate.usersPerSec phase settings but works closer to legacy benchmark drivers by fixing the concurrency.

compensation.metric

Configure a custom metric for the compensated results.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

compensation.targetRate

PropertyTypeDescription
basedoubleBase value used for first iteration.
incrementdoubleValue by which the base value is incremented for each (but the very first) iteration.

compression

PropertyTypeDescription
encodingStringEncoding used for Accept-Encoding/TE header. The only currently supported is gzip.
typeenumType of compression (resource vs. transfer based).
Options:
  • CONTENT_ENCODINGUse Accept-Encoding in request and expect Content-Encoding in response.
  • TRANSFER_ENCODINGUse TE in request and expect Transfer-Encoding in response.

CONNECT

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

DELETE

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

endpoint

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

GET

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

handler

Manages processing of HTTP responses.

PropertyTypeDescription
autoRangeCheckbooleanInject status handler that marks the request as invalid on status 4xx or 5xx. Default value depends on ergonomics.autoRangeCheck (see User Guide).
bodyProcessor.BuilderHandle HTTP response body.
followRedirectenumAutomatically fire requests when the server responds with redirection. Default value depends on ergonomics.followRedirect (see User Guide).
Options:
  • NEVERDo not insert any automatic redirection handling.
  • LOCATION_ONLYRedirect only upon status 3xx accompanied with a ’location’ header. Status, headers, body and completions handlers are suppressed in this case (only raw-bytes handlers are still running). This is the default option.
  • HTML_ONLYHandle only HTML response with META refresh header. Status, headers and body handlers are invoked both on the original response and on the response from subsequent requests. Completion handlers are suppressed on this request and invoked after the last response arrives (in case of multiple redirections).
  • ALWAYSImplement both status 3xx + location and HTML redirects.
headerHeaderHandler.BuilderHandle HTTP response headers.
onCompletionAction.BuilderAction executed when the HTTP response is fully received.
rawBytesRawBytesHandler.BuilderHandler processing HTTP response before parsing.
statusStatusHandler.BuilderHandle HTTP response status.
stopOnInvalidbooleanInject completion handler that will stop the session if the request has been marked as invalid. Default value depends on ergonomics.stopOnInvalid (see User Guide).

handler.header

Handle HTTP response headers.

PropertyTypeDescription
conditionalConditionalHeaderHandler.BuilderPasses the headers to nested handler if the condition holds. Note that the condition may be evaluated multiple times and therefore any nested handlers should not change the results of the condition.
countHeadersCountHeadersHandler.BuilderStores number of occurences of each header in custom statistics (these can be displayed in CLI using the stats -c command).
filterFilterHeaderHandler.BuilderCompares if the header name matches expression and invokes a processor with the value.
logInvalidLogInvalidHandler.HeaderHandlerBuilderLogs headers from requests marked as invalid.
recordHeaderTimeRecordHeaderTimeHandler.BuilderRecords alternative metric based on values from a header (e.g. when a proxy reports processing time).

handler.header.conditional

Passes the headers to nested handler if the condition holds. Note that the condition may be evaluated multiple times and therefore any nested handlers should not change the results of the condition.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
handlerHeaderHandler.BuilderOne or more header handlers that should be invoked.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

handler.header.conditional.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

handler.header.conditional.allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

handler.header.conditional.allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

handler.header.conditional.allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

handler.header.conditional.allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.conditional.allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

handler.header.conditional.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

handler.header.conditional.handler

One or more header handlers that should be invoked.

PropertyTypeDescription
conditionalConditionalHeaderHandler.BuilderPasses the headers to nested handler if the condition holds. Note that the condition may be evaluated multiple times and therefore any nested handlers should not change the results of the condition.
countHeadersCountHeadersHandler.BuilderStores number of occurences of each header in custom statistics (these can be displayed in CLI using the stats -c command).
filterFilterHeaderHandler.BuilderCompares if the header name matches expression and invokes a processor with the value.
logInvalidLogInvalidHandler.HeaderHandlerBuilderLogs headers from requests marked as invalid.
recordHeaderTimeRecordHeaderTimeHandler.BuilderRecords alternative metric based on values from a header (e.g. when a proxy reports processing time).

handler.header.conditional.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.conditional.intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

handler.header.conditional.stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.conditional.stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.filter

Compares if the header name matches expression and invokes a processor with the value.

PropertyTypeDescription
headerBuilderCondition on the header name.
processorProcessor.BuilderAdd one or more processors.

handler.header.filter.header

Inline definition
Literal value the string should match.
PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

handler.header.filter.header.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.recordHeaderTime

Records alternative metric based on values from a header (e.g. when a proxy reports processing time).

PropertyTypeDescription
headerStringHeader carrying the time.
metricStringName of the created metric.
unitStringTime unit in the header; use either ms or ns.

handler.rawBytes

Handler processing HTTP response before parsing.

PropertyTypeDescription
transferSizeRecorderTransferSizeRecorder.BuilderAccumulates request and response sizes into custom metrics.

handler.rawBytes.transferSizeRecorder

Accumulates request and response sizes into custom metrics.

PropertyTypeDescription
keyStringName of the custom metric for collecting request/response bytes.

handler.status

Handle HTTP response status.

PropertyTypeDescription
actionActionStatusHandler.BuilderPerform certain actions when the status falls into a range.
counterStatusToCounterHandler.BuilderCounts how many times given status is received.
multiplexMultiplexStatusHandler.BuilderMultiplexes the status based on range into different status handlers.
rangeRangeStatusValidator.BuilderMarks requests that don’t fall into the desired range as invalid.
statsStatusToStatsHandler.BuilderRecords number of occurrences of each status counts into custom statistics (these can be displayed in CLI using stats -c).
storeStoreStatusHandler.BuilderStores the status into session variable.

handler.status.action

Perform certain actions when the status falls into a range.

PropertyTypeDescription
<any>BuilderPerform a sequence of actions if the range matches. Use range as the key and action in the mapping. Possible values of the status should be separated by commas (,). Ranges can be set using low-high (inclusive) (e.g. 200-299), or replacing lower digits with ‘x’ (e.g. 2xx).

handler.status.counter

Counts how many times given status is received.

PropertyTypeDescription
addintNumber to be added to the session variable.
expectStatusintExpected status (others are ignored). All status codes match by default.
initintInitial value for the session variable.
setintDo not accumulate (add), just set the variable to this value.
varStringVariable name.

handler.status.multiplex

Multiplexes the status based on range into different status handlers.

PropertyTypeDescription
<any>BuilderRun another handler if the range matches. Use range as the key and another status handler in the mapping. Possible values of the status should be separated by commas (,). Ranges can be set using low-high (inclusive) (e.g. 200-299), or replacing lower digits with ‘x’ (e.g. 2xx).

handler.status.multiplex.<any>

Run another handler if the range matches. Use range as the key and another status handler in the mapping. Possible values of the status should be separated by commas (,). Ranges can be set using low-high (inclusive) (e.g. 200-299), or replacing lower digits with ‘x’ (e.g. 2xx).

PropertyTypeDescription
actionActionStatusHandler.BuilderPerform certain actions when the status falls into a range.
counterStatusToCounterHandler.BuilderCounts how many times given status is received.
multiplexMultiplexStatusHandler.BuilderMultiplexes the status based on range into different status handlers.
rangeRangeStatusValidator.BuilderMarks requests that don’t fall into the desired range as invalid.
statsStatusToStatsHandler.BuilderRecords number of occurrences of each status counts into custom statistics (these can be displayed in CLI using stats -c).
storeStoreStatusHandler.BuilderStores the status into session variable.

handler.status.range

Marks requests that don’t fall into the desired range as invalid.

Inline definition
Single status code (204), masked code (2xx) or range (200-399).
PropertyTypeDescription
maxintHighest accepted status code.
minintLowest accepted status code.

handler.status.store

Stores the status into session variable.

Inline definition
Variable name.
PropertyTypeDescription
toVarObjectVariable name.

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

headers

PropertyTypeDescription
<any>StringUse header name (e.g. Content-Type) as key and value (possibly a pattern).
<any> (alternative)BuilderUse header name (e.g. Content-Type) as key and specify value in the mapping.

headers.<any>

Specifies value that should be sent in headers.

Inline definition
The value. This can be a
pattern.
PropertyTypeDescription
fromVarStringLoad header value from session variable.
patternStringLoad header value using a pattern.

metric

Allows categorizing request statistics into metrics based on the request path.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

OPTIONS

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

PATCH

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

path

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

POST

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

PUT

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

sla

Defines a list of Service Level Agreements (SLAs) - conditions that must hold for benchmark to be deemed successful.

PropertyTypeDescription
<list of mappings><list of builders>One or more SLA configurations.

sla.<list of mappings>

Defines a Service Level Agreement (SLA) - conditions that must hold for benchmark to be deemed successful.

PropertyTypeDescription
blockedRatiodoubleMaximum allowed ratio of time spent waiting for usable connection to sum of response latencies and blocked time. Default is 0 - client must not be blocked. Set to 1 if the client can block without limits.
errorRatiodoubleMaximum allowed ratio of errors: connection failures or resets, timeouts and internal errors. Valid values are 0.0 - 1.0 (inclusive). Note: 4xx and 5xx statuses are NOT considered errors for this SLA parameter. Use invalidRatio for that.
invalidRatiodoubleMaximum allowed ratio of requests with responses marked as invalid. Valid values are 0.0 - 1.0 (inclusive). Note: With default settings 4xx and 5xx statuses are considered invalid. Check out ergonomics.autoRangeCheck or httpRequest.handler.autoRangeCheck to change this.
limitsBuilderPercentile limits.
meanResponseTimeStringMaximum allowed mean (average) response time. Use suffix ns, us, ms or s to specify units.
windowStringPeriod over which the stats should be collected. By default the SLA applies to stats from whole phase.

sla.<list of mappings>.limits

Percentile limits.

PropertyTypeDescription
<any>StringUse percentile (value between 0.0 and 1.0) as key and response time with unit (e.g. ms) in suffix as value.

TRACE

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

1.20 - json

Parse JSON in variable into another variable.

Parse JSON in variable into another variable.

PropertyTypeDescription
deletebooleanIf this is set to true, the selected key will be deleted from the JSON and the modified JSON will be passed to the processor.
formatenumConversion to apply on the matching parts with ’toVar’ or ’toArray’ shortcuts.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
fromVarStringVariable to load JSON from.
processorProcessor.BuilderAdd one or more processors.
queryStringQuery selecting the part of JSON.
replaceTransformer.BuilderCustom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.
replace (alternative)StringReplace value of selected item with value generated through a pattern. Note that the result must contain quotes and be correctly escaped.
toArrayStringShortcut to store selected parts in an array in the session. Must follow the pattern variable[maxSize]
toVarStringShortcut to store first match in given variable. Further matches are ignored.
unquotebooleanAutomatically unquote and unescape the input values. By default true.

replace

Custom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.

PropertyTypeDescription
actionsActionsTransformer.BuilderThis transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.
patternPattern.TransformerBuilderUse pattern replacing session variables.

replace.actions

This transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.

PropertyTypeDescription
actionsAction.BuilderActions to be executed.
formatenumFormat into which should this transformer convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
patternStringPattern to use when fetching the transformed value.
varStringVariable used as the intermediate storage for the data.

replace.pattern

Use pattern replacing session variables.

Inline definition
The pattern formatting string.
PropertyTypeDescription
patternStringUse pattern replacing session variables.

1.21 - log

Log a message and variable values.

Log a message and variable values.

Inline definition
A pattern for
string
interpolation.
PropertyTypeDescription
messageStringMessage format pattern. Use string interpolation for variables.

1.22 - loop

Repeats a set of steps fixed number of times.

Repeats a set of steps fixed number of times.

This step is supposed to be inserted as the first step of a sequence and the counterVar should not be set during the first invocation.

Before the loop the counterVar is initialized to zero, and in each after the last step in the steps sequence the counter is incremented. If the result is lesser than repeats this sequence is restarted from the beginning (this is also why the step must be the first step in the sequence).

It is legal to place steps after the looped steps.

Example:

scenario:
 - mySequence:
   - loop:
       counterVar: myCounter
@@ -16,7 +16,8 @@
           # ...
       - someOtherStep: ...
   - anotherStepExecutedAfterThoseFiveLoops
-
PropertyTypeDescription
counterVarStringVariable holding number of iterations.
repeatsintNumber of iterations that should be executed.
stepsBuilderList of steps that should be looped.

1.23 - markRequestInvalid

Unconditionally mark currently processed request as invalid.

Unconditionally mark currently processed request as invalid.

1.24 - newSequence

Instantiates a sequence for each invocation.

Instantiates a sequence for each invocation.

Inline definition
Sequence name.
PropertyTypeDescription
concurrencyPolicyenum
Options:
  • FAIL
  • WARN
forceSameIndexbooleanForces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence.
sequenceStringName of the instantiated sequence.

1.25 - noop

Does nothing. Only for demonstration purposes.

Does nothing. Only for demonstration purposes.

1.26 - publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

Makes the data available to all sessions in the same agent, including those using different executors.

Inline definition
Both name of source variable and the key used to read the data.
PropertyTypeDescription
fromVarStringSource session variable name.
nameStringArbitrary unique identifier for the data.

1.27 - publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

Gathers values from session variables and publishes them globally (to all agents).
You can name the counters individually (example 1) or use the variable names (example 2):

# Example 1:
+
PropertyTypeDescription
counterVarStringVariable holding number of iterations.
repeatsintNumber of iterations that should be executed.
stepsBuilderList of steps that should be looped.

1.23 - markRequestInvalid

Unconditionally mark currently processed request as invalid.

Unconditionally mark currently processed request as invalid.

1.24 - newSequence

Instantiates a sequence for each invocation.

Instantiates a sequence for each invocation.

Inline definition
Sequence name.
PropertyTypeDescription
concurrencyPolicyenum
Options:
  • FAIL
  • WARN
forceSameIndexbooleanForces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence.
sequenceStringName of the instantiated sequence.

1.25 - noop

Does nothing. Only for demonstration purposes.

Does nothing. Only for demonstration purposes.

1.26 - publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

Makes the data available to all sessions in the same agent, including those using different executors.

Inline definition
Both name of source variable and the key used to read the data.
PropertyTypeDescription
fromVarStringSource session variable name.
nameStringArbitrary unique identifier for the data.

1.27 - publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

Gathers values from session variables and publishes them globally (to all agents).
You can name the counters individually (example 1) or use the variable names (example 2):

<code>
+# Example 1:
 - publishGlobalCounters:
     key: myKey
     vars: [ foo, bar ]
@@ -26,29 +27,17 @@
     vars:
     - foo: myFoo
     - bar: bbb
-</code>```
-
-
-| Property | Type | Description |
-| ------- | ------- | -------- |
-| key | String | Identifier of the global record. |
-| vars | [Builder](#vars) | List of names and session variables. |
-
-### vars
-
-| Property | Type | Description |
-| ------- | ------- | ------- |
-| &lt;any&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-| &lt;list of strings&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-

1.28 - pullSharedMap

Move values from a map shared across all sessions using the same executor into session variables.

Move values from a map shared across all sessions using the same executor into session variables.

The executor can host multiple shared maps, each holding an entry with several variables. This step moves variables from either a random entry (if no match is set) or with an entry that has the same value for given variable as the current session. When data is moved to the current session the entry is dropped from the shared map. If the map contains records for which the {@link #vars()} don’t contain a destination variable the contents is lost.

PropertyTypeDescription
keyStringKey identifying the shared map.
matchStringName of the session variable that stores value identifying the entry in the shared map.
vars<list of strings>List of variables the map should be pulled into.

vars

List of variables the map should be pulled into.

PropertyTypeDescription
<list of strings><unknown><no description>

1.29 - pushSharedMap

Store values from session variables into a map shared across all sessions using the same executor into session variables.

Store values from session variables into a map shared across all sessions using the same executor into session variables.

The executor can host multiple shared maps, each holding an entry with several variables. This step creates one entry in the map, copying values from session variables into the entry.

PropertyTypeDescription
keyStringKey identifying the shared map.
vars<list of strings>List of variable names that should be stored in the entry.

vars

List of variable names that should be stored in the entry.

PropertyTypeDescription
<list of strings><unknown><no description>

1.30 - randomCsvRow

Stores random row from a CSV-formatted file to variables.

Stores random row from a CSV-formatted file to variables.

PropertyTypeDescription
columnsBuilderDefines mapping from columns to session variables.
fileStringPath to the CSV file that should be loaded.
separatorcharSet character used for column separation. By default it is comma (,).
skipCommentsbooleanSkip lines starting with character ‘#’. By default set to false.

columns

PropertyTypeDescription
<any>StringUse 0-based column as the key and variable name as the value.

1.31 - randomFile

Reads bytes from a randomly chosen file into a variable.

Reads bytes from a randomly chosen file into a variable.
Two formats are supported:
Example 1 - without weights:

toVar: myVar
+</code>
+
PropertyTypeDescription
keyStringIdentifier of the global record.
varsBuilderList of names and session variables.

vars

PropertyTypeDescription
<any><unknown><no description>
<list of strings><unknown><no description>

1.28 - pullSharedMap

Move values from a map shared across all sessions using the same executor into session variables.

Move values from a map shared across all sessions using the same executor into session variables.

The executor can host multiple shared maps, each holding an entry with several variables. This step moves variables from either a random entry (if no match is set) or with an entry that has the same value for given variable as the current session. When data is moved to the current session the entry is dropped from the shared map. If the map contains records for which the {@link #vars()} don’t contain a destination variable the contents is lost.

PropertyTypeDescription
keyStringKey identifying the shared map.
matchStringName of the session variable that stores value identifying the entry in the shared map.
vars<list of strings>List of variables the map should be pulled into.

vars

List of variables the map should be pulled into.

PropertyTypeDescription
<list of strings><unknown><no description>

1.29 - pushSharedMap

Store values from session variables into a map shared across all sessions using the same executor into session variables.

Store values from session variables into a map shared across all sessions using the same executor into session variables.

The executor can host multiple shared maps, each holding an entry with several variables. This step creates one entry in the map, copying values from session variables into the entry.

PropertyTypeDescription
keyStringKey identifying the shared map.
vars<list of strings>List of variable names that should be stored in the entry.

vars

List of variable names that should be stored in the entry.

PropertyTypeDescription
<list of strings><unknown><no description>

1.30 - randomCsvRow

Stores random row from a CSV-formatted file to variables.

Stores random row from a CSV-formatted file to variables.

PropertyTypeDescription
columnsBuilderDefines mapping from columns to session variables.
fileStringPath to the CSV file that should be loaded.
separatorcharSet character used for column separation. By default it is comma (,).
skipCommentsbooleanSkip lines starting with character ‘#’. By default set to false.

columns

PropertyTypeDescription
<any>StringUse 0-based column as the key and variable name as the value.

1.31 - randomFile

Reads bytes from a randomly chosen file into a variable.

Reads bytes from a randomly chosen file into a variable.
Two formats are supported:
Example 1 - without weights:

toVar: myVar
 files:
 - /path/to/file1.txt
 - file2_relative_to_benchmark.txt
-

Example 2 - with weights (the second file will be returned twice as often):

toVar: myVar
+

Example 2 - with weights (the second file will be returned twice as often):

toVar: myVar
 files:
   /path/to/file1.txt: 1
   file2_relative_to_benchmark.txt: 2
-
PropertyTypeDescription
filenameVarStringOptional variable to store the filename of the random file.
filesBuilderPotentially weighted list of files to choose from.
toVarStringVariable where the chosen byte array should be stored.

files

PropertyTypeDescription
<any><list of strings>Item as the key and weight (arbitrary floating-point number, defaults to 1.0) as the value.
<list of strings><list of strings>Item as the key and weight (arbitrary floating-point number, defaults to 1.0) as the value.

1.32 - randomInt

Stores random (linearly distributed) integer into session variable.

Stores random (linearly distributed) integer into session variable.

PropertyTypeDescription
maxBuilderHighest possible value (inclusive). Default is Integer.MAX_VALUE.
minBuilderLowest possible value (inclusive). Default is 0.
toVarStringVariable name to store the result.

max

Inline definition
Constant value.
PropertyTypeDescription
fromVarStringInitialize with a value from session variable.
valueintInitialize with a constant value.

min

Inline definition
Constant value.
PropertyTypeDescription
fromVarStringInitialize with a value from session variable.
valueintInitialize with a constant value.

1.33 - randomItem

Stores random item from a list or array into session variable.

Stores random item from a list or array into session variable.

PropertyTypeDescription
fileStringThis file will be loaded into memory and the step will choose on line as the item.
fromVarStringVariable containing an array or list.
listBuilderPotentially weighted list of items to choose from.
toVarStringVariable where the chosen item should be stored.

list

PropertyTypeDescription
<any><list of strings>Item as the key and weight (arbitrary floating-point number, defaults to 1.0) as the value.
<list of strings><list of strings>Item as the key and weight (arbitrary floating-point number, defaults to 1.0) as the value.

1.34 - randomUUID

Stores random string into session variable based on the UUID generator.

Stores random string into session variable based on the UUID generator.

PropertyTypeDescription
toVarStringVariable name to store the result.

1.35 - readAgentData

Reads data from agent-wide scope into session variable.

Reads data from agent-wide scope into session variable.
The data must be published in a phase that has terminated before this phase starts: usually this is achieved using the startAfterStrict property on the phase.

Inline definition
Both the identifier and destination session variable.
PropertyTypeDescription
nameStringUnique identifier for the data.
toVarStringDestination session variable name.

1.36 - removeItem

Removes element from an array of variables.

Removes element from an array of variables.

PropertyTypeDescription
fromVarStringVariable containing an existing array of object variables.
indexBuilderSet index at which the item should be removed. Elements to the right of this are moved to the left.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

1.37 - restartSequence

Restarts current sequence from beginning.

Restarts current sequence from beginning.

1.38 - scheduleDelay

Define a point in future until which we should wait. Does not cause waiting.

Define a point in future until which we should wait. Does not cause waiting.

PropertyTypeDescription
durationStringDuration of the delay with appropriate suffix (e.g. ms or s).
fromLast<none>Set previous delay point reference as the reference for next delay point; it will be computed as (previous delay point or now) + duration.
Note: property does not have any value
fromNow<none>Set this step invocation as the delay point reference; it will be computed as now + duration.
Note: property does not have any value
keyStringKey that is referenced later in awaitDelay step. If you’re introducing the delay through thinkTime do not use this property.
maxStringUpper cap on the duration (if randomized).
minStringLower cap on the duration (if randomized).
randomenumRandomize the duration.
Options:
  • CONSTANTDo not randomize; use constant duration.
  • LINEARUse linearly random duration between min and max (inclusively).
  • NEGATIVE_EXPONENTIALUse negative-exponential duration with expected value of duration, capped at min and max (inclusively).
typeenumAlternative way to set delay reference point. See fromNow and fromLast property setters.
Options:
  • FROM_LAST
  • FROM_NOW

1.39 - set

Set variable in session to certain value.

Set variable in session to certain value.

Inline definition
Use var <- value.
PropertyTypeDescription
intArrayBuilderSet variable to an (unset) integer array.
objectArrayBuilderSet variable to an (unset) object array.
valueStringString value.
varStringVariable name.

intArray

Creates integer arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

objectArray

Creates object arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

1.40 - setInt

Set session variable to an integral value.

Set session variable to an integral value.

Inline definition
Use var <- value.
PropertyTypeDescription
fromVarStringInput variable name.
intConditionBuilderSet variable only if the current value satisfies certain condition.
maxBuilderSet to value that is the maximum of this list of values.
minBuilderSet to value that is the minimum of this list of values.
onlyIfNotSetbooleanSet variable to the value only if it is not already set.
valueintValue (integer).
varStringVariable name.

intCondition

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

max

PropertyTypeDescription
<list of mappings><list of builders><no description>

max.<list of mappings>

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

min

PropertyTypeDescription
<list of mappings><list of builders><no description>

1.41 - setItem

Set element in a collection on given position.

Set element in a collection on given position.

PropertyTypeDescription
fromVarStringFetch value from session variable.
indexBuilderInteger session variable with an index into the collection.
toVarStringSession variable with the collection.
valueStringVerbatim value.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

1.42 - setSharedCounter

Sets value in a counter shared by all sessions in the same executor.

Sets value in a counter shared by all sessions in the same executor.

Inline definition
Both the name of the counter and variable name.
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
valueintValue (integer).

1.43 - stop

Immediately stop the user session (break all running sequences).

Immediately stop the user session (break all running sequences).

1.44 - stopwatch

Run nested sequence of steps, recording execution time.

Run nested sequence of steps, recording execution time.

1.45 - stringToInt

Parse string into integer and store it in a variable.

Parse string into integer and store it in a variable.

If the parsing fails the target variable is not modified.

Inline definition
Use fromVar -&gt; toVar
PropertyTypeDescription
fromVarStringSource variable name.
toVarStringTarget variable name.

1.46 - template

Format pattern into session variable.

Format pattern into session variable.

PropertyTypeDescription
patternStringPattern to be encoded, e.g. foo${variable}bar${another-variable}
toVarStringVariable name to store the result.

1.47 - thinkTime

Block current sequence for specified duration.

Block current sequence for specified duration.

Inline definition
Duration of the delay with appropriate suffix (e.g. ms or s).
PropertyTypeDescription
durationStringDuration of the delay with appropriate suffix (e.g. ms or s).
fromLast<none>Set previous delay point reference as the reference for next delay point; it will be computed as (previous delay point or now) + duration.
Note: property does not have any value
fromNow<none>Set this step invocation as the delay point reference; it will be computed as now + duration.
Note: property does not have any value
keyStringKey that is referenced later in awaitDelay step. If you’re introducing the delay through thinkTime do not use this property.
maxStringUpper cap on the duration (if randomized).
minStringLower cap on the duration (if randomized).
randomenumRandomize the duration.
Options:
  • CONSTANTDo not randomize; use constant duration.
  • LINEARUse linearly random duration between min and max (inclusively).
  • NEGATIVE_EXPONENTIALUse negative-exponential duration with expected value of duration, capped at min and max (inclusively).
typeenumAlternative way to set delay reference point. See fromNow and fromLast property setters.
Options:
  • FROM_LAST
  • FROM_NOW

1.48 - timestamp

Stores the current time in milliseconds as string to a session variable.

Stores the current time in milliseconds as string to a session variable.

Inline definition
Variable name.
PropertyTypeDescription
localeCountryString2-letter ISO country code used in the formatter locale. Defaults to ‘US’.
patternStringFormat the timestamp using SimpleDateFormat pattern.
toVarStringTarget variable name.

1.49 - unset

Undefine variable name.

Undefine variable name.

Inline definition
Variable name.
PropertyTypeDescription
varObjectVariable name.

2 - Processors

Processors can work either as consumers of input bytes (e.g. storing part of the input into session variables), as filters (passing modified version of the input to delegated processors) or combination of the above.

Some processors can expect extra context in the session, such as an ongoing (HTTP) request. It is possible to use processors that don’t expect specific type of request in places where a more specific type is provided; opposite is not allowed.

Also it is possible to use an action instead of a processor; Hyperfoil automatically inserts an adapter. That’s why the list below includes actions as well.

2.1 - addItem

Appends value to an array stored in another variable.

Appends value to an array stored in another variable.

PropertyTypeDescription
fromVarStringFetch value from session variable.
toVarStringDestination variable with the array.
valueStringVerbatim value.

2.2 - addToInt

Add value to integer variable in the session.

Add value to integer variable in the session.

Inline definition
Accepting one of: var++, var–, var += value, var -= value.
PropertyTypeDescription
orElseSetTointIf the variable is currently not set, set it to this value instead of addition.
valueintValue added (can be negative).
varStringVariable name.

2.3 - addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

Adds value to a counter shared by all sessions in the same executor.

Inline definition
Use on of: counter++, counter–, counter += <value>,
counter -= <value>
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
operatorenumOperation to perform on the counter. Default is ADD.
Options:
  • ADD
  • SUBTRACT
valueintValue (integer).

2.4 - array

Stores data in an array stored as session variable.

Stores data in an array stored as session variable.

Inline definition
Use format toVar[maxSize].
PropertyTypeDescription
formatenumFormat into which should this processor convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
maxSizeintMaximum size of the array.
silentbooleanDo not log warnings when the maximum size is exceeded.
toVarStringVariable name.

2.5 - clearHttpCache

Drops all entries from HTTP cache in the session.

Drops all entries from HTTP cache in the session.

2.6 - closeConnection

Prevents reuse connection after the response has been handled.

Prevents reuse connection after the response has been handled.

2.7 - collection

Collects results of processor invocation into a unbounded list.

Collects results of processor invocation into a unbounded list.
WARNING: This processor should be used rarely as it allocates memory during the benchmark.

Inline definition
Variable name to store the list.
PropertyTypeDescription
formatenumFormat into which should this processor convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
toVarStringVariable name.

2.8 - conditional

Passes the data to nested processor if the condition holds.

Passes the data to nested processor if the condition holds.
Note that the condition may be evaluated multiple times and therefore any nested processors should not change the results of the condition.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
processorProcessor.BuilderOne or more processors that should be invoked if the condition holds.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

2.9 - count

Records number of parts this processor is invoked on.

Records number of parts this processor is invoked on.

Inline definition
Name of variable for the number of occurrences.
PropertyTypeDescription
toVarStringVariable where to store number of occurrences.

2.10 - fail

Fail the phase with given message. Used mostly for testing/debugging.

Fail the phase with given message. Used mostly for testing/debugging.

Inline definition
Message to fail with (unconditionally).
PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
messageStringMessage attached to the failure exception.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

2.11 - getIndex

Lookup index of an item in an array/collection.

Lookup index of an item in an array/collection.

PropertyTypeDescription
collectionStringVariable to fetch the collection from.
itemBuilderItem that should be looked up (using equality).
toVarStringInteger variable to store the index, or -1 if the item is not found.

item

Inline definition
Verbatim value.
PropertyTypeDescription
fromVarStringFetch value from session variable.
valueStringVerbatim value.

2.12 - getItem

Retrieves n-th item from an array or collection.

Retrieves n-th item from an array or collection.

PropertyTypeDescription
fromVarStringSource variable with an array or list.
indexBuilderSource for index into the array/list.
toVarStringDestination variable for the n-th element.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

2.13 - getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.
If the value exceeds allowed integer range (-2^31 .. 2^31 - 1) it is capped.

Inline definition
Both the key and variable name.
PropertyTypeDescription
keyStringIdentifier for the counter.
toVarStringSession variable for storing the value.

2.14 - getSize

Calculates size of an array/collection held in variable into another variable

Calculates size of an array/collection held in variable into another variable

PropertyTypeDescription
boolFilterBuilderCount only items matching the condition.
fromVarStringVariable holding the collection.
intFilterBuilderCount only items matching the condition.
stringFilterBuilderCount only items matching the condition.
toVarStringVariable storing the size.
undefinedValueintValue to use when fromVar is unset or it does not contain any array/collection.

boolFilter

PropertyTypeDescription
valuebooleanExpected value.

intFilter

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intFilter.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringFilter.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringFilter.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

2.15 - gzipInflator

Decompresses a GZIP data and pipes the output to delegated processors.

Decompresses a GZIP data and pipes the output to delegated processors.
If the data contains multiple concatenated GZIP streams it will pipe multiple decompressed objects with isLastPart set to true at the end of each stream.

PropertyTypeDescription
encodingVarObjectVariable used to pass header value from header handlers.
processorProcessor.BuilderAdd one or more processors.

2.16 - json

Parses JSON responses using simple queries.

Parses JSON responses using simple queries.

PropertyTypeDescription
deletebooleanIf this is set to true, the selected key will be deleted from the JSON and the modified JSON will be passed to the processor.
formatenumConversion to apply on the matching parts with ’toVar’ or ’toArray’ shortcuts.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
processorProcessor.BuilderAdd one or more processors.
processor (alternative)Processor.BuilderIf neither delete or replace was set this processor will be called with the selected parts. In the other case the processor will be called with chunks of full (modified) JSON.

Note that the processor.before() and processor.after() methods are called only once for each request, not for the individual filtered items.

queryStringQuery selecting the part of JSON.
replaceTransformer.BuilderCustom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.
replace (alternative)StringReplace value of selected item with value generated through a pattern. Note that the result must contain quotes and be correctly escaped.
toArrayStringShortcut to store selected parts in an array in the session. Must follow the pattern variable[maxSize]
toVarStringShortcut to store first match in given variable. Further matches are ignored.
unquotebooleanAutomatically unquote and unescape the input values. By default true.

replace

Custom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.

PropertyTypeDescription
actionsActionsTransformer.BuilderThis transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.
patternPattern.TransformerBuilderUse pattern replacing session variables.

replace.actions

This transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.

PropertyTypeDescription
actionsAction.BuilderActions to be executed.
formatenumFormat into which should this transformer convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
patternStringPattern to use when fetching the transformed value.
varStringVariable used as the intermediate storage for the data.

replace.pattern

Use pattern replacing session variables.

Inline definition
The pattern formatting string.
PropertyTypeDescription
patternStringUse pattern replacing session variables.

2.17 - log

Log a message and variable values.

Log a message and variable values.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
messageStringMessage format pattern. Use string interpolation for variables.

2.18 - logInvalid

Logs body chunks from requests marked as invalid.

Logs body chunks from requests marked as invalid.

2.19 - markRequestInvalid

Unconditionally mark currently processed request as invalid.

Unconditionally mark currently processed request as invalid.

2.20 - newSequence

Instantiates a sequence for each invocation.

Instantiates a sequence for each invocation.

Inline definition
Sequence name.
PropertyTypeDescription
concurrencyPolicyenum
Options:
  • FAIL
  • WARN
forceSameIndexbooleanForces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence.
sequenceStringName of the instantiated sequence.

2.21 - parseHtml

Parses HTML tags and invokes handlers based on criteria.

Parses HTML tags and invokes handlers based on criteria.

PropertyTypeDescription
onEmbeddedResourceBuilderHandler firing upon reference to other resource, e.g. image, stylesheet…
onTagAttributeBuilder<no description>

onEmbeddedResource

Handles <img src="…">, <link href="…">, <embed src="…">, <frame src="…">, <iframe src="…">, <object data="…"> and <script src="…">.

Does not handle <source src="…"> or <track src="…"> because browser would choose only one of the options.

PropertyTypeDescription
fetchResourceBuilderAutomatically download referenced resource.
ignoreExternalbooleanIgnore resources hosted on servers that are not covered in the http section.
processorProcessor.BuilderAdd one or more processors.
processor (alternative)Processor.BuilderCustom processor invoked pointing to attribute data - e.g. in case of <img> tag the processor gets contents of the src attribute.

onEmbeddedResource.fetchResource

Automates download of embedded resources.

PropertyTypeDescription
concurrencyintMaximum number of resources fetched concurrently. Default is 8.
maxResourcesintMaximum number of resources that can be fetched.
metric<list of strings>Metrics selector for downloaded resources.
onCompletionAction.BuilderAction performed when the download of all resources completes.

onEmbeddedResource.fetchResource.metric

Metrics selector for downloaded resources.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

onTagAttribute

PropertyTypeDescription
attributeStringName of the attribute in this element you want to process, e.g. action
formatenumConversion to apply on the matching parts with ’toVar’ or ’toArray’ shortcuts.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
processorProcessor.BuilderAdd one or more processors.
tagStringName of the tag this handler should look for, e.g. form
toArrayStringShortcut to store selected parts in an array in the session. Must follow the pattern variable[maxSize]
toVarStringShortcut to store first match in given variable. Further matches are ignored.

2.22 - publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

Makes the data available to all sessions in the same agent, including those using different executors.

Inline definition
Both name of source variable and the key used to read the data.
PropertyTypeDescription
fromVarStringSource session variable name.
nameStringArbitrary unique identifier for the data.

2.23 - publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

Gathers values from session variables and publishes them globally (to all agents).
You can name the counters individually (example 1) or use the variable names (example 2):

# Example 1:
+
PropertyTypeDescription
filenameVarStringOptional variable to store the filename of the random file.
filesBuilderPotentially weighted list of files to choose from.
toVarStringVariable where the chosen byte array should be stored.

files

PropertyTypeDescription
<any><list of strings>Item as the key and weight (arbitrary floating-point number, defaults to 1.0) as the value.
<list of strings><list of strings>Item as the key and weight (arbitrary floating-point number, defaults to 1.0) as the value.

1.32 - randomInt

Stores random (linearly distributed) integer into session variable.

Stores random (linearly distributed) integer into session variable.

PropertyTypeDescription
maxBuilderHighest possible value (inclusive). Default is Integer.MAX_VALUE.
minBuilderLowest possible value (inclusive). Default is 0.
toVarStringVariable name to store the result.

max

Inline definition
Constant value.
PropertyTypeDescription
fromVarStringInitialize with a value from session variable.
valueintInitialize with a constant value.

min

Inline definition
Constant value.
PropertyTypeDescription
fromVarStringInitialize with a value from session variable.
valueintInitialize with a constant value.

1.33 - randomItem

Stores random item from a list or array into session variable.

Stores random item from a list or array into session variable.

PropertyTypeDescription
fileStringThis file will be loaded into memory and the step will choose on line as the item.
fromVarStringVariable containing an array or list.
listBuilderPotentially weighted list of items to choose from.
toVarStringVariable where the chosen item should be stored.

list

PropertyTypeDescription
<any><list of strings>Item as the key and weight (arbitrary floating-point number, defaults to 1.0) as the value.
<list of strings><list of strings>Item as the key and weight (arbitrary floating-point number, defaults to 1.0) as the value.

1.34 - randomUUID

Stores random string into session variable based on the UUID generator.

Stores random string into session variable based on the UUID generator.

PropertyTypeDescription
toVarStringVariable name to store the result.

1.35 - readAgentData

Reads data from agent-wide scope into session variable.

Reads data from agent-wide scope into session variable.
The data must be published in a phase that has terminated before this phase starts: usually this is achieved using the startAfterStrict property on the phase.

Inline definition
Both the identifier and destination session variable.
PropertyTypeDescription
nameStringUnique identifier for the data.
toVarStringDestination session variable name.

1.36 - removeItem

Removes element from an array of variables.

Removes element from an array of variables.

PropertyTypeDescription
fromVarStringVariable containing an existing array of object variables.
indexBuilderSet index at which the item should be removed. Elements to the right of this are moved to the left.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

1.37 - restartSequence

Restarts current sequence from beginning.

Restarts current sequence from beginning.

1.38 - scheduleDelay

Define a point in future until which we should wait. Does not cause waiting.

Define a point in future until which we should wait. Does not cause waiting.

PropertyTypeDescription
durationStringDuration of the delay with appropriate suffix (e.g. ms or s).
fromLast<none>Set previous delay point reference as the reference for next delay point; it will be computed as (previous delay point or now) + duration.
Note: property does not have any value
fromNow<none>Set this step invocation as the delay point reference; it will be computed as now + duration.
Note: property does not have any value
keyStringKey that is referenced later in awaitDelay step. If you’re introducing the delay through thinkTime do not use this property.
maxStringUpper cap on the duration (if randomized).
minStringLower cap on the duration (if randomized).
randomenumRandomize the duration.
Options:
  • CONSTANTDo not randomize; use constant duration.
  • LINEARUse linearly random duration between min and max (inclusively).
  • NEGATIVE_EXPONENTIALUse negative-exponential duration with expected value of duration, capped at min and max (inclusively).
typeenumAlternative way to set delay reference point. See fromNow and fromLast property setters.
Options:
  • FROM_LAST
  • FROM_NOW

1.39 - set

Set variable in session to certain value.

Set variable in session to certain value.

Inline definition
Use var <- value.
PropertyTypeDescription
intArrayBuilderSet variable to an (unset) integer array.
objectArrayBuilderSet variable to an (unset) object array.
valueStringString value.
varStringVariable name.

intArray

Creates integer arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

objectArray

Creates object arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

1.40 - setInt

Set session variable to an integral value.

Set session variable to an integral value.

Inline definition
Use var <- value.
PropertyTypeDescription
fromVarStringInput variable name.
intConditionBuilderSet variable only if the current value satisfies certain condition.
maxBuilderSet to value that is the maximum of this list of values.
minBuilderSet to value that is the minimum of this list of values.
onlyIfNotSetbooleanSet variable to the value only if it is not already set.
valueintValue (integer).
varStringVariable name.

intCondition

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

max

PropertyTypeDescription
<list of mappings><list of builders><no description>

max.<list of mappings>

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

min

PropertyTypeDescription
<list of mappings><list of builders><no description>

1.41 - setItem

Set element in a collection on given position.

Set element in a collection on given position.

PropertyTypeDescription
fromVarStringFetch value from session variable.
indexBuilderInteger session variable with an index into the collection.
toVarStringSession variable with the collection.
valueStringVerbatim value.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

1.42 - setSharedCounter

Sets value in a counter shared by all sessions in the same executor.

Sets value in a counter shared by all sessions in the same executor.

Inline definition
Both the name of the counter and variable name.
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
valueintValue (integer).

1.43 - stop

Immediately stop the user session (break all running sequences).

Immediately stop the user session (break all running sequences).

1.44 - stopwatch

Run nested sequence of steps, recording execution time.

Run nested sequence of steps, recording execution time.

1.45 - stringToInt

Parse string into integer and store it in a variable.

Parse string into integer and store it in a variable.

If the parsing fails the target variable is not modified.

Inline definition
Use fromVar -&gt; toVar
PropertyTypeDescription
fromVarStringSource variable name.
toVarStringTarget variable name.

1.46 - template

Format pattern into session variable.

Format pattern into session variable.

PropertyTypeDescription
patternStringPattern to be encoded, e.g. foo${variable}bar${another-variable}
toVarStringVariable name to store the result.

1.47 - thinkTime

Block current sequence for specified duration.

Block current sequence for specified duration.

Inline definition
Duration of the delay with appropriate suffix (e.g. ms or s).
PropertyTypeDescription
durationStringDuration of the delay with appropriate suffix (e.g. ms or s).
fromLast<none>Set previous delay point reference as the reference for next delay point; it will be computed as (previous delay point or now) + duration.
Note: property does not have any value
fromNow<none>Set this step invocation as the delay point reference; it will be computed as now + duration.
Note: property does not have any value
keyStringKey that is referenced later in awaitDelay step. If you’re introducing the delay through thinkTime do not use this property.
maxStringUpper cap on the duration (if randomized).
minStringLower cap on the duration (if randomized).
randomenumRandomize the duration.
Options:
  • CONSTANTDo not randomize; use constant duration.
  • LINEARUse linearly random duration between min and max (inclusively).
  • NEGATIVE_EXPONENTIALUse negative-exponential duration with expected value of duration, capped at min and max (inclusively).
typeenumAlternative way to set delay reference point. See fromNow and fromLast property setters.
Options:
  • FROM_LAST
  • FROM_NOW

1.48 - timestamp

Stores the current time in milliseconds as string to a session variable.

Stores the current time in milliseconds as string to a session variable.

Inline definition
Variable name.
PropertyTypeDescription
localeCountryString2-letter ISO country code used in the formatter locale. Defaults to ‘US’.
patternStringFormat the timestamp using SimpleDateFormat pattern.
toVarStringTarget variable name.

1.49 - unset

Undefine variable name.

Undefine variable name.

Inline definition
Variable name.
PropertyTypeDescription
varObjectVariable name.

2 - Processors

Processors can work either as consumers of input bytes (e.g. storing part of the input into session variables), as filters (passing modified version of the input to delegated processors) or combination of the above.

Some processors can expect extra context in the session, such as an ongoing (HTTP) request. It is possible to use processors that don’t expect specific type of request in places where a more specific type is provided; opposite is not allowed.

Also it is possible to use an action instead of a processor; Hyperfoil automatically inserts an adapter. That’s why the list below includes actions as well.

2.1 - addItem

Appends value to an array stored in another variable.

Appends value to an array stored in another variable.

PropertyTypeDescription
fromVarStringFetch value from session variable.
toVarStringDestination variable with the array.
valueStringVerbatim value.

2.2 - addToInt

Add value to integer variable in the session.

Add value to integer variable in the session.

Inline definition
Accepting one of: var++, var–, var += value,
var -= value.
PropertyTypeDescription
orElseSetTointIf the variable is currently not set, set it to this value instead of addition.
valueintValue added (can be negative).
varStringVariable name.

2.3 - addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

Adds value to a counter shared by all sessions in the same executor.

Inline definition
Use on of: counter++, counter–, counter += <value>,
counter -= <value>
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
operatorenumOperation to perform on the counter. Default is ADD.
Options:
  • ADD
  • SUBTRACT
valueintValue (integer).

2.4 - array

Stores data in an array stored as session variable.

Stores data in an array stored as session variable.

Inline definition
Use format toVar[maxSize].
PropertyTypeDescription
formatenumFormat into which should this processor convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
maxSizeintMaximum size of the array.
silentbooleanDo not log warnings when the maximum size is exceeded.
toVarStringVariable name.

2.5 - clearHttpCache

Drops all entries from HTTP cache in the session.

Drops all entries from HTTP cache in the session.

2.6 - closeConnection

Prevents reuse connection after the response has been handled.

Prevents reuse connection after the response has been handled.

2.7 - collection

Collects results of processor invocation into a unbounded list.

Collects results of processor invocation into a unbounded list.
WARNING: This processor should be used rarely as it allocates memory during the benchmark.

Inline definition
Variable name to store the list.
PropertyTypeDescription
formatenumFormat into which should this processor convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
toVarStringVariable name.

2.8 - conditional

Passes the data to nested processor if the condition holds.

Passes the data to nested processor if the condition holds.
Note that the condition may be evaluated multiple times and therefore any nested processors should not change the results of the condition.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
processorProcessor.BuilderOne or more processors that should be invoked if the condition holds.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

2.9 - count

Records number of parts this processor is invoked on.

Records number of parts this processor is invoked on.

Inline definition
Name of variable for the number of occurrences.
PropertyTypeDescription
toVarStringVariable where to store number of occurrences.

2.10 - fail

Fail the phase with given message. Used mostly for testing/debugging.

Fail the phase with given message. Used mostly for testing/debugging.

Inline definition
Message to fail with (unconditionally).
PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
messageStringMessage attached to the failure exception.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

2.11 - getIndex

Lookup index of an item in an array/collection.

Lookup index of an item in an array/collection.

PropertyTypeDescription
collectionStringVariable to fetch the collection from.
itemBuilderItem that should be looked up (using equality).
toVarStringInteger variable to store the index, or -1 if the item is not found.

item

Inline definition
Verbatim value.
PropertyTypeDescription
fromVarStringFetch value from session variable.
valueStringVerbatim value.

2.12 - getItem

Retrieves n-th item from an array or collection.

Retrieves n-th item from an array or collection.

PropertyTypeDescription
fromVarStringSource variable with an array or list.
indexBuilderSource for index into the array/list.
toVarStringDestination variable for the n-th element.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

2.13 - getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.
If the value exceeds allowed integer range (-2^31 .. 2^31 - 1) it is capped.

Inline definition
Both the key and variable name.
PropertyTypeDescription
keyStringIdentifier for the counter.
toVarStringSession variable for storing the value.

2.14 - getSize

Calculates size of an array/collection held in variable into another variable

Calculates size of an array/collection held in variable into another variable

PropertyTypeDescription
boolFilterBuilderCount only items matching the condition.
fromVarStringVariable holding the collection.
intFilterBuilderCount only items matching the condition.
stringFilterBuilderCount only items matching the condition.
toVarStringVariable storing the size.
undefinedValueintValue to use when fromVar is unset or it does not contain any array/collection.

boolFilter

PropertyTypeDescription
valuebooleanExpected value.

intFilter

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intFilter.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringFilter.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringFilter.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

2.15 - gzipInflator

Decompresses a GZIP data and pipes the output to delegated processors.

Decompresses a GZIP data and pipes the output to delegated processors.
If the data contains multiple concatenated GZIP streams it will pipe multiple decompressed objects with isLastPart set to true at the end of each stream.

PropertyTypeDescription
encodingVarObjectVariable used to pass header value from header handlers.
processorProcessor.BuilderAdd one or more processors.

2.16 - json

Parses JSON responses using simple queries.

Parses JSON responses using simple queries.

PropertyTypeDescription
deletebooleanIf this is set to true, the selected key will be deleted from the JSON and the modified JSON will be passed to the processor.
formatenumConversion to apply on the matching parts with ’toVar’ or ’toArray’ shortcuts.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
processorProcessor.BuilderAdd one or more processors.
processor (alternative)Processor.BuilderIf neither delete or replace was set this processor will be called with the selected parts. In the other case the processor will be called with chunks of full (modified) JSON.

Note that the processor.before() and processor.after() methods are called only once for each request, not for the individual filtered items.

queryStringQuery selecting the part of JSON.
replaceTransformer.BuilderCustom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.
replace (alternative)StringReplace value of selected item with value generated through a pattern. Note that the result must contain quotes and be correctly escaped.
toArrayStringShortcut to store selected parts in an array in the session. Must follow the pattern variable[maxSize]
toVarStringShortcut to store first match in given variable. Further matches are ignored.
unquotebooleanAutomatically unquote and unescape the input values. By default true.

replace

Custom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.

PropertyTypeDescription
actionsActionsTransformer.BuilderThis transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.
patternPattern.TransformerBuilderUse pattern replacing session variables.

replace.actions

This transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.

PropertyTypeDescription
actionsAction.BuilderActions to be executed.
formatenumFormat into which should this transformer convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
patternStringPattern to use when fetching the transformed value.
varStringVariable used as the intermediate storage for the data.

replace.pattern

Use pattern replacing session variables.

Inline definition
The pattern formatting string.
PropertyTypeDescription
patternStringUse pattern replacing session variables.

2.17 - log

Log a message and variable values.

Log a message and variable values.

Inline definition
A pattern for
string
interpolation.
PropertyTypeDescription
messageStringMessage format pattern. Use string interpolation for variables.

2.18 - logInvalid

Logs body chunks from requests marked as invalid.

Logs body chunks from requests marked as invalid.

2.19 - markRequestInvalid

Unconditionally mark currently processed request as invalid.

Unconditionally mark currently processed request as invalid.

2.20 - newSequence

Instantiates a sequence for each invocation.

Instantiates a sequence for each invocation.

Inline definition
Sequence name.
PropertyTypeDescription
concurrencyPolicyenum
Options:
  • FAIL
  • WARN
forceSameIndexbooleanForces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence.
sequenceStringName of the instantiated sequence.

2.21 - parseHtml

Parses HTML tags and invokes handlers based on criteria.

Parses HTML tags and invokes handlers based on criteria.

PropertyTypeDescription
onEmbeddedResourceBuilderHandler firing upon reference to other resource, e.g. image, stylesheet…
onTagAttributeBuilder<no description>

onEmbeddedResource

Handles <img src="…">, <link href="…">, <embed src="…">, <frame src="…">, <iframe src="…">, <object data="…"> and <script src="…">.

Does not handle <source src="…"> or <track src="…"> because browser would choose only one of the options.

PropertyTypeDescription
fetchResourceBuilderAutomatically download referenced resource.
ignoreExternalbooleanIgnore resources hosted on servers that are not covered in the http section.
processorProcessor.BuilderAdd one or more processors.
processor (alternative)Processor.BuilderCustom processor invoked pointing to attribute data - e.g. in case of <img> tag the processor gets contents of the src attribute.

onEmbeddedResource.fetchResource

Automates download of embedded resources.

PropertyTypeDescription
concurrencyintMaximum number of resources fetched concurrently. Default is 8.
maxResourcesintMaximum number of resources that can be fetched.
metric<list of strings>Metrics selector for downloaded resources.
onCompletionAction.BuilderAction performed when the download of all resources completes.

onEmbeddedResource.fetchResource.metric

Metrics selector for downloaded resources.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

onTagAttribute

PropertyTypeDescription
attributeStringName of the attribute in this element you want to process, e.g. action
formatenumConversion to apply on the matching parts with ’toVar’ or ’toArray’ shortcuts.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
processorProcessor.BuilderAdd one or more processors.
tagStringName of the tag this handler should look for, e.g. form
toArrayStringShortcut to store selected parts in an array in the session. Must follow the pattern variable[maxSize]
toVarStringShortcut to store first match in given variable. Further matches are ignored.

2.22 - publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

Makes the data available to all sessions in the same agent, including those using different executors.

Inline definition
Both name of source variable and the key used to read the data.
PropertyTypeDescription
fromVarStringSource session variable name.
nameStringArbitrary unique identifier for the data.

2.23 - publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

Gathers values from session variables and publishes them globally (to all agents).
You can name the counters individually (example 1) or use the variable names (example 2):

<code>
+# Example 1:
 - publishGlobalCounters:
     key: myKey
     vars: [ foo, bar ]
@@ -58,21 +47,9 @@
     vars:
     - foo: myFoo
     - bar: bbb
-</code>```
-
-
-| Property | Type | Description |
-| ------- | ------- | -------- |
-| key | String | Identifier of the global record. |
-| vars | [Builder](#vars) | List of names and session variables. |
-
-### vars
-
-| Property | Type | Description |
-| ------- | ------- | ------- |
-| &lt;any&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-| &lt;list of strings&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-

2.24 - queue

Stores defragmented data in a queue.

Stores defragmented data in a queue.
For each item in the queue a new sequence instance will be started (subject the concurrency constraints) with sequence index that allows it to read an object from an array using sequence-scoped access.

PropertyTypeDescription
concurrencyintMaximum number of started sequences that can be running at one moment.
formatenumConversion format from byte buffers. Default format is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
maxSizeintMaximum number of elements that can be stored in the queue.
onCompletionAction.BuilderCustom action that should be performed when the last consuming sequence reports that it has processed the last element from the queue. Note that the sequence is NOT automatically augmented to report completion.
sequenceStringName of the started sequence.
varStringVariable storing the array that it used as a output object from the queue.

2.25 - readAgentData

Reads data from agent-wide scope into session variable.

Reads data from agent-wide scope into session variable.
The data must be published in a phase that has terminated before this phase starts: usually this is achieved using the startAfterStrict property on the phase.

Inline definition
Both the identifier and destination session variable.
PropertyTypeDescription
nameStringUnique identifier for the data.
toVarStringDestination session variable name.

2.26 - removeItem

Removes element from an array of variables.

Removes element from an array of variables.

PropertyTypeDescription
fromVarStringVariable containing an existing array of object variables.
indexBuilderSet index at which the item should be removed. Elements to the right of this are moved to the left.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

2.27 - restartSequence

Schedules a restart of this sequence.

Schedules a restart of this sequence.

2.28 - set

Set variable in session to certain value.

Set variable in session to certain value.

Inline definition
Use var <- value.
PropertyTypeDescription
intArrayBuilderSet variable to an (unset) integer array.
objectArrayBuilderSet variable to an (unset) object array.
valueStringString value.
varStringVariable name.

intArray

Creates integer arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

objectArray

Creates object arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

2.29 - setInt

Set session variable to an integral value.

Set session variable to an integral value.

Inline definition
Use var <- value.
PropertyTypeDescription
fromVarStringInput variable name.
intConditionBuilderSet variable only if the current value satisfies certain condition.
maxBuilderSet to value that is the maximum of this list of values.
minBuilderSet to value that is the minimum of this list of values.
onlyIfNotSetbooleanSet variable to the value only if it is not already set.
valueintValue (integer).
varStringVariable name.

intCondition

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

max

PropertyTypeDescription
<list of mappings><list of builders><no description>

max.<list of mappings>

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

min

PropertyTypeDescription
<list of mappings><list of builders><no description>

2.30 - setItem

Set element in a collection on given position.

Set element in a collection on given position.

PropertyTypeDescription
fromVarStringFetch value from session variable.
indexBuilderInteger session variable with an index into the collection.
toVarStringSession variable with the collection.
valueStringVerbatim value.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

2.31 - setSharedCounter

Sets value in a counter shared by all sessions in the same executor.

Sets value in a counter shared by all sessions in the same executor.

Inline definition
Both the name of the counter and variable name.
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
valueintValue (integer).

2.32 - store

Stores data in a session variable (overwriting on multiple occurences).

Stores data in a session variable (overwriting on multiple occurences).

Inline definition
Variable name.
PropertyTypeDescription
formatenumFormat into which should this processor convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
toVarObjectVariable name.

2.33 - storeInt

Converts buffers into integral value and stores it in a variable.

Converts buffers into integral value and stores it in a variable.

Inline definition
Name of integer variable where to store the value.
PropertyTypeDescription
overridebooleanAllow the value to be set multiple times (last write wins). Defaults to false.
toVarStringName of variable where to store the integral value.

2.34 - stringToInt

Parse string into integer and store it in a variable.

Parse string into integer and store it in a variable.

If the parsing fails the target variable is not modified.

Inline definition
Use fromVar -&gt; toVar
PropertyTypeDescription
fromVarStringSource variable name.
toVarStringTarget variable name.

2.35 - unset

Undefine variable name.

Undefine variable name.

Inline definition
Variable name.
PropertyTypeDescription
varObjectVariable name.

3 - Actions

Actions are non-blocking handlers for various events.

3.1 - addItem

Appends value to an array stored in another variable.

Appends value to an array stored in another variable.

PropertyTypeDescription
fromVarStringFetch value from session variable.
toVarStringDestination variable with the array.
valueStringVerbatim value.

3.2 - addToInt

Add value to integer variable in the session.

Add value to integer variable in the session.

Inline definition
Accepting one of: var++, var–, var += value, var -= value.
PropertyTypeDescription
orElseSetTointIf the variable is currently not set, set it to this value instead of addition.
valueintValue added (can be negative).
varStringVariable name.

3.3 - addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

Adds value to a counter shared by all sessions in the same executor.

Inline definition
Use on of: counter++, counter–, counter += <value>,
counter -= <value>
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
operatorenumOperation to perform on the counter. Default is ADD.
Options:
  • ADD
  • SUBTRACT
valueintValue (integer).

3.4 - clearHttpCache

Drops all entries from HTTP cache in the session.

Drops all entries from HTTP cache in the session.

3.5 - conditional

Perform an action or sequence of actions conditionally.

Perform an action or sequence of actions conditionally.

PropertyTypeDescription
actionsAction.BuilderActions that should be executed should the condition hold.
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

3.6 - fail

Fail the phase with given message. Used mostly for testing/debugging.

Fail the phase with given message. Used mostly for testing/debugging.

Inline definition
Message to fail with (unconditionally).
PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
messageStringMessage attached to the failure exception.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

3.7 - getIndex

Lookup index of an item in an array/collection.

Lookup index of an item in an array/collection.

PropertyTypeDescription
collectionStringVariable to fetch the collection from.
itemBuilderItem that should be looked up (using equality).
toVarStringInteger variable to store the index, or -1 if the item is not found.

item

Inline definition
Verbatim value.
PropertyTypeDescription
fromVarStringFetch value from session variable.
valueStringVerbatim value.

3.8 - getItem

Retrieves n-th item from an array or collection.

Retrieves n-th item from an array or collection.

PropertyTypeDescription
fromVarStringSource variable with an array or list.
indexBuilderSource for index into the array/list.
toVarStringDestination variable for the n-th element.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

3.9 - getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.
If the value exceeds allowed integer range (-2^31 .. 2^31 - 1) it is capped.

Inline definition
Both the key and variable name.
PropertyTypeDescription
keyStringIdentifier for the counter.
toVarStringSession variable for storing the value.

3.10 - getSize

Calculates size of an array/collection held in variable into another variable

Calculates size of an array/collection held in variable into another variable

PropertyTypeDescription
boolFilterBuilderCount only items matching the condition.
fromVarStringVariable holding the collection.
intFilterBuilderCount only items matching the condition.
stringFilterBuilderCount only items matching the condition.
toVarStringVariable storing the size.
undefinedValueintValue to use when fromVar is unset or it does not contain any array/collection.

boolFilter

PropertyTypeDescription
valuebooleanExpected value.

intFilter

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intFilter.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringFilter.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringFilter.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

3.11 - log

Log a message and variable values.

Log a message and variable values.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
messageStringMessage format pattern. Use string interpolation for variables.

3.12 - markRequestInvalid

Unconditionally mark currently processed request as invalid.

Unconditionally mark currently processed request as invalid.

3.13 - newSequence

Instantiates a sequence for each invocation.

Instantiates a sequence for each invocation.

Inline definition
Sequence name.
PropertyTypeDescription
concurrencyPolicyenum
Options:
  • FAIL
  • WARN
forceSameIndexbooleanForces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence.
sequenceStringName of the instantiated sequence.

3.14 - publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

Makes the data available to all sessions in the same agent, including those using different executors.

Inline definition
Both name of source variable and the key used to read the data.
PropertyTypeDescription
fromVarStringSource session variable name.
nameStringArbitrary unique identifier for the data.

3.15 - publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

Gathers values from session variables and publishes them globally (to all agents).
You can name the counters individually (example 1) or use the variable names (example 2):

# Example 1:
+</code>
+
PropertyTypeDescription
keyStringIdentifier of the global record.
varsBuilderList of names and session variables.

vars

PropertyTypeDescription
<any><unknown><no description>
<list of strings><unknown><no description>

2.24 - queue

Stores defragmented data in a queue.

Stores defragmented data in a queue.
For each item in the queue a new sequence instance will be started (subject the concurrency constraints) with sequence index that allows it to read an object from an array using sequence-scoped access.

PropertyTypeDescription
concurrencyintMaximum number of started sequences that can be running at one moment.
formatenumConversion format from byte buffers. Default format is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
maxSizeintMaximum number of elements that can be stored in the queue.
onCompletionAction.BuilderCustom action that should be performed when the last consuming sequence reports that it has processed the last element from the queue. Note that the sequence is NOT automatically augmented to report completion.
sequenceStringName of the started sequence.
varStringVariable storing the array that it used as a output object from the queue.

2.25 - readAgentData

Reads data from agent-wide scope into session variable.

Reads data from agent-wide scope into session variable.
The data must be published in a phase that has terminated before this phase starts: usually this is achieved using the startAfterStrict property on the phase.

Inline definition
Both the identifier and destination session variable.
PropertyTypeDescription
nameStringUnique identifier for the data.
toVarStringDestination session variable name.

2.26 - removeItem

Removes element from an array of variables.

Removes element from an array of variables.

PropertyTypeDescription
fromVarStringVariable containing an existing array of object variables.
indexBuilderSet index at which the item should be removed. Elements to the right of this are moved to the left.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

2.27 - restartSequence

Schedules a restart of this sequence.

Schedules a restart of this sequence.

2.28 - set

Set variable in session to certain value.

Set variable in session to certain value.

Inline definition
Use var <- value.
PropertyTypeDescription
intArrayBuilderSet variable to an (unset) integer array.
objectArrayBuilderSet variable to an (unset) object array.
valueStringString value.
varStringVariable name.

intArray

Creates integer arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

objectArray

Creates object arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

2.29 - setInt

Set session variable to an integral value.

Set session variable to an integral value.

Inline definition
Use var <- value.
PropertyTypeDescription
fromVarStringInput variable name.
intConditionBuilderSet variable only if the current value satisfies certain condition.
maxBuilderSet to value that is the maximum of this list of values.
minBuilderSet to value that is the minimum of this list of values.
onlyIfNotSetbooleanSet variable to the value only if it is not already set.
valueintValue (integer).
varStringVariable name.

intCondition

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

max

PropertyTypeDescription
<list of mappings><list of builders><no description>

max.<list of mappings>

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

min

PropertyTypeDescription
<list of mappings><list of builders><no description>

2.30 - setItem

Set element in a collection on given position.

Set element in a collection on given position.

PropertyTypeDescription
fromVarStringFetch value from session variable.
indexBuilderInteger session variable with an index into the collection.
toVarStringSession variable with the collection.
valueStringVerbatim value.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

2.31 - setSharedCounter

Sets value in a counter shared by all sessions in the same executor.

Sets value in a counter shared by all sessions in the same executor.

Inline definition
Both the name of the counter and variable name.
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
valueintValue (integer).

2.32 - store

Stores data in a session variable (overwriting on multiple occurences).

Stores data in a session variable (overwriting on multiple occurences).

Inline definition
Variable name.
PropertyTypeDescription
formatenumFormat into which should this processor convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
toVarObjectVariable name.

2.33 - storeInt

Converts buffers into integral value and stores it in a variable.

Converts buffers into integral value and stores it in a variable.

Inline definition
Name of integer variable where to store the value.
PropertyTypeDescription
overridebooleanAllow the value to be set multiple times (last write wins). Defaults to false.
toVarStringName of variable where to store the integral value.

2.34 - stringToInt

Parse string into integer and store it in a variable.

Parse string into integer and store it in a variable.

If the parsing fails the target variable is not modified.

Inline definition
Use fromVar -&gt; toVar
PropertyTypeDescription
fromVarStringSource variable name.
toVarStringTarget variable name.

2.35 - unset

Undefine variable name.

Undefine variable name.

Inline definition
Variable name.
PropertyTypeDescription
varObjectVariable name.

3 - Actions

Actions are non-blocking handlers for various events.

3.1 - addItem

Appends value to an array stored in another variable.

Appends value to an array stored in another variable.

PropertyTypeDescription
fromVarStringFetch value from session variable.
toVarStringDestination variable with the array.
valueStringVerbatim value.

3.2 - addToInt

Add value to integer variable in the session.

Add value to integer variable in the session.

Inline definition
Accepting one of: var++, var–, var += value,
var -= value.
PropertyTypeDescription
orElseSetTointIf the variable is currently not set, set it to this value instead of addition.
valueintValue added (can be negative).
varStringVariable name.

3.3 - addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

Adds value to a counter shared by all sessions in the same executor.

Inline definition
Use on of: counter++, counter–, counter += <value>,
counter -= <value>
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
operatorenumOperation to perform on the counter. Default is ADD.
Options:
  • ADD
  • SUBTRACT
valueintValue (integer).

3.4 - clearHttpCache

Drops all entries from HTTP cache in the session.

Drops all entries from HTTP cache in the session.

3.5 - conditional

Perform an action or sequence of actions conditionally.

Perform an action or sequence of actions conditionally.

PropertyTypeDescription
actionsAction.BuilderActions that should be executed should the condition hold.
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

3.6 - fail

Fail the phase with given message. Used mostly for testing/debugging.

Fail the phase with given message. Used mostly for testing/debugging.

Inline definition
Message to fail with (unconditionally).
PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
messageStringMessage attached to the failure exception.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

3.7 - getIndex

Lookup index of an item in an array/collection.

Lookup index of an item in an array/collection.

PropertyTypeDescription
collectionStringVariable to fetch the collection from.
itemBuilderItem that should be looked up (using equality).
toVarStringInteger variable to store the index, or -1 if the item is not found.

item

Inline definition
Verbatim value.
PropertyTypeDescription
fromVarStringFetch value from session variable.
valueStringVerbatim value.

3.8 - getItem

Retrieves n-th item from an array or collection.

Retrieves n-th item from an array or collection.

PropertyTypeDescription
fromVarStringSource variable with an array or list.
indexBuilderSource for index into the array/list.
toVarStringDestination variable for the n-th element.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

3.9 - getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.
If the value exceeds allowed integer range (-2^31 .. 2^31 - 1) it is capped.

Inline definition
Both the key and variable name.
PropertyTypeDescription
keyStringIdentifier for the counter.
toVarStringSession variable for storing the value.

3.10 - getSize

Calculates size of an array/collection held in variable into another variable

Calculates size of an array/collection held in variable into another variable

PropertyTypeDescription
boolFilterBuilderCount only items matching the condition.
fromVarStringVariable holding the collection.
intFilterBuilderCount only items matching the condition.
stringFilterBuilderCount only items matching the condition.
toVarStringVariable storing the size.
undefinedValueintValue to use when fromVar is unset or it does not contain any array/collection.

boolFilter

PropertyTypeDescription
valuebooleanExpected value.

intFilter

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intFilter.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringFilter.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringFilter.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

3.11 - log

Log a message and variable values.

Log a message and variable values.

Inline definition
A pattern for
string
interpolation.
PropertyTypeDescription
messageStringMessage format pattern. Use string interpolation for variables.

3.12 - markRequestInvalid

Unconditionally mark currently processed request as invalid.

Unconditionally mark currently processed request as invalid.

3.13 - newSequence

Instantiates a sequence for each invocation.

Instantiates a sequence for each invocation.

Inline definition
Sequence name.
PropertyTypeDescription
concurrencyPolicyenum
Options:
  • FAIL
  • WARN
forceSameIndexbooleanForces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence.
sequenceStringName of the instantiated sequence.

3.14 - publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

Makes the data available to all sessions in the same agent, including those using different executors.

Inline definition
Both name of source variable and the key used to read the data.
PropertyTypeDescription
fromVarStringSource session variable name.
nameStringArbitrary unique identifier for the data.

3.15 - publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

Gathers values from session variables and publishes them globally (to all agents).
You can name the counters individually (example 1) or use the variable names (example 2):

<code>
+# Example 1:
 - publishGlobalCounters:
     key: myKey
     vars: [ foo, bar ]
@@ -82,21 +59,8 @@
     vars:
     - foo: myFoo
     - bar: bbb
-</code>```
-
-
-| Property | Type | Description |
-| ------- | ------- | -------- |
-| key | String | Identifier of the global record. |
-| vars | [Builder](#vars) | List of names and session variables. |
-
-### vars
-
-| Property | Type | Description |
-| ------- | ------- | ------- |
-| &lt;any&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-| &lt;list of strings&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-

3.16 - readAgentData

Reads data from agent-wide scope into session variable.

Reads data from agent-wide scope into session variable.
The data must be published in a phase that has terminated before this phase starts: usually this is achieved using the startAfterStrict property on the phase.

Inline definition
Both the identifier and destination session variable.
PropertyTypeDescription
nameStringUnique identifier for the data.
toVarStringDestination session variable name.

3.17 - removeItem

Removes element from an array of variables.

Removes element from an array of variables.

PropertyTypeDescription
fromVarStringVariable containing an existing array of object variables.
indexBuilderSet index at which the item should be removed. Elements to the right of this are moved to the left.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

3.18 - restartSequence

Schedules a restart of this sequence.

Schedules a restart of this sequence.

3.19 - set

Set variable in session to certain value.

Set variable in session to certain value.

Inline definition
Use var <- value.
PropertyTypeDescription
intArrayBuilderSet variable to an (unset) integer array.
objectArrayBuilderSet variable to an (unset) object array.
valueStringString value.
varStringVariable name.

intArray

Creates integer arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

objectArray

Creates object arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

3.20 - setInt

Set session variable to an integral value.

Set session variable to an integral value.

Inline definition
Use var <- value.
PropertyTypeDescription
fromVarStringInput variable name.
intConditionBuilderSet variable only if the current value satisfies certain condition.
maxBuilderSet to value that is the maximum of this list of values.
minBuilderSet to value that is the minimum of this list of values.
onlyIfNotSetbooleanSet variable to the value only if it is not already set.
valueintValue (integer).
varStringVariable name.

intCondition

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

max

PropertyTypeDescription
<list of mappings><list of builders><no description>

max.<list of mappings>

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

min

PropertyTypeDescription
<list of mappings><list of builders><no description>

3.21 - setItem

Set element in a collection on given position.

Set element in a collection on given position.

PropertyTypeDescription
fromVarStringFetch value from session variable.
indexBuilderInteger session variable with an index into the collection.
toVarStringSession variable with the collection.
valueStringVerbatim value.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

3.22 - setSharedCounter

Sets value in a counter shared by all sessions in the same executor.

Sets value in a counter shared by all sessions in the same executor.

Inline definition
Both the name of the counter and variable name.
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
valueintValue (integer).

3.23 - stringToInt

Parse string into integer and store it in a variable.

Parse string into integer and store it in a variable.

If the parsing fails the target variable is not modified.

Inline definition
Use fromVar -&gt; toVar
PropertyTypeDescription
fromVarStringSource variable name.
toVarStringTarget variable name.

3.24 - unset

Undefine variable name.

Undefine variable name.

Inline definition
Variable name.
PropertyTypeDescription
varObjectVariable name.

3.16 - readAgentData

Reads data from agent-wide scope into session variable.

Reads data from agent-wide scope into session variable.
The data must be published in a phase that has terminated before this phase starts: usually this is achieved using the startAfterStrict property on the phase.

Inline definition
Both the identifier and destination session variable.
PropertyTypeDescription
nameStringUnique identifier for the data.
toVarStringDestination session variable name.

3.17 - removeItem

Removes element from an array of variables.

Removes element from an array of variables.

PropertyTypeDescription
fromVarStringVariable containing an existing array of object variables.
indexBuilderSet index at which the item should be removed. Elements to the right of this are moved to the left.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

3.18 - restartSequence

Schedules a restart of this sequence.

Schedules a restart of this sequence.

3.19 - set

Set variable in session to certain value.

Set variable in session to certain value.

Inline definition
Use var <- value.
PropertyTypeDescription
intArrayBuilderSet variable to an (unset) integer array.
objectArrayBuilderSet variable to an (unset) object array.
valueStringString value.
varStringVariable name.

intArray

Creates integer arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

objectArray

Creates object arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

3.20 - setInt

Set session variable to an integral value.

Set session variable to an integral value.

Inline definition
Use var <- value.
PropertyTypeDescription
fromVarStringInput variable name.
intConditionBuilderSet variable only if the current value satisfies certain condition.
maxBuilderSet to value that is the maximum of this list of values.
minBuilderSet to value that is the minimum of this list of values.
onlyIfNotSetbooleanSet variable to the value only if it is not already set.
valueintValue (integer).
varStringVariable name.

intCondition

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

max

PropertyTypeDescription
<list of mappings><list of builders><no description>

max.<list of mappings>

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

min

PropertyTypeDescription
<list of mappings><list of builders><no description>

3.21 - setItem

Set element in a collection on given position.

Set element in a collection on given position.

PropertyTypeDescription
fromVarStringFetch value from session variable.
indexBuilderInteger session variable with an index into the collection.
toVarStringSession variable with the collection.
valueStringVerbatim value.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

3.22 - setSharedCounter

Sets value in a counter shared by all sessions in the same executor.

Sets value in a counter shared by all sessions in the same executor.

Inline definition
Both the name of the counter and variable name.
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
valueintValue (integer).

3.23 - stringToInt

Parse string into integer and store it in a variable.

Parse string into integer and store it in a variable.

If the parsing fails the target variable is not modified.

Inline definition
Use fromVar -&gt; toVar
PropertyTypeDescription
fromVarStringSource variable name.
toVarStringTarget variable name.

3.24 - unset

Undefine variable name.

Undefine variable name.

Inline definition
Variable name.
PropertyTypeDescription
varObjectVariable name.
diff --git a/docs/reference/actions/_print/index.html b/docs/reference/actions/_print/index.html index 24986cb..a770374 100644 --- a/docs/reference/actions/_print/index.html +++ b/docs/reference/actions/_print/index.html @@ -1,6 +1,7 @@ Actions | Hyperfoil -

1 - addItem

Appends value to an array stored in another variable.

Appends value to an array stored in another variable.

PropertyTypeDescription
fromVarStringFetch value from session variable.
toVarStringDestination variable with the array.
valueStringVerbatim value.

2 - addToInt

Add value to integer variable in the session.

Add value to integer variable in the session.

Inline definition
Accepting one of: var++, var–, var += value, var -= value.
PropertyTypeDescription
orElseSetTointIf the variable is currently not set, set it to this value instead of addition.
valueintValue added (can be negative).
varStringVariable name.

3 - addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

Adds value to a counter shared by all sessions in the same executor.

Inline definition
Use on of: counter++, counter–, counter += <value>,
counter -= <value>
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
operatorenumOperation to perform on the counter. Default is ADD.
Options:
  • ADD
  • SUBTRACT
valueintValue (integer).

4 - clearHttpCache

Drops all entries from HTTP cache in the session.

Drops all entries from HTTP cache in the session.

5 - conditional

Perform an action or sequence of actions conditionally.

Perform an action or sequence of actions conditionally.

PropertyTypeDescription
actionsAction.BuilderActions that should be executed should the condition hold.
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

6 - fail

Fail the phase with given message. Used mostly for testing/debugging.

Fail the phase with given message. Used mostly for testing/debugging.

Inline definition
Message to fail with (unconditionally).
PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
messageStringMessage attached to the failure exception.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

7 - getIndex

Lookup index of an item in an array/collection.

Lookup index of an item in an array/collection.

PropertyTypeDescription
collectionStringVariable to fetch the collection from.
itemBuilderItem that should be looked up (using equality).
toVarStringInteger variable to store the index, or -1 if the item is not found.

item

Inline definition
Verbatim value.
PropertyTypeDescription
fromVarStringFetch value from session variable.
valueStringVerbatim value.

8 - getItem

Retrieves n-th item from an array or collection.

Retrieves n-th item from an array or collection.

PropertyTypeDescription
fromVarStringSource variable with an array or list.
indexBuilderSource for index into the array/list.
toVarStringDestination variable for the n-th element.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

9 - getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.
If the value exceeds allowed integer range (-2^31 .. 2^31 - 1) it is capped.

Inline definition
Both the key and variable name.
PropertyTypeDescription
keyStringIdentifier for the counter.
toVarStringSession variable for storing the value.

10 - getSize

Calculates size of an array/collection held in variable into another variable

Calculates size of an array/collection held in variable into another variable

PropertyTypeDescription
boolFilterBuilderCount only items matching the condition.
fromVarStringVariable holding the collection.
intFilterBuilderCount only items matching the condition.
stringFilterBuilderCount only items matching the condition.
toVarStringVariable storing the size.
undefinedValueintValue to use when fromVar is unset or it does not contain any array/collection.

boolFilter

PropertyTypeDescription
valuebooleanExpected value.

intFilter

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intFilter.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringFilter.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringFilter.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

11 - log

Log a message and variable values.

Log a message and variable values.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
messageStringMessage format pattern. Use string interpolation for variables.

12 - markRequestInvalid

Unconditionally mark currently processed request as invalid.

Unconditionally mark currently processed request as invalid.

13 - newSequence

Instantiates a sequence for each invocation.

Instantiates a sequence for each invocation.

Inline definition
Sequence name.
PropertyTypeDescription
concurrencyPolicyenum
Options:
  • FAIL
  • WARN
forceSameIndexbooleanForces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence.
sequenceStringName of the instantiated sequence.

14 - publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

Makes the data available to all sessions in the same agent, including those using different executors.

Inline definition
Both name of source variable and the key used to read the data.
PropertyTypeDescription
fromVarStringSource session variable name.
nameStringArbitrary unique identifier for the data.

15 - publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

Gathers values from session variables and publishes them globally (to all agents).
You can name the counters individually (example 1) or use the variable names (example 2):

# Example 1:
+

1 - addItem

Appends value to an array stored in another variable.

Appends value to an array stored in another variable.

PropertyTypeDescription
fromVarStringFetch value from session variable.
toVarStringDestination variable with the array.
valueStringVerbatim value.

2 - addToInt

Add value to integer variable in the session.

Add value to integer variable in the session.

Inline definition
Accepting one of: var++, var–, var += value,
var -= value.
PropertyTypeDescription
orElseSetTointIf the variable is currently not set, set it to this value instead of addition.
valueintValue added (can be negative).
varStringVariable name.

3 - addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

Adds value to a counter shared by all sessions in the same executor.

Inline definition
Use on of: counter++, counter–, counter += <value>,
counter -= <value>
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
operatorenumOperation to perform on the counter. Default is ADD.
Options:
  • ADD
  • SUBTRACT
valueintValue (integer).

4 - clearHttpCache

Drops all entries from HTTP cache in the session.

Drops all entries from HTTP cache in the session.

5 - conditional

Perform an action or sequence of actions conditionally.

Perform an action or sequence of actions conditionally.

PropertyTypeDescription
actionsAction.BuilderActions that should be executed should the condition hold.
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

6 - fail

Fail the phase with given message. Used mostly for testing/debugging.

Fail the phase with given message. Used mostly for testing/debugging.

Inline definition
Message to fail with (unconditionally).
PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
messageStringMessage attached to the failure exception.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

7 - getIndex

Lookup index of an item in an array/collection.

Lookup index of an item in an array/collection.

PropertyTypeDescription
collectionStringVariable to fetch the collection from.
itemBuilderItem that should be looked up (using equality).
toVarStringInteger variable to store the index, or -1 if the item is not found.

item

Inline definition
Verbatim value.
PropertyTypeDescription
fromVarStringFetch value from session variable.
valueStringVerbatim value.

8 - getItem

Retrieves n-th item from an array or collection.

Retrieves n-th item from an array or collection.

PropertyTypeDescription
fromVarStringSource variable with an array or list.
indexBuilderSource for index into the array/list.
toVarStringDestination variable for the n-th element.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

9 - getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.
If the value exceeds allowed integer range (-2^31 .. 2^31 - 1) it is capped.

Inline definition
Both the key and variable name.
PropertyTypeDescription
keyStringIdentifier for the counter.
toVarStringSession variable for storing the value.

10 - getSize

Calculates size of an array/collection held in variable into another variable

Calculates size of an array/collection held in variable into another variable

PropertyTypeDescription
boolFilterBuilderCount only items matching the condition.
fromVarStringVariable holding the collection.
intFilterBuilderCount only items matching the condition.
stringFilterBuilderCount only items matching the condition.
toVarStringVariable storing the size.
undefinedValueintValue to use when fromVar is unset or it does not contain any array/collection.

boolFilter

PropertyTypeDescription
valuebooleanExpected value.

intFilter

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intFilter.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringFilter.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringFilter.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

11 - log

Log a message and variable values.

Log a message and variable values.

Inline definition
A pattern for
string
interpolation.
PropertyTypeDescription
messageStringMessage format pattern. Use string interpolation for variables.

12 - markRequestInvalid

Unconditionally mark currently processed request as invalid.

Unconditionally mark currently processed request as invalid.

13 - newSequence

Instantiates a sequence for each invocation.

Instantiates a sequence for each invocation.

Inline definition
Sequence name.
PropertyTypeDescription
concurrencyPolicyenum
Options:
  • FAIL
  • WARN
forceSameIndexbooleanForces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence.
sequenceStringName of the instantiated sequence.

14 - publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

Makes the data available to all sessions in the same agent, including those using different executors.

Inline definition
Both name of source variable and the key used to read the data.
PropertyTypeDescription
fromVarStringSource session variable name.
nameStringArbitrary unique identifier for the data.

15 - publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

Gathers values from session variables and publishes them globally (to all agents).
You can name the counters individually (example 1) or use the variable names (example 2):

<code>
+# Example 1:
 - publishGlobalCounters:
     key: myKey
     vars: [ foo, bar ]
@@ -10,21 +11,8 @@
     vars:
     - foo: myFoo
     - bar: bbb
-</code>```
-
-
-| Property | Type | Description |
-| ------- | ------- | -------- |
-| key | String | Identifier of the global record. |
-| vars | [Builder](#vars) | List of names and session variables. |
-
-### vars
-
-| Property | Type | Description |
-| ------- | ------- | ------- |
-| &lt;any&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-| &lt;list of strings&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-

16 - readAgentData

Reads data from agent-wide scope into session variable.

Reads data from agent-wide scope into session variable.
The data must be published in a phase that has terminated before this phase starts: usually this is achieved using the startAfterStrict property on the phase.

Inline definition
Both the identifier and destination session variable.
PropertyTypeDescription
nameStringUnique identifier for the data.
toVarStringDestination session variable name.

17 - removeItem

Removes element from an array of variables.

Removes element from an array of variables.

PropertyTypeDescription
fromVarStringVariable containing an existing array of object variables.
indexBuilderSet index at which the item should be removed. Elements to the right of this are moved to the left.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

18 - restartSequence

Schedules a restart of this sequence.

Schedules a restart of this sequence.

19 - set

Set variable in session to certain value.

Set variable in session to certain value.

Inline definition
Use var <- value.
PropertyTypeDescription
intArrayBuilderSet variable to an (unset) integer array.
objectArrayBuilderSet variable to an (unset) object array.
valueStringString value.
varStringVariable name.

intArray

Creates integer arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

objectArray

Creates object arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

20 - setInt

Set session variable to an integral value.

Set session variable to an integral value.

Inline definition
Use var <- value.
PropertyTypeDescription
fromVarStringInput variable name.
intConditionBuilderSet variable only if the current value satisfies certain condition.
maxBuilderSet to value that is the maximum of this list of values.
minBuilderSet to value that is the minimum of this list of values.
onlyIfNotSetbooleanSet variable to the value only if it is not already set.
valueintValue (integer).
varStringVariable name.

intCondition

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

max

PropertyTypeDescription
<list of mappings><list of builders><no description>

max.<list of mappings>

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

min

PropertyTypeDescription
<list of mappings><list of builders><no description>

21 - setItem

Set element in a collection on given position.

Set element in a collection on given position.

PropertyTypeDescription
fromVarStringFetch value from session variable.
indexBuilderInteger session variable with an index into the collection.
toVarStringSession variable with the collection.
valueStringVerbatim value.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

22 - setSharedCounter

Sets value in a counter shared by all sessions in the same executor.

Sets value in a counter shared by all sessions in the same executor.

Inline definition
Both the name of the counter and variable name.
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
valueintValue (integer).

23 - stringToInt

Parse string into integer and store it in a variable.

Parse string into integer and store it in a variable.

If the parsing fails the target variable is not modified.

Inline definition
Use fromVar -&gt; toVar
PropertyTypeDescription
fromVarStringSource variable name.
toVarStringTarget variable name.

24 - unset

Undefine variable name.

Undefine variable name.

Inline definition
Variable name.
PropertyTypeDescription
varObjectVariable name.
PropertyTypeDescription
keyStringIdentifier of the global record.
varsBuilderList of names and session variables.

vars

PropertyTypeDescription
<any><unknown><no description>
<list of strings><unknown><no description>

16 - readAgentData

Reads data from agent-wide scope into session variable.

Reads data from agent-wide scope into session variable.
The data must be published in a phase that has terminated before this phase starts: usually this is achieved using the startAfterStrict property on the phase.

Inline definition
Both the identifier and destination session variable.
PropertyTypeDescription
nameStringUnique identifier for the data.
toVarStringDestination session variable name.

17 - removeItem

Removes element from an array of variables.

Removes element from an array of variables.

PropertyTypeDescription
fromVarStringVariable containing an existing array of object variables.
indexBuilderSet index at which the item should be removed. Elements to the right of this are moved to the left.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

18 - restartSequence

Schedules a restart of this sequence.

Schedules a restart of this sequence.

19 - set

Set variable in session to certain value.

Set variable in session to certain value.

Inline definition
Use var <- value.
PropertyTypeDescription
intArrayBuilderSet variable to an (unset) integer array.
objectArrayBuilderSet variable to an (unset) object array.
valueStringString value.
varStringVariable name.

intArray

Creates integer arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

objectArray

Creates object arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

20 - setInt

Set session variable to an integral value.

Set session variable to an integral value.

Inline definition
Use var <- value.
PropertyTypeDescription
fromVarStringInput variable name.
intConditionBuilderSet variable only if the current value satisfies certain condition.
maxBuilderSet to value that is the maximum of this list of values.
minBuilderSet to value that is the minimum of this list of values.
onlyIfNotSetbooleanSet variable to the value only if it is not already set.
valueintValue (integer).
varStringVariable name.

intCondition

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

max

PropertyTypeDescription
<list of mappings><list of builders><no description>

max.<list of mappings>

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

min

PropertyTypeDescription
<list of mappings><list of builders><no description>

21 - setItem

Set element in a collection on given position.

Set element in a collection on given position.

PropertyTypeDescription
fromVarStringFetch value from session variable.
indexBuilderInteger session variable with an index into the collection.
toVarStringSession variable with the collection.
valueStringVerbatim value.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

22 - setSharedCounter

Sets value in a counter shared by all sessions in the same executor.

Sets value in a counter shared by all sessions in the same executor.

Inline definition
Both the name of the counter and variable name.
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
valueintValue (integer).

23 - stringToInt

Parse string into integer and store it in a variable.

Parse string into integer and store it in a variable.

If the parsing fails the target variable is not modified.

Inline definition
Use fromVar -&gt; toVar
PropertyTypeDescription
fromVarStringSource variable name.
toVarStringTarget variable name.

24 - unset

Undefine variable name.

Undefine variable name.

Inline definition
Variable name.
PropertyTypeDescription
varObjectVariable name.
diff --git a/docs/reference/actions/action_additem/index.html b/docs/reference/actions/action_additem/index.html index 79bd1a2..bed12ae 100644 --- a/docs/reference/actions/action_additem/index.html +++ b/docs/reference/actions/action_additem/index.html @@ -1,11 +1,11 @@ -addItem | Hyperfoil -

addItem

Appends value to an array stored in another variable.

Appends value to an array stored in another variable.

PropertyTypeDescription
fromVarStringFetch value from session variable.
toVarStringDestination variable with the array.
valueStringVerbatim value.
+

diff --git a/docs/reference/actions/action_addtoint/index.html b/docs/reference/actions/action_addtoint/index.html index a9ff307..3d31f75 100644 --- a/docs/reference/actions/action_addtoint/index.html +++ b/docs/reference/actions/action_addtoint/index.html @@ -1,11 +1,11 @@ -addToInt | Hyperfoil -

addToInt

Add value to integer variable in the session.

Add value to integer variable in the session.

Inline definition
Accepting one of: var++, var–, var += value,
var -= value.
PropertyTypeDescription
orElseSetTointIf the variable is currently not set, set it to this value instead of addition.
valueintValue added (can be negative).
varStringVariable name.
+

diff --git a/docs/reference/actions/action_addtosharedcounter/index.html b/docs/reference/actions/action_addtosharedcounter/index.html index bb6fd4f..c5a84fb 100644 --- a/docs/reference/actions/action_addtosharedcounter/index.html +++ b/docs/reference/actions/action_addtosharedcounter/index.html @@ -1,11 +1,11 @@ -addToSharedCounter | Hyperfoil -

addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

Adds value to a counter shared by all sessions in the same executor.

Inline definition
Use on of: counter++, counter–, counter += <value>,
counter -= <value>
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
operatorenumOperation to perform on the counter. Default is ADD.
Options:
  • ADD
  • SUBTRACT
valueintValue (integer).
+

diff --git a/docs/reference/actions/action_clearhttpcache/index.html b/docs/reference/actions/action_clearhttpcache/index.html index fab49d1..0ed63ac 100644 --- a/docs/reference/actions/action_clearhttpcache/index.html +++ b/docs/reference/actions/action_clearhttpcache/index.html @@ -1,11 +1,11 @@ -clearHttpCache | Hyperfoil -

clearHttpCache

Drops all entries from HTTP cache in the session.

Drops all entries from HTTP cache in the session.

+

diff --git a/docs/reference/actions/action_conditional/index.html b/docs/reference/actions/action_conditional/index.html index a360eca..3930cfc 100644 --- a/docs/reference/actions/action_conditional/index.html +++ b/docs/reference/actions/action_conditional/index.html @@ -1,11 +1,11 @@ -conditional | Hyperfoil -

conditional

Perform an action or sequence of actions conditionally.

Perform an action or sequence of actions conditionally.

PropertyTypeDescription
actionsAction.BuilderActions that should be executed should the condition hold.
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/actions/action_fail/index.html b/docs/reference/actions/action_fail/index.html index 46d9881..5f081f0 100644 --- a/docs/reference/actions/action_fail/index.html +++ b/docs/reference/actions/action_fail/index.html @@ -1,11 +1,11 @@ -fail | Hyperfoil -

fail

Fail the phase with given message. Used mostly for testing/debugging.

Fail the phase with given message. Used mostly for testing/debugging.

Inline definition
Message to fail with (unconditionally).
PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
messageStringMessage attached to the failure exception.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/actions/action_getindex/index.html b/docs/reference/actions/action_getindex/index.html index 837d42d..ff3fb50 100644 --- a/docs/reference/actions/action_getindex/index.html +++ b/docs/reference/actions/action_getindex/index.html @@ -1,11 +1,11 @@ -getIndex | Hyperfoil -

getIndex

Lookup index of an item in an array/collection.

Lookup index of an item in an array/collection.

PropertyTypeDescription
collectionStringVariable to fetch the collection from.
itemBuilderItem that should be looked up (using equality).
toVarStringInteger variable to store the index, or -1 if the item is not found.

item

Inline definition
Verbatim value.
PropertyTypeDescription
fromVarStringFetch value from session variable.
valueStringVerbatim value.
+

diff --git a/docs/reference/actions/action_getitem/index.html b/docs/reference/actions/action_getitem/index.html index cee608c..765881c 100644 --- a/docs/reference/actions/action_getitem/index.html +++ b/docs/reference/actions/action_getitem/index.html @@ -1,11 +1,11 @@ -getItem | Hyperfoil -

getItem

Retrieves n-th item from an array or collection.

Retrieves n-th item from an array or collection.

PropertyTypeDescription
fromVarStringSource variable with an array or list.
indexBuilderSource for index into the array/list.
toVarStringDestination variable for the n-th element.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/actions/action_getsharedcounter/index.html b/docs/reference/actions/action_getsharedcounter/index.html index 8b363da..11e0679 100644 --- a/docs/reference/actions/action_getsharedcounter/index.html +++ b/docs/reference/actions/action_getsharedcounter/index.html @@ -1,11 +1,11 @@ -getSharedCounter | Hyperfoil -

getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.
If the value exceeds allowed integer range (-2^31 .. 2^31 - 1) it is capped.

Inline definition
Both the key and variable name.
PropertyTypeDescription
keyStringIdentifier for the counter.
toVarStringSession variable for storing the value.
+

diff --git a/docs/reference/actions/action_getsize/index.html b/docs/reference/actions/action_getsize/index.html index 416334e..4b52e59 100644 --- a/docs/reference/actions/action_getsize/index.html +++ b/docs/reference/actions/action_getsize/index.html @@ -1,11 +1,11 @@ -getSize | Hyperfoil -

getSize

Calculates size of an array/collection held in variable into another variable

Calculates size of an array/collection held in variable into another variable

PropertyTypeDescription
boolFilterBuilderCount only items matching the condition.
fromVarStringVariable holding the collection.
intFilterBuilderCount only items matching the condition.
stringFilterBuilderCount only items matching the condition.
toVarStringVariable storing the size.
undefinedValueintValue to use when fromVar is unset or it does not contain any array/collection.

boolFilter

PropertyTypeDescription
valuebooleanExpected value.

intFilter

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intFilter.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringFilter.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringFilter.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/actions/action_log/index.html b/docs/reference/actions/action_log/index.html index 6f1fc72..35ada74 100644 --- a/docs/reference/actions/action_log/index.html +++ b/docs/reference/actions/action_log/index.html @@ -1,11 +1,11 @@ -log | Hyperfoil -

log

Log a message and variable values.

Log a message and variable values.

Inline definition
A pattern for
string
interpolation.
PropertyTypeDescription
messageStringMessage format pattern. Use string interpolation for variables.
+

diff --git a/docs/reference/actions/action_markrequestinvalid/index.html b/docs/reference/actions/action_markrequestinvalid/index.html index ff344c1..0a55165 100644 --- a/docs/reference/actions/action_markrequestinvalid/index.html +++ b/docs/reference/actions/action_markrequestinvalid/index.html @@ -1,11 +1,11 @@ -markRequestInvalid | Hyperfoil -

markRequestInvalid

Unconditionally mark currently processed request as invalid.

Unconditionally mark currently processed request as invalid.

+

diff --git a/docs/reference/actions/action_newsequence/index.html b/docs/reference/actions/action_newsequence/index.html index 1bc4d91..9a58b8e 100644 --- a/docs/reference/actions/action_newsequence/index.html +++ b/docs/reference/actions/action_newsequence/index.html @@ -1,11 +1,11 @@ -newSequence | Hyperfoil -

newSequence

Instantiates a sequence for each invocation.

Instantiates a sequence for each invocation.

Inline definition
Sequence name.
PropertyTypeDescription
concurrencyPolicyenum
Options:
  • FAIL
  • WARN
forceSameIndexbooleanForces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence.
sequenceStringName of the instantiated sequence.
+

diff --git a/docs/reference/actions/action_publishagentdata/index.html b/docs/reference/actions/action_publishagentdata/index.html index c9928cf..6c309ec 100644 --- a/docs/reference/actions/action_publishagentdata/index.html +++ b/docs/reference/actions/action_publishagentdata/index.html @@ -1,11 +1,11 @@ -publishAgentData | Hyperfoil -

publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

Makes the data available to all sessions in the same agent, including those using different executors.

Inline definition
Both name of source variable and the key used to read the data.
PropertyTypeDescription
fromVarStringSource session variable name.
nameStringArbitrary unique identifier for the data.
+

diff --git a/docs/reference/actions/action_publishglobalcounters/index.html b/docs/reference/actions/action_publishglobalcounters/index.html index e1f9293..c9f68ec 100644 --- a/docs/reference/actions/action_publishglobalcounters/index.html +++ b/docs/reference/actions/action_publishglobalcounters/index.html @@ -1,10 +1,11 @@ -publishGlobalCounters | Hyperfoil -

publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

Gathers values from session variables and publishes them globally (to all agents).
You can name the counters individually (example 1) or use the variable names (example 2):

<code>
+# Example 1:
 - publishGlobalCounters:
     key: myKey
     vars: [ foo, bar ]
@@ -14,22 +15,9 @@
     vars:
     - foo: myFoo
     - bar: bbb
-</code>```
-
-
-| Property | Type | Description |
-| ------- | ------- | -------- |
-| key | String | Identifier of the global record. |
-| vars | [Builder](#vars) | List of names and session variables. |
-
-### vars
-
-| Property | Type | Description |
-| ------- | ------- | ------- |
-| &lt;any&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-| &lt;list of strings&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-
-

Last modified September 30, 2024: Fix Github website links (eb62dd6)
diff --git a/docs/reference/actions/action_readagentdata/index.html b/docs/reference/actions/action_readagentdata/index.html index 596cfe8..c55fa9e 100644 --- a/docs/reference/actions/action_readagentdata/index.html +++ b/docs/reference/actions/action_readagentdata/index.html @@ -1,11 +1,11 @@ -readAgentData | Hyperfoil -

readAgentData

Reads data from agent-wide scope into session variable.

Reads data from agent-wide scope into session variable.
The data must be published in a phase that has terminated before this phase starts: usually this is achieved using the startAfterStrict property on the phase.

Inline definition
Both the identifier and destination session variable.
PropertyTypeDescription
nameStringUnique identifier for the data.
toVarStringDestination session variable name.
+

diff --git a/docs/reference/actions/action_removeitem/index.html b/docs/reference/actions/action_removeitem/index.html index aa4a00e..7462e55 100644 --- a/docs/reference/actions/action_removeitem/index.html +++ b/docs/reference/actions/action_removeitem/index.html @@ -1,11 +1,11 @@ -removeItem | Hyperfoil -

removeItem

Removes element from an array of variables.

Removes element from an array of variables.

PropertyTypeDescription
fromVarStringVariable containing an existing array of object variables.
indexBuilderSet index at which the item should be removed. Elements to the right of this are moved to the left.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/actions/action_restartsequence/index.html b/docs/reference/actions/action_restartsequence/index.html index f4bb136..6c72424 100644 --- a/docs/reference/actions/action_restartsequence/index.html +++ b/docs/reference/actions/action_restartsequence/index.html @@ -1,11 +1,11 @@ -restartSequence | Hyperfoil -

restartSequence

Schedules a restart of this sequence.

Schedules a restart of this sequence.

+

diff --git a/docs/reference/actions/action_set/index.html b/docs/reference/actions/action_set/index.html index 6ef85e5..f920800 100644 --- a/docs/reference/actions/action_set/index.html +++ b/docs/reference/actions/action_set/index.html @@ -1,11 +1,11 @@ -set | Hyperfoil -

set

Set variable in session to certain value.

Set variable in session to certain value.

Inline definition
Use var <- value.
PropertyTypeDescription
intArrayBuilderSet variable to an (unset) integer array.
objectArrayBuilderSet variable to an (unset) object array.
valueStringString value.
varStringVariable name.

intArray

Creates integer arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

objectArray

Creates object arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.
+

diff --git a/docs/reference/actions/action_setint/index.html b/docs/reference/actions/action_setint/index.html index df92891..c88b997 100644 --- a/docs/reference/actions/action_setint/index.html +++ b/docs/reference/actions/action_setint/index.html @@ -1,11 +1,11 @@ -setInt | Hyperfoil -

setInt

Set session variable to an integral value.

Set session variable to an integral value.

Inline definition
Use var <- value.
PropertyTypeDescription
fromVarStringInput variable name.
intConditionBuilderSet variable only if the current value satisfies certain condition.
maxBuilderSet to value that is the maximum of this list of values.
minBuilderSet to value that is the minimum of this list of values.
onlyIfNotSetbooleanSet variable to the value only if it is not already set.
valueintValue (integer).
varStringVariable name.

intCondition

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

max

PropertyTypeDescription
<list of mappings><list of builders><no description>

max.<list of mappings>

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

min

PropertyTypeDescription
<list of mappings><list of builders><no description>
+

diff --git a/docs/reference/actions/action_setitem/index.html b/docs/reference/actions/action_setitem/index.html index e13c26d..fac1578 100644 --- a/docs/reference/actions/action_setitem/index.html +++ b/docs/reference/actions/action_setitem/index.html @@ -1,11 +1,11 @@ -setItem | Hyperfoil -

setItem

Set element in a collection on given position.

Set element in a collection on given position.

PropertyTypeDescription
fromVarStringFetch value from session variable.
indexBuilderInteger session variable with an index into the collection.
toVarStringSession variable with the collection.
valueStringVerbatim value.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/actions/action_setsharedcounter/index.html b/docs/reference/actions/action_setsharedcounter/index.html index fafd3db..8090e0d 100644 --- a/docs/reference/actions/action_setsharedcounter/index.html +++ b/docs/reference/actions/action_setsharedcounter/index.html @@ -1,11 +1,11 @@ -setSharedCounter | Hyperfoil -

setSharedCounter

Sets value in a counter shared by all sessions in the same executor.

Sets value in a counter shared by all sessions in the same executor.

Inline definition
Both the name of the counter and variable name.
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
valueintValue (integer).
+

diff --git a/docs/reference/actions/action_stringtoint/index.html b/docs/reference/actions/action_stringtoint/index.html index 8b5a1f1..85519e3 100644 --- a/docs/reference/actions/action_stringtoint/index.html +++ b/docs/reference/actions/action_stringtoint/index.html @@ -1,11 +1,11 @@ -stringToInt | Hyperfoil -

stringToInt

Parse string into integer and store it in a variable.

Parse string into integer and store it in a variable.

If the parsing fails the target variable is not modified.

Inline definition
Use fromVar -&gt; toVar
PropertyTypeDescription
fromVarStringSource variable name.
toVarStringTarget variable name.
+

diff --git a/docs/reference/actions/action_unset/index.html b/docs/reference/actions/action_unset/index.html index 12b695f..4e4a81b 100644 --- a/docs/reference/actions/action_unset/index.html +++ b/docs/reference/actions/action_unset/index.html @@ -1,11 +1,11 @@ -unset | Hyperfoil -

unset

Undefine variable name.

Undefine variable name.

Inline definition
Variable name.
PropertyTypeDescription
varObjectVariable name.
+

diff --git a/docs/reference/actions/index.html b/docs/reference/actions/index.html index 64dbe35..1265162 100644 --- a/docs/reference/actions/index.html +++ b/docs/reference/actions/index.html @@ -1,11 +1,11 @@ Actions | Hyperfoil -

Actions

Actions are non-blocking handlers for various events.


addItem

Appends value to an array stored in another variable.

addToInt

Add value to integer variable in the session.

addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

clearHttpCache

Drops all entries from HTTP cache in the session.

conditional

Perform an action or sequence of actions conditionally.

fail

Fail the phase with given message. Used mostly for testing/debugging.

getIndex

Lookup index of an item in an array/collection.

getItem

Retrieves n-th item from an array or collection.

getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

getSize

Calculates size of an array/collection held in variable into another variable

log

Log a message and variable values.

markRequestInvalid

Unconditionally mark currently processed request as invalid.

newSequence

Instantiates a sequence for each invocation.

publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

readAgentData

Reads data from agent-wide scope into session variable.

removeItem

Removes element from an array of variables.

restartSequence

Schedules a restart of this sequence.

set

Set variable in session to certain value.

setInt

Set session variable to an integral value.

setItem

Set element in a collection on given position.

setSharedCounter

Sets value in a counter shared by all sessions in the same executor.

stringToInt

Parse string into integer and store it in a variable.

unset

Undefine variable name.

+

diff --git a/docs/reference/actions/index.xml b/docs/reference/actions/index.xml index 76eb4c5..b3f8292 100644 --- a/docs/reference/actions/index.xml +++ b/docs/reference/actions/index.xml @@ -13,7 +13,7 @@ Inline definition Both the key and variable name. Property Type Description key Property Type Description boolFilter Builder Count only items matching the condition. fromVar String Variable holding the collection. intFilter Builder Count only items matching the condition. stringFilter Builder Count only items matching the condition. toVar String Variable storing the size. undefinedValue int Value to use when fromVar is unset or it does not contain any array/collection. boolFilter Property Type Description value boolean Expected value.loghttps://hyperfoil.io/docs/reference/actions/action_log/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/actions/action_log/Log a message and variable values. Inline definition A pattern for string interpolation. Property Type Description message String Message format pattern. Use string interpolation for variables.markRequestInvalidhttps://hyperfoil.io/docs/reference/actions/action_markrequestinvalid/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/actions/action_markrequestinvalid/Unconditionally mark currently processed request as invalid.newSequencehttps://hyperfoil.io/docs/reference/actions/action_newsequence/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/actions/action_newsequence/Instantiates a sequence for each invocation. Inline definition Sequence name. Property Type Description concurrencyPolicy enum Options:FAILWARN forceSameIndex boolean Forces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence. sequence String Name of the instantiated sequence.publishAgentDatahttps://hyperfoil.io/docs/reference/actions/action_publishagentdata/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/actions/action_publishagentdata/Makes the data available to all sessions in the same agent, including those using different executors. -Inline definition Both name of source variable and the key used to read the data. Property Type Description fromVar String Source session variable name. name String Arbitrary unique identifier for the data.publishGlobalCountershttps://hyperfoil.io/docs/reference/actions/action_publishglobalcounters/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/actions/action_publishglobalcounters/Gathers values from session variables and publishes them globally (to all agents). You can name the counters individually (example 1) or use the variable names (example 2): # Example 1: - publishGlobalCounters: key: myKey vars: [ foo, bar ] # Example 2: - publishGlobalCounters: key: someOtherKey vars: - foo: myFoo - bar: bbb &lt;/code&gt;``` | Property | Type | Description | | ------- | ------- | -------- | | key | String | Identifier of the global record.readAgentDatahttps://hyperfoil.io/docs/reference/actions/action_readagentdata/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/actions/action_readagentdata/Reads data from agent-wide scope into session variable. +Inline definition Both name of source variable and the key used to read the data. Property Type Description fromVar String Source session variable name. name String Arbitrary unique identifier for the data.publishGlobalCountershttps://hyperfoil.io/docs/reference/actions/action_publishglobalcounters/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/actions/action_publishglobalcounters/Gathers values from session variables and publishes them globally (to all agents). You can name the counters individually (example 1) or use the variable names (example 2): &lt;code&gt; # Example 1: - publishGlobalCounters: key: myKey vars: [ foo, bar ] # Example 2: - publishGlobalCounters: key: someOtherKey vars: - foo: myFoo - bar: bbb &lt;/code&gt; Property Type Description key String Identifier of the global record. vars Builder List of names and session variables.readAgentDatahttps://hyperfoil.io/docs/reference/actions/action_readagentdata/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/actions/action_readagentdata/Reads data from agent-wide scope into session variable. The data must be published in a phase that has terminated before this phase starts: usually this is achieved using the startAfterStrict property on the phase. Inline definition Both the identifier and destination session variable. Property Type Description name String Unique identifier for the data. toVar String Destination session variable name.removeItemhttps://hyperfoil.io/docs/reference/actions/action_removeitem/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/actions/action_removeitem/Removes element from an array of variables. Property Type Description fromVar String Variable containing an existing array of object variables. index Builder Set index at which the item should be removed. Elements to the right of this are moved to the left. index Inline definition Uses the argument as a constant value. Property Type Description fromVar String Input variable name. value int Value (integer).restartSequencehttps://hyperfoil.io/docs/reference/actions/action_restartsequence/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/actions/action_restartsequence/Schedules a restart of this sequence.sethttps://hyperfoil.io/docs/reference/actions/action_set/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/actions/action_set/Set variable in session to certain value. diff --git a/docs/reference/index.html b/docs/reference/index.html index e8855cf..322e5c5 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -1,16 +1,16 @@ Reference | Hyperfoil -

Reference

List of all possible steps and handlers that can be used for the benchmark development

Before exploring this reference you should be familiar with the basic structure of a benchmark. If you’re not sure what is the difference between the phase, scenario and sequence check out the concepts in user guide.

This reference lists all the steps and handlers used in a scenario. The lists below are not finite; you can also easily develop and use your own components, but Hyperfoil provides generic components for the most common tasks out of the box.

There are few generic types of components:

This documentation is auto-generated from Javadoc in source code, explaining format for each key-value pair in benchmark YAML. If there is an issue with these docs (e.g. property showing no description) please file an issue on GitHub.

This is the basic structure of the docs:


EXAMPLE

Example description.

PropertyTypeDescription
KeyClassExplanation for the value

YAML syntax

EXAMPLE:
   Key: Value
 

For example, the POST definition in httpRequest step looks like this:


POST

Generic builder for generating a string.

PropertyTypeDescription
fromVarStringLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

YAML syntax

POST:
   pattern: /user/${userId}/info
 

You might be wondering why the documentation above does not mention anything about issuing a HTTP request. In fact the top-level POST property httpRequest says “Issue HTTP POST request to given path.” but the POST() method returns a generic string builder; this generic builder is used as the path for the HTTP request with POST method.

If the ’type’ is not a scalar value, the key in ‘property’ works as a link to further property mapping. It’s also possible that the property has multiple options, e.g. accepting both property mapping and list of values.

For brevity some components have inline definition like this:


SET

Set variable in session to certain value.

Inline definition
Use var <- value.

YAML syntax

set: myVar <- "This is my value"
 

 

Hyperfoil defines automatically generated JSON schema for the benchmark; you can use that in Visual Studio Code to automatically check the YAML syntax.

-

Last modified September 30, 2024: Fix Github website links (eb62dd6)

diff --git a/docs/reference/processors/_print/index.html b/docs/reference/processors/_print/index.html index 9315bc7..a3b5931 100644 --- a/docs/reference/processors/_print/index.html +++ b/docs/reference/processors/_print/index.html @@ -1,6 +1,7 @@ Processors | Hyperfoil -

This is the multi-page printable view of this section. -Click here to print.

Return to the regular view of this page.

Processors

Processors can work either as consumers of input bytes (e.g. storing part of the input into session variables), as filters (passing modified version of the input to delegated processors) or combination of the above.

Some processors can expect extra context in the session, such as an ongoing (HTTP) request. It is possible to use processors that don’t expect specific type of request in places where a more specific type is provided; opposite is not allowed.

Also it is possible to use an action instead of a processor; Hyperfoil automatically inserts an adapter. That’s why the list below includes actions as well.

1 - addItem

Appends value to an array stored in another variable.

Appends value to an array stored in another variable.

PropertyTypeDescription
fromVarStringFetch value from session variable.
toVarStringDestination variable with the array.
valueStringVerbatim value.

2 - addToInt

Add value to integer variable in the session.

Add value to integer variable in the session.

Inline definition
Accepting one of: var++, var–, var += value, var -= value.
PropertyTypeDescription
orElseSetTointIf the variable is currently not set, set it to this value instead of addition.
valueintValue added (can be negative).
varStringVariable name.

3 - addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

Adds value to a counter shared by all sessions in the same executor.

Inline definition
Use on of: counter++, counter–, counter += <value>,
counter -= <value>
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
operatorenumOperation to perform on the counter. Default is ADD.
Options:
  • ADD
  • SUBTRACT
valueintValue (integer).

4 - array

Stores data in an array stored as session variable.

Stores data in an array stored as session variable.

Inline definition
Use format toVar[maxSize].
PropertyTypeDescription
formatenumFormat into which should this processor convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
maxSizeintMaximum size of the array.
silentbooleanDo not log warnings when the maximum size is exceeded.
toVarStringVariable name.

5 - clearHttpCache

Drops all entries from HTTP cache in the session.

Drops all entries from HTTP cache in the session.

6 - closeConnection

Prevents reuse connection after the response has been handled.

Prevents reuse connection after the response has been handled.

7 - collection

Collects results of processor invocation into a unbounded list.

Collects results of processor invocation into a unbounded list.
WARNING: This processor should be used rarely as it allocates memory during the benchmark.

Inline definition
Variable name to store the list.
PropertyTypeDescription
formatenumFormat into which should this processor convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
toVarStringVariable name.

8 - conditional

Passes the data to nested processor if the condition holds.

Passes the data to nested processor if the condition holds.
Note that the condition may be evaluated multiple times and therefore any nested processors should not change the results of the condition.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
processorProcessor.BuilderOne or more processors that should be invoked if the condition holds.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

9 - count

Records number of parts this processor is invoked on.

Records number of parts this processor is invoked on.

Inline definition
Name of variable for the number of occurrences.
PropertyTypeDescription
toVarStringVariable where to store number of occurrences.

10 - fail

Fail the phase with given message. Used mostly for testing/debugging.

Fail the phase with given message. Used mostly for testing/debugging.

Inline definition
Message to fail with (unconditionally).
PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
messageStringMessage attached to the failure exception.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

11 - getIndex

Lookup index of an item in an array/collection.

Lookup index of an item in an array/collection.

PropertyTypeDescription
collectionStringVariable to fetch the collection from.
itemBuilderItem that should be looked up (using equality).
toVarStringInteger variable to store the index, or -1 if the item is not found.

item

Inline definition
Verbatim value.
PropertyTypeDescription
fromVarStringFetch value from session variable.
valueStringVerbatim value.

12 - getItem

Retrieves n-th item from an array or collection.

Retrieves n-th item from an array or collection.

PropertyTypeDescription
fromVarStringSource variable with an array or list.
indexBuilderSource for index into the array/list.
toVarStringDestination variable for the n-th element.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

13 - getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.
If the value exceeds allowed integer range (-2^31 .. 2^31 - 1) it is capped.

Inline definition
Both the key and variable name.
PropertyTypeDescription
keyStringIdentifier for the counter.
toVarStringSession variable for storing the value.

14 - getSize

Calculates size of an array/collection held in variable into another variable

Calculates size of an array/collection held in variable into another variable

PropertyTypeDescription
boolFilterBuilderCount only items matching the condition.
fromVarStringVariable holding the collection.
intFilterBuilderCount only items matching the condition.
stringFilterBuilderCount only items matching the condition.
toVarStringVariable storing the size.
undefinedValueintValue to use when fromVar is unset or it does not contain any array/collection.

boolFilter

PropertyTypeDescription
valuebooleanExpected value.

intFilter

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intFilter.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringFilter.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringFilter.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

15 - gzipInflator

Decompresses a GZIP data and pipes the output to delegated processors.

Decompresses a GZIP data and pipes the output to delegated processors.
If the data contains multiple concatenated GZIP streams it will pipe multiple decompressed objects with isLastPart set to true at the end of each stream.

PropertyTypeDescription
encodingVarObjectVariable used to pass header value from header handlers.
processorProcessor.BuilderAdd one or more processors.

16 - json

Parses JSON responses using simple queries.

Parses JSON responses using simple queries.

PropertyTypeDescription
deletebooleanIf this is set to true, the selected key will be deleted from the JSON and the modified JSON will be passed to the processor.
formatenumConversion to apply on the matching parts with ’toVar’ or ’toArray’ shortcuts.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
processorProcessor.BuilderAdd one or more processors.
processor (alternative)Processor.BuilderIf neither delete or replace was set this processor will be called with the selected parts. In the other case the processor will be called with chunks of full (modified) JSON.

Note that the processor.before() and processor.after() methods are called only once for each request, not for the individual filtered items.

queryStringQuery selecting the part of JSON.
replaceTransformer.BuilderCustom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.
replace (alternative)StringReplace value of selected item with value generated through a pattern. Note that the result must contain quotes and be correctly escaped.
toArrayStringShortcut to store selected parts in an array in the session. Must follow the pattern variable[maxSize]
toVarStringShortcut to store first match in given variable. Further matches are ignored.
unquotebooleanAutomatically unquote and unescape the input values. By default true.

replace

Custom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.

PropertyTypeDescription
actionsActionsTransformer.BuilderThis transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.
patternPattern.TransformerBuilderUse pattern replacing session variables.

replace.actions

This transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.

PropertyTypeDescription
actionsAction.BuilderActions to be executed.
formatenumFormat into which should this transformer convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
patternStringPattern to use when fetching the transformed value.
varStringVariable used as the intermediate storage for the data.

replace.pattern

Use pattern replacing session variables.

Inline definition
The pattern formatting string.
PropertyTypeDescription
patternStringUse pattern replacing session variables.

17 - log

Log a message and variable values.

Log a message and variable values.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
messageStringMessage format pattern. Use string interpolation for variables.

18 - logInvalid

Logs body chunks from requests marked as invalid.

Logs body chunks from requests marked as invalid.

19 - markRequestInvalid

Unconditionally mark currently processed request as invalid.

Unconditionally mark currently processed request as invalid.

20 - newSequence

Instantiates a sequence for each invocation.

Instantiates a sequence for each invocation.

Inline definition
Sequence name.
PropertyTypeDescription
concurrencyPolicyenum
Options:
  • FAIL
  • WARN
forceSameIndexbooleanForces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence.
sequenceStringName of the instantiated sequence.

21 - parseHtml

Parses HTML tags and invokes handlers based on criteria.

Parses HTML tags and invokes handlers based on criteria.

PropertyTypeDescription
onEmbeddedResourceBuilderHandler firing upon reference to other resource, e.g. image, stylesheet…
onTagAttributeBuilder<no description>

onEmbeddedResource

Handles <img src="…">, <link href="…">, <embed src="…">, <frame src="…">, <iframe src="…">, <object data="…"> and <script src="…">.

Does not handle <source src="…"> or <track src="…"> because browser would choose only one of the options.

PropertyTypeDescription
fetchResourceBuilderAutomatically download referenced resource.
ignoreExternalbooleanIgnore resources hosted on servers that are not covered in the http section.
processorProcessor.BuilderAdd one or more processors.
processor (alternative)Processor.BuilderCustom processor invoked pointing to attribute data - e.g. in case of <img> tag the processor gets contents of the src attribute.

onEmbeddedResource.fetchResource

Automates download of embedded resources.

PropertyTypeDescription
concurrencyintMaximum number of resources fetched concurrently. Default is 8.
maxResourcesintMaximum number of resources that can be fetched.
metric<list of strings>Metrics selector for downloaded resources.
onCompletionAction.BuilderAction performed when the download of all resources completes.

onEmbeddedResource.fetchResource.metric

Metrics selector for downloaded resources.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

onTagAttribute

PropertyTypeDescription
attributeStringName of the attribute in this element you want to process, e.g. action
formatenumConversion to apply on the matching parts with ’toVar’ or ’toArray’ shortcuts.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
processorProcessor.BuilderAdd one or more processors.
tagStringName of the tag this handler should look for, e.g. form
toArrayStringShortcut to store selected parts in an array in the session. Must follow the pattern variable[maxSize]
toVarStringShortcut to store first match in given variable. Further matches are ignored.

22 - publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

Makes the data available to all sessions in the same agent, including those using different executors.

Inline definition
Both name of source variable and the key used to read the data.
PropertyTypeDescription
fromVarStringSource session variable name.
nameStringArbitrary unique identifier for the data.

23 - publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

Gathers values from session variables and publishes them globally (to all agents).
You can name the counters individually (example 1) or use the variable names (example 2):

# Example 1:
+

This is the multi-page printable view of this section. +Click here to print.

Return to the regular view of this page.

Processors

Processors can work either as consumers of input bytes (e.g. storing part of the input into session variables), as filters (passing modified version of the input to delegated processors) or combination of the above.

Some processors can expect extra context in the session, such as an ongoing (HTTP) request. It is possible to use processors that don’t expect specific type of request in places where a more specific type is provided; opposite is not allowed.

Also it is possible to use an action instead of a processor; Hyperfoil automatically inserts an adapter. That’s why the list below includes actions as well.

1 - addItem

Appends value to an array stored in another variable.

Appends value to an array stored in another variable.

PropertyTypeDescription
fromVarStringFetch value from session variable.
toVarStringDestination variable with the array.
valueStringVerbatim value.

2 - addToInt

Add value to integer variable in the session.

Add value to integer variable in the session.

Inline definition
Accepting one of: var++, var–, var += value,
var -= value.
PropertyTypeDescription
orElseSetTointIf the variable is currently not set, set it to this value instead of addition.
valueintValue added (can be negative).
varStringVariable name.

3 - addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

Adds value to a counter shared by all sessions in the same executor.

Inline definition
Use on of: counter++, counter–, counter += <value>,
counter -= <value>
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
operatorenumOperation to perform on the counter. Default is ADD.
Options:
  • ADD
  • SUBTRACT
valueintValue (integer).

4 - array

Stores data in an array stored as session variable.

Stores data in an array stored as session variable.

Inline definition
Use format toVar[maxSize].
PropertyTypeDescription
formatenumFormat into which should this processor convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
maxSizeintMaximum size of the array.
silentbooleanDo not log warnings when the maximum size is exceeded.
toVarStringVariable name.

5 - clearHttpCache

Drops all entries from HTTP cache in the session.

Drops all entries from HTTP cache in the session.

6 - closeConnection

Prevents reuse connection after the response has been handled.

Prevents reuse connection after the response has been handled.

7 - collection

Collects results of processor invocation into a unbounded list.

Collects results of processor invocation into a unbounded list.
WARNING: This processor should be used rarely as it allocates memory during the benchmark.

Inline definition
Variable name to store the list.
PropertyTypeDescription
formatenumFormat into which should this processor convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
toVarStringVariable name.

8 - conditional

Passes the data to nested processor if the condition holds.

Passes the data to nested processor if the condition holds.
Note that the condition may be evaluated multiple times and therefore any nested processors should not change the results of the condition.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
processorProcessor.BuilderOne or more processors that should be invoked if the condition holds.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

9 - count

Records number of parts this processor is invoked on.

Records number of parts this processor is invoked on.

Inline definition
Name of variable for the number of occurrences.
PropertyTypeDescription
toVarStringVariable where to store number of occurrences.

10 - fail

Fail the phase with given message. Used mostly for testing/debugging.

Fail the phase with given message. Used mostly for testing/debugging.

Inline definition
Message to fail with (unconditionally).
PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
messageStringMessage attached to the failure exception.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

11 - getIndex

Lookup index of an item in an array/collection.

Lookup index of an item in an array/collection.

PropertyTypeDescription
collectionStringVariable to fetch the collection from.
itemBuilderItem that should be looked up (using equality).
toVarStringInteger variable to store the index, or -1 if the item is not found.

item

Inline definition
Verbatim value.
PropertyTypeDescription
fromVarStringFetch value from session variable.
valueStringVerbatim value.

12 - getItem

Retrieves n-th item from an array or collection.

Retrieves n-th item from an array or collection.

PropertyTypeDescription
fromVarStringSource variable with an array or list.
indexBuilderSource for index into the array/list.
toVarStringDestination variable for the n-th element.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

13 - getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.
If the value exceeds allowed integer range (-2^31 .. 2^31 - 1) it is capped.

Inline definition
Both the key and variable name.
PropertyTypeDescription
keyStringIdentifier for the counter.
toVarStringSession variable for storing the value.

14 - getSize

Calculates size of an array/collection held in variable into another variable

Calculates size of an array/collection held in variable into another variable

PropertyTypeDescription
boolFilterBuilderCount only items matching the condition.
fromVarStringVariable holding the collection.
intFilterBuilderCount only items matching the condition.
stringFilterBuilderCount only items matching the condition.
toVarStringVariable storing the size.
undefinedValueintValue to use when fromVar is unset or it does not contain any array/collection.

boolFilter

PropertyTypeDescription
valuebooleanExpected value.

intFilter

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intFilter.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringFilter.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringFilter.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

15 - gzipInflator

Decompresses a GZIP data and pipes the output to delegated processors.

Decompresses a GZIP data and pipes the output to delegated processors.
If the data contains multiple concatenated GZIP streams it will pipe multiple decompressed objects with isLastPart set to true at the end of each stream.

PropertyTypeDescription
encodingVarObjectVariable used to pass header value from header handlers.
processorProcessor.BuilderAdd one or more processors.

16 - json

Parses JSON responses using simple queries.

Parses JSON responses using simple queries.

PropertyTypeDescription
deletebooleanIf this is set to true, the selected key will be deleted from the JSON and the modified JSON will be passed to the processor.
formatenumConversion to apply on the matching parts with ’toVar’ or ’toArray’ shortcuts.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
processorProcessor.BuilderAdd one or more processors.
processor (alternative)Processor.BuilderIf neither delete or replace was set this processor will be called with the selected parts. In the other case the processor will be called with chunks of full (modified) JSON.

Note that the processor.before() and processor.after() methods are called only once for each request, not for the individual filtered items.

queryStringQuery selecting the part of JSON.
replaceTransformer.BuilderCustom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.
replace (alternative)StringReplace value of selected item with value generated through a pattern. Note that the result must contain quotes and be correctly escaped.
toArrayStringShortcut to store selected parts in an array in the session. Must follow the pattern variable[maxSize]
toVarStringShortcut to store first match in given variable. Further matches are ignored.
unquotebooleanAutomatically unquote and unescape the input values. By default true.

replace

Custom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.

PropertyTypeDescription
actionsActionsTransformer.BuilderThis transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.
patternPattern.TransformerBuilderUse pattern replacing session variables.

replace.actions

This transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.

PropertyTypeDescription
actionsAction.BuilderActions to be executed.
formatenumFormat into which should this transformer convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
patternStringPattern to use when fetching the transformed value.
varStringVariable used as the intermediate storage for the data.

replace.pattern

Use pattern replacing session variables.

Inline definition
The pattern formatting string.
PropertyTypeDescription
patternStringUse pattern replacing session variables.

17 - log

Log a message and variable values.

Log a message and variable values.

Inline definition
A pattern for
string
interpolation.
PropertyTypeDescription
messageStringMessage format pattern. Use string interpolation for variables.

18 - logInvalid

Logs body chunks from requests marked as invalid.

Logs body chunks from requests marked as invalid.

19 - markRequestInvalid

Unconditionally mark currently processed request as invalid.

Unconditionally mark currently processed request as invalid.

20 - newSequence

Instantiates a sequence for each invocation.

Instantiates a sequence for each invocation.

Inline definition
Sequence name.
PropertyTypeDescription
concurrencyPolicyenum
Options:
  • FAIL
  • WARN
forceSameIndexbooleanForces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence.
sequenceStringName of the instantiated sequence.

21 - parseHtml

Parses HTML tags and invokes handlers based on criteria.

Parses HTML tags and invokes handlers based on criteria.

PropertyTypeDescription
onEmbeddedResourceBuilderHandler firing upon reference to other resource, e.g. image, stylesheet…
onTagAttributeBuilder<no description>

onEmbeddedResource

Handles <img src="…">, <link href="…">, <embed src="…">, <frame src="…">, <iframe src="…">, <object data="…"> and <script src="…">.

Does not handle <source src="…"> or <track src="…"> because browser would choose only one of the options.

PropertyTypeDescription
fetchResourceBuilderAutomatically download referenced resource.
ignoreExternalbooleanIgnore resources hosted on servers that are not covered in the http section.
processorProcessor.BuilderAdd one or more processors.
processor (alternative)Processor.BuilderCustom processor invoked pointing to attribute data - e.g. in case of <img> tag the processor gets contents of the src attribute.

onEmbeddedResource.fetchResource

Automates download of embedded resources.

PropertyTypeDescription
concurrencyintMaximum number of resources fetched concurrently. Default is 8.
maxResourcesintMaximum number of resources that can be fetched.
metric<list of strings>Metrics selector for downloaded resources.
onCompletionAction.BuilderAction performed when the download of all resources completes.

onEmbeddedResource.fetchResource.metric

Metrics selector for downloaded resources.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

onTagAttribute

PropertyTypeDescription
attributeStringName of the attribute in this element you want to process, e.g. action
formatenumConversion to apply on the matching parts with ’toVar’ or ’toArray’ shortcuts.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
processorProcessor.BuilderAdd one or more processors.
tagStringName of the tag this handler should look for, e.g. form
toArrayStringShortcut to store selected parts in an array in the session. Must follow the pattern variable[maxSize]
toVarStringShortcut to store first match in given variable. Further matches are ignored.

22 - publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

Makes the data available to all sessions in the same agent, including those using different executors.

Inline definition
Both name of source variable and the key used to read the data.
PropertyTypeDescription
fromVarStringSource session variable name.
nameStringArbitrary unique identifier for the data.

23 - publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

Gathers values from session variables and publishes them globally (to all agents).
You can name the counters individually (example 1) or use the variable names (example 2):

<code>
+# Example 1:
 - publishGlobalCounters:
     key: myKey
     vars: [ foo, bar ]
@@ -10,21 +11,8 @@
     vars:
     - foo: myFoo
     - bar: bbb
-</code>```
-
-
-| Property | Type | Description |
-| ------- | ------- | -------- |
-| key | String | Identifier of the global record. |
-| vars | [Builder](#vars) | List of names and session variables. |
-
-### vars
-
-| Property | Type | Description |
-| ------- | ------- | ------- |
-| &lt;any&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-| &lt;list of strings&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-

24 - queue

Stores defragmented data in a queue.

Stores defragmented data in a queue.
For each item in the queue a new sequence instance will be started (subject the concurrency constraints) with sequence index that allows it to read an object from an array using sequence-scoped access.

PropertyTypeDescription
concurrencyintMaximum number of started sequences that can be running at one moment.
formatenumConversion format from byte buffers. Default format is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
maxSizeintMaximum number of elements that can be stored in the queue.
onCompletionAction.BuilderCustom action that should be performed when the last consuming sequence reports that it has processed the last element from the queue. Note that the sequence is NOT automatically augmented to report completion.
sequenceStringName of the started sequence.
varStringVariable storing the array that it used as a output object from the queue.

25 - readAgentData

Reads data from agent-wide scope into session variable.

Reads data from agent-wide scope into session variable.
The data must be published in a phase that has terminated before this phase starts: usually this is achieved using the startAfterStrict property on the phase.

Inline definition
Both the identifier and destination session variable.
PropertyTypeDescription
nameStringUnique identifier for the data.
toVarStringDestination session variable name.

26 - removeItem

Removes element from an array of variables.

Removes element from an array of variables.

PropertyTypeDescription
fromVarStringVariable containing an existing array of object variables.
indexBuilderSet index at which the item should be removed. Elements to the right of this are moved to the left.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

27 - restartSequence

Schedules a restart of this sequence.

Schedules a restart of this sequence.

28 - set

Set variable in session to certain value.

Set variable in session to certain value.

Inline definition
Use var <- value.
PropertyTypeDescription
intArrayBuilderSet variable to an (unset) integer array.
objectArrayBuilderSet variable to an (unset) object array.
valueStringString value.
varStringVariable name.

intArray

Creates integer arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

objectArray

Creates object arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

29 - setInt

Set session variable to an integral value.

Set session variable to an integral value.

Inline definition
Use var <- value.
PropertyTypeDescription
fromVarStringInput variable name.
intConditionBuilderSet variable only if the current value satisfies certain condition.
maxBuilderSet to value that is the maximum of this list of values.
minBuilderSet to value that is the minimum of this list of values.
onlyIfNotSetbooleanSet variable to the value only if it is not already set.
valueintValue (integer).
varStringVariable name.

intCondition

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

max

PropertyTypeDescription
<list of mappings><list of builders><no description>

max.<list of mappings>

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

min

PropertyTypeDescription
<list of mappings><list of builders><no description>

30 - setItem

Set element in a collection on given position.

Set element in a collection on given position.

PropertyTypeDescription
fromVarStringFetch value from session variable.
indexBuilderInteger session variable with an index into the collection.
toVarStringSession variable with the collection.
valueStringVerbatim value.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

31 - setSharedCounter

Sets value in a counter shared by all sessions in the same executor.

Sets value in a counter shared by all sessions in the same executor.

Inline definition
Both the name of the counter and variable name.
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
valueintValue (integer).

32 - store

Stores data in a session variable (overwriting on multiple occurences).

Stores data in a session variable (overwriting on multiple occurences).

Inline definition
Variable name.
PropertyTypeDescription
formatenumFormat into which should this processor convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
toVarObjectVariable name.

33 - storeInt

Converts buffers into integral value and stores it in a variable.

Converts buffers into integral value and stores it in a variable.

Inline definition
Name of integer variable where to store the value.
PropertyTypeDescription
overridebooleanAllow the value to be set multiple times (last write wins). Defaults to false.
toVarStringName of variable where to store the integral value.

34 - stringToInt

Parse string into integer and store it in a variable.

Parse string into integer and store it in a variable.

If the parsing fails the target variable is not modified.

Inline definition
Use fromVar -&gt; toVar
PropertyTypeDescription
fromVarStringSource variable name.
toVarStringTarget variable name.

35 - unset

Undefine variable name.

Undefine variable name.

Inline definition
Variable name.
PropertyTypeDescription
varObjectVariable name.
PropertyTypeDescription
keyStringIdentifier of the global record.
varsBuilderList of names and session variables.

vars

PropertyTypeDescription
<any><unknown><no description>
<list of strings><unknown><no description>

24 - queue

Stores defragmented data in a queue.

Stores defragmented data in a queue.
For each item in the queue a new sequence instance will be started (subject the concurrency constraints) with sequence index that allows it to read an object from an array using sequence-scoped access.

PropertyTypeDescription
concurrencyintMaximum number of started sequences that can be running at one moment.
formatenumConversion format from byte buffers. Default format is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
maxSizeintMaximum number of elements that can be stored in the queue.
onCompletionAction.BuilderCustom action that should be performed when the last consuming sequence reports that it has processed the last element from the queue. Note that the sequence is NOT automatically augmented to report completion.
sequenceStringName of the started sequence.
varStringVariable storing the array that it used as a output object from the queue.

25 - readAgentData

Reads data from agent-wide scope into session variable.

Reads data from agent-wide scope into session variable.
The data must be published in a phase that has terminated before this phase starts: usually this is achieved using the startAfterStrict property on the phase.

Inline definition
Both the identifier and destination session variable.
PropertyTypeDescription
nameStringUnique identifier for the data.
toVarStringDestination session variable name.

26 - removeItem

Removes element from an array of variables.

Removes element from an array of variables.

PropertyTypeDescription
fromVarStringVariable containing an existing array of object variables.
indexBuilderSet index at which the item should be removed. Elements to the right of this are moved to the left.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

27 - restartSequence

Schedules a restart of this sequence.

Schedules a restart of this sequence.

28 - set

Set variable in session to certain value.

Set variable in session to certain value.

Inline definition
Use var <- value.
PropertyTypeDescription
intArrayBuilderSet variable to an (unset) integer array.
objectArrayBuilderSet variable to an (unset) object array.
valueStringString value.
varStringVariable name.

intArray

Creates integer arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

objectArray

Creates object arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

29 - setInt

Set session variable to an integral value.

Set session variable to an integral value.

Inline definition
Use var <- value.
PropertyTypeDescription
fromVarStringInput variable name.
intConditionBuilderSet variable only if the current value satisfies certain condition.
maxBuilderSet to value that is the maximum of this list of values.
minBuilderSet to value that is the minimum of this list of values.
onlyIfNotSetbooleanSet variable to the value only if it is not already set.
valueintValue (integer).
varStringVariable name.

intCondition

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

max

PropertyTypeDescription
<list of mappings><list of builders><no description>

max.<list of mappings>

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

min

PropertyTypeDescription
<list of mappings><list of builders><no description>

30 - setItem

Set element in a collection on given position.

Set element in a collection on given position.

PropertyTypeDescription
fromVarStringFetch value from session variable.
indexBuilderInteger session variable with an index into the collection.
toVarStringSession variable with the collection.
valueStringVerbatim value.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

31 - setSharedCounter

Sets value in a counter shared by all sessions in the same executor.

Sets value in a counter shared by all sessions in the same executor.

Inline definition
Both the name of the counter and variable name.
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
valueintValue (integer).

32 - store

Stores data in a session variable (overwriting on multiple occurences).

Stores data in a session variable (overwriting on multiple occurences).

Inline definition
Variable name.
PropertyTypeDescription
formatenumFormat into which should this processor convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
toVarObjectVariable name.

33 - storeInt

Converts buffers into integral value and stores it in a variable.

Converts buffers into integral value and stores it in a variable.

Inline definition
Name of integer variable where to store the value.
PropertyTypeDescription
overridebooleanAllow the value to be set multiple times (last write wins). Defaults to false.
toVarStringName of variable where to store the integral value.

34 - stringToInt

Parse string into integer and store it in a variable.

Parse string into integer and store it in a variable.

If the parsing fails the target variable is not modified.

Inline definition
Use fromVar -&gt; toVar
PropertyTypeDescription
fromVarStringSource variable name.
toVarStringTarget variable name.

35 - unset

Undefine variable name.

Undefine variable name.

Inline definition
Variable name.
PropertyTypeDescription
varObjectVariable name.
diff --git a/docs/reference/processors/index.html b/docs/reference/processors/index.html index dff2e50..70176a9 100644 --- a/docs/reference/processors/index.html +++ b/docs/reference/processors/index.html @@ -1,11 +1,11 @@ Processors | Hyperfoil -

Processors

Processors can work either as consumers of input bytes (e.g. storing part of the input into session variables), as filters (passing modified version of the input to delegated processors) or combination of the above.

Some processors can expect extra context in the session, such as an ongoing (HTTP) request. It is possible to use processors that don’t expect specific type of request in places where a more specific type is provided; opposite is not allowed.

Also it is possible to use an action instead of a processor; Hyperfoil automatically inserts an adapter. That’s why the list below includes actions as well.


addItem

Appends value to an array stored in another variable.

addToInt

Add value to integer variable in the session.

addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

array

Stores data in an array stored as session variable.

clearHttpCache

Drops all entries from HTTP cache in the session.

closeConnection

Prevents reuse connection after the response has been handled.

collection

Collects results of processor invocation into a unbounded list.

conditional

Passes the data to nested processor if the condition holds.

count

Records number of parts this processor is invoked on.

fail

Fail the phase with given message. Used mostly for testing/debugging.

getIndex

Lookup index of an item in an array/collection.

getItem

Retrieves n-th item from an array or collection.

getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

getSize

Calculates size of an array/collection held in variable into another variable

gzipInflator

Decompresses a GZIP data and pipes the output to delegated processors.

json

Parses JSON responses using simple queries.

log

Log a message and variable values.

logInvalid

Logs body chunks from requests marked as invalid.

markRequestInvalid

Unconditionally mark currently processed request as invalid.

newSequence

Instantiates a sequence for each invocation.

parseHtml

Parses HTML tags and invokes handlers based on criteria.

publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

queue

Stores defragmented data in a queue.

readAgentData

Reads data from agent-wide scope into session variable.

removeItem

Removes element from an array of variables.

restartSequence

Schedules a restart of this sequence.

set

Set variable in session to certain value.

setInt

Set session variable to an integral value.

setItem

Set element in a collection on given position.

setSharedCounter

Sets value in a counter shared by all sessions in the same executor.

store

Stores data in a session variable (overwriting on multiple occurences).

storeInt

Converts buffers into integral value and stores it in a variable.

stringToInt

Parse string into integer and store it in a variable.

unset

Undefine variable name.

+

diff --git a/docs/reference/processors/index.xml b/docs/reference/processors/index.xml index f26a0bf..77f6b99 100644 --- a/docs/reference/processors/index.xml +++ b/docs/reference/processors/index.xml @@ -23,7 +23,7 @@ Inline definition Sequence name. Property Type Description concurrencyPolicy enu Property Type Description onEmbeddedResource Builder Handler firing upon reference to other resource, e.g. image, stylesheet&hellip; onTagAttribute Builder &lt;no description&gt; onEmbeddedResource Handles &lt;img src=&quot;&hellip;&quot;&gt;, &lt;link href=&quot;&hellip;&quot;&gt;, &lt;embed src=&quot;&hellip;&quot;&gt;, &lt;frame src=&quot;&hellip;&quot;&gt;, &lt;iframe src=&quot;&hellip;&quot;&gt;, &lt;object data=&quot;&hellip;&quot;&gt; and &lt;script src=&quot;&hellip;&quot;&gt;. Does not handle &lt;source src=&quot;&hellip;&quot;&gt; or &lt;track src=&quot;&hellip;&quot;&gt; because browser would choose only one of the options. Property Type Description fetchResource Builder Automatically download referenced resource.
publishAgentDatahttps://hyperfoil.io/docs/reference/processors/processor_publishagentdata/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/processors/processor_publishagentdata/Makes the data available to all sessions in the same agent, including those using different executors. -Inline definition Both name of source variable and the key used to read the data. Property Type Description fromVar String Source session variable name. name String Arbitrary unique identifier for the data.publishGlobalCountershttps://hyperfoil.io/docs/reference/processors/processor_publishglobalcounters/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/processors/processor_publishglobalcounters/Gathers values from session variables and publishes them globally (to all agents). You can name the counters individually (example 1) or use the variable names (example 2): # Example 1: - publishGlobalCounters: key: myKey vars: [ foo, bar ] # Example 2: - publishGlobalCounters: key: someOtherKey vars: - foo: myFoo - bar: bbb &lt;/code&gt;``` | Property | Type | Description | | ------- | ------- | -------- | | key | String | Identifier of the global record.queuehttps://hyperfoil.io/docs/reference/processors/processor_queue/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/processors/processor_queue/Stores defragmented data in a queue. For each item in the queue a new sequence instance will be started (subject the concurrency constraints) with sequence index that allows it to read an object from an array using sequence-scoped access. +Inline definition Both name of source variable and the key used to read the data. Property Type Description fromVar String Source session variable name. name String Arbitrary unique identifier for the data.publishGlobalCountershttps://hyperfoil.io/docs/reference/processors/processor_publishglobalcounters/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/processors/processor_publishglobalcounters/Gathers values from session variables and publishes them globally (to all agents). You can name the counters individually (example 1) or use the variable names (example 2): &lt;code&gt; # Example 1: - publishGlobalCounters: key: myKey vars: [ foo, bar ] # Example 2: - publishGlobalCounters: key: someOtherKey vars: - foo: myFoo - bar: bbb &lt;/code&gt; Property Type Description key String Identifier of the global record. vars Builder List of names and session variables.queuehttps://hyperfoil.io/docs/reference/processors/processor_queue/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/processors/processor_queue/Stores defragmented data in a queue. For each item in the queue a new sequence instance will be started (subject the concurrency constraints) with sequence index that allows it to read an object from an array using sequence-scoped access. Property Type Description concurrency int Maximum number of started sequences that can be running at one moment. format enum Conversion format from byte buffers. Default format is STRING. Options:BYTEBUFStore the buffer directly.readAgentDatahttps://hyperfoil.io/docs/reference/processors/processor_readagentdata/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/processors/processor_readagentdata/Reads data from agent-wide scope into session variable. The data must be published in a phase that has terminated before this phase starts: usually this is achieved using the startAfterStrict property on the phase. diff --git a/docs/reference/processors/processor_additem/index.html b/docs/reference/processors/processor_additem/index.html index 968cd37..23f9b22 100644 --- a/docs/reference/processors/processor_additem/index.html +++ b/docs/reference/processors/processor_additem/index.html @@ -1,11 +1,11 @@ -addItem | Hyperfoil -

addItem

Appends value to an array stored in another variable.

Appends value to an array stored in another variable.

PropertyTypeDescription
fromVarStringFetch value from session variable.
toVarStringDestination variable with the array.
valueStringVerbatim value.
+

diff --git a/docs/reference/processors/processor_addtoint/index.html b/docs/reference/processors/processor_addtoint/index.html index a467bd7..87d6b7e 100644 --- a/docs/reference/processors/processor_addtoint/index.html +++ b/docs/reference/processors/processor_addtoint/index.html @@ -1,11 +1,11 @@ -addToInt | Hyperfoil -

addToInt

Add value to integer variable in the session.

Add value to integer variable in the session.

Inline definition
Accepting one of: var++, var–, var += value,
var -= value.
PropertyTypeDescription
orElseSetTointIf the variable is currently not set, set it to this value instead of addition.
valueintValue added (can be negative).
varStringVariable name.
+

diff --git a/docs/reference/processors/processor_addtosharedcounter/index.html b/docs/reference/processors/processor_addtosharedcounter/index.html index f650bd1..05e7f77 100644 --- a/docs/reference/processors/processor_addtosharedcounter/index.html +++ b/docs/reference/processors/processor_addtosharedcounter/index.html @@ -1,11 +1,11 @@ -addToSharedCounter | Hyperfoil -

addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

Adds value to a counter shared by all sessions in the same executor.

Inline definition
Use on of: counter++, counter–, counter += <value>,
counter -= <value>
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
operatorenumOperation to perform on the counter. Default is ADD.
Options:
  • ADD
  • SUBTRACT
valueintValue (integer).
+

diff --git a/docs/reference/processors/processor_array/index.html b/docs/reference/processors/processor_array/index.html index e741205..d52ae72 100644 --- a/docs/reference/processors/processor_array/index.html +++ b/docs/reference/processors/processor_array/index.html @@ -1,11 +1,11 @@ -array | Hyperfoil -

array

Stores data in an array stored as session variable.

Stores data in an array stored as session variable.

Inline definition
Use format toVar[maxSize].
PropertyTypeDescription
formatenumFormat into which should this processor convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
maxSizeintMaximum size of the array.
silentbooleanDo not log warnings when the maximum size is exceeded.
toVarStringVariable name.
+

diff --git a/docs/reference/processors/processor_clearhttpcache/index.html b/docs/reference/processors/processor_clearhttpcache/index.html index f41f47b..77dd864 100644 --- a/docs/reference/processors/processor_clearhttpcache/index.html +++ b/docs/reference/processors/processor_clearhttpcache/index.html @@ -1,11 +1,11 @@ -clearHttpCache | Hyperfoil -

clearHttpCache

Drops all entries from HTTP cache in the session.

Drops all entries from HTTP cache in the session.

+

diff --git a/docs/reference/processors/processor_closeconnection/index.html b/docs/reference/processors/processor_closeconnection/index.html index 3f48602..893689a 100644 --- a/docs/reference/processors/processor_closeconnection/index.html +++ b/docs/reference/processors/processor_closeconnection/index.html @@ -1,11 +1,11 @@ -closeConnection | Hyperfoil -

closeConnection

Prevents reuse connection after the response has been handled.

Prevents reuse connection after the response has been handled.

+

diff --git a/docs/reference/processors/processor_collection/index.html b/docs/reference/processors/processor_collection/index.html index d6db9c9..f6fc3bd 100644 --- a/docs/reference/processors/processor_collection/index.html +++ b/docs/reference/processors/processor_collection/index.html @@ -1,11 +1,11 @@ -collection | Hyperfoil -

collection

Collects results of processor invocation into a unbounded list.

Collects results of processor invocation into a unbounded list.
WARNING: This processor should be used rarely as it allocates memory during the benchmark.

Inline definition
Variable name to store the list.
PropertyTypeDescription
formatenumFormat into which should this processor convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
toVarStringVariable name.
+

diff --git a/docs/reference/processors/processor_conditional/index.html b/docs/reference/processors/processor_conditional/index.html index 65827f3..160aebb 100644 --- a/docs/reference/processors/processor_conditional/index.html +++ b/docs/reference/processors/processor_conditional/index.html @@ -1,11 +1,11 @@ -conditional | Hyperfoil -

conditional

Passes the data to nested processor if the condition holds.

Passes the data to nested processor if the condition holds.
Note that the condition may be evaluated multiple times and therefore any nested processors should not change the results of the condition.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
processorProcessor.BuilderOne or more processors that should be invoked if the condition holds.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/processors/processor_count/index.html b/docs/reference/processors/processor_count/index.html index d997b59..e2de7b7 100644 --- a/docs/reference/processors/processor_count/index.html +++ b/docs/reference/processors/processor_count/index.html @@ -1,11 +1,11 @@ -count | Hyperfoil -

count

Records number of parts this processor is invoked on.

Records number of parts this processor is invoked on.

Inline definition
Name of variable for the number of occurrences.
PropertyTypeDescription
toVarStringVariable where to store number of occurrences.
+

diff --git a/docs/reference/processors/processor_fail/index.html b/docs/reference/processors/processor_fail/index.html index 9c46806..09fd463 100644 --- a/docs/reference/processors/processor_fail/index.html +++ b/docs/reference/processors/processor_fail/index.html @@ -1,11 +1,11 @@ -fail | Hyperfoil -

fail

Fail the phase with given message. Used mostly for testing/debugging.

Fail the phase with given message. Used mostly for testing/debugging.

Inline definition
Message to fail with (unconditionally).
PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
messageStringMessage attached to the failure exception.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/processors/processor_getindex/index.html b/docs/reference/processors/processor_getindex/index.html index 73e5381..0a2da1c 100644 --- a/docs/reference/processors/processor_getindex/index.html +++ b/docs/reference/processors/processor_getindex/index.html @@ -1,11 +1,11 @@ -getIndex | Hyperfoil -

getIndex

Lookup index of an item in an array/collection.

Lookup index of an item in an array/collection.

PropertyTypeDescription
collectionStringVariable to fetch the collection from.
itemBuilderItem that should be looked up (using equality).
toVarStringInteger variable to store the index, or -1 if the item is not found.

item

Inline definition
Verbatim value.
PropertyTypeDescription
fromVarStringFetch value from session variable.
valueStringVerbatim value.
+

diff --git a/docs/reference/processors/processor_getitem/index.html b/docs/reference/processors/processor_getitem/index.html index 42bea47..f5fc6b8 100644 --- a/docs/reference/processors/processor_getitem/index.html +++ b/docs/reference/processors/processor_getitem/index.html @@ -1,11 +1,11 @@ -getItem | Hyperfoil -

getItem

Retrieves n-th item from an array or collection.

Retrieves n-th item from an array or collection.

PropertyTypeDescription
fromVarStringSource variable with an array or list.
indexBuilderSource for index into the array/list.
toVarStringDestination variable for the n-th element.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/processors/processor_getsharedcounter/index.html b/docs/reference/processors/processor_getsharedcounter/index.html index 47d4944..2c4809b 100644 --- a/docs/reference/processors/processor_getsharedcounter/index.html +++ b/docs/reference/processors/processor_getsharedcounter/index.html @@ -1,11 +1,11 @@ -getSharedCounter | Hyperfoil -

getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.
If the value exceeds allowed integer range (-2^31 .. 2^31 - 1) it is capped.

Inline definition
Both the key and variable name.
PropertyTypeDescription
keyStringIdentifier for the counter.
toVarStringSession variable for storing the value.
+

diff --git a/docs/reference/processors/processor_getsize/index.html b/docs/reference/processors/processor_getsize/index.html index 1f7c073..dd34d0d 100644 --- a/docs/reference/processors/processor_getsize/index.html +++ b/docs/reference/processors/processor_getsize/index.html @@ -1,11 +1,11 @@ -getSize | Hyperfoil -

getSize

Calculates size of an array/collection held in variable into another variable

Calculates size of an array/collection held in variable into another variable

PropertyTypeDescription
boolFilterBuilderCount only items matching the condition.
fromVarStringVariable holding the collection.
intFilterBuilderCount only items matching the condition.
stringFilterBuilderCount only items matching the condition.
toVarStringVariable storing the size.
undefinedValueintValue to use when fromVar is unset or it does not contain any array/collection.

boolFilter

PropertyTypeDescription
valuebooleanExpected value.

intFilter

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intFilter.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringFilter.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringFilter.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/processors/processor_gzipinflator/index.html b/docs/reference/processors/processor_gzipinflator/index.html index 18c5e75..7ad6f41 100644 --- a/docs/reference/processors/processor_gzipinflator/index.html +++ b/docs/reference/processors/processor_gzipinflator/index.html @@ -1,11 +1,11 @@ -gzipInflator | Hyperfoil -

gzipInflator

Decompresses a GZIP data and pipes the output to delegated processors.

Decompresses a GZIP data and pipes the output to delegated processors.
If the data contains multiple concatenated GZIP streams it will pipe multiple decompressed objects with isLastPart set to true at the end of each stream.

PropertyTypeDescription
encodingVarObjectVariable used to pass header value from header handlers.
processorProcessor.BuilderAdd one or more processors.
+

diff --git a/docs/reference/processors/processor_json/index.html b/docs/reference/processors/processor_json/index.html index 5bd03c2..0133390 100644 --- a/docs/reference/processors/processor_json/index.html +++ b/docs/reference/processors/processor_json/index.html @@ -1,11 +1,11 @@ -json | Hyperfoil -

json

Parses JSON responses using simple queries.

Parses JSON responses using simple queries.

PropertyTypeDescription
deletebooleanIf this is set to true, the selected key will be deleted from the JSON and the modified JSON will be passed to the processor.
formatenumConversion to apply on the matching parts with ’toVar’ or ’toArray’ shortcuts.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
processorProcessor.BuilderAdd one or more processors.
processor (alternative)Processor.BuilderIf neither delete or replace was set this processor will be called with the selected parts. In the other case the processor will be called with chunks of full (modified) JSON.

Note that the processor.before() and processor.after() methods are called only once for each request, not for the individual filtered items.

queryStringQuery selecting the part of JSON.
replaceTransformer.BuilderCustom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.
replace (alternative)StringReplace value of selected item with value generated through a pattern. Note that the result must contain quotes and be correctly escaped.
toArrayStringShortcut to store selected parts in an array in the session. Must follow the pattern variable[maxSize]
toVarStringShortcut to store first match in given variable. Further matches are ignored.
unquotebooleanAutomatically unquote and unescape the input values. By default true.

replace

Custom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.

PropertyTypeDescription
actionsActionsTransformer.BuilderThis transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.
patternPattern.TransformerBuilderUse pattern replacing session variables.

replace.actions

This transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.

PropertyTypeDescription
actionsAction.BuilderActions to be executed.
formatenumFormat into which should this transformer convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
patternStringPattern to use when fetching the transformed value.
varStringVariable used as the intermediate storage for the data.

replace.pattern

Use pattern replacing session variables.

Inline definition
The pattern formatting string.
PropertyTypeDescription
patternStringUse pattern replacing session variables.
+

diff --git a/docs/reference/processors/processor_log/index.html b/docs/reference/processors/processor_log/index.html index 2d87b40..7d59357 100644 --- a/docs/reference/processors/processor_log/index.html +++ b/docs/reference/processors/processor_log/index.html @@ -1,11 +1,11 @@ -log | Hyperfoil -

log

Log a message and variable values.

Log a message and variable values.

Inline definition
A pattern for
string
interpolation.
PropertyTypeDescription
messageStringMessage format pattern. Use string interpolation for variables.
+

diff --git a/docs/reference/processors/processor_loginvalid/index.html b/docs/reference/processors/processor_loginvalid/index.html index 32a3a0b..db681af 100644 --- a/docs/reference/processors/processor_loginvalid/index.html +++ b/docs/reference/processors/processor_loginvalid/index.html @@ -1,11 +1,11 @@ -logInvalid | Hyperfoil -

logInvalid

Logs body chunks from requests marked as invalid.

Logs body chunks from requests marked as invalid.

+

diff --git a/docs/reference/processors/processor_markrequestinvalid/index.html b/docs/reference/processors/processor_markrequestinvalid/index.html index 15fc51c..2a79944 100644 --- a/docs/reference/processors/processor_markrequestinvalid/index.html +++ b/docs/reference/processors/processor_markrequestinvalid/index.html @@ -1,11 +1,11 @@ -markRequestInvalid | Hyperfoil -

markRequestInvalid

Unconditionally mark currently processed request as invalid.

Unconditionally mark currently processed request as invalid.

+

diff --git a/docs/reference/processors/processor_newsequence/index.html b/docs/reference/processors/processor_newsequence/index.html index 91d477c..e2ff7a4 100644 --- a/docs/reference/processors/processor_newsequence/index.html +++ b/docs/reference/processors/processor_newsequence/index.html @@ -1,11 +1,11 @@ -newSequence | Hyperfoil -

newSequence

Instantiates a sequence for each invocation.

Instantiates a sequence for each invocation.

Inline definition
Sequence name.
PropertyTypeDescription
concurrencyPolicyenum
Options:
  • FAIL
  • WARN
forceSameIndexbooleanForces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence.
sequenceStringName of the instantiated sequence.
+

diff --git a/docs/reference/processors/processor_parsehtml/index.html b/docs/reference/processors/processor_parsehtml/index.html index 732a8c8..7649879 100644 --- a/docs/reference/processors/processor_parsehtml/index.html +++ b/docs/reference/processors/processor_parsehtml/index.html @@ -1,11 +1,11 @@ -parseHtml | Hyperfoil -

parseHtml

Parses HTML tags and invokes handlers based on criteria.

Parses HTML tags and invokes handlers based on criteria.

PropertyTypeDescription
onEmbeddedResourceBuilderHandler firing upon reference to other resource, e.g. image, stylesheet…
onTagAttributeBuilder<no description>

onEmbeddedResource

Handles <img src="…">, <link href="…">, <embed src="…">, <frame src="…">, <iframe src="…">, <object data="…"> and <script src="…">.

Does not handle <source src="…"> or <track src="…"> because browser would choose only one of the options.

PropertyTypeDescription
fetchResourceBuilderAutomatically download referenced resource.
ignoreExternalbooleanIgnore resources hosted on servers that are not covered in the http section.
processorProcessor.BuilderAdd one or more processors.
processor (alternative)Processor.BuilderCustom processor invoked pointing to attribute data - e.g. in case of <img> tag the processor gets contents of the src attribute.

onEmbeddedResource.fetchResource

Automates download of embedded resources.

PropertyTypeDescription
concurrencyintMaximum number of resources fetched concurrently. Default is 8.
maxResourcesintMaximum number of resources that can be fetched.
metric<list of strings>Metrics selector for downloaded resources.
onCompletionAction.BuilderAction performed when the download of all resources completes.

onEmbeddedResource.fetchResource.metric

Metrics selector for downloaded resources.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

onTagAttribute

PropertyTypeDescription
attributeStringName of the attribute in this element you want to process, e.g. action
formatenumConversion to apply on the matching parts with ’toVar’ or ’toArray’ shortcuts.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
processorProcessor.BuilderAdd one or more processors.
tagStringName of the tag this handler should look for, e.g. form
toArrayStringShortcut to store selected parts in an array in the session. Must follow the pattern variable[maxSize]
toVarStringShortcut to store first match in given variable. Further matches are ignored.
+

diff --git a/docs/reference/processors/processor_publishagentdata/index.html b/docs/reference/processors/processor_publishagentdata/index.html index 61e4b53..8479b8e 100644 --- a/docs/reference/processors/processor_publishagentdata/index.html +++ b/docs/reference/processors/processor_publishagentdata/index.html @@ -1,11 +1,11 @@ -publishAgentData | Hyperfoil -

publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

Makes the data available to all sessions in the same agent, including those using different executors.

Inline definition
Both name of source variable and the key used to read the data.
PropertyTypeDescription
fromVarStringSource session variable name.
nameStringArbitrary unique identifier for the data.
+

diff --git a/docs/reference/processors/processor_publishglobalcounters/index.html b/docs/reference/processors/processor_publishglobalcounters/index.html index f68b566..69aa4f7 100644 --- a/docs/reference/processors/processor_publishglobalcounters/index.html +++ b/docs/reference/processors/processor_publishglobalcounters/index.html @@ -1,10 +1,11 @@ -publishGlobalCounters | Hyperfoil -

publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

Gathers values from session variables and publishes them globally (to all agents).
You can name the counters individually (example 1) or use the variable names (example 2):

<code>
+# Example 1:
 - publishGlobalCounters:
     key: myKey
     vars: [ foo, bar ]
@@ -14,22 +15,9 @@
     vars:
     - foo: myFoo
     - bar: bbb
-</code>```
-
-
-| Property | Type | Description |
-| ------- | ------- | -------- |
-| key | String | Identifier of the global record. |
-| vars | [Builder](#vars) | List of names and session variables. |
-
-### vars
-
-| Property | Type | Description |
-| ------- | ------- | ------- |
-| &lt;any&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-| &lt;list of strings&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-
-

Last modified September 30, 2024: Fix Github website links (eb62dd6)
diff --git a/docs/reference/processors/processor_queue/index.html b/docs/reference/processors/processor_queue/index.html index 8d2b80a..13a66ac 100644 --- a/docs/reference/processors/processor_queue/index.html +++ b/docs/reference/processors/processor_queue/index.html @@ -1,11 +1,11 @@ -queue | Hyperfoil -

queue

Stores defragmented data in a queue.

Stores defragmented data in a queue.
For each item in the queue a new sequence instance will be started (subject the concurrency constraints) with sequence index that allows it to read an object from an array using sequence-scoped access.

PropertyTypeDescription
concurrencyintMaximum number of started sequences that can be running at one moment.
formatenumConversion format from byte buffers. Default format is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
maxSizeintMaximum number of elements that can be stored in the queue.
onCompletionAction.BuilderCustom action that should be performed when the last consuming sequence reports that it has processed the last element from the queue. Note that the sequence is NOT automatically augmented to report completion.
sequenceStringName of the started sequence.
varStringVariable storing the array that it used as a output object from the queue.
+

diff --git a/docs/reference/processors/processor_readagentdata/index.html b/docs/reference/processors/processor_readagentdata/index.html index 4dd9b26..2f3a110 100644 --- a/docs/reference/processors/processor_readagentdata/index.html +++ b/docs/reference/processors/processor_readagentdata/index.html @@ -1,11 +1,11 @@ -readAgentData | Hyperfoil -

readAgentData

Reads data from agent-wide scope into session variable.

Reads data from agent-wide scope into session variable.
The data must be published in a phase that has terminated before this phase starts: usually this is achieved using the startAfterStrict property on the phase.

Inline definition
Both the identifier and destination session variable.
PropertyTypeDescription
nameStringUnique identifier for the data.
toVarStringDestination session variable name.
+

diff --git a/docs/reference/processors/processor_removeitem/index.html b/docs/reference/processors/processor_removeitem/index.html index 17cf7f9..ffba241 100644 --- a/docs/reference/processors/processor_removeitem/index.html +++ b/docs/reference/processors/processor_removeitem/index.html @@ -1,11 +1,11 @@ -removeItem | Hyperfoil -

removeItem

Removes element from an array of variables.

Removes element from an array of variables.

PropertyTypeDescription
fromVarStringVariable containing an existing array of object variables.
indexBuilderSet index at which the item should be removed. Elements to the right of this are moved to the left.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/processors/processor_restartsequence/index.html b/docs/reference/processors/processor_restartsequence/index.html index d83e020..ce5e1b4 100644 --- a/docs/reference/processors/processor_restartsequence/index.html +++ b/docs/reference/processors/processor_restartsequence/index.html @@ -1,11 +1,11 @@ -restartSequence | Hyperfoil -

restartSequence

Schedules a restart of this sequence.

Schedules a restart of this sequence.

+

diff --git a/docs/reference/processors/processor_set/index.html b/docs/reference/processors/processor_set/index.html index 3234909..c50826f 100644 --- a/docs/reference/processors/processor_set/index.html +++ b/docs/reference/processors/processor_set/index.html @@ -1,11 +1,11 @@ -set | Hyperfoil -

set

Set variable in session to certain value.

Set variable in session to certain value.

Inline definition
Use var <- value.
PropertyTypeDescription
intArrayBuilderSet variable to an (unset) integer array.
objectArrayBuilderSet variable to an (unset) object array.
valueStringString value.
varStringVariable name.

intArray

Creates integer arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

objectArray

Creates object arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.
+

diff --git a/docs/reference/processors/processor_setint/index.html b/docs/reference/processors/processor_setint/index.html index d5a6d73..13e5fc3 100644 --- a/docs/reference/processors/processor_setint/index.html +++ b/docs/reference/processors/processor_setint/index.html @@ -1,11 +1,11 @@ -setInt | Hyperfoil -

setInt

Set session variable to an integral value.

Set session variable to an integral value.

Inline definition
Use var <- value.
PropertyTypeDescription
fromVarStringInput variable name.
intConditionBuilderSet variable only if the current value satisfies certain condition.
maxBuilderSet to value that is the maximum of this list of values.
minBuilderSet to value that is the minimum of this list of values.
onlyIfNotSetbooleanSet variable to the value only if it is not already set.
valueintValue (integer).
varStringVariable name.

intCondition

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

max

PropertyTypeDescription
<list of mappings><list of builders><no description>

max.<list of mappings>

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

min

PropertyTypeDescription
<list of mappings><list of builders><no description>
+

diff --git a/docs/reference/processors/processor_setitem/index.html b/docs/reference/processors/processor_setitem/index.html index 4d3c9c0..e61086a 100644 --- a/docs/reference/processors/processor_setitem/index.html +++ b/docs/reference/processors/processor_setitem/index.html @@ -1,11 +1,11 @@ -setItem | Hyperfoil -

setItem

Set element in a collection on given position.

Set element in a collection on given position.

PropertyTypeDescription
fromVarStringFetch value from session variable.
indexBuilderInteger session variable with an index into the collection.
toVarStringSession variable with the collection.
valueStringVerbatim value.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/processors/processor_setsharedcounter/index.html b/docs/reference/processors/processor_setsharedcounter/index.html index 3a8b264..f761429 100644 --- a/docs/reference/processors/processor_setsharedcounter/index.html +++ b/docs/reference/processors/processor_setsharedcounter/index.html @@ -1,11 +1,11 @@ -setSharedCounter | Hyperfoil -

setSharedCounter

Sets value in a counter shared by all sessions in the same executor.

Sets value in a counter shared by all sessions in the same executor.

Inline definition
Both the name of the counter and variable name.
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
valueintValue (integer).
+

diff --git a/docs/reference/processors/processor_store/index.html b/docs/reference/processors/processor_store/index.html index 41d695f..9616d06 100644 --- a/docs/reference/processors/processor_store/index.html +++ b/docs/reference/processors/processor_store/index.html @@ -1,11 +1,11 @@ -store | Hyperfoil -

store

Stores data in a session variable (overwriting on multiple occurences).

Stores data in a session variable (overwriting on multiple occurences).

Inline definition
Variable name.
PropertyTypeDescription
formatenumFormat into which should this processor convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
toVarObjectVariable name.
+

diff --git a/docs/reference/processors/processor_storeint/index.html b/docs/reference/processors/processor_storeint/index.html index 17838ec..8c4875c 100644 --- a/docs/reference/processors/processor_storeint/index.html +++ b/docs/reference/processors/processor_storeint/index.html @@ -1,11 +1,11 @@ -storeInt | Hyperfoil -

storeInt

Converts buffers into integral value and stores it in a variable.

Converts buffers into integral value and stores it in a variable.

Inline definition
Name of integer variable where to store the value.
PropertyTypeDescription
overridebooleanAllow the value to be set multiple times (last write wins). Defaults to false.
toVarStringName of variable where to store the integral value.
+

diff --git a/docs/reference/processors/processor_stringtoint/index.html b/docs/reference/processors/processor_stringtoint/index.html index d9d8ff5..d679c24 100644 --- a/docs/reference/processors/processor_stringtoint/index.html +++ b/docs/reference/processors/processor_stringtoint/index.html @@ -1,11 +1,11 @@ -stringToInt | Hyperfoil -

stringToInt

Parse string into integer and store it in a variable.

Parse string into integer and store it in a variable.

If the parsing fails the target variable is not modified.

Inline definition
Use fromVar -&gt; toVar
PropertyTypeDescription
fromVarStringSource variable name.
toVarStringTarget variable name.
+

diff --git a/docs/reference/processors/processor_unset/index.html b/docs/reference/processors/processor_unset/index.html index 8d56c21..77a39f4 100644 --- a/docs/reference/processors/processor_unset/index.html +++ b/docs/reference/processors/processor_unset/index.html @@ -1,11 +1,11 @@ -unset | Hyperfoil -

unset

Undefine variable name.

Undefine variable name.

Inline definition
Variable name.
PropertyTypeDescription
varObjectVariable name.
+

diff --git a/docs/reference/steps/_print/index.html b/docs/reference/steps/_print/index.html index c1eb7ad..d32731d 100644 --- a/docs/reference/steps/_print/index.html +++ b/docs/reference/steps/_print/index.html @@ -1,6 +1,6 @@ Steps | Hyperfoil -

This is the multi-page printable view of this section. -Click here to print.

Return to the regular view of this page.

Steps

Steps are the basic building blocks that form each sequence of a scenario, similar to statements in a programming language. Steps are potentially blocking (the sequence cannot continue with next step until previous one finishes).

Note that every action can be also used as a step that simply never blocks, as actions do not require any extra input.

1 - addItem

Appends value to an array stored in another variable.

Appends value to an array stored in another variable.

PropertyTypeDescription
fromVarStringFetch value from session variable.
toVarStringDestination variable with the array.
valueStringVerbatim value.

2 - addToInt

Add value to integer variable in the session.

Add value to integer variable in the session.

Inline definition
Accepting one of: var++, var–, var += value, var -= value.
PropertyTypeDescription
orElseSetTointIf the variable is currently not set, set it to this value instead of addition.
valueintValue added (can be negative).
varStringVariable name.

3 - addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

Adds value to a counter shared by all sessions in the same executor.

Inline definition
Use on of: counter++, counter–, counter += <value>,
counter -= <value>
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
operatorenumOperation to perform on the counter. Default is ADD.
Options:
  • ADD
  • SUBTRACT
valueintValue (integer).

4 - awaitAllResponses

Block current sequence until all requests receive the response.

Block current sequence until all requests receive the response.

5 - awaitDelay

Block this sequence until referenced delay point.

Block this sequence until referenced delay point.

Inline definition
Delay point created in scheduleDelay.key.
PropertyTypeDescription
keyStringDelay point created in scheduleDelay.key.

6 - awaitInt

Block current sequence until condition becomes true.

Block current sequence until condition becomes true.

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.
varStringVariable name storing the compared value.

equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

7 - awaitVar

Block current sequence until this variable gets set/unset.

Block current sequence until this variable gets set/unset.

Inline definition
Variable name or !variable if we are waiting for it to be unset.
PropertyTypeDescription
varStringVariable name or !variable if we are waiting for it to be unset.

8 - breakIfFinished

Stop execution of current sequence if the phase is in finished state.

Stop execution of current sequence if the phase is in finished state.

This is useful for a long-running (looping) sequence that should not extend the duration of its phase.

9 - breakSequence

Prematurely stops execution of this sequence if the condition is satisfied.

Prematurely stops execution of this sequence if the condition is satisfied.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
dependencyStringThis step is blocked if this variable does not have set value (none by default).
intConditionBuilderCondition comparing integer variables.
onBreakAction.BuilderAction performed when the condition is true and the sequence is to be ended.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

10 - clearHttpCache

Drops all entries from HTTP cache in the session.

Drops all entries from HTTP cache in the session.

11 - conditional

Perform an action or sequence of actions conditionally.

Perform an action or sequence of actions conditionally.

PropertyTypeDescription
actionsAction.BuilderActions that should be executed should the condition hold.
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

12 - fail

Fail the phase with given message. Used mostly for testing/debugging.

Fail the phase with given message. Used mostly for testing/debugging.

Inline definition
Message to fail with (unconditionally).
PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
messageStringMessage attached to the failure exception.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

13 - foreach

Instantiate new sequences based on array variable content.

Instantiate new sequences based on array variable content.

PropertyTypeDescription
counterVarStringVariable to be set to the number of created sequences (optional).
dependencyStringThis step is blocked if this variable does not have set value (none by default).
fromVarStringVariable holding the array.
sequenceStringName of the instantiated sequence.

14 - getIndex

Lookup index of an item in an array/collection.

Lookup index of an item in an array/collection.

PropertyTypeDescription
collectionStringVariable to fetch the collection from.
itemBuilderItem that should be looked up (using equality).
toVarStringInteger variable to store the index, or -1 if the item is not found.

item

Inline definition
Verbatim value.
PropertyTypeDescription
fromVarStringFetch value from session variable.
valueStringVerbatim value.

15 - getItem

Retrieves n-th item from an array or collection.

Retrieves n-th item from an array or collection.

PropertyTypeDescription
fromVarStringSource variable with an array or list.
indexBuilderSource for index into the array/list.
toVarStringDestination variable for the n-th element.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

16 - getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.
If the value exceeds allowed integer range (-2^31 .. 2^31 - 1) it is capped.

Inline definition
Both the key and variable name.
PropertyTypeDescription
keyStringIdentifier for the counter.
toVarStringSession variable for storing the value.

17 - getSize

Calculates size of an array/collection held in variable into another variable

Calculates size of an array/collection held in variable into another variable

PropertyTypeDescription
boolFilterBuilderCount only items matching the condition.
fromVarStringVariable holding the collection.
intFilterBuilderCount only items matching the condition.
stringFilterBuilderCount only items matching the condition.
toVarStringVariable storing the size.
undefinedValueintValue to use when fromVar is unset or it does not contain any array/collection.

boolFilter

PropertyTypeDescription
valuebooleanExpected value.

intFilter

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intFilter.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringFilter.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringFilter.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

18 - hotrodRequest

Issues a HotRod request and registers handlers for the response.

Issues a HotRod request and registers handlers for the response.

PropertyTypeDescription
cacheNameStringName of the cache used for the operation. This can be a pattern.
cacheName (alternative)Builder<no description>
getStringGet specified entry in the remote cache.
keyStringKey used for the operation. This can be a pattern.
key (alternative)Builder<no description>
metricStringRequests statistics will use this metric name.
metric (alternative)<list of strings>Allows categorizing request statistics into metrics based on the request path.
operationenum
Options:
  • PUTAdds or overrides each specified entry in the remote cache.
  • GETGet specified entry in the remote cache.
putStringAdds or overrides each specified entry in the remote cache.
valueStringValue for the operation. This can be a pattern.
value (alternative)Builder<no description>

cacheName

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

key

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

metric

Allows categorizing request statistics into metrics based on the request path.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

value

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

19 - httpRequest

Issues a HTTP request and registers handlers for the response.

Issues a HTTP request and registers handlers for the response.

PropertyTypeDescription
authorityStringHTTP authority (host:port) this request should target. Must match one of the entries in http section. The string can use string interpolation.
authority (alternative)BuilderHTTP authority (host:port) this request should target. Must match one of the entries in http section.
bodyBuilderHTTP request body.
body (alternative)StringHTTP request body (possibly a pattern).
compensationBuilderConfigures additional metric compensated for coordinated omission.
compressionBuilderConfigure response compression.
compression (alternative)StringRequest server to respond with compressed entity using specified content encoding.
CONNECTStringIssue HTTP CONNECT request to given path. This can be a pattern.
CONNECT (alternative)BuilderIssue HTTP CONNECT request to given path.
DELETEStringIssue HTTP DELETE request to given path. This can be a pattern.
DELETE (alternative)BuilderIssue HTTP DELETE request to given path.
endpointBuilderHTTP endpoint this request should target. Must match to the name of the entries in http section.
GETStringIssue HTTP GET request to given path. This can be a pattern.
GET (alternative)BuilderIssue HTTP GET request to given path.
handlerBuilderHTTP response handlers.
HEADStringIssue HTTP HEAD request to given path. This can be a pattern.
HEAD (alternative)BuilderIssue HTTP HEAD request to given path.
headersBuilderHTTP headers sent in the request.
methodenumHTTP method used for the request.
Options:
  • GET
  • HEAD
  • POST
  • PUT
  • DELETE
  • OPTIONS
  • PATCH
  • TRACE
  • CONNECT
metricStringRequests statistics will use this metric name.
metric (alternative)<list of strings>Allows categorizing request statistics into metrics based on the request path.
OPTIONSStringIssue HTTP OPTIONS request to given path. This can be a pattern.
OPTIONS (alternative)BuilderIssue HTTP OPTIONS request to given path.
PATCHStringIssue HTTP PATCH request to given path. This can be a pattern.
PATCH (alternative)BuilderIssue HTTP PATCH request to given path.
pathStringHTTP path (absolute or relative), including query and fragment. The string can use string interpolation.
path (alternative)BuilderHTTP path (absolute or relative), including query and fragment.
POSTStringIssue HTTP POST request to given path. This can be a pattern.
POST (alternative)BuilderIssue HTTP POST request to given path.
PUTStringIssue HTTP PUT request to given path. This can be a pattern.
PUT (alternative)BuilderIssue HTTP PUT request to given path.
slaBuilderList of SLAs the requests are subject to.
syncbooleanThis request is synchronous; execution of the sequence does not continue until the full response is received. If this step is executed from multiple parallel instances of this sequence the progress of all sequences is blocked until there is a request in flight without response.

Default is true.

timeoutStringRequest timeout - after this time the request will be marked as failed and connection will be closed.

Defaults to value set globally in http section.

TRACEStringIssue HTTP TRACE request to given path. This can be a pattern.
TRACE (alternative)BuilderIssue HTTP TRACE request to given path.

authority

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

body

Allows building HTTP request body from session variables.

PropertyTypeDescription
formBuilderBuild form as if we were sending the request using HTML form. This option automatically adds Content-Type: application/x-www-form-urlencoded to the request headers.
fromFileStringSend contents of the file. Note that this method does NOT set content-type automatically.
fromVarStringUse variable content as request body.
patternStringPattern replacing ${sessionvar} with variable contents in a string.
textStringString sent as-is.

body.form

PropertyTypeDescription
<list of mappings><list of builders>Add input pair described in the mapping.

body.form.<list of mappings>

Form element (e.g. as if coming from an INPUT field).

PropertyTypeDescription
fromVarStringInput field value from session variable.
nameStringInput field name.
patternStringInput field value replacing session variables in a pattern, e.g. foo${myvariable}var
valueStringInput field value (verbatim).

compensation

PropertyTypeDescription
metricStringMetric name for the compensated results.
metric (alternative)<list of strings>Configure a custom metric for the compensated results.
targetRatedoubleDesired rate of new virtual users per second. This is similar to constantRate.usersPerSec phase settings but works closer to legacy benchmark drivers by fixing the concurrency.
targetRate (alternative)BuilderDesired rate of new virtual users per second. This is similar to constantRate.usersPerSec phase settings but works closer to legacy benchmark drivers by fixing the concurrency.

compensation.metric

Configure a custom metric for the compensated results.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

compensation.targetRate

PropertyTypeDescription
basedoubleBase value used for first iteration.
incrementdoubleValue by which the base value is incremented for each (but the very first) iteration.

compression

PropertyTypeDescription
encodingStringEncoding used for Accept-Encoding/TE header. The only currently supported is gzip.
typeenumType of compression (resource vs. transfer based).
Options:
  • CONTENT_ENCODINGUse Accept-Encoding in request and expect Content-Encoding in response.
  • TRANSFER_ENCODINGUse TE in request and expect Transfer-Encoding in response.

CONNECT

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

DELETE

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

endpoint

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

GET

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

handler

Manages processing of HTTP responses.

PropertyTypeDescription
autoRangeCheckbooleanInject status handler that marks the request as invalid on status 4xx or 5xx. Default value depends on ergonomics.autoRangeCheck (see User Guide).
bodyProcessor.BuilderHandle HTTP response body.
followRedirectenumAutomatically fire requests when the server responds with redirection. Default value depends on ergonomics.followRedirect (see User Guide).
Options:
  • NEVERDo not insert any automatic redirection handling.
  • LOCATION_ONLYRedirect only upon status 3xx accompanied with a ’location’ header. Status, headers, body and completions handlers are suppressed in this case (only raw-bytes handlers are still running). This is the default option.
  • HTML_ONLYHandle only HTML response with META refresh header. Status, headers and body handlers are invoked both on the original response and on the response from subsequent requests. Completion handlers are suppressed on this request and invoked after the last response arrives (in case of multiple redirections).
  • ALWAYSImplement both status 3xx + location and HTML redirects.
headerHeaderHandler.BuilderHandle HTTP response headers.
onCompletionAction.BuilderAction executed when the HTTP response is fully received.
rawBytesRawBytesHandler.BuilderHandler processing HTTP response before parsing.
statusStatusHandler.BuilderHandle HTTP response status.
stopOnInvalidbooleanInject completion handler that will stop the session if the request has been marked as invalid. Default value depends on ergonomics.stopOnInvalid (see User Guide).

handler.header

Handle HTTP response headers.

PropertyTypeDescription
conditionalConditionalHeaderHandler.BuilderPasses the headers to nested handler if the condition holds. Note that the condition may be evaluated multiple times and therefore any nested handlers should not change the results of the condition.
countHeadersCountHeadersHandler.BuilderStores number of occurences of each header in custom statistics (these can be displayed in CLI using the stats -c command).
filterFilterHeaderHandler.BuilderCompares if the header name matches expression and invokes a processor with the value.
logInvalidLogInvalidHandler.HeaderHandlerBuilderLogs headers from requests marked as invalid.
recordHeaderTimeRecordHeaderTimeHandler.BuilderRecords alternative metric based on values from a header (e.g. when a proxy reports processing time).

handler.header.conditional

Passes the headers to nested handler if the condition holds. Note that the condition may be evaluated multiple times and therefore any nested handlers should not change the results of the condition.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
handlerHeaderHandler.BuilderOne or more header handlers that should be invoked.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

handler.header.conditional.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

handler.header.conditional.allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

handler.header.conditional.allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

handler.header.conditional.allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

handler.header.conditional.allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.conditional.allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

handler.header.conditional.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

handler.header.conditional.handler

One or more header handlers that should be invoked.

PropertyTypeDescription
conditionalConditionalHeaderHandler.BuilderPasses the headers to nested handler if the condition holds. Note that the condition may be evaluated multiple times and therefore any nested handlers should not change the results of the condition.
countHeadersCountHeadersHandler.BuilderStores number of occurences of each header in custom statistics (these can be displayed in CLI using the stats -c command).
filterFilterHeaderHandler.BuilderCompares if the header name matches expression and invokes a processor with the value.
logInvalidLogInvalidHandler.HeaderHandlerBuilderLogs headers from requests marked as invalid.
recordHeaderTimeRecordHeaderTimeHandler.BuilderRecords alternative metric based on values from a header (e.g. when a proxy reports processing time).

handler.header.conditional.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.conditional.intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

handler.header.conditional.stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.conditional.stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.filter

Compares if the header name matches expression and invokes a processor with the value.

PropertyTypeDescription
headerBuilderCondition on the header name.
processorProcessor.BuilderAdd one or more processors.

handler.header.filter.header

Inline definition
Literal value the string should match.
PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

handler.header.filter.header.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.recordHeaderTime

Records alternative metric based on values from a header (e.g. when a proxy reports processing time).

PropertyTypeDescription
headerStringHeader carrying the time.
metricStringName of the created metric.
unitStringTime unit in the header; use either ms or ns.

handler.rawBytes

Handler processing HTTP response before parsing.

PropertyTypeDescription
transferSizeRecorderTransferSizeRecorder.BuilderAccumulates request and response sizes into custom metrics.

handler.rawBytes.transferSizeRecorder

Accumulates request and response sizes into custom metrics.

PropertyTypeDescription
keyStringName of the custom metric for collecting request/response bytes.

handler.status

Handle HTTP response status.

PropertyTypeDescription
actionActionStatusHandler.BuilderPerform certain actions when the status falls into a range.
counterStatusToCounterHandler.BuilderCounts how many times given status is received.
multiplexMultiplexStatusHandler.BuilderMultiplexes the status based on range into different status handlers.
rangeRangeStatusValidator.BuilderMarks requests that don’t fall into the desired range as invalid.
statsStatusToStatsHandler.BuilderRecords number of occurrences of each status counts into custom statistics (these can be displayed in CLI using stats -c).
storeStoreStatusHandler.BuilderStores the status into session variable.

handler.status.action

Perform certain actions when the status falls into a range.

PropertyTypeDescription
<any>BuilderPerform a sequence of actions if the range matches. Use range as the key and action in the mapping. Possible values of the status should be separated by commas (,). Ranges can be set using low-high (inclusive) (e.g. 200-299), or replacing lower digits with ‘x’ (e.g. 2xx).

handler.status.counter

Counts how many times given status is received.

PropertyTypeDescription
addintNumber to be added to the session variable.
expectStatusintExpected status (others are ignored). All status codes match by default.
initintInitial value for the session variable.
setintDo not accumulate (add), just set the variable to this value.
varStringVariable name.

handler.status.multiplex

Multiplexes the status based on range into different status handlers.

PropertyTypeDescription
<any>BuilderRun another handler if the range matches. Use range as the key and another status handler in the mapping. Possible values of the status should be separated by commas (,). Ranges can be set using low-high (inclusive) (e.g. 200-299), or replacing lower digits with ‘x’ (e.g. 2xx).

handler.status.multiplex.<any>

Run another handler if the range matches. Use range as the key and another status handler in the mapping. Possible values of the status should be separated by commas (,). Ranges can be set using low-high (inclusive) (e.g. 200-299), or replacing lower digits with ‘x’ (e.g. 2xx).

PropertyTypeDescription
actionActionStatusHandler.BuilderPerform certain actions when the status falls into a range.
counterStatusToCounterHandler.BuilderCounts how many times given status is received.
multiplexMultiplexStatusHandler.BuilderMultiplexes the status based on range into different status handlers.
rangeRangeStatusValidator.BuilderMarks requests that don’t fall into the desired range as invalid.
statsStatusToStatsHandler.BuilderRecords number of occurrences of each status counts into custom statistics (these can be displayed in CLI using stats -c).
storeStoreStatusHandler.BuilderStores the status into session variable.

handler.status.range

Marks requests that don’t fall into the desired range as invalid.

Inline definition
Single status code (204), masked code (2xx) or range (200-399).
PropertyTypeDescription
maxintHighest accepted status code.
minintLowest accepted status code.

handler.status.store

Stores the status into session variable.

Inline definition
Variable name.
PropertyTypeDescription
toVarObjectVariable name.

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

headers

PropertyTypeDescription
<any>StringUse header name (e.g. Content-Type) as key and value (possibly a pattern).
<any> (alternative)BuilderUse header name (e.g. Content-Type) as key and specify value in the mapping.

headers.<any>

Specifies value that should be sent in headers.

Inline definition
The value. This can be a pattern.
PropertyTypeDescription
fromVarStringLoad header value from session variable.
patternStringLoad header value using a pattern.

metric

Allows categorizing request statistics into metrics based on the request path.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

OPTIONS

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

PATCH

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

path

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

POST

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

PUT

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

sla

Defines a list of Service Level Agreements (SLAs) - conditions that must hold for benchmark to be deemed successful.

PropertyTypeDescription
<list of mappings><list of builders>One or more SLA configurations.

sla.<list of mappings>

Defines a Service Level Agreement (SLA) - conditions that must hold for benchmark to be deemed successful.

PropertyTypeDescription
blockedRatiodoubleMaximum allowed ratio of time spent waiting for usable connection to sum of response latencies and blocked time. Default is 0 - client must not be blocked. Set to 1 if the client can block without limits.
errorRatiodoubleMaximum allowed ratio of errors: connection failures or resets, timeouts and internal errors. Valid values are 0.0 - 1.0 (inclusive). Note: 4xx and 5xx statuses are NOT considered errors for this SLA parameter. Use invalidRatio for that.
invalidRatiodoubleMaximum allowed ratio of requests with responses marked as invalid. Valid values are 0.0 - 1.0 (inclusive). Note: With default settings 4xx and 5xx statuses are considered invalid. Check out ergonomics.autoRangeCheck or httpRequest.handler.autoRangeCheck to change this.
limitsBuilderPercentile limits.
meanResponseTimeStringMaximum allowed mean (average) response time. Use suffix ns, us, ms or s to specify units.
windowStringPeriod over which the stats should be collected. By default the SLA applies to stats from whole phase.

sla.<list of mappings>.limits

Percentile limits.

PropertyTypeDescription
<any>StringUse percentile (value between 0.0 and 1.0) as key and response time with unit (e.g. ms) in suffix as value.

TRACE

Generic builder for generating a string.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

20 - json

Parse JSON in variable into another variable.

Parse JSON in variable into another variable.

PropertyTypeDescription
deletebooleanIf this is set to true, the selected key will be deleted from the JSON and the modified JSON will be passed to the processor.
formatenumConversion to apply on the matching parts with ’toVar’ or ’toArray’ shortcuts.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
fromVarStringVariable to load JSON from.
processorProcessor.BuilderAdd one or more processors.
queryStringQuery selecting the part of JSON.
replaceTransformer.BuilderCustom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.
replace (alternative)StringReplace value of selected item with value generated through a pattern. Note that the result must contain quotes and be correctly escaped.
toArrayStringShortcut to store selected parts in an array in the session. Must follow the pattern variable[maxSize]
toVarStringShortcut to store first match in given variable. Further matches are ignored.
unquotebooleanAutomatically unquote and unescape the input values. By default true.

replace

Custom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.

PropertyTypeDescription
actionsActionsTransformer.BuilderThis transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.
patternPattern.TransformerBuilderUse pattern replacing session variables.

replace.actions

This transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.

PropertyTypeDescription
actionsAction.BuilderActions to be executed.
formatenumFormat into which should this transformer convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
patternStringPattern to use when fetching the transformed value.
varStringVariable used as the intermediate storage for the data.

replace.pattern

Use pattern replacing session variables.

Inline definition
The pattern formatting string.
PropertyTypeDescription
patternStringUse pattern replacing session variables.

21 - log

Log a message and variable values.

Log a message and variable values.

Inline definition
A pattern for string interpolation.
PropertyTypeDescription
messageStringMessage format pattern. Use string interpolation for variables.

22 - loop

Repeats a set of steps fixed number of times.

Repeats a set of steps fixed number of times.

This step is supposed to be inserted as the first step of a sequence and the counterVar should not be set during the first invocation.

Before the loop the counterVar is initialized to zero, and in each after the last step in the steps sequence the counter is incremented. If the result is lesser than repeats this sequence is restarted from the beginning (this is also why the step must be the first step in the sequence).

It is legal to place steps after the looped steps.

Example:

scenario:
+

This is the multi-page printable view of this section. +Click here to print.

Return to the regular view of this page.

Steps

Steps are the basic building blocks that form each sequence of a scenario, similar to statements in a programming language. Steps are potentially blocking (the sequence cannot continue with next step until previous one finishes).

Note that every action can be also used as a step that simply never blocks, as actions do not require any extra input.

1 - addItem

Appends value to an array stored in another variable.

Appends value to an array stored in another variable.

PropertyTypeDescription
fromVarStringFetch value from session variable.
toVarStringDestination variable with the array.
valueStringVerbatim value.

2 - addToInt

Add value to integer variable in the session.

Add value to integer variable in the session.

Inline definition
Accepting one of: var++, var–, var += value,
var -= value.
PropertyTypeDescription
orElseSetTointIf the variable is currently not set, set it to this value instead of addition.
valueintValue added (can be negative).
varStringVariable name.

3 - addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

Adds value to a counter shared by all sessions in the same executor.

Inline definition
Use on of: counter++, counter–, counter += <value>,
counter -= <value>
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
operatorenumOperation to perform on the counter. Default is ADD.
Options:
  • ADD
  • SUBTRACT
valueintValue (integer).

4 - awaitAllResponses

Block current sequence until all requests receive the response.

Block current sequence until all requests receive the response.

5 - awaitDelay

Block this sequence until referenced delay point.

Block this sequence until referenced delay point.

Inline definition
Delay point created in scheduleDelay.key.
PropertyTypeDescription
keyStringDelay point created in scheduleDelay.key.

6 - awaitInt

Block current sequence until condition becomes true.

Block current sequence until condition becomes true.

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.
varStringVariable name storing the compared value.

equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

7 - awaitVar

Block current sequence until this variable gets set/unset.

Block current sequence until this variable gets set/unset.

Inline definition
Variable name or !variable if we are waiting for it to be unset.
PropertyTypeDescription
varStringVariable name or !variable if we are waiting for it to be unset.

8 - breakIfFinished

Stop execution of current sequence if the phase is in finished state.

Stop execution of current sequence if the phase is in finished state.

This is useful for a long-running (looping) sequence that should not extend the duration of its phase.

9 - breakSequence

Prematurely stops execution of this sequence if the condition is satisfied.

Prematurely stops execution of this sequence if the condition is satisfied.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
dependencyStringThis step is blocked if this variable does not have set value (none by default).
intConditionBuilderCondition comparing integer variables.
onBreakAction.BuilderAction performed when the condition is true and the sequence is to be ended.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

10 - clearHttpCache

Drops all entries from HTTP cache in the session.

Drops all entries from HTTP cache in the session.

11 - conditional

Perform an action or sequence of actions conditionally.

Perform an action or sequence of actions conditionally.

PropertyTypeDescription
actionsAction.BuilderActions that should be executed should the condition hold.
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

12 - fail

Fail the phase with given message. Used mostly for testing/debugging.

Fail the phase with given message. Used mostly for testing/debugging.

Inline definition
Message to fail with (unconditionally).
PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
messageStringMessage attached to the failure exception.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

13 - foreach

Instantiate new sequences based on array variable content.

Instantiate new sequences based on array variable content.

PropertyTypeDescription
counterVarStringVariable to be set to the number of created sequences (optional).
dependencyStringThis step is blocked if this variable does not have set value (none by default).
fromVarStringVariable holding the array.
sequenceStringName of the instantiated sequence.

14 - getIndex

Lookup index of an item in an array/collection.

Lookup index of an item in an array/collection.

PropertyTypeDescription
collectionStringVariable to fetch the collection from.
itemBuilderItem that should be looked up (using equality).
toVarStringInteger variable to store the index, or -1 if the item is not found.

item

Inline definition
Verbatim value.
PropertyTypeDescription
fromVarStringFetch value from session variable.
valueStringVerbatim value.

15 - getItem

Retrieves n-th item from an array or collection.

Retrieves n-th item from an array or collection.

PropertyTypeDescription
fromVarStringSource variable with an array or list.
indexBuilderSource for index into the array/list.
toVarStringDestination variable for the n-th element.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

16 - getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.
If the value exceeds allowed integer range (-2^31 .. 2^31 - 1) it is capped.

Inline definition
Both the key and variable name.
PropertyTypeDescription
keyStringIdentifier for the counter.
toVarStringSession variable for storing the value.

17 - getSize

Calculates size of an array/collection held in variable into another variable

Calculates size of an array/collection held in variable into another variable

PropertyTypeDescription
boolFilterBuilderCount only items matching the condition.
fromVarStringVariable holding the collection.
intFilterBuilderCount only items matching the condition.
stringFilterBuilderCount only items matching the condition.
toVarStringVariable storing the size.
undefinedValueintValue to use when fromVar is unset or it does not contain any array/collection.

boolFilter

PropertyTypeDescription
valuebooleanExpected value.

intFilter

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intFilter.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringFilter.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringFilter.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

18 - hotrodRequest

Issues a HotRod request and registers handlers for the response.

Issues a HotRod request and registers handlers for the response.

PropertyTypeDescription
cacheNameStringName of the cache used for the operation. This can be a pattern.
cacheName (alternative)Builder<no description>
getStringGet specified entry in the remote cache.
keyStringKey used for the operation. This can be a pattern.
key (alternative)Builder<no description>
metricStringRequests statistics will use this metric name.
metric (alternative)<list of strings>Allows categorizing request statistics into metrics based on the request path.
operationenum
Options:
  • PUTAdds or overrides each specified entry in the remote cache.
  • GETGet specified entry in the remote cache.
putStringAdds or overrides each specified entry in the remote cache.
valueStringValue for the operation. This can be a pattern.
value (alternative)Builder<no description>

cacheName

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

key

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

metric

Allows categorizing request statistics into metrics based on the request path.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

value

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

19 - httpRequest

Issues a HTTP request and registers handlers for the response.

Issues a HTTP request and registers handlers for the response.

PropertyTypeDescription
authorityStringHTTP authority (host:port) this request should target. Must match one of the entries in http section. The string can use string interpolation.
authority (alternative)BuilderHTTP authority (host:port) this request should target. Must match one of the entries in http section.
bodyBuilderHTTP request body.
body (alternative)StringHTTP request body (possibly a pattern).
compensationBuilderConfigures additional metric compensated for coordinated omission.
compressionBuilderConfigure response compression.
compression (alternative)StringRequest server to respond with compressed entity using specified content encoding.
CONNECTStringIssue HTTP CONNECT request to given path. This can be a pattern.
CONNECT (alternative)BuilderIssue HTTP CONNECT request to given path.
DELETEStringIssue HTTP DELETE request to given path. This can be a pattern.
DELETE (alternative)BuilderIssue HTTP DELETE request to given path.
endpointBuilderHTTP endpoint this request should target. Must match to the name of the entries in http section.
GETStringIssue HTTP GET request to given path. This can be a pattern.
GET (alternative)BuilderIssue HTTP GET request to given path.
handlerBuilderHTTP response handlers.
HEADStringIssue HTTP HEAD request to given path. This can be a pattern.
HEAD (alternative)BuilderIssue HTTP HEAD request to given path.
headersBuilderHTTP headers sent in the request.
methodenumHTTP method used for the request.
Options:
  • GET
  • HEAD
  • POST
  • PUT
  • DELETE
  • OPTIONS
  • PATCH
  • TRACE
  • CONNECT
metricStringRequests statistics will use this metric name.
metric (alternative)<list of strings>Allows categorizing request statistics into metrics based on the request path.
OPTIONSStringIssue HTTP OPTIONS request to given path. This can be a pattern.
OPTIONS (alternative)BuilderIssue HTTP OPTIONS request to given path.
PATCHStringIssue HTTP PATCH request to given path. This can be a pattern.
PATCH (alternative)BuilderIssue HTTP PATCH request to given path.
pathStringHTTP path (absolute or relative), including query and fragment. The string can use string interpolation.
path (alternative)BuilderHTTP path (absolute or relative), including query and fragment.
POSTStringIssue HTTP POST request to given path. This can be a pattern.
POST (alternative)BuilderIssue HTTP POST request to given path.
PUTStringIssue HTTP PUT request to given path. This can be a pattern.
PUT (alternative)BuilderIssue HTTP PUT request to given path.
slaBuilderList of SLAs the requests are subject to.
syncbooleanThis request is synchronous; execution of the sequence does not continue until the full response is received. If this step is executed from multiple parallel instances of this sequence the progress of all sequences is blocked until there is a request in flight without response.

Default is true.

timeoutStringRequest timeout - after this time the request will be marked as failed and connection will be closed.

Defaults to value set globally in http section.

TRACEStringIssue HTTP TRACE request to given path. This can be a pattern.
TRACE (alternative)BuilderIssue HTTP TRACE request to given path.

authority

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

body

Allows building HTTP request body from session variables.

PropertyTypeDescription
formBuilderBuild form as if we were sending the request using HTML form. This option automatically adds Content-Type: application/x-www-form-urlencoded to the request headers.
fromFileStringSend contents of the file. Note that this method does NOT set content-type automatically.
fromVarStringUse variable content as request body.
patternStringPattern replacing ${sessionvar} with variable contents in a string.
textStringString sent as-is.

body.form

PropertyTypeDescription
<list of mappings><list of builders>Add input pair described in the mapping.

body.form.<list of mappings>

Form element (e.g. as if coming from an INPUT field).

PropertyTypeDescription
fromVarStringInput field value from session variable.
nameStringInput field name.
patternStringInput field value replacing session variables in a pattern, e.g. foo${myvariable}var
valueStringInput field value (verbatim).

compensation

PropertyTypeDescription
metricStringMetric name for the compensated results.
metric (alternative)<list of strings>Configure a custom metric for the compensated results.
targetRatedoubleDesired rate of new virtual users per second. This is similar to constantRate.usersPerSec phase settings but works closer to legacy benchmark drivers by fixing the concurrency.
targetRate (alternative)BuilderDesired rate of new virtual users per second. This is similar to constantRate.usersPerSec phase settings but works closer to legacy benchmark drivers by fixing the concurrency.

compensation.metric

Configure a custom metric for the compensated results.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

compensation.targetRate

PropertyTypeDescription
basedoubleBase value used for first iteration.
incrementdoubleValue by which the base value is incremented for each (but the very first) iteration.

compression

PropertyTypeDescription
encodingStringEncoding used for Accept-Encoding/TE header. The only currently supported is gzip.
typeenumType of compression (resource vs. transfer based).
Options:
  • CONTENT_ENCODINGUse Accept-Encoding in request and expect Content-Encoding in response.
  • TRANSFER_ENCODINGUse TE in request and expect Transfer-Encoding in response.

CONNECT

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

DELETE

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

endpoint

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

GET

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

handler

Manages processing of HTTP responses.

PropertyTypeDescription
autoRangeCheckbooleanInject status handler that marks the request as invalid on status 4xx or 5xx. Default value depends on ergonomics.autoRangeCheck (see User Guide).
bodyProcessor.BuilderHandle HTTP response body.
followRedirectenumAutomatically fire requests when the server responds with redirection. Default value depends on ergonomics.followRedirect (see User Guide).
Options:
  • NEVERDo not insert any automatic redirection handling.
  • LOCATION_ONLYRedirect only upon status 3xx accompanied with a ’location’ header. Status, headers, body and completions handlers are suppressed in this case (only raw-bytes handlers are still running). This is the default option.
  • HTML_ONLYHandle only HTML response with META refresh header. Status, headers and body handlers are invoked both on the original response and on the response from subsequent requests. Completion handlers are suppressed on this request and invoked after the last response arrives (in case of multiple redirections).
  • ALWAYSImplement both status 3xx + location and HTML redirects.
headerHeaderHandler.BuilderHandle HTTP response headers.
onCompletionAction.BuilderAction executed when the HTTP response is fully received.
rawBytesRawBytesHandler.BuilderHandler processing HTTP response before parsing.
statusStatusHandler.BuilderHandle HTTP response status.
stopOnInvalidbooleanInject completion handler that will stop the session if the request has been marked as invalid. Default value depends on ergonomics.stopOnInvalid (see User Guide).

handler.header

Handle HTTP response headers.

PropertyTypeDescription
conditionalConditionalHeaderHandler.BuilderPasses the headers to nested handler if the condition holds. Note that the condition may be evaluated multiple times and therefore any nested handlers should not change the results of the condition.
countHeadersCountHeadersHandler.BuilderStores number of occurences of each header in custom statistics (these can be displayed in CLI using the stats -c command).
filterFilterHeaderHandler.BuilderCompares if the header name matches expression and invokes a processor with the value.
logInvalidLogInvalidHandler.HeaderHandlerBuilderLogs headers from requests marked as invalid.
recordHeaderTimeRecordHeaderTimeHandler.BuilderRecords alternative metric based on values from a header (e.g. when a proxy reports processing time).

handler.header.conditional

Passes the headers to nested handler if the condition holds. Note that the condition may be evaluated multiple times and therefore any nested handlers should not change the results of the condition.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
handlerHeaderHandler.BuilderOne or more header handlers that should be invoked.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

handler.header.conditional.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

handler.header.conditional.allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

handler.header.conditional.allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

handler.header.conditional.allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

handler.header.conditional.allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.conditional.allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

handler.header.conditional.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

handler.header.conditional.handler

One or more header handlers that should be invoked.

PropertyTypeDescription
conditionalConditionalHeaderHandler.BuilderPasses the headers to nested handler if the condition holds. Note that the condition may be evaluated multiple times and therefore any nested handlers should not change the results of the condition.
countHeadersCountHeadersHandler.BuilderStores number of occurences of each header in custom statistics (these can be displayed in CLI using the stats -c command).
filterFilterHeaderHandler.BuilderCompares if the header name matches expression and invokes a processor with the value.
logInvalidLogInvalidHandler.HeaderHandlerBuilderLogs headers from requests marked as invalid.
recordHeaderTimeRecordHeaderTimeHandler.BuilderRecords alternative metric based on values from a header (e.g. when a proxy reports processing time).

handler.header.conditional.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.conditional.intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

handler.header.conditional.stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.conditional.stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.filter

Compares if the header name matches expression and invokes a processor with the value.

PropertyTypeDescription
headerBuilderCondition on the header name.
processorProcessor.BuilderAdd one or more processors.

handler.header.filter.header

Inline definition
Literal value the string should match.
PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

handler.header.filter.header.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.recordHeaderTime

Records alternative metric based on values from a header (e.g. when a proxy reports processing time).

PropertyTypeDescription
headerStringHeader carrying the time.
metricStringName of the created metric.
unitStringTime unit in the header; use either ms or ns.

handler.rawBytes

Handler processing HTTP response before parsing.

PropertyTypeDescription
transferSizeRecorderTransferSizeRecorder.BuilderAccumulates request and response sizes into custom metrics.

handler.rawBytes.transferSizeRecorder

Accumulates request and response sizes into custom metrics.

PropertyTypeDescription
keyStringName of the custom metric for collecting request/response bytes.

handler.status

Handle HTTP response status.

PropertyTypeDescription
actionActionStatusHandler.BuilderPerform certain actions when the status falls into a range.
counterStatusToCounterHandler.BuilderCounts how many times given status is received.
multiplexMultiplexStatusHandler.BuilderMultiplexes the status based on range into different status handlers.
rangeRangeStatusValidator.BuilderMarks requests that don’t fall into the desired range as invalid.
statsStatusToStatsHandler.BuilderRecords number of occurrences of each status counts into custom statistics (these can be displayed in CLI using stats -c).
storeStoreStatusHandler.BuilderStores the status into session variable.

handler.status.action

Perform certain actions when the status falls into a range.

PropertyTypeDescription
<any>BuilderPerform a sequence of actions if the range matches. Use range as the key and action in the mapping. Possible values of the status should be separated by commas (,). Ranges can be set using low-high (inclusive) (e.g. 200-299), or replacing lower digits with ‘x’ (e.g. 2xx).

handler.status.counter

Counts how many times given status is received.

PropertyTypeDescription
addintNumber to be added to the session variable.
expectStatusintExpected status (others are ignored). All status codes match by default.
initintInitial value for the session variable.
setintDo not accumulate (add), just set the variable to this value.
varStringVariable name.

handler.status.multiplex

Multiplexes the status based on range into different status handlers.

PropertyTypeDescription
<any>BuilderRun another handler if the range matches. Use range as the key and another status handler in the mapping. Possible values of the status should be separated by commas (,). Ranges can be set using low-high (inclusive) (e.g. 200-299), or replacing lower digits with ‘x’ (e.g. 2xx).

handler.status.multiplex.<any>

Run another handler if the range matches. Use range as the key and another status handler in the mapping. Possible values of the status should be separated by commas (,). Ranges can be set using low-high (inclusive) (e.g. 200-299), or replacing lower digits with ‘x’ (e.g. 2xx).

PropertyTypeDescription
actionActionStatusHandler.BuilderPerform certain actions when the status falls into a range.
counterStatusToCounterHandler.BuilderCounts how many times given status is received.
multiplexMultiplexStatusHandler.BuilderMultiplexes the status based on range into different status handlers.
rangeRangeStatusValidator.BuilderMarks requests that don’t fall into the desired range as invalid.
statsStatusToStatsHandler.BuilderRecords number of occurrences of each status counts into custom statistics (these can be displayed in CLI using stats -c).
storeStoreStatusHandler.BuilderStores the status into session variable.

handler.status.range

Marks requests that don’t fall into the desired range as invalid.

Inline definition
Single status code (204), masked code (2xx) or range (200-399).
PropertyTypeDescription
maxintHighest accepted status code.
minintLowest accepted status code.

handler.status.store

Stores the status into session variable.

Inline definition
Variable name.
PropertyTypeDescription
toVarObjectVariable name.

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

headers

PropertyTypeDescription
<any>StringUse header name (e.g. Content-Type) as key and value (possibly a pattern).
<any> (alternative)BuilderUse header name (e.g. Content-Type) as key and specify value in the mapping.

headers.<any>

Specifies value that should be sent in headers.

Inline definition
The value. This can be a
pattern.
PropertyTypeDescription
fromVarStringLoad header value from session variable.
patternStringLoad header value using a pattern.

metric

Allows categorizing request statistics into metrics based on the request path.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

OPTIONS

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

PATCH

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

path

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

POST

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

PUT

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

sla

Defines a list of Service Level Agreements (SLAs) - conditions that must hold for benchmark to be deemed successful.

PropertyTypeDescription
<list of mappings><list of builders>One or more SLA configurations.

sla.<list of mappings>

Defines a Service Level Agreement (SLA) - conditions that must hold for benchmark to be deemed successful.

PropertyTypeDescription
blockedRatiodoubleMaximum allowed ratio of time spent waiting for usable connection to sum of response latencies and blocked time. Default is 0 - client must not be blocked. Set to 1 if the client can block without limits.
errorRatiodoubleMaximum allowed ratio of errors: connection failures or resets, timeouts and internal errors. Valid values are 0.0 - 1.0 (inclusive). Note: 4xx and 5xx statuses are NOT considered errors for this SLA parameter. Use invalidRatio for that.
invalidRatiodoubleMaximum allowed ratio of requests with responses marked as invalid. Valid values are 0.0 - 1.0 (inclusive). Note: With default settings 4xx and 5xx statuses are considered invalid. Check out ergonomics.autoRangeCheck or httpRequest.handler.autoRangeCheck to change this.
limitsBuilderPercentile limits.
meanResponseTimeStringMaximum allowed mean (average) response time. Use suffix ns, us, ms or s to specify units.
windowStringPeriod over which the stats should be collected. By default the SLA applies to stats from whole phase.

sla.<list of mappings>.limits

Percentile limits.

PropertyTypeDescription
<any>StringUse percentile (value between 0.0 and 1.0) as key and response time with unit (e.g. ms) in suffix as value.

TRACE

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

20 - json

Parse JSON in variable into another variable.

Parse JSON in variable into another variable.

PropertyTypeDescription
deletebooleanIf this is set to true, the selected key will be deleted from the JSON and the modified JSON will be passed to the processor.
formatenumConversion to apply on the matching parts with ’toVar’ or ’toArray’ shortcuts.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
fromVarStringVariable to load JSON from.
processorProcessor.BuilderAdd one or more processors.
queryStringQuery selecting the part of JSON.
replaceTransformer.BuilderCustom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.
replace (alternative)StringReplace value of selected item with value generated through a pattern. Note that the result must contain quotes and be correctly escaped.
toArrayStringShortcut to store selected parts in an array in the session. Must follow the pattern variable[maxSize]
toVarStringShortcut to store first match in given variable. Further matches are ignored.
unquotebooleanAutomatically unquote and unescape the input values. By default true.

replace

Custom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.

PropertyTypeDescription
actionsActionsTransformer.BuilderThis transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.
patternPattern.TransformerBuilderUse pattern replacing session variables.

replace.actions

This transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.

PropertyTypeDescription
actionsAction.BuilderActions to be executed.
formatenumFormat into which should this transformer convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
patternStringPattern to use when fetching the transformed value.
varStringVariable used as the intermediate storage for the data.

replace.pattern

Use pattern replacing session variables.

Inline definition
The pattern formatting string.
PropertyTypeDescription
patternStringUse pattern replacing session variables.

21 - log

Log a message and variable values.

Log a message and variable values.

Inline definition
A pattern for
string
interpolation.
PropertyTypeDescription
messageStringMessage format pattern. Use string interpolation for variables.

22 - loop

Repeats a set of steps fixed number of times.

Repeats a set of steps fixed number of times.

This step is supposed to be inserted as the first step of a sequence and the counterVar should not be set during the first invocation.

Before the loop the counterVar is initialized to zero, and in each after the last step in the steps sequence the counter is incremented. If the result is lesser than repeats this sequence is restarted from the beginning (this is also why the step must be the first step in the sequence).

It is legal to place steps after the looped steps.

Example:

scenario:
 - mySequence:
   - loop:
       counterVar: myCounter
@@ -11,7 +11,8 @@
           # ...
       - someOtherStep: ...
   - anotherStepExecutedAfterThoseFiveLoops
-
PropertyTypeDescription
counterVarStringVariable holding number of iterations.
repeatsintNumber of iterations that should be executed.
stepsBuilderList of steps that should be looped.

23 - markRequestInvalid

Unconditionally mark currently processed request as invalid.

Unconditionally mark currently processed request as invalid.

24 - newSequence

Instantiates a sequence for each invocation.

Instantiates a sequence for each invocation.

Inline definition
Sequence name.
PropertyTypeDescription
concurrencyPolicyenum
Options:
  • FAIL
  • WARN
forceSameIndexbooleanForces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence.
sequenceStringName of the instantiated sequence.

25 - noop

Does nothing. Only for demonstration purposes.

Does nothing. Only for demonstration purposes.

26 - publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

Makes the data available to all sessions in the same agent, including those using different executors.

Inline definition
Both name of source variable and the key used to read the data.
PropertyTypeDescription
fromVarStringSource session variable name.
nameStringArbitrary unique identifier for the data.

27 - publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

Gathers values from session variables and publishes them globally (to all agents).
You can name the counters individually (example 1) or use the variable names (example 2):

# Example 1:
+
PropertyTypeDescription
counterVarStringVariable holding number of iterations.
repeatsintNumber of iterations that should be executed.
stepsBuilderList of steps that should be looped.

23 - markRequestInvalid

Unconditionally mark currently processed request as invalid.

Unconditionally mark currently processed request as invalid.

24 - newSequence

Instantiates a sequence for each invocation.

Instantiates a sequence for each invocation.

Inline definition
Sequence name.
PropertyTypeDescription
concurrencyPolicyenum
Options:
  • FAIL
  • WARN
forceSameIndexbooleanForces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence.
sequenceStringName of the instantiated sequence.

25 - noop

Does nothing. Only for demonstration purposes.

Does nothing. Only for demonstration purposes.

26 - publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

Makes the data available to all sessions in the same agent, including those using different executors.

Inline definition
Both name of source variable and the key used to read the data.
PropertyTypeDescription
fromVarStringSource session variable name.
nameStringArbitrary unique identifier for the data.

27 - publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

Gathers values from session variables and publishes them globally (to all agents).
You can name the counters individually (example 1) or use the variable names (example 2):

<code>
+# Example 1:
 - publishGlobalCounters:
     key: myKey
     vars: [ foo, bar ]
@@ -21,25 +22,12 @@
     vars:
     - foo: myFoo
     - bar: bbb
-</code>```
-
-
-| Property | Type | Description |
-| ------- | ------- | -------- |
-| key | String | Identifier of the global record. |
-| vars | [Builder](#vars) | List of names and session variables. |
-
-### vars
-
-| Property | Type | Description |
-| ------- | ------- | ------- |
-| &lt;any&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-| &lt;list of strings&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-

28 - pullSharedMap

Move values from a map shared across all sessions using the same executor into session variables.

Move values from a map shared across all sessions using the same executor into session variables.

The executor can host multiple shared maps, each holding an entry with several variables. This step moves variables from either a random entry (if no match is set) or with an entry that has the same value for given variable as the current session. When data is moved to the current session the entry is dropped from the shared map. If the map contains records for which the {@link #vars()} don’t contain a destination variable the contents is lost.

PropertyTypeDescription
keyStringKey identifying the shared map.
matchStringName of the session variable that stores value identifying the entry in the shared map.
vars<list of strings>List of variables the map should be pulled into.

vars

List of variables the map should be pulled into.

PropertyTypeDescription
<list of strings><unknown><no description>

29 - pushSharedMap

Store values from session variables into a map shared across all sessions using the same executor into session variables.

Store values from session variables into a map shared across all sessions using the same executor into session variables.

The executor can host multiple shared maps, each holding an entry with several variables. This step creates one entry in the map, copying values from session variables into the entry.

PropertyTypeDescription
keyStringKey identifying the shared map.
vars<list of strings>List of variable names that should be stored in the entry.

vars

List of variable names that should be stored in the entry.

PropertyTypeDescription
<list of strings><unknown><no description>

30 - randomCsvRow

Stores random row from a CSV-formatted file to variables.

Stores random row from a CSV-formatted file to variables.

PropertyTypeDescription
columnsBuilderDefines mapping from columns to session variables.
fileStringPath to the CSV file that should be loaded.
separatorcharSet character used for column separation. By default it is comma (,).
skipCommentsbooleanSkip lines starting with character ‘#’. By default set to false.

columns

PropertyTypeDescription
<any>StringUse 0-based column as the key and variable name as the value.

31 - randomFile

Reads bytes from a randomly chosen file into a variable.

Reads bytes from a randomly chosen file into a variable.
Two formats are supported:
Example 1 - without weights:

toVar: myVar
+</code>
+
PropertyTypeDescription
keyStringIdentifier of the global record.
varsBuilderList of names and session variables.

vars

PropertyTypeDescription
<any><unknown><no description>
<list of strings><unknown><no description>

28 - pullSharedMap

Move values from a map shared across all sessions using the same executor into session variables.

Move values from a map shared across all sessions using the same executor into session variables.

The executor can host multiple shared maps, each holding an entry with several variables. This step moves variables from either a random entry (if no match is set) or with an entry that has the same value for given variable as the current session. When data is moved to the current session the entry is dropped from the shared map. If the map contains records for which the {@link #vars()} don’t contain a destination variable the contents is lost.

PropertyTypeDescription
keyStringKey identifying the shared map.
matchStringName of the session variable that stores value identifying the entry in the shared map.
vars<list of strings>List of variables the map should be pulled into.

vars

List of variables the map should be pulled into.

PropertyTypeDescription
<list of strings><unknown><no description>

29 - pushSharedMap

Store values from session variables into a map shared across all sessions using the same executor into session variables.

Store values from session variables into a map shared across all sessions using the same executor into session variables.

The executor can host multiple shared maps, each holding an entry with several variables. This step creates one entry in the map, copying values from session variables into the entry.

PropertyTypeDescription
keyStringKey identifying the shared map.
vars<list of strings>List of variable names that should be stored in the entry.

vars

List of variable names that should be stored in the entry.

PropertyTypeDescription
<list of strings><unknown><no description>

30 - randomCsvRow

Stores random row from a CSV-formatted file to variables.

Stores random row from a CSV-formatted file to variables.

PropertyTypeDescription
columnsBuilderDefines mapping from columns to session variables.
fileStringPath to the CSV file that should be loaded.
separatorcharSet character used for column separation. By default it is comma (,).
skipCommentsbooleanSkip lines starting with character ‘#’. By default set to false.

columns

PropertyTypeDescription
<any>StringUse 0-based column as the key and variable name as the value.

31 - randomFile

Reads bytes from a randomly chosen file into a variable.

Reads bytes from a randomly chosen file into a variable.
Two formats are supported:
Example 1 - without weights:

toVar: myVar
 files:
 - /path/to/file1.txt
 - file2_relative_to_benchmark.txt
-

Example 2 - with weights (the second file will be returned twice as often):

toVar: myVar
+

Example 2 - with weights (the second file will be returned twice as often):

toVar: myVar
 files:
   /path/to/file1.txt: 1
   file2_relative_to_benchmark.txt: 2
diff --git a/docs/reference/steps/index.html b/docs/reference/steps/index.html
index 6d830ec..516ecfb 100644
--- a/docs/reference/steps/index.html
+++ b/docs/reference/steps/index.html
@@ -1,11 +1,11 @@
 Steps | Hyperfoil
-

Steps

Steps are the basic building blocks that form each sequence of a scenario, similar to statements in a programming language. Steps are potentially blocking (the sequence cannot continue with next step until previous one finishes).

Note that every action can be also used as a step that simply never blocks, as actions do not require any extra input.


addItem

Appends value to an array stored in another variable.

addToInt

Add value to integer variable in the session.

addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

awaitAllResponses

Block current sequence until all requests receive the response.

awaitDelay

Block this sequence until referenced delay point.

awaitInt

Block current sequence until condition becomes true.

awaitVar

Block current sequence until this variable gets set/unset.

breakIfFinished

Stop execution of current sequence if the phase is in finished state.

breakSequence

Prematurely stops execution of this sequence if the condition is satisfied.

clearHttpCache

Drops all entries from HTTP cache in the session.

conditional

Perform an action or sequence of actions conditionally.

fail

Fail the phase with given message. Used mostly for testing/debugging.

foreach

Instantiate new sequences based on array variable content.

getIndex

Lookup index of an item in an array/collection.

getItem

Retrieves n-th item from an array or collection.

getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

getSize

Calculates size of an array/collection held in variable into another variable

hotrodRequest

Issues a HotRod request and registers handlers for the response.

httpRequest

Issues a HTTP request and registers handlers for the response.

json

Parse JSON in variable into another variable.

log

Log a message and variable values.

loop

Repeats a set of steps fixed number of times.

markRequestInvalid

Unconditionally mark currently processed request as invalid.

newSequence

Instantiates a sequence for each invocation.

noop

Does nothing. Only for demonstration purposes.

publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

pullSharedMap

Move values from a map shared across all sessions using the same executor into session variables.

pushSharedMap

Store values from session variables into a map shared across all sessions using the same executor into session variables.

randomCsvRow

Stores random row from a CSV-formatted file to variables.

randomFile

Reads bytes from a randomly chosen file into a variable.

randomInt

Stores random (linearly distributed) integer into session variable.

randomItem

Stores random item from a list or array into session variable.

randomUUID

Stores random string into session variable based on the UUID generator.

readAgentData

Reads data from agent-wide scope into session variable.

removeItem

Removes element from an array of variables.

restartSequence

Restarts current sequence from beginning.

scheduleDelay

Define a point in future until which we should wait. Does not cause waiting.

set

Set variable in session to certain value.

setInt

Set session variable to an integral value.

setItem

Set element in a collection on given position.

setSharedCounter

Sets value in a counter shared by all sessions in the same executor.

stop

Immediately stop the user session (break all running sequences).

stopwatch

Run nested sequence of steps, recording execution time.

stringToInt

Parse string into integer and store it in a variable.

template

Format pattern into session variable.

thinkTime

Block current sequence for specified duration.

timestamp

Stores the current time in milliseconds as string to a session variable.

unset

Undefine variable name.

+

diff --git a/docs/reference/steps/index.xml b/docs/reference/steps/index.xml index 3265343..499e4eb 100644 --- a/docs/reference/steps/index.xml +++ b/docs/reference/steps/index.xml @@ -25,13 +25,11 @@ Inline definition A pattern for string interpolation. Property Type Description This step is supposed to be inserted as the first step of a sequence and the counterVar should not be set during the first invocation. Before the loop the counterVar is initialized to zero, and in each after the last step in the steps sequence the counter is incremented. If the result is lesser than repeats this sequence is restarted from the beginning (this is also why the step must be the first step in the sequence).markRequestInvalidhttps://hyperfoil.io/docs/reference/steps/step_markrequestinvalid/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_markrequestinvalid/Unconditionally mark currently processed request as invalid.newSequencehttps://hyperfoil.io/docs/reference/steps/step_newsequence/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_newsequence/Instantiates a sequence for each invocation. Inline definition Sequence name. Property Type Description concurrencyPolicy enum Options:FAILWARN forceSameIndex boolean Forces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence. sequence String Name of the instantiated sequence.noophttps://hyperfoil.io/docs/reference/steps/step_noop/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_noop/Does nothing. Only for demonstration purposes.publishAgentDatahttps://hyperfoil.io/docs/reference/steps/step_publishagentdata/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_publishagentdata/Makes the data available to all sessions in the same agent, including those using different executors. -Inline definition Both name of source variable and the key used to read the data. Property Type Description fromVar String Source session variable name. name String Arbitrary unique identifier for the data.publishGlobalCountershttps://hyperfoil.io/docs/reference/steps/step_publishglobalcounters/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_publishglobalcounters/Gathers values from session variables and publishes them globally (to all agents). You can name the counters individually (example 1) or use the variable names (example 2): # Example 1: - publishGlobalCounters: key: myKey vars: [ foo, bar ] # Example 2: - publishGlobalCounters: key: someOtherKey vars: - foo: myFoo - bar: bbb &lt;/code&gt;``` | Property | Type | Description | | ------- | ------- | -------- | | key | String | Identifier of the global record.pullSharedMaphttps://hyperfoil.io/docs/reference/steps/step_pullsharedmap/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_pullsharedmap/Move values from a map shared across all sessions using the same executor into session variables. +Inline definition Both name of source variable and the key used to read the data. Property Type Description fromVar String Source session variable name. name String Arbitrary unique identifier for the data.publishGlobalCountershttps://hyperfoil.io/docs/reference/steps/step_publishglobalcounters/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_publishglobalcounters/Gathers values from session variables and publishes them globally (to all agents). You can name the counters individually (example 1) or use the variable names (example 2): &lt;code&gt; # Example 1: - publishGlobalCounters: key: myKey vars: [ foo, bar ] # Example 2: - publishGlobalCounters: key: someOtherKey vars: - foo: myFoo - bar: bbb &lt;/code&gt; Property Type Description key String Identifier of the global record. vars Builder List of names and session variables.pullSharedMaphttps://hyperfoil.io/docs/reference/steps/step_pullsharedmap/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_pullsharedmap/Move values from a map shared across all sessions using the same executor into session variables. The executor can host multiple shared maps, each holding an entry with several variables. This step moves variables from either a random entry (if no match is set) or with an entry that has the same value for given variable as the current session. When data is moved to the current session the entry is dropped from the shared map.pushSharedMaphttps://hyperfoil.io/docs/reference/steps/step_pushsharedmap/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_pushsharedmap/Store values from session variables into a map shared across all sessions using the same executor into session variables. The executor can host multiple shared maps, each holding an entry with several variables. This step creates one entry in the map, copying values from session variables into the entry. Property Type Description key String Key identifying the shared map. vars &lt;list of strings&gt; List of variable names that should be stored in the entry.randomCsvRowhttps://hyperfoil.io/docs/reference/steps/step_randomcsvrow/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_randomcsvrow/Stores random row from a CSV-formatted file to variables. -Property Type Description columns Builder Defines mapping from columns to session variables. file String Path to the CSV file that should be loaded. separator char Set character used for column separation. By default it is comma (,). skipComments boolean Skip lines starting with character &lsquo;#&rsquo;. By default set to false. columns Property Type Description &lt;any&gt; String Use 0-based column as the key and variable name as the value.randomFilehttps://hyperfoil.io/docs/reference/steps/step_randomfile/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_randomfile/Reads bytes from a randomly chosen file into a variable. Two formats are supported: Example 1 - without weights: -toVar: myVar files: - /path/to/file1.txt - file2_relative_to_benchmark.txt Example 2 - with weights (the second file will be returned twice as often): -toVar: myVar files: /path/to/file1.txt: 1 file2_relative_to_benchmark.txt: 2 Property Type Description filenameVar String Optional variable to store the filename of the random file. files Builder Potentially weighted list of files to choose from.randomInthttps://hyperfoil.io/docs/reference/steps/step_randomint/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_randomint/Stores random (linearly distributed) integer into session variable. +Property Type Description columns Builder Defines mapping from columns to session variables. file String Path to the CSV file that should be loaded. separator char Set character used for column separation. By default it is comma (,). skipComments boolean Skip lines starting with character &lsquo;#&rsquo;. By default set to false. columns Property Type Description &lt;any&gt; String Use 0-based column as the key and variable name as the value.randomFilehttps://hyperfoil.io/docs/reference/steps/step_randomfile/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_randomfile/Reads bytes from a randomly chosen file into a variable. Two formats are supported: Example 1 - without weights: toVar: myVar files: - /path/to/file1.txt - file2_relative_to_benchmark.txt Example 2 - with weights (the second file will be returned twice as often): toVar: myVar files: /path/to/file1.txt: 1 file2_relative_to_benchmark.txt: 2 Property Type Description filenameVar String Optional variable to store the filename of the random file. files Builder Potentially weighted list of files to choose from.randomInthttps://hyperfoil.io/docs/reference/steps/step_randomint/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_randomint/Stores random (linearly distributed) integer into session variable. Property Type Description max Builder Highest possible value (inclusive). Default is Integer.MAX_VALUE. min Builder Lowest possible value (inclusive). Default is 0. toVar String Variable name to store the result. max Inline definition Constant value. Property Type Description fromVar String Initialize with a value from session variable. value int Initialize with a constant value. min Inline definition Constant value. Property Type Description fromVar String Initialize with a value from session variable.randomItemhttps://hyperfoil.io/docs/reference/steps/step_randomitem/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_randomitem/Stores random item from a list or array into session variable. Property Type Description file String This file will be loaded into memory and the step will choose on line as the item. fromVar String Variable containing an array or list. list Builder Potentially weighted list of items to choose from. toVar String Variable where the chosen item should be stored. list Property Type Description &lt;any&gt; &lt;list of strings&gt; Item as the key and weight (arbitrary floating-point number, defaults to 1.randomUUIDhttps://hyperfoil.io/docs/reference/steps/step_randomuuid/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_randomuuid/Stores random string into session variable based on the UUID generator. Property Type Description toVar String Variable name to store the result.readAgentDatahttps://hyperfoil.io/docs/reference/steps/step_readagentdata/Mon, 01 Jan 0001 00:00:00 +0000https://hyperfoil.io/docs/reference/steps/step_readagentdata/Reads data from agent-wide scope into session variable. diff --git a/docs/reference/steps/step_additem/index.html b/docs/reference/steps/step_additem/index.html index 74a88ed..35b51a2 100644 --- a/docs/reference/steps/step_additem/index.html +++ b/docs/reference/steps/step_additem/index.html @@ -1,11 +1,11 @@ -addItem | Hyperfoil -

addItem

Appends value to an array stored in another variable.

Appends value to an array stored in another variable.

PropertyTypeDescription
fromVarStringFetch value from session variable.
toVarStringDestination variable with the array.
valueStringVerbatim value.
+

diff --git a/docs/reference/steps/step_addtoint/index.html b/docs/reference/steps/step_addtoint/index.html index ab1d968..9a46e3e 100644 --- a/docs/reference/steps/step_addtoint/index.html +++ b/docs/reference/steps/step_addtoint/index.html @@ -1,11 +1,11 @@ -addToInt | Hyperfoil -

addToInt

Add value to integer variable in the session.

Add value to integer variable in the session.

Inline definition
Accepting one of: var++, var–, var += value,
var -= value.
PropertyTypeDescription
orElseSetTointIf the variable is currently not set, set it to this value instead of addition.
valueintValue added (can be negative).
varStringVariable name.
+

diff --git a/docs/reference/steps/step_addtosharedcounter/index.html b/docs/reference/steps/step_addtosharedcounter/index.html index baceca3..49ed37b 100644 --- a/docs/reference/steps/step_addtosharedcounter/index.html +++ b/docs/reference/steps/step_addtosharedcounter/index.html @@ -1,11 +1,11 @@ -addToSharedCounter | Hyperfoil -

addToSharedCounter

Adds value to a counter shared by all sessions in the same executor.

Adds value to a counter shared by all sessions in the same executor.

Inline definition
Use on of: counter++, counter–, counter += <value>,
counter -= <value>
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
operatorenumOperation to perform on the counter. Default is ADD.
Options:
  • ADD
  • SUBTRACT
valueintValue (integer).
+

diff --git a/docs/reference/steps/step_awaitallresponses/index.html b/docs/reference/steps/step_awaitallresponses/index.html index 14ede34..5eacba2 100644 --- a/docs/reference/steps/step_awaitallresponses/index.html +++ b/docs/reference/steps/step_awaitallresponses/index.html @@ -1,11 +1,11 @@ -awaitAllResponses | Hyperfoil -

awaitAllResponses

Block current sequence until all requests receive the response.

Block current sequence until all requests receive the response.

+

diff --git a/docs/reference/steps/step_awaitdelay/index.html b/docs/reference/steps/step_awaitdelay/index.html index eb7bc5f..4f54eb9 100644 --- a/docs/reference/steps/step_awaitdelay/index.html +++ b/docs/reference/steps/step_awaitdelay/index.html @@ -1,11 +1,11 @@ -awaitDelay | Hyperfoil -

awaitDelay

Block this sequence until referenced delay point.

Block this sequence until referenced delay point.

Inline definition
Delay point created in scheduleDelay.key.
PropertyTypeDescription
keyStringDelay point created in scheduleDelay.key.
+

diff --git a/docs/reference/steps/step_awaitint/index.html b/docs/reference/steps/step_awaitint/index.html index 83cd961..b895b22 100644 --- a/docs/reference/steps/step_awaitint/index.html +++ b/docs/reference/steps/step_awaitint/index.html @@ -1,11 +1,11 @@ -awaitInt | Hyperfoil -

awaitInt

Block current sequence until condition becomes true.

Block current sequence until condition becomes true.

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.
varStringVariable name storing the compared value.

equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/steps/step_awaitvar/index.html b/docs/reference/steps/step_awaitvar/index.html index 10e5ad1..2f0071d 100644 --- a/docs/reference/steps/step_awaitvar/index.html +++ b/docs/reference/steps/step_awaitvar/index.html @@ -1,11 +1,11 @@ -awaitVar | Hyperfoil -

awaitVar

Block current sequence until this variable gets set/unset.

Block current sequence until this variable gets set/unset.

Inline definition
Variable name or !variable if we are waiting for it to be unset.
PropertyTypeDescription
varStringVariable name or !variable if we are waiting for it to be unset.
+

diff --git a/docs/reference/steps/step_breakiffinished/index.html b/docs/reference/steps/step_breakiffinished/index.html index fd07eaf..26b144a 100644 --- a/docs/reference/steps/step_breakiffinished/index.html +++ b/docs/reference/steps/step_breakiffinished/index.html @@ -1,11 +1,11 @@ -breakIfFinished | Hyperfoil -

breakIfFinished

Stop execution of current sequence if the phase is in finished state.

Stop execution of current sequence if the phase is in finished state.

This is useful for a long-running (looping) sequence that should not extend the duration of its phase.

+

diff --git a/docs/reference/steps/step_breaksequence/index.html b/docs/reference/steps/step_breaksequence/index.html index b219018..59c71c9 100644 --- a/docs/reference/steps/step_breaksequence/index.html +++ b/docs/reference/steps/step_breaksequence/index.html @@ -1,11 +1,11 @@ -breakSequence | Hyperfoil -

breakSequence

Prematurely stops execution of this sequence if the condition is satisfied.

Prematurely stops execution of this sequence if the condition is satisfied.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
dependencyStringThis step is blocked if this variable does not have set value (none by default).
intConditionBuilderCondition comparing integer variables.
onBreakAction.BuilderAction performed when the condition is true and the sequence is to be ended.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/steps/step_clearhttpcache/index.html b/docs/reference/steps/step_clearhttpcache/index.html index 1bdc0a5..3285cdc 100644 --- a/docs/reference/steps/step_clearhttpcache/index.html +++ b/docs/reference/steps/step_clearhttpcache/index.html @@ -1,11 +1,11 @@ -clearHttpCache | Hyperfoil -

clearHttpCache

Drops all entries from HTTP cache in the session.

Drops all entries from HTTP cache in the session.

+

diff --git a/docs/reference/steps/step_conditional/index.html b/docs/reference/steps/step_conditional/index.html index fd88497..5ed085a 100644 --- a/docs/reference/steps/step_conditional/index.html +++ b/docs/reference/steps/step_conditional/index.html @@ -1,11 +1,11 @@ -conditional | Hyperfoil -

conditional

Perform an action or sequence of actions conditionally.

Perform an action or sequence of actions conditionally.

PropertyTypeDescription
actionsAction.BuilderActions that should be executed should the condition hold.
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/steps/step_fail/index.html b/docs/reference/steps/step_fail/index.html index 22606cd..cf36b31 100644 --- a/docs/reference/steps/step_fail/index.html +++ b/docs/reference/steps/step_fail/index.html @@ -1,11 +1,11 @@ -fail | Hyperfoil -

fail

Fail the phase with given message. Used mostly for testing/debugging.

Fail the phase with given message. Used mostly for testing/debugging.

Inline definition
Message to fail with (unconditionally).
PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
messageStringMessage attached to the failure exception.
stringConditionBuilderCondition comparing string variables.

allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/steps/step_foreach/index.html b/docs/reference/steps/step_foreach/index.html index 68fb2b3..abdf98d 100644 --- a/docs/reference/steps/step_foreach/index.html +++ b/docs/reference/steps/step_foreach/index.html @@ -1,11 +1,11 @@ -foreach | Hyperfoil -

foreach

Instantiate new sequences based on array variable content.

Instantiate new sequences based on array variable content.

PropertyTypeDescription
counterVarStringVariable to be set to the number of created sequences (optional).
dependencyStringThis step is blocked if this variable does not have set value (none by default).
fromVarStringVariable holding the array.
sequenceStringName of the instantiated sequence.
+

diff --git a/docs/reference/steps/step_getindex/index.html b/docs/reference/steps/step_getindex/index.html index b783e29..67f38b8 100644 --- a/docs/reference/steps/step_getindex/index.html +++ b/docs/reference/steps/step_getindex/index.html @@ -1,11 +1,11 @@ -getIndex | Hyperfoil -

getIndex

Lookup index of an item in an array/collection.

Lookup index of an item in an array/collection.

PropertyTypeDescription
collectionStringVariable to fetch the collection from.
itemBuilderItem that should be looked up (using equality).
toVarStringInteger variable to store the index, or -1 if the item is not found.

item

Inline definition
Verbatim value.
PropertyTypeDescription
fromVarStringFetch value from session variable.
valueStringVerbatim value.
+

diff --git a/docs/reference/steps/step_getitem/index.html b/docs/reference/steps/step_getitem/index.html index 57c699a..a71a378 100644 --- a/docs/reference/steps/step_getitem/index.html +++ b/docs/reference/steps/step_getitem/index.html @@ -1,11 +1,11 @@ -getItem | Hyperfoil -

getItem

Retrieves n-th item from an array or collection.

Retrieves n-th item from an array or collection.

PropertyTypeDescription
fromVarStringSource variable with an array or list.
indexBuilderSource for index into the array/list.
toVarStringDestination variable for the n-th element.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/steps/step_getsharedcounter/index.html b/docs/reference/steps/step_getsharedcounter/index.html index 926ccab..e82b70d 100644 --- a/docs/reference/steps/step_getsharedcounter/index.html +++ b/docs/reference/steps/step_getsharedcounter/index.html @@ -1,11 +1,11 @@ -getSharedCounter | Hyperfoil -

getSharedCounter

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.

Retrieves value from a counter shared by all sessions in the same executor and stores that in a session variable.
If the value exceeds allowed integer range (-2^31 .. 2^31 - 1) it is capped.

Inline definition
Both the key and variable name.
PropertyTypeDescription
keyStringIdentifier for the counter.
toVarStringSession variable for storing the value.
+

diff --git a/docs/reference/steps/step_getsize/index.html b/docs/reference/steps/step_getsize/index.html index 0efe016..dc2e3e6 100644 --- a/docs/reference/steps/step_getsize/index.html +++ b/docs/reference/steps/step_getsize/index.html @@ -1,11 +1,11 @@ -getSize | Hyperfoil -

getSize

Calculates size of an array/collection held in variable into another variable

Calculates size of an array/collection held in variable into another variable

PropertyTypeDescription
boolFilterBuilderCount only items matching the condition.
fromVarStringVariable holding the collection.
intFilterBuilderCount only items matching the condition.
stringFilterBuilderCount only items matching the condition.
toVarStringVariable storing the size.
undefinedValueintValue to use when fromVar is unset or it does not contain any array/collection.

boolFilter

PropertyTypeDescription
valuebooleanExpected value.

intFilter

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intFilter.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intFilter.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

stringFilter.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

stringFilter.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

stringFilter.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/steps/step_hotrodrequest/index.html b/docs/reference/steps/step_hotrodrequest/index.html index d4ee684..0289e1b 100644 --- a/docs/reference/steps/step_hotrodrequest/index.html +++ b/docs/reference/steps/step_hotrodrequest/index.html @@ -1,11 +1,11 @@ -hotrodRequest | Hyperfoil -

hotrodRequest

Issues a HotRod request and registers handlers for the response.

Issues a HotRod request and registers handlers for the response.

PropertyTypeDescription
cacheNameStringName of the cache used for the operation. This can be a pattern.
cacheName (alternative)Builder<no description>
getStringGet specified entry in the remote cache.
keyStringKey used for the operation. This can be a pattern.
key (alternative)Builder<no description>
metricStringRequests statistics will use this metric name.
metric (alternative)<list of strings>Allows categorizing request statistics into metrics based on the request path.
operationenum
Options:
  • PUTAdds or overrides each specified entry in the remote cache.
  • GETGet specified entry in the remote cache.
putStringAdds or overrides each specified entry in the remote cache.
valueStringValue for the operation. This can be a pattern.
value (alternative)Builder<no description>

cacheName

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

key

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

metric

Allows categorizing request statistics into metrics based on the request path.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

value

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.
+

diff --git a/docs/reference/steps/step_httprequest/index.html b/docs/reference/steps/step_httprequest/index.html index a34c5e1..daceed2 100644 --- a/docs/reference/steps/step_httprequest/index.html +++ b/docs/reference/steps/step_httprequest/index.html @@ -1,11 +1,11 @@ -httpRequest | Hyperfoil -

httpRequest

Issues a HTTP request and registers handlers for the response.

Issues a HTTP request and registers handlers for the response.

PropertyTypeDescription
authorityStringHTTP authority (host:port) this request should target. Must match one of the entries in http section. The string can use string interpolation.
authority (alternative)BuilderHTTP authority (host:port) this request should target. Must match one of the entries in http section.
bodyBuilderHTTP request body.
body (alternative)StringHTTP request body (possibly a pattern).
compensationBuilderConfigures additional metric compensated for coordinated omission.
compressionBuilderConfigure response compression.
compression (alternative)StringRequest server to respond with compressed entity using specified content encoding.
CONNECTStringIssue HTTP CONNECT request to given path. This can be a pattern.
CONNECT (alternative)BuilderIssue HTTP CONNECT request to given path.
DELETEStringIssue HTTP DELETE request to given path. This can be a pattern.
DELETE (alternative)BuilderIssue HTTP DELETE request to given path.
endpointBuilderHTTP endpoint this request should target. Must match to the name of the entries in http section.
GETStringIssue HTTP GET request to given path. This can be a pattern.
GET (alternative)BuilderIssue HTTP GET request to given path.
handlerBuilderHTTP response handlers.
HEADStringIssue HTTP HEAD request to given path. This can be a pattern.
HEAD (alternative)BuilderIssue HTTP HEAD request to given path.
headersBuilderHTTP headers sent in the request.
methodenumHTTP method used for the request.
Options:
  • GET
  • HEAD
  • POST
  • PUT
  • DELETE
  • OPTIONS
  • PATCH
  • TRACE
  • CONNECT
metricStringRequests statistics will use this metric name.
metric (alternative)<list of strings>Allows categorizing request statistics into metrics based on the request path.
OPTIONSStringIssue HTTP OPTIONS request to given path. This can be a pattern.
OPTIONS (alternative)BuilderIssue HTTP OPTIONS request to given path.
PATCHStringIssue HTTP PATCH request to given path. This can be a pattern.
PATCH (alternative)BuilderIssue HTTP PATCH request to given path.
pathStringHTTP path (absolute or relative), including query and fragment. The string can use string interpolation.
path (alternative)BuilderHTTP path (absolute or relative), including query and fragment.
POSTStringIssue HTTP POST request to given path. This can be a pattern.
POST (alternative)BuilderIssue HTTP POST request to given path.
PUTStringIssue HTTP PUT request to given path. This can be a pattern.
PUT (alternative)BuilderIssue HTTP PUT request to given path.
slaBuilderList of SLAs the requests are subject to.
syncbooleanThis request is synchronous; execution of the sequence does not continue until the full response is received. If this step is executed from multiple parallel instances of this sequence the progress of all sequences is blocked until there is a request in flight without response.

Default is true.

timeoutStringRequest timeout - after this time the request will be marked as failed and connection will be closed.

Defaults to value set globally in http section.

TRACEStringIssue HTTP TRACE request to given path. This can be a pattern.
TRACE (alternative)BuilderIssue HTTP TRACE request to given path.

authority

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

body

Allows building HTTP request body from session variables.

PropertyTypeDescription
formBuilderBuild form as if we were sending the request using HTML form. This option automatically adds Content-Type: application/x-www-form-urlencoded to the request headers.
fromFileStringSend contents of the file. Note that this method does NOT set content-type automatically.
fromVarStringUse variable content as request body.
patternStringPattern replacing ${sessionvar} with variable contents in a string.
textStringString sent as-is.

body.form

PropertyTypeDescription
<list of mappings><list of builders>Add input pair described in the mapping.

body.form.<list of mappings>

Form element (e.g. as if coming from an INPUT field).

PropertyTypeDescription
fromVarStringInput field value from session variable.
nameStringInput field name.
patternStringInput field value replacing session variables in a pattern, e.g. foo${myvariable}var
valueStringInput field value (verbatim).

compensation

PropertyTypeDescription
metricStringMetric name for the compensated results.
metric (alternative)<list of strings>Configure a custom metric for the compensated results.
targetRatedoubleDesired rate of new virtual users per second. This is similar to constantRate.usersPerSec phase settings but works closer to legacy benchmark drivers by fixing the concurrency.
targetRate (alternative)BuilderDesired rate of new virtual users per second. This is similar to constantRate.usersPerSec phase settings but works closer to legacy benchmark drivers by fixing the concurrency.

compensation.metric

Configure a custom metric for the compensated results.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

compensation.targetRate

PropertyTypeDescription
basedoubleBase value used for first iteration.
incrementdoubleValue by which the base value is incremented for each (but the very first) iteration.

compression

PropertyTypeDescription
encodingStringEncoding used for Accept-Encoding/TE header. The only currently supported is gzip.
typeenumType of compression (resource vs. transfer based).
Options:
  • CONTENT_ENCODINGUse Accept-Encoding in request and expect Content-Encoding in response.
  • TRANSFER_ENCODINGUse TE in request and expect Transfer-Encoding in response.

CONNECT

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

DELETE

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

endpoint

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

GET

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

handler

Manages processing of HTTP responses.

PropertyTypeDescription
autoRangeCheckbooleanInject status handler that marks the request as invalid on status 4xx or 5xx. Default value depends on ergonomics.autoRangeCheck (see User Guide).
bodyProcessor.BuilderHandle HTTP response body.
followRedirectenumAutomatically fire requests when the server responds with redirection. Default value depends on ergonomics.followRedirect (see User Guide).
Options:
  • NEVERDo not insert any automatic redirection handling.
  • LOCATION_ONLYRedirect only upon status 3xx accompanied with a ’location’ header. Status, headers, body and completions handlers are suppressed in this case (only raw-bytes handlers are still running). This is the default option.
  • HTML_ONLYHandle only HTML response with META refresh header. Status, headers and body handlers are invoked both on the original response and on the response from subsequent requests. Completion handlers are suppressed on this request and invoked after the last response arrives (in case of multiple redirections).
  • ALWAYSImplement both status 3xx + location and HTML redirects.
headerHeaderHandler.BuilderHandle HTTP response headers.
onCompletionAction.BuilderAction executed when the HTTP response is fully received.
rawBytesRawBytesHandler.BuilderHandler processing HTTP response before parsing.
statusStatusHandler.BuilderHandle HTTP response status.
stopOnInvalidbooleanInject completion handler that will stop the session if the request has been marked as invalid. Default value depends on ergonomics.stopOnInvalid (see User Guide).

handler.header

Handle HTTP response headers.

PropertyTypeDescription
conditionalConditionalHeaderHandler.BuilderPasses the headers to nested handler if the condition holds. Note that the condition may be evaluated multiple times and therefore any nested handlers should not change the results of the condition.
countHeadersCountHeadersHandler.BuilderStores number of occurences of each header in custom statistics (these can be displayed in CLI using the stats -c command).
filterFilterHeaderHandler.BuilderCompares if the header name matches expression and invokes a processor with the value.
logInvalidLogInvalidHandler.HeaderHandlerBuilderLogs headers from requests marked as invalid.
recordHeaderTimeRecordHeaderTimeHandler.BuilderRecords alternative metric based on values from a header (e.g. when a proxy reports processing time).

handler.header.conditional

Passes the headers to nested handler if the condition holds. Note that the condition may be evaluated multiple times and therefore any nested handlers should not change the results of the condition.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
handlerHeaderHandler.BuilderOne or more header handlers that should be invoked.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

handler.header.conditional.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

handler.header.conditional.allConditions.<list of mappings>

Selector for condition type.

PropertyTypeDescription
allConditionsBuilderCondition combining multiple other conditions with ‘AND’ logic.
boolConditionBuilderCondition comparing boolean variables.
intConditionBuilderCondition comparing integer variables.
stringConditionBuilderCondition comparing string variables.

handler.header.conditional.allConditions.<list of mappings>.allConditions

Test more conditions and combine the results using AND logic.

PropertyTypeDescription
<list of mappings><list of builders>List of conditions.

handler.header.conditional.allConditions.<list of mappings>.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

handler.header.conditional.allConditions.<list of mappings>.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.conditional.allConditions.<list of mappings>.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

handler.header.conditional.boolCondition

Tests session variable containing boolean value.

PropertyTypeDescription
fromVarStringVariable name.
valuebooleanExpected value.

handler.header.conditional.handler

One or more header handlers that should be invoked.

PropertyTypeDescription
conditionalConditionalHeaderHandler.BuilderPasses the headers to nested handler if the condition holds. Note that the condition may be evaluated multiple times and therefore any nested handlers should not change the results of the condition.
countHeadersCountHeadersHandler.BuilderStores number of occurences of each header in custom statistics (these can be displayed in CLI using the stats -c command).
filterFilterHeaderHandler.BuilderCompares if the header name matches expression and invokes a processor with the value.
logInvalidLogInvalidHandler.HeaderHandlerBuilderLogs headers from requests marked as invalid.
recordHeaderTimeRecordHeaderTimeHandler.BuilderRecords alternative metric based on values from a header (e.g. when a proxy reports processing time).

handler.header.conditional.intCondition

Condition comparing integer in session variable.

Inline definition
Parses condition in the form <variable> <operator> <value>
where operator is one of: ==, !=,
<> (the same as !=),
>=, >, <=, <.
PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
fromVarObjectVariable name.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.conditional.intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition

Condition comparing string in session variable.

PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
fromVarObjectVariable name.
isSetbooleanCheck if the value is set or unset. By default the variable must be set.
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

handler.header.conditional.stringCondition.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.conditional.stringCondition.length.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.conditional.stringCondition.length.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

handler.header.filter

Compares if the header name matches expression and invokes a processor with the value.

PropertyTypeDescription
headerBuilderCondition on the header name.
processorProcessor.BuilderAdd one or more processors.

handler.header.filter.header

Inline definition
Literal value the string should match.
PropertyTypeDescription
caseSensitivebooleanTrue if the case must match, false if the check is case-insensitive.
endsWithCharSequenceSuffix for the string.
equalToCharSequenceLiteral value the string should match (the same as {@link #value}).
lengthintCheck the length of the string.
length (alternative)BuilderCheck the length of the string.
matchVarStringFetch the value from a variable.
negatebooleanInvert the logic of this condition. Defaults to false.
notEqualToCharSequenceValue that the string must not match.
startsWithCharSequencePrefix for the string.
valueCharSequenceLiteral value the string should match.

handler.header.filter.header.length

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

handler.header.recordHeaderTime

Records alternative metric based on values from a header (e.g. when a proxy reports processing time).

PropertyTypeDescription
headerStringHeader carrying the time.
metricStringName of the created metric.
unitStringTime unit in the header; use either ms or ns.

handler.rawBytes

Handler processing HTTP response before parsing.

PropertyTypeDescription
transferSizeRecorderTransferSizeRecorder.BuilderAccumulates request and response sizes into custom metrics.

handler.rawBytes.transferSizeRecorder

Accumulates request and response sizes into custom metrics.

PropertyTypeDescription
keyStringName of the custom metric for collecting request/response bytes.

handler.status

Handle HTTP response status.

PropertyTypeDescription
actionActionStatusHandler.BuilderPerform certain actions when the status falls into a range.
counterStatusToCounterHandler.BuilderCounts how many times given status is received.
multiplexMultiplexStatusHandler.BuilderMultiplexes the status based on range into different status handlers.
rangeRangeStatusValidator.BuilderMarks requests that don’t fall into the desired range as invalid.
statsStatusToStatsHandler.BuilderRecords number of occurrences of each status counts into custom statistics (these can be displayed in CLI using stats -c).
storeStoreStatusHandler.BuilderStores the status into session variable.

handler.status.action

Perform certain actions when the status falls into a range.

PropertyTypeDescription
<any>BuilderPerform a sequence of actions if the range matches. Use range as the key and action in the mapping. Possible values of the status should be separated by commas (,). Ranges can be set using low-high (inclusive) (e.g. 200-299), or replacing lower digits with ‘x’ (e.g. 2xx).

handler.status.counter

Counts how many times given status is received.

PropertyTypeDescription
addintNumber to be added to the session variable.
expectStatusintExpected status (others are ignored). All status codes match by default.
initintInitial value for the session variable.
setintDo not accumulate (add), just set the variable to this value.
varStringVariable name.

handler.status.multiplex

Multiplexes the status based on range into different status handlers.

PropertyTypeDescription
<any>BuilderRun another handler if the range matches. Use range as the key and another status handler in the mapping. Possible values of the status should be separated by commas (,). Ranges can be set using low-high (inclusive) (e.g. 200-299), or replacing lower digits with ‘x’ (e.g. 2xx).

handler.status.multiplex.<any>

Run another handler if the range matches. Use range as the key and another status handler in the mapping. Possible values of the status should be separated by commas (,). Ranges can be set using low-high (inclusive) (e.g. 200-299), or replacing lower digits with ‘x’ (e.g. 2xx).

PropertyTypeDescription
actionActionStatusHandler.BuilderPerform certain actions when the status falls into a range.
counterStatusToCounterHandler.BuilderCounts how many times given status is received.
multiplexMultiplexStatusHandler.BuilderMultiplexes the status based on range into different status handlers.
rangeRangeStatusValidator.BuilderMarks requests that don’t fall into the desired range as invalid.
statsStatusToStatsHandler.BuilderRecords number of occurrences of each status counts into custom statistics (these can be displayed in CLI using stats -c).
storeStoreStatusHandler.BuilderStores the status into session variable.

handler.status.range

Marks requests that don’t fall into the desired range as invalid.

Inline definition
Single status code (204), masked code (2xx) or range (200-399).
PropertyTypeDescription
maxintHighest accepted status code.
minintLowest accepted status code.

handler.status.store

Stores the status into session variable.

Inline definition
Variable name.
PropertyTypeDescription
toVarObjectVariable name.

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

headers

PropertyTypeDescription
<any>StringUse header name (e.g. Content-Type) as key and value (possibly a pattern).
<any> (alternative)BuilderUse header name (e.g. Content-Type) as key and specify value in the mapping.

headers.<any>

Specifies value that should be sent in headers.

Inline definition
The value. This can be a
pattern.
PropertyTypeDescription
fromVarStringLoad header value from session variable.
patternStringLoad header value using a pattern.

metric

Allows categorizing request statistics into metrics based on the request path.

PropertyTypeDescription
<list of strings><list of strings>Allows categorizing request statistics into metrics based on the request path. The expressions are evaluated in the order as provided in the list. Use one of:
  • regexp -> replacement, e.g. ([^?])(?.)? -> $1 to drop the query part.
  • regexp (don’t do any replaces and use the full path), e.g. .*.jpg
  • -> name (metric applied if none of the previous expressions match).

OPTIONS

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

PATCH

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

path

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

POST

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

PUT

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.

sla

Defines a list of Service Level Agreements (SLAs) - conditions that must hold for benchmark to be deemed successful.

PropertyTypeDescription
<list of mappings><list of builders>One or more SLA configurations.

sla.<list of mappings>

Defines a Service Level Agreement (SLA) - conditions that must hold for benchmark to be deemed successful.

PropertyTypeDescription
blockedRatiodoubleMaximum allowed ratio of time spent waiting for usable connection to sum of response latencies and blocked time. Default is 0 - client must not be blocked. Set to 1 if the client can block without limits.
errorRatiodoubleMaximum allowed ratio of errors: connection failures or resets, timeouts and internal errors. Valid values are 0.0 - 1.0 (inclusive). Note: 4xx and 5xx statuses are NOT considered errors for this SLA parameter. Use invalidRatio for that.
invalidRatiodoubleMaximum allowed ratio of requests with responses marked as invalid. Valid values are 0.0 - 1.0 (inclusive). Note: With default settings 4xx and 5xx statuses are considered invalid. Check out ergonomics.autoRangeCheck or httpRequest.handler.autoRangeCheck to change this.
limitsBuilderPercentile limits.
meanResponseTimeStringMaximum allowed mean (average) response time. Use suffix ns, us, ms or s to specify units.
windowStringPeriod over which the stats should be collected. By default the SLA applies to stats from whole phase.

sla.<list of mappings>.limits

Percentile limits.

PropertyTypeDescription
<any>StringUse percentile (value between 0.0 and 1.0) as key and response time with unit (e.g. ms) in suffix as value.

TRACE

Generic builder for generating a string.

Inline definition
A pattern for string
interpolation.
PropertyTypeDescription
fromVarObjectLoad the string from session variable.
patternStringUse pattern replacing session variables.
valueStringString value used verbatim.
+

diff --git a/docs/reference/steps/step_json/index.html b/docs/reference/steps/step_json/index.html index 7b9ece7..4549f0c 100644 --- a/docs/reference/steps/step_json/index.html +++ b/docs/reference/steps/step_json/index.html @@ -1,11 +1,11 @@ -json | Hyperfoil -

json

Parse JSON in variable into another variable.

Parse JSON in variable into another variable.

PropertyTypeDescription
deletebooleanIf this is set to true, the selected key will be deleted from the JSON and the modified JSON will be passed to the processor.
formatenumConversion to apply on the matching parts with ’toVar’ or ’toArray’ shortcuts.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
fromVarStringVariable to load JSON from.
processorProcessor.BuilderAdd one or more processors.
queryStringQuery selecting the part of JSON.
replaceTransformer.BuilderCustom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.
replace (alternative)StringReplace value of selected item with value generated through a pattern. Note that the result must contain quotes and be correctly escaped.
toArrayStringShortcut to store selected parts in an array in the session. Must follow the pattern variable[maxSize]
toVarStringShortcut to store first match in given variable. Further matches are ignored.
unquotebooleanAutomatically unquote and unescape the input values. By default true.

replace

Custom transformation executed on the value of the selected item. Note that the output value must contain quotes (if applicable) and be correctly escaped.

PropertyTypeDescription
actionsActionsTransformer.BuilderThis transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.
patternPattern.TransformerBuilderUse pattern replacing session variables.

replace.actions

This transformer stores the (defragmented) input into a variable, using requested format. After that it executes all the actions and fetches transformed value using the pattern.

PropertyTypeDescription
actionsAction.BuilderActions to be executed.
formatenumFormat into which should this transformer convert the buffers before storing. Default is STRING.
Options:
  • BYTEBUFStore the buffer directly. Beware that this may cause memory leaks!
  • BYTESStore data as byte array.
  • STRINGInterprets the bytes as UTF-8 string.
patternStringPattern to use when fetching the transformed value.
varStringVariable used as the intermediate storage for the data.

replace.pattern

Use pattern replacing session variables.

Inline definition
The pattern formatting string.
PropertyTypeDescription
patternStringUse pattern replacing session variables.
+

diff --git a/docs/reference/steps/step_log/index.html b/docs/reference/steps/step_log/index.html index b47a1a5..26d9ad0 100644 --- a/docs/reference/steps/step_log/index.html +++ b/docs/reference/steps/step_log/index.html @@ -1,11 +1,11 @@ -log | Hyperfoil -

log

Log a message and variable values.

Log a message and variable values.

Inline definition
A pattern for
string
interpolation.
PropertyTypeDescription
messageStringMessage format pattern. Use string interpolation for variables.
+

diff --git a/docs/reference/steps/step_loop/index.html b/docs/reference/steps/step_loop/index.html index 618957d..439236a 100644 --- a/docs/reference/steps/step_loop/index.html +++ b/docs/reference/steps/step_loop/index.html @@ -1,10 +1,10 @@ -loop | Hyperfoil -

loop

Repeats a set of steps fixed number of times.

Repeats a set of steps fixed number of times.

This step is supposed to be inserted as the first step of a sequence and the counterVar should not be set during the first invocation.

Before the loop the counterVar is initialized to zero, and in each after the last step in the steps sequence the counter is incremented. If the result is lesser than repeats this sequence is restarted from the beginning (this is also why the step must be the first step in the sequence).

It is legal to place steps after the looped steps.

Example:

scenario:
 - mySequence:
   - loop:
       counterVar: myCounter
@@ -16,7 +16,7 @@
       - someOtherStep: ...
   - anotherStepExecutedAfterThoseFiveLoops
 
PropertyTypeDescription
counterVarStringVariable holding number of iterations.
repeatsintNumber of iterations that should be executed.
stepsBuilderList of steps that should be looped.
-

Last modified September 30, 2024: Fix Github website links (eb62dd6)

diff --git a/docs/reference/steps/step_markrequestinvalid/index.html b/docs/reference/steps/step_markrequestinvalid/index.html index 814abcb..604dd09 100644 --- a/docs/reference/steps/step_markrequestinvalid/index.html +++ b/docs/reference/steps/step_markrequestinvalid/index.html @@ -1,11 +1,11 @@ -markRequestInvalid | Hyperfoil -

markRequestInvalid

Unconditionally mark currently processed request as invalid.

Unconditionally mark currently processed request as invalid.

+

diff --git a/docs/reference/steps/step_newsequence/index.html b/docs/reference/steps/step_newsequence/index.html index 7a2f4f5..59ffd18 100644 --- a/docs/reference/steps/step_newsequence/index.html +++ b/docs/reference/steps/step_newsequence/index.html @@ -1,11 +1,11 @@ -newSequence | Hyperfoil -

newSequence

Instantiates a sequence for each invocation.

Instantiates a sequence for each invocation.

Inline definition
Sequence name.
PropertyTypeDescription
concurrencyPolicyenum
Options:
  • FAIL
  • WARN
forceSameIndexbooleanForces that the sequence will have the same index as the currently executing sequence. This can be useful if the sequence is passing some data to the new sequence using sequence-scoped variables. Note that the new sequence must have same concurrency factor as the currently executing sequence.
sequenceStringName of the instantiated sequence.
+

diff --git a/docs/reference/steps/step_noop/index.html b/docs/reference/steps/step_noop/index.html index a572afb..1be777e 100644 --- a/docs/reference/steps/step_noop/index.html +++ b/docs/reference/steps/step_noop/index.html @@ -1,11 +1,11 @@ -noop | Hyperfoil -

noop

Does nothing. Only for demonstration purposes.

Does nothing. Only for demonstration purposes.

+

diff --git a/docs/reference/steps/step_publishagentdata/index.html b/docs/reference/steps/step_publishagentdata/index.html index ca6d74a..3f52300 100644 --- a/docs/reference/steps/step_publishagentdata/index.html +++ b/docs/reference/steps/step_publishagentdata/index.html @@ -1,11 +1,11 @@ -publishAgentData | Hyperfoil -

publishAgentData

Makes the data available to all sessions in the same agent, including those using different executors.

Makes the data available to all sessions in the same agent, including those using different executors.

Inline definition
Both name of source variable and the key used to read the data.
PropertyTypeDescription
fromVarStringSource session variable name.
nameStringArbitrary unique identifier for the data.
+

diff --git a/docs/reference/steps/step_publishglobalcounters/index.html b/docs/reference/steps/step_publishglobalcounters/index.html index 356cd3c..2251e32 100644 --- a/docs/reference/steps/step_publishglobalcounters/index.html +++ b/docs/reference/steps/step_publishglobalcounters/index.html @@ -1,10 +1,11 @@ -publishGlobalCounters | Hyperfoil -

publishGlobalCounters

Gathers values from session variables and publishes them globally (to all agents).

Gathers values from session variables and publishes them globally (to all agents).
You can name the counters individually (example 1) or use the variable names (example 2):

<code>
+# Example 1:
 - publishGlobalCounters:
     key: myKey
     vars: [ foo, bar ]
@@ -14,22 +15,9 @@
     vars:
     - foo: myFoo
     - bar: bbb
-</code>```
-
-
-| Property | Type | Description |
-| ------- | ------- | -------- |
-| key | String | Identifier of the global record. |
-| vars | [Builder](#vars) | List of names and session variables. |
-
-### vars
-
-| Property | Type | Description |
-| ------- | ------- | ------- |
-| &lt;any&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-| &lt;list of strings&gt; | &lt;unknown&gt; | <font color="#606060">&lt;no description&gt;</font> |
-
-

Last modified September 30, 2024: Fix Github website links (eb62dd6)
PropertyTypeDescription
keyStringIdentifier of the global record.
varsBuilderList of names and session variables.

vars

PropertyTypeDescription
<any><unknown><no description>
<list of strings><unknown><no description>
+

diff --git a/docs/reference/steps/step_pullsharedmap/index.html b/docs/reference/steps/step_pullsharedmap/index.html index 9bd4161..73b8c8c 100644 --- a/docs/reference/steps/step_pullsharedmap/index.html +++ b/docs/reference/steps/step_pullsharedmap/index.html @@ -1,11 +1,11 @@ -pullSharedMap | Hyperfoil -

pullSharedMap

Move values from a map shared across all sessions using the same executor into session variables.

Move values from a map shared across all sessions using the same executor into session variables.

The executor can host multiple shared maps, each holding an entry with several variables. This step moves variables from either a random entry (if no match is set) or with an entry that has the same value for given variable as the current session. When data is moved to the current session the entry is dropped from the shared map. If the map contains records for which the {@link #vars()} don’t contain a destination variable the contents is lost.

PropertyTypeDescription
keyStringKey identifying the shared map.
matchStringName of the session variable that stores value identifying the entry in the shared map.
vars<list of strings>List of variables the map should be pulled into.

vars

List of variables the map should be pulled into.

PropertyTypeDescription
<list of strings><unknown><no description>
+

diff --git a/docs/reference/steps/step_pushsharedmap/index.html b/docs/reference/steps/step_pushsharedmap/index.html index 9269f02..0be0f8e 100644 --- a/docs/reference/steps/step_pushsharedmap/index.html +++ b/docs/reference/steps/step_pushsharedmap/index.html @@ -1,11 +1,11 @@ -pushSharedMap | Hyperfoil -

pushSharedMap

Store values from session variables into a map shared across all sessions using the same executor into session variables.

Store values from session variables into a map shared across all sessions using the same executor into session variables.

The executor can host multiple shared maps, each holding an entry with several variables. This step creates one entry in the map, copying values from session variables into the entry.

PropertyTypeDescription
keyStringKey identifying the shared map.
vars<list of strings>List of variable names that should be stored in the entry.

vars

List of variable names that should be stored in the entry.

PropertyTypeDescription
<list of strings><unknown><no description>
+

diff --git a/docs/reference/steps/step_randomcsvrow/index.html b/docs/reference/steps/step_randomcsvrow/index.html index 04a33f7..35e7db9 100644 --- a/docs/reference/steps/step_randomcsvrow/index.html +++ b/docs/reference/steps/step_randomcsvrow/index.html @@ -1,11 +1,11 @@ -randomCsvRow | Hyperfoil -

randomCsvRow

Stores random row from a CSV-formatted file to variables.

Stores random row from a CSV-formatted file to variables.

PropertyTypeDescription
columnsBuilderDefines mapping from columns to session variables.
fileStringPath to the CSV file that should be loaded.
separatorcharSet character used for column separation. By default it is comma (,).
skipCommentsbooleanSkip lines starting with character ‘#’. By default set to false.

columns

PropertyTypeDescription
<any>StringUse 0-based column as the key and variable name as the value.
+

diff --git a/docs/reference/steps/step_randomfile/index.html b/docs/reference/steps/step_randomfile/index.html index 338f6f9..faa1315 100644 --- a/docs/reference/steps/step_randomfile/index.html +++ b/docs/reference/steps/step_randomfile/index.html @@ -1,19 +1,19 @@ -randomFile | Hyperfoil -

randomFile

Reads bytes from a randomly chosen file into a variable.

Reads bytes from a randomly chosen file into a variable.
Two formats are supported:
Example 1 - without weights:

toVar: myVar
 files:
 - /path/to/file1.txt
 - file2_relative_to_benchmark.txt
-

Example 2 - with weights (the second file will be returned twice as often):

toVar: myVar
+

Example 2 - with weights (the second file will be returned twice as often):

toVar: myVar
 files:
   /path/to/file1.txt: 1
   file2_relative_to_benchmark.txt: 2
 
PropertyTypeDescription
filenameVarStringOptional variable to store the filename of the random file.
filesBuilderPotentially weighted list of files to choose from.
toVarStringVariable where the chosen byte array should be stored.

files

PropertyTypeDescription
<any><list of strings>Item as the key and weight (arbitrary floating-point number, defaults to 1.0) as the value.
<list of strings><list of strings>Item as the key and weight (arbitrary floating-point number, defaults to 1.0) as the value.
-

Last modified September 30, 2024: Fix Github website links (eb62dd6)

diff --git a/docs/reference/steps/step_randomint/index.html b/docs/reference/steps/step_randomint/index.html index f1d80c9..8b25b62 100644 --- a/docs/reference/steps/step_randomint/index.html +++ b/docs/reference/steps/step_randomint/index.html @@ -1,11 +1,11 @@ -randomInt | Hyperfoil -

randomInt

Stores random (linearly distributed) integer into session variable.

Stores random (linearly distributed) integer into session variable.

PropertyTypeDescription
maxBuilderHighest possible value (inclusive). Default is Integer.MAX_VALUE.
minBuilderLowest possible value (inclusive). Default is 0.
toVarStringVariable name to store the result.

max

Inline definition
Constant value.
PropertyTypeDescription
fromVarStringInitialize with a value from session variable.
valueintInitialize with a constant value.

min

Inline definition
Constant value.
PropertyTypeDescription
fromVarStringInitialize with a value from session variable.
valueintInitialize with a constant value.
+

diff --git a/docs/reference/steps/step_randomitem/index.html b/docs/reference/steps/step_randomitem/index.html index 0d36fb1..edffcc4 100644 --- a/docs/reference/steps/step_randomitem/index.html +++ b/docs/reference/steps/step_randomitem/index.html @@ -1,11 +1,11 @@ -randomItem | Hyperfoil -

randomItem

Stores random item from a list or array into session variable.

Stores random item from a list or array into session variable.

PropertyTypeDescription
fileStringThis file will be loaded into memory and the step will choose on line as the item.
fromVarStringVariable containing an array or list.
listBuilderPotentially weighted list of items to choose from.
toVarStringVariable where the chosen item should be stored.

list

PropertyTypeDescription
<any><list of strings>Item as the key and weight (arbitrary floating-point number, defaults to 1.0) as the value.
<list of strings><list of strings>Item as the key and weight (arbitrary floating-point number, defaults to 1.0) as the value.
+

diff --git a/docs/reference/steps/step_randomuuid/index.html b/docs/reference/steps/step_randomuuid/index.html index 0f7e857..79551d2 100644 --- a/docs/reference/steps/step_randomuuid/index.html +++ b/docs/reference/steps/step_randomuuid/index.html @@ -1,11 +1,11 @@ -randomUUID | Hyperfoil -

randomUUID

Stores random string into session variable based on the UUID generator.

Stores random string into session variable based on the UUID generator.

PropertyTypeDescription
toVarStringVariable name to store the result.
+

diff --git a/docs/reference/steps/step_readagentdata/index.html b/docs/reference/steps/step_readagentdata/index.html index 98e809d..8ffb402 100644 --- a/docs/reference/steps/step_readagentdata/index.html +++ b/docs/reference/steps/step_readagentdata/index.html @@ -1,11 +1,11 @@ -readAgentData | Hyperfoil -

readAgentData

Reads data from agent-wide scope into session variable.

Reads data from agent-wide scope into session variable.
The data must be published in a phase that has terminated before this phase starts: usually this is achieved using the startAfterStrict property on the phase.

Inline definition
Both the identifier and destination session variable.
PropertyTypeDescription
nameStringUnique identifier for the data.
toVarStringDestination session variable name.
+

diff --git a/docs/reference/steps/step_removeitem/index.html b/docs/reference/steps/step_removeitem/index.html index c87756b..2317335 100644 --- a/docs/reference/steps/step_removeitem/index.html +++ b/docs/reference/steps/step_removeitem/index.html @@ -1,11 +1,11 @@ -removeItem | Hyperfoil -

removeItem

Removes element from an array of variables.

Removes element from an array of variables.

PropertyTypeDescription
fromVarStringVariable containing an existing array of object variables.
indexBuilderSet index at which the item should be removed. Elements to the right of this are moved to the left.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/steps/step_restartsequence/index.html b/docs/reference/steps/step_restartsequence/index.html index 1fda4df..d707c0a 100644 --- a/docs/reference/steps/step_restartsequence/index.html +++ b/docs/reference/steps/step_restartsequence/index.html @@ -1,11 +1,11 @@ -restartSequence | Hyperfoil -

restartSequence

Restarts current sequence from beginning.

Restarts current sequence from beginning.

+

diff --git a/docs/reference/steps/step_scheduledelay/index.html b/docs/reference/steps/step_scheduledelay/index.html index f5291af..a6d79eb 100644 --- a/docs/reference/steps/step_scheduledelay/index.html +++ b/docs/reference/steps/step_scheduledelay/index.html @@ -1,11 +1,11 @@ -scheduleDelay | Hyperfoil -

scheduleDelay

Define a point in future until which we should wait. Does not cause waiting.

Define a point in future until which we should wait. Does not cause waiting.

PropertyTypeDescription
durationStringDuration of the delay with appropriate suffix (e.g. ms or s).
fromLast<none>Set previous delay point reference as the reference for next delay point; it will be computed as (previous delay point or now) + duration.
Note: property does not have any value
fromNow<none>Set this step invocation as the delay point reference; it will be computed as now + duration.
Note: property does not have any value
keyStringKey that is referenced later in awaitDelay step. If you’re introducing the delay through thinkTime do not use this property.
maxStringUpper cap on the duration (if randomized).
minStringLower cap on the duration (if randomized).
randomenumRandomize the duration.
Options:
  • CONSTANTDo not randomize; use constant duration.
  • LINEARUse linearly random duration between min and max (inclusively).
  • NEGATIVE_EXPONENTIALUse negative-exponential duration with expected value of duration, capped at min and max (inclusively).
typeenumAlternative way to set delay reference point. See fromNow and fromLast property setters.
Options:
  • FROM_LAST
  • FROM_NOW
+

diff --git a/docs/reference/steps/step_set/index.html b/docs/reference/steps/step_set/index.html index 31e95b2..6702173 100644 --- a/docs/reference/steps/step_set/index.html +++ b/docs/reference/steps/step_set/index.html @@ -1,11 +1,11 @@ -set | Hyperfoil -

set

Set variable in session to certain value.

Set variable in session to certain value.

Inline definition
Use var <- value.
PropertyTypeDescription
intArrayBuilderSet variable to an (unset) integer array.
objectArrayBuilderSet variable to an (unset) object array.
valueStringString value.
varStringVariable name.

intArray

Creates integer arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.

objectArray

Creates object arrays to be stored in the session.

PropertyTypeDescription
fromVarStringContents of the new array. If the variable contains an array or a list, items will be copied to the elements with the same index up to the size of this array. If the variable contains a different value all elements will be initialized to this value.
sizeintSize of the array.
+

diff --git a/docs/reference/steps/step_setint/index.html b/docs/reference/steps/step_setint/index.html index b527681..3470d3e 100644 --- a/docs/reference/steps/step_setint/index.html +++ b/docs/reference/steps/step_setint/index.html @@ -1,11 +1,11 @@ -setInt | Hyperfoil -

setInt

Set session variable to an integral value.

Set session variable to an integral value.

Inline definition
Use var <- value.
PropertyTypeDescription
fromVarStringInput variable name.
intConditionBuilderSet variable only if the current value satisfies certain condition.
maxBuilderSet to value that is the maximum of this list of values.
minBuilderSet to value that is the minimum of this list of values.
onlyIfNotSetbooleanSet variable to the value only if it is not already set.
valueintValue (integer).
varStringVariable name.

intCondition

PropertyTypeDescription
equalToBuilderCompared variable must be equal to this value.
greaterOrEqualToBuilderCompared variable must be greater or equal to this value.
greaterThanBuilderCompared variable must be greater than this value.
lessOrEqualToBuilderCompared variable must be lower or equal to this value.
lessThanBuilderCompared variable must be lower than this value.
notEqualToBuilderCompared variable must not be equal to this value.

intCondition.equalTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.greaterThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessOrEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.lessThan

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

intCondition.notEqualTo

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

max

PropertyTypeDescription
<list of mappings><list of builders><no description>

max.<list of mappings>

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).

min

PropertyTypeDescription
<list of mappings><list of builders><no description>
+

diff --git a/docs/reference/steps/step_setitem/index.html b/docs/reference/steps/step_setitem/index.html index 3d2e6c1..691ce58 100644 --- a/docs/reference/steps/step_setitem/index.html +++ b/docs/reference/steps/step_setitem/index.html @@ -1,11 +1,11 @@ -setItem | Hyperfoil -

setItem

Set element in a collection on given position.

Set element in a collection on given position.

PropertyTypeDescription
fromVarStringFetch value from session variable.
indexBuilderInteger session variable with an index into the collection.
toVarStringSession variable with the collection.
valueStringVerbatim value.

index

Inline definition
Uses the argument as a constant value.
PropertyTypeDescription
fromVarStringInput variable name.
valueintValue (integer).
+

diff --git a/docs/reference/steps/step_setsharedcounter/index.html b/docs/reference/steps/step_setsharedcounter/index.html index f890871..01e19ef 100644 --- a/docs/reference/steps/step_setsharedcounter/index.html +++ b/docs/reference/steps/step_setsharedcounter/index.html @@ -1,11 +1,11 @@ -setSharedCounter | Hyperfoil -

setSharedCounter

Sets value in a counter shared by all sessions in the same executor.

Sets value in a counter shared by all sessions in the same executor.

Inline definition
Both the name of the counter and variable name.
PropertyTypeDescription
fromVarStringInput variable name.
keyStringIdentifier for the counter.
valueintValue (integer).
+

diff --git a/docs/reference/steps/step_stop/index.html b/docs/reference/steps/step_stop/index.html index 1591e31..bc6f27c 100644 --- a/docs/reference/steps/step_stop/index.html +++ b/docs/reference/steps/step_stop/index.html @@ -1,11 +1,11 @@ -stop | Hyperfoil -

stop

Immediately stop the user session (break all running sequences).

Immediately stop the user session (break all running sequences).

+

diff --git a/docs/reference/steps/step_stopwatch/index.html b/docs/reference/steps/step_stopwatch/index.html index dfe9eb9..83dcecc 100644 --- a/docs/reference/steps/step_stopwatch/index.html +++ b/docs/reference/steps/step_stopwatch/index.html @@ -1,11 +1,11 @@ -stopwatch | Hyperfoil -

stopwatch

Run nested sequence of steps, recording execution time.

Run nested sequence of steps, recording execution time.

+

diff --git a/docs/reference/steps/step_stringtoint/index.html b/docs/reference/steps/step_stringtoint/index.html index e6e660a..bed0e9a 100644 --- a/docs/reference/steps/step_stringtoint/index.html +++ b/docs/reference/steps/step_stringtoint/index.html @@ -1,11 +1,11 @@ -stringToInt | Hyperfoil -

stringToInt

Parse string into integer and store it in a variable.

Parse string into integer and store it in a variable.

If the parsing fails the target variable is not modified.

Inline definition
Use fromVar -&gt; toVar
PropertyTypeDescription
fromVarStringSource variable name.
toVarStringTarget variable name.
+

diff --git a/docs/reference/steps/step_template/index.html b/docs/reference/steps/step_template/index.html index 0e68668..d25e460 100644 --- a/docs/reference/steps/step_template/index.html +++ b/docs/reference/steps/step_template/index.html @@ -1,11 +1,11 @@ -template | Hyperfoil -

template

Format pattern into session variable.

Format pattern into session variable.

PropertyTypeDescription
patternStringPattern to be encoded, e.g. foo${variable}bar${another-variable}
toVarStringVariable name to store the result.
+

diff --git a/docs/reference/steps/step_thinktime/index.html b/docs/reference/steps/step_thinktime/index.html index 0cd6f54..bbd61b6 100644 --- a/docs/reference/steps/step_thinktime/index.html +++ b/docs/reference/steps/step_thinktime/index.html @@ -1,11 +1,11 @@ -thinkTime | Hyperfoil -

thinkTime

Block current sequence for specified duration.

Block current sequence for specified duration.

Inline definition
Duration of the delay with appropriate suffix (e.g. ms or s).
PropertyTypeDescription
durationStringDuration of the delay with appropriate suffix (e.g. ms or s).
fromLast<none>Set previous delay point reference as the reference for next delay point; it will be computed as (previous delay point or now) + duration.
Note: property does not have any value
fromNow<none>Set this step invocation as the delay point reference; it will be computed as now + duration.
Note: property does not have any value
keyStringKey that is referenced later in awaitDelay step. If you’re introducing the delay through thinkTime do not use this property.
maxStringUpper cap on the duration (if randomized).
minStringLower cap on the duration (if randomized).
randomenumRandomize the duration.
Options:
  • CONSTANTDo not randomize; use constant duration.
  • LINEARUse linearly random duration between min and max (inclusively).
  • NEGATIVE_EXPONENTIALUse negative-exponential duration with expected value of duration, capped at min and max (inclusively).
typeenumAlternative way to set delay reference point. See fromNow and fromLast property setters.
Options:
  • FROM_LAST
  • FROM_NOW
+

diff --git a/docs/reference/steps/step_timestamp/index.html b/docs/reference/steps/step_timestamp/index.html index b357c44..bbd87ee 100644 --- a/docs/reference/steps/step_timestamp/index.html +++ b/docs/reference/steps/step_timestamp/index.html @@ -1,11 +1,11 @@ -timestamp | Hyperfoil -

timestamp

Stores the current time in milliseconds as string to a session variable.

Stores the current time in milliseconds as string to a session variable.

Inline definition
Variable name.
PropertyTypeDescription
localeCountryString2-letter ISO country code used in the formatter locale. Defaults to ‘US’.
patternStringFormat the timestamp using SimpleDateFormat pattern.
toVarStringTarget variable name.
+

diff --git a/docs/reference/steps/step_unset/index.html b/docs/reference/steps/step_unset/index.html index 1647d68..bb145e6 100644 --- a/docs/reference/steps/step_unset/index.html +++ b/docs/reference/steps/step_unset/index.html @@ -1,11 +1,11 @@ -unset | Hyperfoil -

unset

Undefine variable name.

Undefine variable name.

Inline definition
Variable name.
PropertyTypeDescription
varObjectVariable name.
+

diff --git a/docs/restapi/_print/index.html b/docs/restapi/_print/index.html index c647d15..d19ba92 100644 --- a/docs/restapi/_print/index.html +++ b/docs/restapi/_print/index.html @@ -1,5 +1,5 @@ Controller API | Hyperfoil -

This is the multi-page printable view of this section. +

This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Controller API

OpenAPI 3 specification of the Hyperfoil controller

As a user you’ll probably interact with the Controller through CLI. However when you set up e.g. regression runs in CI you’ll need to control the test programmatically. Some limited capabilities are already exposed through Ansible Galaxy scripts but to get full control you can use the REST API - the same as the CLI or Ansible scripts connect to.

Hyperfoil Controller API is defined through OpenAPI 3 Specification. Our OpenAPI reference defines some types as free-form objects (e.g. the benchmark definition); refer to source code in these cases.

1 - Swagger UI

Hyperfoil controller OpenAPI swagger UI
diff --git a/docs/restapi/index.html b/docs/restapi/index.html index e1d2c36..ed2d18f 100644 --- a/docs/restapi/index.html +++ b/docs/restapi/index.html @@ -1,11 +1,11 @@ Controller API | Hyperfoil -

Controller API

OpenAPI 3 specification of the Hyperfoil controller

As a user you’ll probably interact with the Controller through CLI. However when you set up e.g. regression runs in CI you’ll need to control the test programmatically. Some limited capabilities are already exposed through Ansible Galaxy scripts but to get full control you can use the REST API - the same as the CLI or Ansible scripts connect to.

Hyperfoil Controller API is defined through OpenAPI 3 Specification. Our OpenAPI reference defines some types as free-form objects (e.g. the benchmark definition); refer to source code in these cases.


Swagger UI

Hyperfoil controller OpenAPI swagger UI

+

diff --git a/docs/restapi/openapi/index.html b/docs/restapi/openapi/index.html index e93476f..c0ee7ec 100644 --- a/docs/restapi/openapi/index.html +++ b/docs/restapi/openapi/index.html @@ -1,12 +1,12 @@ -Swagger UI | Hyperfoil -Swagger UI | Hyperfoil

Swagger UI

Hyperfoil controller OpenAPI swagger UI
-

Last modified September 30, 2024: Fix Github website links (eb62dd6)

diff --git a/docs/user-guide/_print/index.html b/docs/user-guide/_print/index.html index ef5078c..4d29cca 100644 --- a/docs/user-guide/_print/index.html +++ b/docs/user-guide/_print/index.html @@ -1,5 +1,5 @@ User Guide | Hyperfoil -

This is the multi-page printable view of this section. +

This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

User Guide

Comprehensive set of resourcs for everything you need to get started with Hyperfoil

Welcome to the Hyperfoil User Guide, your comprehensive resource for everything you need to get started. This section covers installation, detailed instructions on defining benchmarks, and troubleshooting tips to help you resolve common issues. Whether you’re a beginner or an advanced user, you’ll find valuable information to enhance your performance testing with Hyperfoil.

1 - Installation

Detailed instructions for installing Hyperfoil manually, on Kubernetes/Openshift, or with Ansible.

In this section, you’ll find detailed instructions for installing and setting up Hyperfoil using various methods, including manual setup, Ansible, and Kubernetes/Openshift. Follow these guides to choose the best installation procedure for your environment.

1.1 - Manual startup

Explore manual startup options for the Hyperfoil controller.

Hyperfoil controller is started with

bin/controller.sh
 

Any arguments passed to the scripts will be passed as-is to the java process.

By default io.hyperfoil.deployer is set to ssh which means that the controller will deploy agents over SSH, based on the agents configurion. This requires that the user account running the controller must have public-key SSH authorization set up using key $HOME/.ssh/id_rsa. The user also has to be able to copy files to the directory set in agent definition (by default /tmp/hyperfoil) using SCP - Hyperfoil automatically synchronizes library files in this folder with the currently running instance and then executes the agent.

When you don’t intend to run distributed benchmarks you can start the controller in standalone mode:

bin/standalone.sh
 

This variant won’t deploy any agents remotely and therefore it does not need any agents: section in the benchmark definition; instead it will use single agent started in the same JVM.

Below is the comprehensive list of all the properties Hyperfoil recognizes. All system properties can be replaced by environment variables, uppercasing the letters and replacing dots and dashes with underscores: e.g. io.hyperfoil.controller.host becomes IO_HYPERFOIL_CONTROLLER_HOST.

PropertyDefaultDescription
io.hyperfoil.controller.host0.0.0.0Host for Controller REST server
io.hyperfoil.controller.port8090Port for Controller REST server
io.hyperfoil.rootdir/tmp/hyperfoilRoot directory for stored files
io.hyperfoil.benchmarkdirroot/benchmarkBenchmark files (YAML and serialized)
io.hyperfoil.rundirroot/runRun result files (configs, stats…)
io.hyperfoil.deployersshImplementation for agents deployment
io.hyperfoil.deployer.timeout15000 msTimeout for agents to start
io.hyperfoil.agent.debug.portIf set, agent will be started with JVM debug port open
io.hyperfoil.agent.debug.suspendnSuspend parameter for the debug port
io.hyperfoil.controller.cluster.ipfirst non-loopbackHostname/IP used for clustering with agents
io.hyperfoil.controller.cluster.port7800Default JGroups clustering port
io.hyperfoil.controller.external.uriExternally advertised URI of REST server
io.hyperfoil.controller.keystore.pathFile path to Java Keystore
io.hyperfoil.controller.keystore.passwordJava Keystore password
io.hyperfoil.controller.pem.keysFile path(s) to private TLS key(s) in PEM format
io.hyperfoil.controller.pem.certsFile path(s) to server TLS certificate(s) in PEM format
io.hyperfoil.controller.passwordPassword used for Basic authentication
io.hyperfoil.controller.secured.via.proxyThis must be set to true for Basic auth without TLS encryption
io.hyperfoil.trigger.urlSee below

If io.hyperfoi.trigger.url is set the controller does not start benchmark run right away after hitting /benchmark/my-benchmark/start ; instead it responds with status 301 and header Location set to concatenation of this string and BENCHMARK=my-benchmark&RUN_ID=xxxx. CLI interprets that response as a request to hit CI instance on this URL, assuming that CI will trigger a new job that will eventually call /benchmark/my-benchmark/start?runId=xxxx with header x-trigger-job. This is useful if the the CI has to synchronize Hyperfoil to other benchmarks that don’t use this controller instance.

Security

Since Hyperfoil accepts and invoked any serialized Java objects you must not run it exposed to public to prevent a very simple remote code execution. Even if using HTTPS and password protection (see below) we recommend to limit access and privileges of the process to absolute minimum.

You can get confidential access to the server using TLS encryption, providing the certificate and keys either using Java Keystore mechanism (properties above starting with io.hyperfoil.controller.keystore) or via PEM files (properties starting with io.hyperfoil.controller.pem). These options are mutually exclusive. In the latter case it is possible to use multiple certificate/key files, separated by comma (,).

Authentication uses Basic authentication scheme accepting any string as username. The password is set using io.hyperfoil.controller.password or respective environment variable. If you’re exposing the server using plaintext HTTP you must set -Dio.hyperfoil.controller.secured.via.proxy=true to confirm that this is a desired configuration (e.g. if the TLS is terminated at proxy and the connection from proxy does not require confidentiality).

1.2 - K8s/Openshift deployment

Deploy Hyperfoil in Kubernetes or Openshift environment using the out-of-the-box Hyperfoil operator

A convenient alternative to running Hyperfoil on hosts with SSH access is deploying it in Kubernetes or Openshift environment. The recommended way to install it using an operator in your Openshift console - just go to Operators - OperatorHub and search for ‘hyperfoil’, and follow the installation wizard. Alternatively you can deploy the controller manually.

In order to start a Hyperfoil Controller instance in your cluster, create a new namespace hyperfoil: Go to Operators - Installed Operators and open Hyperfoil. In upper left corner select ‘Project: ’ - Create project and fill out the details. Then click on the ‘Hyperfoil’ tab and find the button ‘Create Hyperfoil’.

You should see a YAML definition like this:

apiVersion: hyperfoil.io/v1alpha2
@@ -134,7 +134,7 @@
   sharedConnections: 100
 - host: http://example.com:8080
   sharedConnections: 50
-

HTTP configuration has these properties:

PropertyDefaultDescription
protocolEither http or https
hostHostname of the server. For convenience you can use the http[s]://host[:port] inline syntax as shown above
port80 or 443Default is based on the protocol
sharedConnections1Number of connections to open. It is recommended to set this property to a non-default value.
connectionStrategySHARED_POOLConnection pooling model (see details below)
addressesSupply list of IPs or IP:port targets that will be used for the connections instead of resolving the host in DNS and using port as set - host and port will be used only for Host headers and SNI. If this list contains more addresses the connections will be split evenly.
requestTimeout30 secondsDefault request timeout, this can be overridden in each httpRequest.
allowHttp1xtrueAllow HTTP 1.1 for connections (e.g. during ALPN).
allowHttp2xtrueAllow HTTP 2.0 for connections (e.g. during ALPN). If both 1.1 and 2.0 are allowed and https is not used (which would trigger ALPN) Hyperfoil will use HTTP 1.1. If only 2.0 is allowed Hyperfoil will start with HTTP 1.1 and perform protocol upgrade to 2.0.
directHttp2falseStart with H2C HTTP 2.0 without protocol upgrade. Makes sense only for plain text (http) connections. Currently not implemented.
maxHttp2Streams100Maximum number of requests concurrently enqueued on single HTTP 2.0 connection.
pipeliningLimit1Maximum number of requests pipelined on single HTTP 1.1 connection.
rawBytesHandlerstrueEnable or disable using handlers that process HTTP response raw bytes.
keyManagerTLS key manager for setting up client certificates.
trustManagerTLS trust manager for setting up server certificates.

Shared connections

This number is split between all agents and executor threads evenly; if there are too many agents/executors each will get at least 1 connection.

When a scalar value is used for this property the connection pool has fixed size; Hyperfoil opens all connections when the benchmark starts and should a connection be closed throughout the benchmark, another connection is reopened instead. You can change this behaviour by composing the property of these sub-properties:

PropertyDescription
coreNumber of connections that will be opened when the benchmark starts. Number of connections in the pool should never drop below this value (another connection will be opened instead).
maxMaximum number of connections in the pool.
bufferHyperfoil will try to keep at least active + buffer connections in the pool where active is the number of currently used connection (those with at least 1 in-flight request)
keepAliveTimeWhen a connection is not used for more than this value (in milliseconds) it will be closed. Non-positive value means that the connection is never closed because of being idle.

Example:

http:
+

HTTP configuration has these properties:

PropertyDefaultDescription
protocolEither http or https
hostHostname of the server. For convenience you can use the http[s]://host[:port] inline syntax as shown above
port80 or 443Default is based on the protocol
sharedConnections1Number of connections to open. It is recommended to set this property to a non-default value.
connectionStrategySHARED_POOLConnection pooling model (see details below)
addressesSupply list of IPs or IP:port targets that will be used for the connections instead of resolving the host in DNS and using port as set - host and port will be used only for Host headers and SNI. If this list contains more addresses the connections will be split evenly.
requestTimeout30 secondsDefault request timeout, this can be overridden in each httpRequest.
allowHttp1xtrueAllow HTTP 1.1 for connections (e.g. during ALPN).
allowHttp2xtrueAllow HTTP 2.0 for connections (e.g. during ALPN). If both 1.1 and 2.0 are allowed and https is not used (which would trigger ALPN) Hyperfoil will use HTTP 1.1. If only 2.0 is allowed Hyperfoil will start with HTTP 1.1 and perform protocol upgrade to 2.0.
directHttp2falseStart with H2C HTTP 2.0 without protocol upgrade. Makes sense only for plain text (http) connections. Currently not implemented.
maxHttp2Streams100Maximum number of requests concurrently enqueued on single HTTP 2.0 connection.
pipeliningLimit1Maximum number of requests pipelined on single HTTP 1.1 connection.
rawBytesHandlerstrueEnable or disable using handlers that process HTTP response raw bytes.
keyManagerTLS key manager for setting up client certificates.
trustManagerTLS trust manager for setting up server certificates.
useHttpCachetrueMake use of HTTP cache on client-side. If multiple authorities are involved, disable the HTTP cache for all of them to achieve the desired outcomes. The default is true except for wrk/wrk2 wrappers where it is set to false.

Shared connections

This number is split between all agents and executor threads evenly; if there are too many agents/executors each will get at least 1 connection.

When a scalar value is used for this property the connection pool has fixed size; Hyperfoil opens all connections when the benchmark starts and should a connection be closed throughout the benchmark, another connection is reopened instead. You can change this behaviour by composing the property of these sub-properties:

PropertyDescription
coreNumber of connections that will be opened when the benchmark starts. Number of connections in the pool should never drop below this value (another connection will be opened instead).
maxMaximum number of connections in the pool.
bufferHyperfoil will try to keep at least active + buffer connections in the pool where active is the number of currently used connection (those with at least 1 in-flight request)
keepAliveTimeWhen a connection is not used for more than this value (in milliseconds) it will be closed. Non-positive value means that the connection is never closed because of being idle.

Example:

http:
   host: http://example.com
   sharedConnections:
     core: 10
diff --git a/docs/user-guide/benchmark/_print/index.html b/docs/user-guide/benchmark/_print/index.html
index a000add..10e5da5 100644
--- a/docs/user-guide/benchmark/_print/index.html
+++ b/docs/user-guide/benchmark/_print/index.html
@@ -1,5 +1,5 @@
 Benchmark | Hyperfoil
-

This is the multi-page printable view of this section. +

This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Benchmark

Detailed breakdown of each component involved in defining a benchmark

In Hyperfoil, defining a benchmark involves structuring scenarios, phases, variables and other components to simulate realistic user behavior and workload patterns. This section provides a detailed breakdown of each component involved in defining a benchmark.

1 - Agents

Entities responsible for executing benchmark and collecting statistics

This section can be omitted in standalone mode.

Agents section forms either a list or map with arbitrary agent names and either an inline or properties-style definition:

agents:
   someAgent: "inline definition"
   otherAgent:
@@ -22,7 +22,7 @@
   sharedConnections: 100
 - host: http://example.com:8080
   sharedConnections: 50
-

HTTP configuration has these properties:

PropertyDefaultDescription
protocolEither http or https
hostHostname of the server. For convenience you can use the http[s]://host[:port] inline syntax as shown above
port80 or 443Default is based on the protocol
sharedConnections1Number of connections to open. It is recommended to set this property to a non-default value.
connectionStrategySHARED_POOLConnection pooling model (see details below)
addressesSupply list of IPs or IP:port targets that will be used for the connections instead of resolving the host in DNS and using port as set - host and port will be used only for Host headers and SNI. If this list contains more addresses the connections will be split evenly.
requestTimeout30 secondsDefault request timeout, this can be overridden in each httpRequest.
allowHttp1xtrueAllow HTTP 1.1 for connections (e.g. during ALPN).
allowHttp2xtrueAllow HTTP 2.0 for connections (e.g. during ALPN). If both 1.1 and 2.0 are allowed and https is not used (which would trigger ALPN) Hyperfoil will use HTTP 1.1. If only 2.0 is allowed Hyperfoil will start with HTTP 1.1 and perform protocol upgrade to 2.0.
directHttp2falseStart with H2C HTTP 2.0 without protocol upgrade. Makes sense only for plain text (http) connections. Currently not implemented.
maxHttp2Streams100Maximum number of requests concurrently enqueued on single HTTP 2.0 connection.
pipeliningLimit1Maximum number of requests pipelined on single HTTP 1.1 connection.
rawBytesHandlerstrueEnable or disable using handlers that process HTTP response raw bytes.
keyManagerTLS key manager for setting up client certificates.
trustManagerTLS trust manager for setting up server certificates.

Shared connections

This number is split between all agents and executor threads evenly; if there are too many agents/executors each will get at least 1 connection.

When a scalar value is used for this property the connection pool has fixed size; Hyperfoil opens all connections when the benchmark starts and should a connection be closed throughout the benchmark, another connection is reopened instead. You can change this behaviour by composing the property of these sub-properties:

PropertyDescription
coreNumber of connections that will be opened when the benchmark starts. Number of connections in the pool should never drop below this value (another connection will be opened instead).
maxMaximum number of connections in the pool.
bufferHyperfoil will try to keep at least active + buffer connections in the pool where active is the number of currently used connection (those with at least 1 in-flight request)
keepAliveTimeWhen a connection is not used for more than this value (in milliseconds) it will be closed. Non-positive value means that the connection is never closed because of being idle.

Example:

http:
+

HTTP configuration has these properties:

PropertyDefaultDescription
protocolEither http or https
hostHostname of the server. For convenience you can use the http[s]://host[:port] inline syntax as shown above
port80 or 443Default is based on the protocol
sharedConnections1Number of connections to open. It is recommended to set this property to a non-default value.
connectionStrategySHARED_POOLConnection pooling model (see details below)
addressesSupply list of IPs or IP:port targets that will be used for the connections instead of resolving the host in DNS and using port as set - host and port will be used only for Host headers and SNI. If this list contains more addresses the connections will be split evenly.
requestTimeout30 secondsDefault request timeout, this can be overridden in each httpRequest.
allowHttp1xtrueAllow HTTP 1.1 for connections (e.g. during ALPN).
allowHttp2xtrueAllow HTTP 2.0 for connections (e.g. during ALPN). If both 1.1 and 2.0 are allowed and https is not used (which would trigger ALPN) Hyperfoil will use HTTP 1.1. If only 2.0 is allowed Hyperfoil will start with HTTP 1.1 and perform protocol upgrade to 2.0.
directHttp2falseStart with H2C HTTP 2.0 without protocol upgrade. Makes sense only for plain text (http) connections. Currently not implemented.
maxHttp2Streams100Maximum number of requests concurrently enqueued on single HTTP 2.0 connection.
pipeliningLimit1Maximum number of requests pipelined on single HTTP 1.1 connection.
rawBytesHandlerstrueEnable or disable using handlers that process HTTP response raw bytes.
keyManagerTLS key manager for setting up client certificates.
trustManagerTLS trust manager for setting up server certificates.
useHttpCachetrueMake use of HTTP cache on client-side. If multiple authorities are involved, disable the HTTP cache for all of them to achieve the desired outcomes. The default is true except for wrk/wrk2 wrappers where it is set to false.

Shared connections

This number is split between all agents and executor threads evenly; if there are too many agents/executors each will get at least 1 connection.

When a scalar value is used for this property the connection pool has fixed size; Hyperfoil opens all connections when the benchmark starts and should a connection be closed throughout the benchmark, another connection is reopened instead. You can change this behaviour by composing the property of these sub-properties:

PropertyDescription
coreNumber of connections that will be opened when the benchmark starts. Number of connections in the pool should never drop below this value (another connection will be opened instead).
maxMaximum number of connections in the pool.
bufferHyperfoil will try to keep at least active + buffer connections in the pool where active is the number of currently used connection (those with at least 1 in-flight request)
keepAliveTimeWhen a connection is not used for more than this value (in milliseconds) it will be closed. Non-positive value means that the connection is never closed because of being idle.

Example:

http:
   host: http://example.com
   sharedConnections:
     core: 10
diff --git a/docs/user-guide/benchmark/agents/index.html b/docs/user-guide/benchmark/agents/index.html
index 0dd2221..1604837 100644
--- a/docs/user-guide/benchmark/agents/index.html
+++ b/docs/user-guide/benchmark/agents/index.html
@@ -1,10 +1,10 @@
-Agents | Hyperfoil
-

Agents

Entities responsible for executing benchmark and collecting statistics

This section can be omitted in standalone mode.

Agents section forms either a list or map with arbitrary agent names and either an inline or properties-style definition:

agents:
   someAgent: "inline definition"
   otherAgent:
     foo: bar
@@ -19,7 +19,7 @@
   my-agent:
     node: my-worker-node
 
PropertyDefaultDescription
nodeConfigures the labels for the nodeSelector. If the value does not contain equals sign (=) or comma (,) this sets the desired value of label kubernetes.io/hostname. You can also set multiple custom labels separated by commas, e.g. foo=bar,kubernetes.io/os=linux.
stoptrueBy default the controller stops all agents immediatelly after the run terminates. In case of errors this is not too convenient as you might want to perform further analysis. To prevent automatic agent shutdown set this to false.
logName of config map (e.g. my-config-map) or config map and its entry (e.g. my-config-map/log4j2.xml) that contains the Log4j2 configuration file. Default entry from the config map is log4j2.xml. Hyperfoil will mount this configmap as a volume to this agent.
imagequay.io/hyperfoil/hyperfoil:controller-versionDifferent version of Hyperfoil in the agents
imagePullPolicyAlwaysImage pull policy for agents
fetchLogstrueAutomatically watch agents’ logs and store them in the run directory.
-

Last modified September 30, 2024: Fix Github website links (eb62dd6)

diff --git a/docs/user-guide/benchmark/ergonomics/index.html b/docs/user-guide/benchmark/ergonomics/index.html index 85fac54..8f375b9 100644 --- a/docs/user-guide/benchmark/ergonomics/index.html +++ b/docs/user-guide/benchmark/ergonomics/index.html @@ -1,11 +1,11 @@ -Ergonomics | Hyperfoil -

Ergonomics

Configuration options that enhance usability and automation of benchmarking sessions

This section hosts only single property at this moment:

PropertyDefaultDescription
repeatCookiestrueAutomatically parse cookies from HTTP responses, store them in session and resend them with subsequent requests.
userAgentFromSessiontrueAdd user-agent header to each request, holding the agent name and session id.
autoRangeChecktrueMark 4xx and 5xx responses as invalid. You can also turn this off in each step.
stopOnInvalidtrueWhen the session receives an invalid response it does not execute any further steps, cancelling all requests and stopping immediately.
followRedirectNEVERDefault value for httpRequest.handler.followRedirect.
+

diff --git a/docs/user-guide/benchmark/hooks/index.html b/docs/user-guide/benchmark/hooks/index.html index 0c68516..9c8fdd5 100644 --- a/docs/user-guide/benchmark/hooks/index.html +++ b/docs/user-guide/benchmark/hooks/index.html @@ -1,10 +1,10 @@ -Hooks | Hyperfoil -

Hooks

Mechanisms that allow users to run specific scripts or commands automatically before and after executing a benchmark run

It might be useful to run certain scripts before and after the run, e.g. starting some infrastructure, preloading database, gathering CPU stats during the test and so on. That’s why Hyperfoil introduces pre- and post-hooks to the run.

Some scripts are not specific to the test being run - these should be deployed on controller as files in *root*/hooks/pre/ and *root*/hooks/post directories where root is controller’s root directory, /tmp/hyperfoil/ by default. Each of these directories should contain executable scripts or binaries that will be run in alphabetic order. We strongly suggest using the format 00-my-script.sh to set the order using first two digits.

Kubernetes/Openshift deployments use the same strategy; the only difference is that the pre and post directories are mapped as volumes from a ConfigMap resource.

Other scripts may be specific to the benchmark executed and therefore you can define them directly in the YAML files. You can either use inline command that will be executed using sh -c your-command --your-options or create a Java class implementing io.hyperfoil.core.hooks.RunHook and register it to be loaded as other Hyperfoil extensions.

name: my-benchmark
 pre:
   01-inline: curl http://example.com
   02-custom:
@@ -14,7 +14,7 @@
   99-some-final-hook: ...
 ...
 

The lists of hooks from controller directories and benchmark are merged; if there’s a conflict between two hooks from these two sources the final execution order is not defined (but both get executed).

In case of inline command execution the stderr output will stay on stderr, stdout will be caputered by Hyperfoil and stored in *rundir*/*XXXX*/hooks.json. As the post-hooks are executed after info.json and all.json get written the output cannot be included inside those files. This order of execution was chosen because it’s likely that you will upload these files to a database - yes, using a post-hook.

-

Last modified September 30, 2024: Fix Github website links (eb62dd6)

diff --git a/docs/user-guide/benchmark/http/index.html b/docs/user-guide/benchmark/http/index.html index 99abac4..dfd46d4 100644 --- a/docs/user-guide/benchmark/http/index.html +++ b/docs/user-guide/benchmark/http/index.html @@ -1,14 +1,14 @@ HTTP | Hyperfoil -

HTTP

This section defines servers that agents contact during benchmarks, allowing configurations for multiple targets with specific connection settings

All servers that Hyperfoil should contact must be declared in this section. Before the benchmark starts Hyperfoil agents will open connections to the target servers; if this connection fails the benchmark is terminated immediatelly.

You can either declare single target server (the default one) within this section or more of them:

http:
   host: http://example.com
   ...
 
http:
@@ -16,7 +16,7 @@
   sharedConnections: 100
 - host: http://example.com:8080
   sharedConnections: 50
-

HTTP configuration has these properties:

PropertyDefaultDescription
protocolEither http or https
hostHostname of the server. For convenience you can use the http[s]://host[:port] inline syntax as shown above
port80 or 443Default is based on the protocol
sharedConnections1Number of connections to open. It is recommended to set this property to a non-default value.
connectionStrategySHARED_POOLConnection pooling model (see details below)
addressesSupply list of IPs or IP:port targets that will be used for the connections instead of resolving the host in DNS and using port as set - host and port will be used only for Host headers and SNI. If this list contains more addresses the connections will be split evenly.
requestTimeout30 secondsDefault request timeout, this can be overridden in each httpRequest.
allowHttp1xtrueAllow HTTP 1.1 for connections (e.g. during ALPN).
allowHttp2xtrueAllow HTTP 2.0 for connections (e.g. during ALPN). If both 1.1 and 2.0 are allowed and https is not used (which would trigger ALPN) Hyperfoil will use HTTP 1.1. If only 2.0 is allowed Hyperfoil will start with HTTP 1.1 and perform protocol upgrade to 2.0.
directHttp2falseStart with H2C HTTP 2.0 without protocol upgrade. Makes sense only for plain text (http) connections. Currently not implemented.
maxHttp2Streams100Maximum number of requests concurrently enqueued on single HTTP 2.0 connection.
pipeliningLimit1Maximum number of requests pipelined on single HTTP 1.1 connection.
rawBytesHandlerstrueEnable or disable using handlers that process HTTP response raw bytes.
keyManagerTLS key manager for setting up client certificates.
trustManagerTLS trust manager for setting up server certificates.

Shared connections

This number is split between all agents and executor threads evenly; if there are too many agents/executors each will get at least 1 connection.

When a scalar value is used for this property the connection pool has fixed size; Hyperfoil opens all connections when the benchmark starts and should a connection be closed throughout the benchmark, another connection is reopened instead. You can change this behaviour by composing the property of these sub-properties:

PropertyDescription
coreNumber of connections that will be opened when the benchmark starts. Number of connections in the pool should never drop below this value (another connection will be opened instead).
maxMaximum number of connections in the pool.
bufferHyperfoil will try to keep at least active + buffer connections in the pool where active is the number of currently used connection (those with at least 1 in-flight request)
keepAliveTimeWhen a connection is not used for more than this value (in milliseconds) it will be closed. Non-positive value means that the connection is never closed because of being idle.

Example:

http:
+

HTTP configuration has these properties:

PropertyDefaultDescription
protocolEither http or https
hostHostname of the server. For convenience you can use the http[s]://host[:port] inline syntax as shown above
port80 or 443Default is based on the protocol
sharedConnections1Number of connections to open. It is recommended to set this property to a non-default value.
connectionStrategySHARED_POOLConnection pooling model (see details below)
addressesSupply list of IPs or IP:port targets that will be used for the connections instead of resolving the host in DNS and using port as set - host and port will be used only for Host headers and SNI. If this list contains more addresses the connections will be split evenly.
requestTimeout30 secondsDefault request timeout, this can be overridden in each httpRequest.
allowHttp1xtrueAllow HTTP 1.1 for connections (e.g. during ALPN).
allowHttp2xtrueAllow HTTP 2.0 for connections (e.g. during ALPN). If both 1.1 and 2.0 are allowed and https is not used (which would trigger ALPN) Hyperfoil will use HTTP 1.1. If only 2.0 is allowed Hyperfoil will start with HTTP 1.1 and perform protocol upgrade to 2.0.
directHttp2falseStart with H2C HTTP 2.0 without protocol upgrade. Makes sense only for plain text (http) connections. Currently not implemented.
maxHttp2Streams100Maximum number of requests concurrently enqueued on single HTTP 2.0 connection.
pipeliningLimit1Maximum number of requests pipelined on single HTTP 1.1 connection.
rawBytesHandlerstrueEnable or disable using handlers that process HTTP response raw bytes.
keyManagerTLS key manager for setting up client certificates.
trustManagerTLS trust manager for setting up server certificates.
useHttpCachetrueMake use of HTTP cache on client-side. If multiple authorities are involved, disable the HTTP cache for all of them to achieve the desired outcomes. The default is true except for wrk/wrk2 wrappers where it is set to false.

Shared connections

This number is split between all agents and executor threads evenly; if there are too many agents/executors each will get at least 1 connection.

When a scalar value is used for this property the connection pool has fixed size; Hyperfoil opens all connections when the benchmark starts and should a connection be closed throughout the benchmark, another connection is reopened instead. You can change this behaviour by composing the property of these sub-properties:

PropertyDescription
coreNumber of connections that will be opened when the benchmark starts. Number of connections in the pool should never drop below this value (another connection will be opened instead).
maxMaximum number of connections in the pool.
bufferHyperfoil will try to keep at least active + buffer connections in the pool where active is the number of currently used connection (those with at least 1 in-flight request)
keepAliveTimeWhen a connection is not used for more than this value (in milliseconds) it will be closed. Non-positive value means that the connection is never closed because of being idle.

Example:

http:
   host: http://example.com
   sharedConnections:
     core: 10
@@ -24,7 +24,7 @@
     max: 10
     keepAliveTime: 30000
 

Connection strategies

This property describes the connection pooling model, you can choose from the options below:

StrategyDescription
SHARED_POOLConnections are created in a pool and then borrowed by the session. When the request is complete the connection is returned to the shared pool.
SESSION_POOLSConnections are created in a shared pool. When the request is completed it is not returned to the shared pool but to a session-local pool. Subsequent requests by this session first try to acquire the connection from this local pool. When the session completes all connections from the session-local pool are returned to the shared pool.
OPEN_ON_REQUESTConnections are created before request or borrowed from a session-local pool. When the request is completed the connection is returned to this pool. When the session completes all connections from the session-local pool are closed.
ALWAYS_NEWAlways create the connection before the request and close it when it is complete. No pooling of connections.

KeyManager configuration

All files are loaded when the benchmark is constructed, e.g. on the machine running CLI. You don’t need to upload any files to controller or agent machines.

PropertyDefaultDescription
storeTypeJKSImplementation of the store.
storeFilePath to a file with the store.
passwordPassword for accessing the store file.
aliasKeystore alias.
certFilePath to a file with the client certificate.
keyFilePath to a file with client’s private key.

TrustManager configuration

All files are loaded when the benchmark is constructed, e.g. on the machine running CLI. You don’t need to upload any files to controller or agent machines.

PropertyDefaultDescription
storeTypeJKSImplementation of the store.
storeFilePath to a file with the store.
passwordPassword for accessing the store file.
certFilePath to a file with the server certificate.
-

Last modified September 30, 2024: Fix Github website links (eb62dd6)

diff --git a/docs/user-guide/benchmark/index.html b/docs/user-guide/benchmark/index.html index b0901f4..9cc4b3b 100644 --- a/docs/user-guide/benchmark/index.html +++ b/docs/user-guide/benchmark/index.html @@ -1,11 +1,11 @@ Benchmark | Hyperfoil -

Benchmark

Detailed breakdown of each component involved in defining a benchmark

In Hyperfoil, defining a benchmark involves structuring scenarios, phases, variables and other components to simulate realistic user behavior and workload patterns. This section provides a detailed breakdown of each component involved in defining a benchmark.


Agents

Entities responsible for executing benchmark and collecting statistics

HTTP

This section defines servers that agents contact during benchmarks, allowing configurations for multiple targets with specific connection settings

Phases

Defines a unit of workload simulation within a benchmark, representing a specific load pattern or behavior

Scenario

Defines the behavior and sequence of actions that virtual users (VU) perform during a benchmark execution

Variables

Data placeholders within sessions that hold values throughout the execution of a benchmark scenario

Templates

Templates in Hyperfoil allow for efficient benchmark parametrization, enabling users to customize benchmarks based on specific execution environments or intended loads

Hooks

Mechanisms that allow users to run specific scripts or commands automatically before and after executing a benchmark run

Ergonomics

Configuration options that enhance usability and automation of benchmarking sessions

+

diff --git a/docs/user-guide/benchmark/phases/index.html b/docs/user-guide/benchmark/phases/index.html index ec54b64..350a6c5 100644 --- a/docs/user-guide/benchmark/phases/index.html +++ b/docs/user-guide/benchmark/phases/index.html @@ -1,10 +1,10 @@ -Phases | Hyperfoil -

Phases

Defines a unit of workload simulation within a benchmark, representing a specific load pattern or behavior

You might want to simulate several types of workloads at once: e.g. in an eshop users would come browsing or buying products, and operators would restock the virtual warehouse. Also, driving constant load may not be the best way to run the benchmark: often you want to slowly ramp the load up to let the system adjust (scale up, perform JIT, fill pools) and push the full load only after that. When trying to find system limits, you do the same repetitevely - ramp up the load, measure latencies and if the system meets SLAs (latencies below limits) continue ramping up the load until it breaks.

In Hyperfoil, this all is expressed through phases. Phases can run independently of each other; these simulate certain load execute by a group of users. Within one phase all users execute the same scenario (e.g. logging into the system, buying some goods and then logging off).

A phase can be in one of these states:

  • not running (scheduled): As the name clearly says, the phase is not yet getting executed.
  • running: The agent started running the phase, i.e., performing the configured load.
  • finished: Users won’t start new scenarios but we’ll let already-started users complete the scenario.
  • terminated: All users are done, all stats are collected and no further requests will be made.
  • cancelled: Same as terminated but this phase hasn’t been run at all.

There are different types of phases based on the mode of starting new users:

TypeDescription
constantRateThe benchmark will start certain number of users according to a schedule regardless of previously started users completing the scenario. This is the open-model.
increasingRateSimilar to constantRate but ramps up the number of started users throughout the execution of the phase.
decreasingRateThe same as increasingRate but requires initialUsersPerSec > targetUsersPerSec.
atOnceAll users are be started when the phase starts running and once the scenario is completed the users won’t retry the scenario.
alwaysThere is fixed number of users and once the scenario is completed the users will start executing the scenario from beginning. This is called a closed-model and is similar to the way many benchmarks with fixed number of threads work.
noopThis phase cannot have any scenario (or forks). It might be useful to add periods of inactivity into the benchmark.

See the example of phases configuration:

...
 phases:
@@ -117,7 +117,7 @@
   - test:
     - httpRequest:
         GET: /foo

This element uses these properties:

PropertyDescription
initialRampUpDurationDuration of the very first phase. Default is no initial ramp-up.
initialUsersPerSecRate of users starting at the end of the initial ramp-up.
steadyStateDurationDuration of each steady-state phase.
rampUpDurationDuration of each but first ramp-up. Default are no ramp-ups.
incrementUsersPerSecIncrease in the rate of started users in each iteration.
maxIterationsMaximum number of steady-state iterations.
scenarioThe scenario to be executed.
forksThe forks with different scenarios.
-

Last modified September 30, 2024: Fix Github website links (eb62dd6)

diff --git a/docs/user-guide/benchmark/scenario/index.html b/docs/user-guide/benchmark/scenario/index.html index 9484479..593204b 100644 --- a/docs/user-guide/benchmark/scenario/index.html +++ b/docs/user-guide/benchmark/scenario/index.html @@ -1,10 +1,10 @@ -Scenario | Hyperfoil -

Scenario

Defines the behavior and sequence of actions that virtual users (VU) perform during a benchmark execution

Scenario

Scenario is a set of sequences. The sequence is a block of sequentially executed steps. Contrary to steps in a sequence the sequences within a scenario do not need to be executed sequentially.

The scenario defines one or more initialSequences that are enabled from the beginning and other sequences that must be enabled by any of the previously executed sequences. To be more precise it is not the sequence that is enabled but a sequence instance as we can run a sequence multiple times in parallel (on different data). The initialSequences enable one instance of each of the referenced sequence.

The session keeps a currently executed step for each of the enabled sequence instances. The step can be blocked @@ -47,7 +47,7 @@ - httpRequest: POST: /logout

An exhaustive list of steps can be found in the steps reference.

-

Last modified September 30, 2024: Fix Github website links (eb62dd6)