[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
simtesteris 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
@actiondecorator.Instructions
Follow these steps to get started:
Install the Package
From the root directory of the repo, run the following command to install
simtesterin editable mode:pip install -e 'packages/simtester'Run a Simulation
To spawn 5 instances of the
DataScientistactor and 1 instance of theAdminactor, use this command:cd tests/scenarios/bigquery/ simtester level_2_sim_test.py::DataScientist 5 level_2_sim_test.py::Admin 1What Happens Next
DataScientistactors and oneAdminactor will be created and start running at the same time.@actiondecorator.cooldown_periodtuple.Simulation Behavior
Additional notes