-
Notifications
You must be signed in to change notification settings - Fork 161
feat: introduce load tests into devnet #664
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
🟡 Heimdall Review Status
|
| fn assert_load_test_passed(stats: &Stats) { | ||
| assert!( | ||
| stats.submitted() >= 10, | ||
| "Expected at least 10 transactions to be submitted, got {}", | ||
| stats.submitted() | ||
| ); | ||
| // TODO: once the resource metering changes are in, we should have different | ||
| // thresholds for failed transactions | ||
| assert!(stats.failed() <= 2, "Expected no more than 2 failed transactions, but {} failed", stats.failed()); | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should open up a ticket to track this. Generally would be nice to not commit TODOs into the codebase but at the minimum have tickets to track.
refcell
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Few nits but otherwise good to merge
|
I think we should put load tests into base/infra. A few thoughts:
I think we need a bit of a plan to unify contender, this PR and gobrr. Lets chat on Monday and come up with a plan |
Supersedes #653
Motivation
Previously, there wasn't a way to easily test changes made across our services. We would deploy to the devnet and manually QA. As part of the production readiness of getting resource metering out, it's a requirement to be able to run the system locally and test locally first before rolling out changes.
Changes
This PR extends off of the
system_testswhich was originally inspired byscripts/devnet/to include stress/load tests. It includes bringing in theSimulator.solcontract frombase/benchmarkand sending transactions that would be gas or time expensive (see storage slot modifications, calldata sizes)Notes
load.rsto purposefully include transactions that would be rejected by the builder to test if the e2e behaviour works.Co-authored-by: Niran Babalola niran.babalola@coinbase.com