-
Notifications
You must be signed in to change notification settings - Fork 32
🔨♻️Performance testing: upgrade locust infrastructure #7711
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
🔨♻️Performance testing: upgrade locust infrastructure #7711
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #7711 +/- ##
===========================================
- Coverage 86.79% 64.41% -22.38%
===========================================
Files 1841 683 -1158
Lines 71507 32262 -39245
Branches 1215 174 -1041
===========================================
- Hits 62066 20783 -41283
- Misses 9099 11421 +2322
+ Partials 342 58 -284
Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
8a89c23 to
32e33a7
Compare
…in webserver services
32e33a7 to
39de6e4
Compare
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.
Pull Request Overview
This PR modernizes the performance testing framework by replacing Docker-based workflows with Python-based tools, enhancing credential/configuration management, and improving usability and documentation.
- Introduces new locust test files (e.g., single endpoint RPS tester) with updated authentication handling.
- Removes obsolete Docker-related files and configurations.
- Updates the Makefile and README to support interactive and CI-based testing, alongside Grafana integration.
Reviewed Changes
Copilot reviewed 30 out of 36 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/performance/locustfiles/deployment_max_rps_single_endpoint.py | New locust test file utilizing interactive endpoint selection and authentication. |
| tests/performance/locust_settings.py | Removed obsolete settings file no longer needed with the updated workflow. |
| tests/performance/locust_files/webserver_services.py | Removed deprecated Docker-based webservice test file. |
| tests/performance/locust_files/user_basic_calls.py | Removed outdated test file for basic API calls. |
| tests/performance/locust_files/platform_ping_test.py | Removed redundant test file for platform ping functionality. |
| tests/performance/locust_files/locustfile.py | Removed generic locustfile now replaced by specialized test files. |
| tests/performance/locust_files/director_services.py | Removed legacy director services test file. |
| tests/performance/locust_files/catalog_services.py | Removed legacy catalog services test file. |
| tests/performance/common/base_user.py | Added new base user classes with enhanced authentication and logging support. |
| tests/performance/common/auth_settings.py | Introduced new authentication settings leveraging Pydantic’s configuration management. |
| tests/performance/README.md | Expanded documentation and updated Makefile target descriptions for clarity. |
Files not reviewed (6)
- scripts/common.Makefile: Language not supported
- tests/performance/.gitignore: Language not supported
- tests/performance/Dockerfile: Language not supported
- tests/performance/Makefile: Language not supported
- tests/performance/docker-compose.yml: Language not supported
- tests/performance/docker/Dockerfile: Language not supported
matusdrobuliak66
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.
Beautiful
pcrespov
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.
Thx! Greatly appreciated! Will start using it more.
|
|
Very nice! Thanks a lot for the effort! Will start using immediately. |



What do these changes do?
This pull request introduces significant updates to the performance testing framework for
osparc-simcore, focusing on modernization, simplification, and improved usability. Key changes include replacing Docker-based workflows with Python-based tools, adding robust credential and configuration management, and enhancing the Makefile and documentation for better developer and CI integration.Major Changes
0. Upgrade of locust version, simplification of usage, migration of locust files (simple RPS tester, webserver services tester, meta-modelling tests)
1. Makefile and Workflow Enhancements
tests/performance/Makefileto replace Docker-based workflows with Python-based tools, introducing new targets for deployment testing, credential management, and configuration file handling. Added interactive prompts for first-time setup and CI-specific modes.2. Credential and Configuration Management
.auth-credentials.envand.locust.conffiles for storing credentials and Locust configurations, with support for interactive prompts or CI pipelines. Updated.gitignoreto exclude these files.DeploymentAuthandOsparcAuthclasses inauth_settings.pyfor securely managing credentials using Pydantic.3. Codebase Simplification
Dockerfile,docker-compose.yml, and associated Makefile targets, to simplify the setup and reduce dependencies.4. Test Framework Enhancements
OsparcUserBaseandOsparcWebUserBaseclasses inbase_user.pyto provide reusable base classes for Locust users, supporting authenticated requests and optional login/logout functionality.5. Improved Documentation
README.mdwith detailed instructions on using the new Makefile targets, setting up credentials and configurations, and running tests interactively or in CI. Added examples for CI integration and Grafana visualization.Related issue/s
How to test
Dev-ops