Debug hybrid load tests
Troubleshoot and optimize Hybrid load tests by isolating issues between browser and API components.
This guide walks you through isolating and debugging issues in Hybrid tests that combine Browser and API components. Learn to identify which component is failing and apply targeted debugging strategies.
Understand Hybrid architecture
Hybrid tests run Browser (Browser Load Units or BLU) and API (Protocol Load Units or PLU) components simultaneously as separate child jobs.
Key characteristics:
- Browser job: Executes full user flows with real browser instances
- API job: Sends direct HTTP requests without a browser
- Both jobs: Start at different times (BLU slower to initialize than PLU)
- Combined metrics: Aggregated from both components; analyze separately to isolate issues
- Resource sharing: Some infrastructure resources shared between components
When to use Hybrid:
- Test realistic user flows that include both UI interactions and backend API calls
- Identify whether performance issues originate from frontend or backend
- Validate that APIs perform well under load independent of browser overhead
Isolate errors by component
Errors can originate from either the Browser or API component.
Steps:
- Check the Summary tab to see overall error rate
- Navigate to Errors tab to identify which component has failures:
- Browser component errors: Script failures, element not found, navigation timeout
- API component errors: HTTP status codes, connection failures, request errors
- Determine if errors come from one component or both
- Isolate the failing component to debug more efficiently
Browser component errors:
- Selector not found (page structure changed)
- Navigation timeout (backend slow to respond)
- Browser crash (memory exhaustion or unhandled error)
- JavaScript error (code issue in page)
API component errors:
- HTTP 4xx: Client-side request issue
- HTTP 5xx: Server error
- Connection timeout: Network or server unavailable
- Rate limited (429): Too many requests
Decision matrix:
Use this matrix to determine which component has the issue:
| Symptom | Likely cause | Next step |
|---|---|---|
| Errors only in browser component | Frontend issue or slow backend API | See Debugging browser component |
| Errors only in API component | Backend issue or API misconfiguration | See Debugging API component |
| Errors in both components | Systemic issue (backend down, network issue) | Check infrastructure health |
| API errors but no browser errors | API fragile or backend under higher load from browser | Compare API response times between Hybrid and standalone API test |
Debug browser component
Browser component issues relate to user interface interaction and page load.
Steps:
- Check the Browser tab in results for browser-specific metrics:
- Error rate and error types
- Response time (page load time)
- Web Vitals (LCP, INP, CLS, TTFB, FCP)
- Open Test Run Analysis (TRA) for failing iterations:
- Watch video recording to see what happened
- Check Network waterfall for slow requests
- Review debug logs for JavaScript errors
- Compare against standalone Browser test with same script
- Identify if browser errors correlate with API component load
Common browser issues in Hybrid:
- Slow API responses delaying page rendering
- Backend errors showing error pages to browser
- Element interactions failing due to timing issues
- Memory exhaustion from concurrent browser instances
Debugging steps:
- Reproduce issue in standalone Browser test first
- If issue only occurs in Hybrid, it’s likely caused by:
- API component consuming shared infrastructure
- Concurrent load affecting application stability
- Test data conflicts between components
- Check timing correlation: does browser slowness correspond to API component startup?
Debug API component
API component issues relate to direct HTTP requests.
Steps:
- Check the API tab in results for API-specific metrics:
- Error rate and HTTP status codes
- Response time (p50, p95, p99)
- Requests per second (RPS)
- Errors by endpoint
- Review which endpoints have failures or slowness
- Check if API errors correlate with high browser load
- Compare against standalone API test with same load profile
Common API issues in Hybrid:
- High error rate due to increased server load from browser component
- Slow responses caused by shared backend resources
- Rate limiting triggered by combined API + browser traffic
- Connection pool exhaustion
Debugging steps:
- Reproduce issue in standalone API test with same Virtual Users (VUs) count and duration
- If issue only occurs in Hybrid, shared resources or backend concurrency is the cause
- Check if backend can handle combined load from both components
- Consider staggering component startup or reducing overall VU count
Debug Web Vitals
Web Vitals measure real user experience and only apply to the Browser component.
Metrics:
- LCP (Largest Contentful Paint): Target < 2.5 seconds. Slow LCP often indicates slow API responses or large assets
- INP (Interaction to Next Paint): Target < 200 ms. Slow INP indicates JavaScript processing delays
- CLS (Cumulative Layout Shift): Target < 0.1. Issues indicate late-loaded content causing layout changes
- TTFB (Time to First Byte): Target < 600 ms. Backend server response time
- FCP (First Contentful Paint): Target < 1.8 seconds. Time to render first pixel
Debugging steps:
- Open Web Vitals tab to identify which metric fails
- Check if the failing metric correlates with API component load
- In TRA, identify where visual rendering stalls
- Check Network waterfall for blocking resources or slow API calls
- Compare Web Vitals between Hybrid and standalone Browser test
Common causes:
- Slow API responses delaying page render (impacts LCP)
- Heavy JavaScript execution after page load (impacts INP)
- Render-blocking CSS or JavaScript
- Third-party scripts or tracking code
- Deferred content loading without layout reservation
Compare Hybrid vs. Standalone tests
Use comparison to determine if Hybrid-specific issues exist.
Steps:
- Run three tests with same load profile:
- Hybrid test: Both Browser and API components
- Standalone Browser test: Browser component only
- Standalone API test: API component only
- Compare metrics side-by-side:
- Hybrid Browser response time vs. Standalone Browser response time
- Hybrid API response time vs. Standalone API response time
- Identify if metrics diverge when running together
Interpretation:
Review the test results across all three runs to identify the root cause:
| Scenario | Likely cause | Action |
|---|---|---|
| Standalone tests pass, Hybrid fails | Shared resource contention or backend can’t handle combined load | Reduce VU count or stagger component startup |
| Browser solo slow, Browser in Hybrid slower | Backend can’t respond fast to concurrent load | Optimize backend or reduce VU ramp-up rate |
| API solo slow, API in Hybrid normal | Browser component taking resources from API | Check infrastructure allocation |
| All tests show similar results | Issue is not load-related; check script or environment | Review configuration and test data |
Analyze component startup timing
Browser and API components start at different times, affecting concurrency.
Key facts:
- API component starts first (PLU faster to initialize)
- Browser component starts seconds later (BLU needs browser provisioning)
- Peak concurrent load occurs after both components are running
- Early errors may occur when only one component is active
Analysis steps:
- Check Engine Health tab for resource usage timeline
- Note when errors or slowness begins
- Correlate with component startup timeline:
- If errors start immediately, API component has the issue
- If errors start after 10-15 seconds, Browser component likely has the issue
- If errors accelerate after both running, it’s concurrency or resource contention
- Adjust test design based on findings (stagger startup, reduce VUs, etc.)
Frontend vs. backend decision tree
Use this logic to isolate the root cause:
1. Is the error rate high?
a. Errors only in Browser
-> Go to Debugging Browser Component
b. Errors only in API
-> Go to Debugging API Component
c. Errors in both
-> Backend infrastructure issue; check Engine Health
2. Is response time slow?
a. Browser slow, API normal
-> Frontend issue or backend API returning late (check TTFB)
b. API slow, Browser normal
-> Backend issue; may cascade to Browser as pageloads slow
c. Both slow
-> Shared infrastructure under pressure; reduce load
3. Is throughput low?
a. Browser throughput low
-> Check page load times; reduce think time between interactions
b. API throughput low
-> Check request rate; increase connection pooling; verify no rate limits
c. Both low
-> Infrastructure bottleneck or network saturation
Common pitfalls
Avoid these mistakes when testing and analyzing Hybrid load tests:
| Pitfall | Solution |
|---|---|
| Comparing Hybrid against standalone tests with different VU counts | Use same VU count to identify true concurrency impact |
| Assuming API performance is independent of browser load | Run comparison tests; backend may degrade under combined load |
| Not accounting for component startup delay | Add delays in test script if components need to synchronize |
| Using conflicting test data between components | Ensure Browser and API use isolated or synchronized test data |
| Test infrastructure under-provisioned for Hybrid | Hybrid uses more resources (browsers + API clients); verify capacity |
| Ignoring resource contention at peak concurrent load | Monitor Engine Health; reduce VU count if resources peak |
Next steps
- For unresolved issues, contact our technical support team with test execution IDs and TRA recordings
- Review Load Testing FAQs for general questions
- Check the Troubleshooting guide for additional debugging techniques
We're sorry to hear that. Please share your feedback so we can do better
Contact our Support team for immediate help while we work on improving our docs.
We're continuously improving our docs. We'd love to know what you liked
We're sorry to hear that. Please share your feedback so we can do better
Contact our Support team for immediate help while we work on improving our docs.
We're continuously improving our docs. We'd love to know what you liked
Thank you for your valuable feedback!