Azure Scenario
Distributed Performance Testing with Azure Load Testing
Run JMeter from multiple regions, push metrics to App Insights, gate releases on p95 + error-rate criteria.
Architecture
Azure DevOps ─► AzureLoadTest@1 task
│
Azure Load Testing
├─► engines: 10 across 2 regions
└─► target: Container Apps API
│
▼
App Insights (server-side dependency map + p95)
│
pass criteria: p95<800ms, error_rate<1%, RPS>=2000
│
PASS ─► promote release | FAIL ─► block + open work itemServices used
Steps
- 1. Define test
Author JMeter `.jmx` or URL-based test; commit `config.yaml` with pass criteria and engine count.
- 2. Trigger from pipeline
`AzureLoadTest@1` task in Azure DevOps runs the test with 10 engines across 2 regions.
- 3. Correlate server-side
App Insights instruments the target; load-test run id is sent as a custom dimension on every request.
- 4. Gate
Pass criteria evaluated server-side; pipeline fails if p95 > 800ms, errors > 1%, or RPS < 2000.
- 5. Trend
Each run uploads raw results to Blob; Workbooks chart p95 over the last 30 runs.
Takeaways
- Perf is a release gate, not a quarterly project.
- Server-side correlation pinpoints which dependency causes p95 regressions.
