Skip to content

Fast and efficient open-source load testing tool for APIs

License

Notifications You must be signed in to change notification settings

unhackeddev/nfury

NFury - API Load Testing Tool

NFury Logo

🔥 Fast and Efficient API Load Testing Tool

.NET License CI

NFury is an open-source tool developed to efficiently and quickly perform load testing on APIs. With NFury, you can simulate multiple virtual users making requests to a target API and analyze important metrics such as average response time, status code distribution, and percentiles.

✨ Features

  • Virtual User Simulation: Create a defined number of virtual users to simulate traffic on your API
  • Flexible Configuration: Specify the API URL, HTTP method, and the number of requests to be made
  • Detailed Analysis: Obtain detailed metrics such as average response time, status code distribution, and percentiles
  • Interactive Interface: Track test progress in real-time with an interactive command-line interface
  • Web Dashboard: Real-time monitoring via web interface with SignalR
  • Test History: Store and compare test results with SQLite database
  • Project Management: Organize multiple test configurations

🚀 Quick Start

Installation

# Clone the repository
git clone https://github.com/unhackeddev/nfury.git
cd nfury

# Build the project
dotnet build -c Release

# Run the application
cd src/NFury
dotnet run -- --help

Basic Usage

# Start the web server
./nfury server

# Access the dashboard at http://localhost:5000

📊 Web Dashboard

Access the real-time dashboard at http://localhost:5000 to:

  • Create and manage load test projects
  • Configure test parameters (URL, method, headers, body)
  • Monitor test execution in real-time
  • View detailed metrics and percentiles
  • Compare historical test results

📁 Project Structure

├── src/
│   └── NFury/
│       ├── Commands/           # CLI commands (run, server)
│       │   ├── Run/            # Load test runner command
│       │   └── Server/         # Web server command
│       ├── Web/                # Web application components
│       │   ├── Data/           # Database access
│       │   ├── Hubs/           # SignalR hubs
│       │   └── Services/       # Business logic services
│       ├── wwwroot/            # Static web assets
│       │   ├── css/            # Stylesheets
│       │   └── js/             # JavaScript files
│       ├── Program.cs          # Application entry point
│       └── NFury.csproj        # Project file
├── README.md                   # Project documentation
├── LICENSE                     # MIT License
├── CONTRIBUTING.md             # Contribution guidelines
├── CODE_OF_CONDUCT.md          # Code of conduct
├── SECURITY.md                 # Security policy
└── CHANGELOG.md                # Version history

🤝 Contributing

Contributions are welcome! Please read our Contributing Guide for details.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add 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.

🔒 Security

For security concerns, please see our Security Policy.

🙏 Acknowledgments

☕ Support

If you find NFury useful and want to support its development, consider buying me a coffee!

Buy Me a Coffee


Made with ❤️ by Unhacked

GitHub | Documentation | Report an Issue