0.0
No commit activity in last 3 years
No release in over 3 years
Stress test your web apps.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 2.9
 Project Readme

Evil Hornets!

Hornets have won the war against bees. Now they control all beehives and enslave bees to fight other battles. Hornet is a utility for building hives (micro EC2 instances) and create soldiers (docker containers) to attack (stress test) web applications.

Dependencies

  • AWS SDK 2
  • NET SSH 2

Installation

As an executable gem

gem install evilhornets

Soon as brew package

brew install evilhornets

Configuring AWS credentials

Hornet uses AWS Ruby SDK to communicate with EC2. It supports all credential storing methods that the SDK provides. These include declaring environment variables, machine-global configuration files, and per-user configuration files. Read more at AWS Ruby SDK API Doc

At minimum, store your credentials to ~/.aws/credentials

[default]
aws_access_key_id = <ACCESS_KEY>
aws_secret_access_key = <SECRET_KEY>

Usage

The quick run down looks something like this:

$ hornet up -n 1 -k hornet
$ hornet attack -n 1000 -b 60 -c 250 -u http://TARGETURL/
$ hornet down

This spins up 1 instance using EC2 keypair 'hornet', which private key is expected to exist in ~/.ssh/hornet.pem.

It then starts 60 bee containers, each of them will attack 1000 times, 250 at a time, to the target url.

Scale

You can scale the number of hives up and down by:

$ hornet scale -n 3

This way you can launch more bees wihtout stress hive too much.

The caveat! (PLEASE READ)

This project is inspired by Tribune News Applications Team's beeswithmachineguns. I hereby inherent their caveat message!:

If you decide to use the Hornet, please keep in mind the following important caveat: they are, more-or-less a distributed denial-of-service attack in a fancy package and, therefore, if you point them at any server you don’t own you will behaving unethically, have your Amazon Web Services account locked-out, and be liable in a court of law for any downtime you cause.

You have been warned.

Bugs


Please log your bugs on the Github issues tracker.

Credits


Initial inspiration from Jeff Larson and Tribune News Applications Team

License


MIT.