[WIP] POC for actor-based simulation testing framework #9302
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
simtester
is a lightweight simulation testing framework designed to run concurrent actor-based scenarios. By defining custom actors (such asDataScientist
) with specific actions, users can simulate real-world behaviors and test workflows at scale. Each actor performs random actions and then rests during a cooldown period, enabling realistic load testing and workflow simulations.Benefits
@action
decorator.Instructions
Follow these steps to get started:
Install the Package
From the root directory of the repo, run the following command to install
simtester
in editable mode:pip install -e 'packages/simtester'
Run a Simulation
To spawn 5 instances of the
DataScientist
actor and 1 instance of theAdmin
actor, use this command:cd tests/scenarios/bigquery/ simtester level_2_sim_test.py::DataScientist 5 level_2_sim_test.py::Admin 1
What Happens Next
DataScientist
actors and oneAdmin
actor will be created and start running at the same time.@action
decorator.cooldown_period
tuple.Simulation Behavior
Additional notes