Runner
This page contains the API documentation for the gradual.runners.runner module.
gradual.runners.runner
The runner module provides the Runner class which manages the execution of test scenarios. It coordinates multiple test scenarios running concurrently using gevent for asynchronous execution.
Classes
Runner(scenarios: list[ScenarioConfig])
Manages the execution of multiple test scenarios concurrently.
The Runner is responsible for: 1. Initializing test scenarios from configurations 2. Managing concurrent execution of scenarios using gevent 3. Tracking execution time and running state 4. Providing graceful shutdown capabilities
Attributes:
| Name | Type | Description |
|---|---|---|
scenarios |
list[Scenario]
|
List of initialized test scenarios |
start_counter |
int
|
Nanosecond timestamp when the runner started |
running_scenarios |
list[Scenario]
|
List of currently running scenarios |
running_scenarios_task |
list
|
List of gevent tasks for running scenarios |
Initialize the test runner with scenario configurations.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
scenarios
|
list[ScenarioConfig]
|
List of scenario configurations to run |
required |
Source code in src/gradual/runners/runner.py
Attributes
scenarios = [(Scenario(scenario_config)) for scenario_config in scenarios]
instance-attribute
start_counter = perf_counter_ns()
instance-attribute
running_scenarios: list[Scenario] = []
instance-attribute
running_scenarios_task: list[gevent.Greenlet] = []
instance-attribute
Functions
start_test()
Start the execution of all test scenarios.
This method: 1. Spawns a gevent task for each scenario 2. Tracks running scenarios and their tasks 3. Waits for all scenarios to complete execution
Source code in src/gradual/runners/runner.py
stop_runner()
Stop all running test scenarios gracefully.
This method: 1. Signals all running scenarios to stop 2. Waits for all scenario tasks to complete 3. Ensures clean shutdown of all test activities