Changelog
All notable changes to this project will be documented in this file.
v0.2.1 — Live Dashboard Fixes
Date: 2026-06-06
- Live Dashboard (all 10 test types): All patterns now emit progress at least every ~0.5 s via a time-based throttle. Previously, Ramp and Stress blocked up to 30 s between updates. All 8 engine patterns switched from
asyncio.gathertoadd_done_callback+asyncio.as_completedso the dashboard updates as each response arrives. - BreakpointPattern Probe Fixed: The internal
_probe()coroutine previously usedasyncio.gatherand blocked silently for up to 5 s per binary-search probe (RPS × 5 s). Now usesadd_done_callback+asyncio.as_completedso progress emits throughout each probe. - Rate Limit 50–60 s Delay Fixed: The task-dispatch loop now emits a
sent N/Mprogress update per request. Cooldown ticks every second with a countdown label. Previously the dashboard was silent for the entire 60 s phase. - Accurate Progress Bar:
total_requestsin rate limit tests is always the full cumulative total (cap + 2×cap) so the bar never resets to 0% when Phase 2 starts. - Client-Side Elapsed Timer: A 1 s
setIntervalin the browser ticks the elapsed counter independently, so it never freezes between WebSocket messages. - Fluid Status Chart: Status-code doughnut now does incremental
chart.update()instead of destroy + recreate, eliminating jank during rapid updates. - Tests: 27 new tests in
test_load_patterns.pycovering throttle behaviour,_safe_done_callback, and per-pattern liveness for all 8 engine patterns (Burst, Ramp, Load, Stress, Spike, Soak, Breakpoint, Custom). Additional rate limit tests for live progress and cumulative totals. 177 tests total, all passing.
v0.2.0 — Rate Limit Redesign
Date: 2026-06-02
- Rate Limit Redesign: Complete rewrite of the Rate Limit pattern. Unit changed from req/s to req/min. Old burst+ramp approach replaced with a deterministic 2-phase validation:
- Phase 1 — sends exactly
rate_limit_capreq/min for 60 s (at the stated limit) - Cooldown — waits 15 s for the sliding window to reset
- Phase 2 — sends
2 × rate_limit_capreq/min for 60 s (deliberately exceeds the limit)
- Phase 1 — sends exactly
- Verdict System: Each run now returns one of three outcomes:
working,not_working, ortoo_strict. - Live Phase Dashboard: Browser UI shows the current phase label and description in real time during the test.
- Report: HTML report section renamed to "Rate Limit Validation" with a phase-summary bar chart and a prominent verdict banner.
- Removed
rate_limit_requestsconfig field — onlyrate_limit_cap(req/min) remains. - Tests: 26 new unit tests for the rate limit engine covering verdict logic, phase mechanics, progress callbacks, and cancellation.
v0.1.1 — Initial Release
Date: 2026-05-30
- Initial PyPI Release: The first public release of
overload-cli. - Postman Collection Support: Native parsing of Postman Collections (v2.0.0 and v2.1.0) without conversion.
- Web UI: Launched the interactive Browser UI using FastAPI and Vanilla JS for visual test configuration.
- 10 Load Patterns: Included Burst, Load, Stress, Spike, Soak, Ramp, Breakpoint, Custom, Rate Limit, and Sequential testing profiles.
- Authentication: Full support for Postman auth inheritance, Basic Auth, Bearer tokens, API Keys, and OAuth2 Client Credentials flow.
- Dynamic Variables: Integration with Postman dynamic variables (
$randomInt,$guid, etc.). - CI/CD Assertions: Implemented threshold evaluation for pipeline gating.
- HTML Reports: Auto-generating standalone HTML reports with Chart.js visualizations.
- Export Formats: JSON, CSV, and JUnit XML outputs.