kanidm/tools/orca
James Hodgkinson c89f0c011e
20250209 pre release (#3409)
* fix: removing unused dependencies (assert_cmd, gethostname)
* chore: Release Notes
2025-02-09 10:06:01 +00:00
..
names-dataset 20230224 2437 orca remodel (#2591) 2024-03-09 16:09:15 +10:00
src Added orca flag to extend privileged authentication expiry (#2949) 2024-08-03 10:37:49 +10:00
build.rs 20240221 2489 cleanup api v1 (#2573) 2024-02-27 09:25:02 +00:00
Cargo.toml 20250209 pre release (#3409) 2025-02-09 10:06:01 +00:00
Dockerfile Docs updates (#2961) 2024-08-10 09:30:51 +00:00
profile-sample.toml New orca models (#2909) 2024-07-30 12:11:01 +10:00
README.md fix typos (#2908) 2024-07-18 03:22:20 +00:00

Orca - A Kanidm Load Testing Tool

Make a profile.toml

orca setup-wizard --idm-admin-password ... \
  --admin-password ... \
  --control-uri 'https://localhost:8443' \
  --profile ./profile.toml

Test the connection

orca conntest --profile ./profile.toml

Generate a State File

orca generate --profile ./profile.toml --state ./state.json

Run the test preflight to populate the sample data

orca populate --state ./state.json

Run the load test

orca run --state ./state.json

Design Choices

What is a profile?

A profile defines the connection parameters and test randomisation seed. From a profile you define the parameters of the test you wish to perform.

What is a state file?

A statefile is the fully generated state of all entries that will be created and then used in the load test. The state file can be recreated from a profile and it's seed at anytime. The reason to separate these is that state files may get quite large, when what you really just need is the ability to recreate them when needed.

This state file also contains all the details about accounts and entries so that during test execution orca knows what it can and can not interact with.

Why have a separate generate and preflight?

Because generating the data is single thread limited, this would also bottleneck entry creation. By generating the data first, we can then execute preflight entry creation in parallel.