Executors are the workhorses of the k6 execution engine. Each one schedules VUs and iterations differently, and you'll choose one depending on the type of traffic you want to model to test your services.
Possible values for executor are the executor name separated by hyphens.
VUs might not distribute uniformely over iterations
For any given scenario, you can't guarantee that a specific VU can run a specific iteration.
With SharedArray and execution context variables, you can map a specific VU to a specific value in your test data. So the tenth VU could use the tenth item in your array (or the sixth iteration to the sixth item).
But, you cannot reliably map, for example, the tenth VU to the tenth iteration.
Name | Value | Description |
---|---|---|
Shared iterations | shared-iterations | A fixed amount of iterations are "shared" between a number of VUs. |
Per VU iterations | per-vu-iterations | Each VU executes an exact number of iterations. |
Constant VUs | constant-vus | A fixed number of VUs execute as many iterations as possible for a specified amount of time. |
Ramping VUs | ramping-vus | A variable number of VUs execute as many iterations as possible for a specified amount of time. |
Constant Arrival Rate | constant-arrival-rate | A fixed number of iterations are executed in a specified period of time. |
Ramping Arrival Rate | ramping-arrival-rate | A variable number of iterations are executed in a specified period of time. |
Externally Controlled | externally-controlled | Control and scale execution at runtime via k6's REST API or the CLI. |