word-stress
v1.1.1
Published
A command-line tool for stress-testing WordPress and WooCommerce sites
Maintainers
Readme
word-stress
A command-line tool for stress-testing WordPress and WooCommerce sites.
Overview
word-stress is a performance testing tool designed to identify bottlenecks, saturation points, and failure thresholds in WordPress and WooCommerce installations. It sends configurable parallel requests to measure server capacity and response degradation under load.
Project Status
✅ Version 1.0.0 - Feature complete and production ready!
Features
- ✅ Steady-state load testing with multiple concurrent clients
- ✅ Burst capacity testing with simultaneous requests
- ✅ Configurable intervals, durations, and timeouts
- ✅ WordPress and WooCommerce endpoint testing (GET/POST/PUT/DELETE/PATCH)
- ✅ Comprehensive metrics: response times, percentiles (P95, P99), throughput, success rate
- ✅ Realistic user agent support (Chrome, Firefox, Safari, or custom)
- ✅ Beautiful ASCII table output
- ✅ JSON and CSV export formats
- ✅ HTTP/HTTPS with redirect handling
- ✅ Request timeout support
- ✅ Detailed error classification and tracking
Installation
npm installUsage
Steady-State Testing
Tests with multiple parallel clients making periodic requests.
# Default: 5 clients, 1000ms interval, 60 second duration
./bin/word-stress example.com
# 10 clients with 500ms interval
./bin/word-stress --clients=10 --interval=500 example.com
# WooCommerce AJAX endpoint
./bin/word-stress --clients=20 --interval=1000 \
--endpoint='/?wc-ajax=get_refreshed_fragments' --method=POST example.com
# Test local development site without HTTPS
./bin/word-stress --clients=5 --https=off example.devBurst Testing
Tests with many simultaneous requests to measure peak capacity.
# 50 simultaneous requests
./bin/word-stress --mode=burst --burst-clients=50 example.com
# 1000 simultaneous AJAX requests
./bin/word-stress --mode=burst --burst-clients=1000 \
--endpoint='/?wc-ajax=get_refreshed_fragments' --method=POST example.comOutput Formats
# Pretty table output (default)
./bin/word-stress example.com
# JSON export
./bin/word-stress --output=json example.com
# CSV export
./bin/word-stress --output=csv example.comHelp
./bin/word-stress --help
./bin/word-stress --versionSee dev-notes/02-stress-test-requirements.md for detailed usage examples and requirements.
Documentation
- docs/ - Public-facing documentation
- dev-notes/ - Development notes and requirements
- .github/copilot-instructions.md - AI coding standards
Development
Dependencies
- commander - Command-line interface
- chalk - Terminal colors
- ora - Progress spinners
- cli-table3 - Result tables
- dotenv - Environment configuration
Node Version
Requires Node.js 21 or greater for Fetch API support.
Project Structure
src/- Source code (config, CLI setup, HTTP client, metrics, test modes, formatters)bin/- Executable entry pointdev-notes/- Development notes and requirements- .instructions.md - Project architecture and design decisions
Contributing
See .github/copilot-instructions.md for coding standards and best practices.
License
MIT
