testing-performance
Performance Testing
Test application speed, responsiveness, stability, and scalability under various load conditions.
When to use me
Use this skill when:
- Preparing for traffic spikes or seasonal loads
- Testing application scalability
- Identifying performance bottlenecks
- Validating SLAs (Service Level Agreements)
- Comparing performance before/after changes
- Capacity planning and infrastructure sizing
- Ensuring user experience under load
What I do
- Load testing: Simulate expected user traffic
- Stress testing: Find breaking points and limits
- Spike testing: Test sudden traffic surges
- Endurance testing: Check for memory leaks over time
- Scalability testing: Verify horizontal/vertical scaling
- Configuration testing: Optimize performance settings
- Benchmarking: Compare against baseline metrics
Examples
# Load testing tools
npx autocannon -c 100 -d 60 https://app.example.com
wrk -t12 -c400 -d30s https://app.example.com
k6 run script.js # Grafana k6
jmeter -n -t testplan.jmx -l results.jtl
# Performance monitoring
npm run test:perf # Custom performance suite
lighthouse https://app.example.com --output json
webpagetest test https://app.example.com
# Stress testing
artillery run stress.yml
npx loadtest -n 10000 -c 100 https://api.example.com
# Memory and CPU profiling
node --inspect script.js
python -m cProfile script.py
go test -bench=. -benchmem
Output format
Performance Test Results:
──────────────────────────────
Load Test (100 concurrent users, 5 minutes):
✅ Average Response Time: 245ms (< 500ms target)
✅ 95th Percentile: 412ms
✅ Throughput: 1,234 req/sec
✅ Error Rate: 0.1% (< 1% target)
⚠️ CPU Usage: 85% (approaching limit)
Stress Test (Breaking Point):
❌ System fails at 850 concurrent users
⚠️ Database connection pool exhausted at 800 users
✅ Graceful degradation observed
Memory Usage (24-hour endurance):
⚠️ Memory leak detected: +2MB/hour
❌ OutOfMemory after 18 hours
Summary: Meets most performance targets, needs memory leak fix
Notes
- Establish performance baselines before testing
- Test in production-like environments
- Monitor system resources during tests
- Consider network latency and geography
- Test with realistic data volumes
- Automate performance regression testing
- Document performance requirements and SLAs
- Use APM (Application Performance Monitoring) tools
More from wojons/skills
adversarial-thinking
Apply systematic adversarial thinking patterns including devil's advocate, assumption busting, red teaming, and white hat security approaches
45devils-advocate
Challenge ideas, assumptions, and decisions by playing devil's advocate to identify weaknesses and prevent groupthink
41redteam
Think and act like an attacker to identify security vulnerabilities, weaknesses, and penetration vectors through adversarial security testing
37code-migration
Guide framework and library migrations with incremental strategies, breaking change analysis, compatibility testing, and automated migration tools
34observability-logging
Use logs as part of comprehensive observability strategy including metrics, traces, alerts, and dashboards for system understanding and operational excellence
34gap-analysis
Identify discrepancies between documented requirements and actual implementation through systematic comparison and analysis
34