feat(testing): expand Locust load test coverage to 113 endpoints#2610
Merged
crivetimihai merged 5 commits intomainfrom Jan 31, 2026
Merged
feat(testing): expand Locust load test coverage to 113 endpoints#2610crivetimihai merged 5 commits intomainfrom
crivetimihai merged 5 commits intomainfrom
Conversation
…I coverage Add new Locust user classes to improve API endpoint coverage: Batch 1 - High Priority: - VersionMetaUser: /version, /health/security - ExportImportUser: /export, /import/status, /import/cleanup - A2AFullCRUDUser: A2A agent CRUD operations Batch 2 - Extended APIs: - ResourcesExtendedUser: /resources/templates/list, /resources/[id]/info - ServerExtendedUser: /servers/[id]/prompts Removed (caused instability): - GatewayFullCRUDUser: Gateway CRUD triggers slow MCP network calls - TagsExtendedUser: App bug with json_extract on PostgreSQL (#2607) - AdvancedProtocolUser: Complex payload validation issues Disabled (app bug): - /export/selective: Server object missing is_active attribute (#2606) Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Add TokensUser and RBACUser classes for improved API coverage: - TokensUser: GET /tokens endpoint for token listing - RBACUser: GET /rbac/roles, /rbac/my/roles, /rbac/my/permissions, /rbac/permissions/available endpoints TeamsUser was removed due to app bug #2608 (current_user_ctx["db"] returns None causing 500 errors on /teams endpoint). Closes #2608 Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Add authentication and OAuth user classes for improved API coverage: - AuthUser: GET /auth/email/events, /auth/email/admin/events, /auth/email/admin/users endpoints - OAuthUser: GET /oauth/registered-clients endpoint SSO endpoints were not added as they return 404 (not available). Write operations (login, register) were skipped intentionally. Total unique endpoints now tested: 99 Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
…ricsUser, ObservabilityUser) Add logging, metrics, and observability user classes for improved API coverage: - LogSearchUser: GET /api/logs/security-events, /api/logs/audit-trails, /api/logs/performance-metrics endpoints - MetricsUser: GET /metrics, /api/metrics/stats, /api/metrics/config, /metrics/prometheus endpoints - ObservabilityUser: GET /admin/observability/tools/usage, /admin/observability/tools/performance, /admin/observability/metrics/top-volume endpoints Total unique endpoints now tested: 108 Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
…oxyUser) Add LLM and reverse proxy user classes for final API coverage: - LLMUser: GET /llm/gateway/models, /llmchat/gateway/models, /admin/llm/provider-configs, /admin/llm/provider-defaults endpoints - ReverseProxyUser: GET /reverse-proxy/sessions endpoint Toolops and well-known endpoints were not added (404 - not available). Cancellation endpoints skipped (require valid request IDs). Total unique endpoints now tested: 113 All 6 batches complete. Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
3 tasks
hughhennelly
pushed a commit
to hughhennelly/mcp-context-forge
that referenced
this pull request
Feb 8, 2026
…#2610) * feat(testing): add Batch 1 & 2 load test user classes for extended API coverage Add new Locust user classes to improve API endpoint coverage: Batch 1 - High Priority: - VersionMetaUser: /version, /health/security - ExportImportUser: /export, /import/status, /import/cleanup - A2AFullCRUDUser: A2A agent CRUD operations Batch 2 - Extended APIs: - ResourcesExtendedUser: /resources/templates/list, /resources/[id]/info - ServerExtendedUser: /servers/[id]/prompts Removed (caused instability): - GatewayFullCRUDUser: Gateway CRUD triggers slow MCP network calls - TagsExtendedUser: App bug with json_extract on PostgreSQL (IBM#2607) - AdvancedProtocolUser: Complex payload validation issues Disabled (app bug): - /export/selective: Server object missing is_active attribute (IBM#2606) Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> * feat(testing): add Batch 3 load test user classes (TokensUser, RBACUser) Add TokensUser and RBACUser classes for improved API coverage: - TokensUser: GET /tokens endpoint for token listing - RBACUser: GET /rbac/roles, /rbac/my/roles, /rbac/my/permissions, /rbac/permissions/available endpoints TeamsUser was removed due to app bug IBM#2608 (current_user_ctx["db"] returns None causing 500 errors on /teams endpoint). Closes IBM#2608 Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> * feat(testing): add Batch 4 load test user classes (AuthUser, OAuthUser) Add authentication and OAuth user classes for improved API coverage: - AuthUser: GET /auth/email/events, /auth/email/admin/events, /auth/email/admin/users endpoints - OAuthUser: GET /oauth/registered-clients endpoint SSO endpoints were not added as they return 404 (not available). Write operations (login, register) were skipped intentionally. Total unique endpoints now tested: 99 Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> * feat(testing): add Batch 5 load test user classes (LogSearchUser, MetricsUser, ObservabilityUser) Add logging, metrics, and observability user classes for improved API coverage: - LogSearchUser: GET /api/logs/security-events, /api/logs/audit-trails, /api/logs/performance-metrics endpoints - MetricsUser: GET /metrics, /api/metrics/stats, /api/metrics/config, /metrics/prometheus endpoints - ObservabilityUser: GET /admin/observability/tools/usage, /admin/observability/tools/performance, /admin/observability/metrics/top-volume endpoints Total unique endpoints now tested: 108 Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> * feat(testing): add Batch 6 load test user classes (LLMUser, ReverseProxyUser) Add LLM and reverse proxy user classes for final API coverage: - LLMUser: GET /llm/gateway/models, /llmchat/gateway/models, /admin/llm/provider-configs, /admin/llm/provider-defaults endpoints - ReverseProxyUser: GET /reverse-proxy/sessions endpoint Toolops and well-known endpoints were not added (404 - not available). Cancellation endpoints skipped (require valid request IDs). Total unique endpoints now tested: 113 All 6 batches complete. Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> --------- Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> Signed-off-by: hughhennnelly <hughhennelly06@gmail.com>
kcostell06
pushed a commit
to kcostell06/mcp-context-forge
that referenced
this pull request
Feb 24, 2026
…#2610) * feat(testing): add Batch 1 & 2 load test user classes for extended API coverage Add new Locust user classes to improve API endpoint coverage: Batch 1 - High Priority: - VersionMetaUser: /version, /health/security - ExportImportUser: /export, /import/status, /import/cleanup - A2AFullCRUDUser: A2A agent CRUD operations Batch 2 - Extended APIs: - ResourcesExtendedUser: /resources/templates/list, /resources/[id]/info - ServerExtendedUser: /servers/[id]/prompts Removed (caused instability): - GatewayFullCRUDUser: Gateway CRUD triggers slow MCP network calls - TagsExtendedUser: App bug with json_extract on PostgreSQL (IBM#2607) - AdvancedProtocolUser: Complex payload validation issues Disabled (app bug): - /export/selective: Server object missing is_active attribute (IBM#2606) Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> * feat(testing): add Batch 3 load test user classes (TokensUser, RBACUser) Add TokensUser and RBACUser classes for improved API coverage: - TokensUser: GET /tokens endpoint for token listing - RBACUser: GET /rbac/roles, /rbac/my/roles, /rbac/my/permissions, /rbac/permissions/available endpoints TeamsUser was removed due to app bug IBM#2608 (current_user_ctx["db"] returns None causing 500 errors on /teams endpoint). Closes IBM#2608 Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> * feat(testing): add Batch 4 load test user classes (AuthUser, OAuthUser) Add authentication and OAuth user classes for improved API coverage: - AuthUser: GET /auth/email/events, /auth/email/admin/events, /auth/email/admin/users endpoints - OAuthUser: GET /oauth/registered-clients endpoint SSO endpoints were not added as they return 404 (not available). Write operations (login, register) were skipped intentionally. Total unique endpoints now tested: 99 Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> * feat(testing): add Batch 5 load test user classes (LogSearchUser, MetricsUser, ObservabilityUser) Add logging, metrics, and observability user classes for improved API coverage: - LogSearchUser: GET /api/logs/security-events, /api/logs/audit-trails, /api/logs/performance-metrics endpoints - MetricsUser: GET /metrics, /api/metrics/stats, /api/metrics/config, /metrics/prometheus endpoints - ObservabilityUser: GET /admin/observability/tools/usage, /admin/observability/tools/performance, /admin/observability/metrics/top-volume endpoints Total unique endpoints now tested: 108 Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> * feat(testing): add Batch 6 load test user classes (LLMUser, ReverseProxyUser) Add LLM and reverse proxy user classes for final API coverage: - LLMUser: GET /llm/gateway/models, /llmchat/gateway/models, /admin/llm/provider-configs, /admin/llm/provider-defaults endpoints - ReverseProxyUser: GET /reverse-proxy/sessions endpoint Toolops and well-known endpoints were not added (404 - not available). Cancellation endpoints skipped (require valid request IDs). Total unique endpoints now tested: 113 All 6 batches complete. Signed-off-by: Mihai Criveti <crivetimihai@gmail.com> --------- Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Expands Locust load test coverage from ~50 endpoints to 113 unique endpoints across 6 batches of new user classes.
New User Classes Added
Endpoints Covered
/version,/health/security/export,/import/status,/import/cleanup/resources/templates/list,/resources/{id}/info/servers/{id}/prompts/tokenslisting/rbac/roles,/rbac/my/roles,/rbac/my/permissions,/rbac/permissions/available/auth/email/events,/auth/email/admin/events,/auth/email/admin/users/oauth/registered-clients/api/logs/security-events,/api/logs/audit-trails,/api/logs/performance-metrics/metrics,/api/metrics/stats,/api/metrics/config,/metrics/prometheus/admin/observability/tools/usage,/admin/observability/tools/performance,/admin/observability/metrics/top-volume/llm/gateway/models,/llmchat/gateway/models,/admin/llm/provider-configs,/admin/llm/provider-defaults/reverse-proxy/sessionsBugs Discovered
/export/selective-'Server' object has no attribute 'is_active'/tags/{name}/entities-json_extract()not available on PostgreSQL/teams-current_user_ctx["db"]is always NoneLoad Test Results
Under 4000 concurrent users:
Future Work
Tracked in #2609 for achieving 100% coverage:
Test Plan
Closes #2609