title: test-procedures parent: Workload Reference grand_parent: Reference nav_order: 110

test-procedures

Test procedures define named benchmark scenarios within a workload. A workload typically defines one or more test procedures, each specifying a schedule of operations.

Syntax

{
  "test-procedures": [
    {
      "name": "append-no-conflicts",
      "description": "Index all documents then run searches",
      "default": true,
      "schedule": [
        {
          "operation": "bulk-index",
          "warmup-time-period": 120,
          "clients": 8
        },
        { "operation": "commit" },
        {
          "operation": "search",
          "clients": 1,
          "iterations": 200,
          "target-throughput": 10
        }
      ]
    }
  ]
}

Fields

FieldTypeRequiredDescription
namestringYesTest procedure name, referenced with --test-procedure at run time
descriptionstringNoHuman-readable description
defaultbooleanNoIf true, this test procedure is used when --test-procedure is not specified
schedulearrayYesSequence of schedule items (operations with execution parameters)

Schedule item fields

FieldTypeDescription
operationstring or objectOperation name (string reference) or inline operation definition (object)
clientsintegerNumber of parallel clients
iterationsintegerNumber of times to run the operation
warmup-iterationsintegerIterations to discard before recording metrics
warmup-time-periodintegerSeconds to warm up before recording metrics
target-throughputnumberTarget operations per second (throttle if faster)
time-periodintegerFixed duration in seconds (alternative to iterations)

Selecting a test procedure at run time

{: .important } The target Solr cluster must be running in SolrCloud (ZooKeeper) mode. For Solr 9.x, start with -c (e.g. docker run -d -p 8983:8983 solr:9 -c). For Solr 10.0.0+, SolrCloud is the default.

solr-orbit run \
  --pipeline benchmark-only \
  --target-hosts localhost:8983 \
  --workload my-workload \
  --test-procedure append-no-conflicts

Listing available test procedures

solr-orbit info --workload my-workload