https://github.com/koompi/armandra
powerful cross-platform distributed stress testing tool designed for testing websites and collecting errors
https://github.com/koompi/armandra
Last synced: 7 days ago
JSON representation
powerful cross-platform distributed stress testing tool designed for testing websites and collecting errors
- Host: GitHub
- URL: https://github.com/koompi/armandra
- Owner: koompi
- Created: 2025-05-13T04:21:18.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-12-24T10:42:22.000Z (7 months ago)
- Last Synced: 2025-12-26T01:13:35.906Z (7 months ago)
- Language: TypeScript
- Size: 622 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Armandra
Armandra is a powerful cross-platform distributed stress testing tool designed for testing websites and collecting errors. Built with Tauri, React, and Rust, it provides a robust solution for load testing web applications across multiple machines.

## Features
- **Cross-Platform**: Runs on Windows, macOS, and Linux
- **Distributed Testing**: Coordinate multiple clients for increased load testing capacity
- **Real-time Metrics**: Monitor performance metrics during tests
- **Comprehensive Results**: Detailed reports with response times, error rates, and status codes
- **Customizable Tests**: Configure request parameters, headers, and concurrency
- **Collaborative Testing**: Join testing rooms with multiple team members
## Architecture
Armandra consists of three main components:
1. **Desktop Client**: A Tauri application with React frontend and Rust backend
2. **Coordination Server**: WebSocket server for synchronizing test execution across clients
3. **Testing Engine**: Rust-based HTTP client for efficient request handling
## Getting Started
### Prerequisites
- Node.js 18+
- Rust 1.70+
- pnpm (recommended) or npm
### Installation
1. Clone the repository:
```bash
git clone https://github.com/koompi/armandra.git
cd armandra
```
2. Install dependencies:
```bash
pnpm install
```
3. Start the coordination server:
```bash
cd server
node index.js
```
4. Run the desktop application:
```bash
pnpm tauri dev
```
### Building for Production
To build the application for your current platform:
```bash
pnpm tauri build
```
## Usage
### Connecting to the Server
1. Start the application
2. Enter the WebSocket server URL (default: `ws://localhost:3001`)
3. Click "Connect"
### Creating or Joining a Room
1. After connecting, you can either:
- Create a new testing room
- Join an existing room by entering a Room ID
### Configuring a Test
As a room host, you can configure the test parameters:
- Target URL
- HTTP Method (GET, POST, PUT, etc.)
- Request Headers
- Request Body (for POST/PUT)
- Number of requests per client
- Concurrency level
- Request timeout
### Running Tests
1. The host starts the test
2. All clients in the room execute the test simultaneously
3. Results are collected and aggregated in real-time
4. View detailed metrics and charts after test completion
## Development
### Project Structure
```
armandra/
├── src/ # React frontend
│ ├── components/ # UI components
│ ├── store/ # State management
│ └── App.tsx # Main application
├── src-tauri/ # Rust backend
│ ├── src/ # Rust source code
│ │ ├── main.rs # Entry point
│ │ ├── lib.rs # Library code
│ │ ├── stress_test.rs # Testing engine
│ │ └── websocket.rs # WebSocket client
│ ├── Cargo.toml # Rust dependencies
│ └── tauri.conf.json # Tauri configuration
└── server/ # Coordination server
└── index.js # WebSocket server
```
### Technology Stack
- **Frontend**: React, TypeScript, Tailwind CSS, Recharts
- **Backend**: Rust, Tauri, Tokio, Reqwest
- **Server**: Node.js, WebSocket (ws)
- **State Management**: Zustand
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Acknowledgments
- [Tauri](https://tauri.app/) for the cross-platform framework
- [React](https://reactjs.org/) for the frontend library
- [Rust](https://www.rust-lang.org/) for the powerful backend language