# FRE-4931: Load Testing Job Implementation ## Overview Added load testing job to GitHub Actions CI pipeline for FrenoCorp. ## Implementation Details ### New Files Created 1. **`.github/workflows/load-testing.yml`** - Triggers on PR pushes to main (load-test paths) - Scheduled daily at 2 AM UTC - Two jobs: `load-test` and `performance-baseline` - Uses Node.js 20 with caching 2. **`scripts/load-test/package.json`** - Load testing dependencies (k6, axios) - Scripts for running tests and baseline comparison 3. **`scripts/load-test/run-load-test.js`** - Main load test runner - Configurable concurrency and duration via environment variables - Tests multiple API endpoints concurrently - Reports success rate and average response time 4. **`scripts/load-test/compare-baseline.js`** - Compares current performance against baseline - Fails PR if performance degrades beyond threshold - Creates initial baseline if none exists 5. **`scripts/load-test/reports/baseline.json`** - Initial performance baseline - Avg response time: 100ms - Success rate: 99% ### Environment Variables | Variable | Default | Description | |----------|---------|-------------| | `API_BASE_URL` | https://api.frenocorp.com | Target API endpoint | | `LOAD_TEST_CONCURRENCY` | 10 | Concurrent users | | `LOAD_TEST_DURATION` | 60 | Test duration in seconds | | `BASELINE_THRESHOLD` | 0.1 | Max acceptable performance degradation (10%) | ### Workflow Integration The load testing workflow: - Runs on PRs that modify load test files - Executes scheduled daily at 2 AM UTC - Uploads results as artifacts for 7 days - Compares against baseline on PRs - Fails if performance degrades beyond threshold ## Next Steps - [ ] Add actual API endpoint definitions based on FrenoCorp API spec - [ ] Configure GitHub secrets for production API URL - [ ] Set up baseline monitoring dashboard - [ ] Add Slack notifications for performance regressions