Load testing is about discovering your system's breaking points before your users do. It is not enough to know that your system works -- you need to know how it works under varying levels of demand. Every system has limits; load testing makes those limits visible and actionable.
Test Scenario Types
Smoke Test
Verify that the system works under minimal load. Baseline health check.
Load and stress testing expertise covering k6, Locust, and JMeter patterns, test scenario design (smoke, load, stress, spike, soak), virtual user modeling, think time configuration, ramp patterns, performance thresholds, result analysis, bottleneck identification, and cloud load testing strategies.
How much does it cost?+
Nothing. It ships with Murage, which is open source. Your bots run on the AI plan you already have.
Can I change it?+
Yes. Open it in Settings → Skills to read, edit or duplicate it. Skill Guard scans it again after every edit.
Give your first job to Murage.
Download the app, connect the AI you already pay for, and tell your Chief of Staff what needs doing. Plan on about ten minutes from install to a working team.
export const options = {
thresholds: {
// Global thresholds
http_req_duration: [
'p(50)<200', // 50th percentile under 200ms
'p(95)<500', // 95th percentile under 500ms
'p(99)<1500', // 99th percentile under 1500ms
'max<5000', // No request over 5 seconds
],
http_req_failed: ['rate<0.01'], // Less than 1% failure
// Per-endpoint thresholds
'http_req_duration{name:homepage}': ['p(95)<300'],
'http_req_duration{name:checkout}': ['p(95)<2000'],
'http_req_duration{name:api_search}': ['p(95)<800'],
// Custom metrics
'checkout_duration': ['p(95)<3000'],
'orders_created': ['count>50'],
},
};
Result Analysis
Key Analysis Areas
1. RESPONSE TIME DISTRIBUTION
- Plot p50, p90, p95, p99 over time
- Look for: sudden increases, bimodal distributions, gradual degradation
2. ERROR RATE
- Track 4xx and 5xx errors separately
- Common: 429 (rate limiting), 503 (overload), 504 (timeout)
3. THROUGHPUT
- Requests per second (RPS) over time
- Does RPS plateau while VUs increase? -> System is saturated
4. RESOURCE UTILIZATION (server-side)
- CPU: > 80% sustained is concerning
- Memory: Watch for gradual increase (leak)
- Disk I/O: High IOPS can indicate missing indexes
- Network: Check bandwidth saturation
- Connection pools: Exhaustion causes queuing
5. SATURATION INDICATORS
- RPS stops increasing with more VUs
- Response times increase non-linearly
- Error rate spikes at specific concurrency level
Bottleneck Identification
Response times high + CPU high + low error rate
-> Application is CPU-bound (optimize code, scale horizontally)
Response times high + CPU low + DB connections maxed
-> Database connection pool exhausted (increase pool size, optimize queries)
Response times high + CPU low + high I/O wait
-> Disk I/O bottleneck (add indexes, use caching, upgrade storage)
Response times increasing linearly with VUs
-> Single-threaded bottleneck or lock contention
Periodic spikes in response time
-> Garbage collection, cron jobs, or auto-scaling events
503 errors at specific VU count
-> Connection limit, worker count, or rate limiting
# Stream k6 results to InfluxDB for Grafana dashboards
k6 run --out influxdb=[reference URL] script.js
json
// Grafana dashboard panels:
// 1. Response time percentiles (line chart)
// 2. Requests per second (line chart)
// 3. Error rate (line chart)
// 4. Virtual users over time (line chart)
// 5. Response time by endpoint (bar chart)
// 6. Error breakdown by type (pie chart)
Pre-Test Checklist
[ ] Test environment mirrors production (or is a known fraction)
[ ] Test data is seeded and representative
[ ] Monitoring/APM is active on the target environment
[ ] Database has production-representative data volume
[ ] CDN/caching is configured as in production
[ ] Auto-scaling is documented (will it trigger during test?)
[ ] Stakeholders are notified (avoid false alarms)
[ ] Baseline metrics from previous test are available for comparison
[ ] Rate limiting/WAF rules are accounted for
[ ] Test credentials are created and functional
When to Use
Use this skill when:
Designing or implementing load tester solutions
Reviewing or improving existing load tester approaches
Making architectural or implementation decisions about load tester
Learning load tester patterns and best practices
Troubleshooting load tester-related issues
Do NOT use this skill when:
The question is about a fundamentally different technology domain
A more specific sibling skill covers the exact topic needed
The user needs a complete hands-on tutorial rather than expert guidance
Output Format
markdown
# Load Tester Analysis
## Context Assessment
[Situation summary and constraints]
## Recommended Approach
[Primary recommendation with rationale]
## Implementation Steps
1. [Step with specific details]
2. [Step with specific details]
3. [Step with specific details]
## Trade-offs and Considerations
- [Key trade-off 1]
- [Key trade-off 2]
## Next Steps
- [Immediate action item]
- [Follow-up action item]
Example
Input: "Help me implement load tester for a medium-scale production application"
Output: A structured analysis covering current state assessment, recommended load tester approach with specific patterns, implementation roadmap with milestones, and risk mitigation strategies tailored to the application scale and constraints.
Edge Cases
Legacy system integration: When load tester must coexist with legacy approaches, provide a gradual migration path rather than a complete rewrite
Scale mismatch: When the solution complexity exceeds the project scale, recommend a simpler approach and note when to revisit
Team skill gaps: When the team lacks experience with the recommended approach, include learning resources and simpler alternatives
Conflicting requirements: When constraints conflict (e.g., performance vs. maintainability), explicitly state the trade-off and recommend based on stated priorities