Test procedures (also called challenges) define named benchmark scenarios within a workload. A workload typically defines one or more challenges, 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
Field
Type
Required
Description
name
string
Yes
Challenge name, referenced with --challenge at run time
description
string
No
Human-readable description
default
boolean
No
If true, this challenge is used when --challenge is not specified
schedule
array
Yes
Sequence of schedule items (operations with execution parameters)
Schedule item fields
Field
Type
Description
operation
string or object
Operation name (string reference) or inline operation definition (object)
clients
integer
Number of parallel clients
iterations
integer
Number of times to run the operation
warmup-iterations
integer
Iterations to discard before recording metrics
warmup-time-period
integer
Seconds to warm up before recording metrics
target-throughput
number
Target operations per second (throttle if faster)
time-period
integer
Fixed duration in seconds (alternative to iterations)
Selecting a challenge at run time
solr-benchmark run \--pipeline benchmark-only \--target-hosts localhost:8983 \--workload my-workload \--challenge append-no-conflicts
Listing available challenges
solr-benchmark list test-procedures --workload my-workload