blob: a4db6b9e9acfa06f5524ed1e351c25f6d425e46d [file] [view]
---
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
```json
{
"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 | Test procedure name, referenced with `--test-procedure` at run time |
| `description` | string | No | Human-readable description |
| `default` | boolean | No | If `true`, this test procedure is used when `--test-procedure` 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 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.
```bash
solr-orbit run \
--pipeline benchmark-only \
--target-hosts localhost:8983 \
--workload my-workload \
--test-procedure append-no-conflicts
```
## Listing available test procedures
```bash
solr-orbit info --workload my-workload
```