DEV Community

Cover image for Automated Load Inducing Emulation Network
Mehuge
Mehuge

Posted on

Automated Load Inducing Emulation Network

https://github.com/redskyit/alien

I was tasked with load testing our web application for a specific scenario (users submitting timesheets), and it was suggested I look at ab(1), Apache Benchmark, to do the job.

However, in our case, each request had to be slightly different and ab(1) can only fire a single request repeatedly at the server, a limitation that meant it was not suitable for the job.

So I decided to write my own tool to do the job, an called it alien.

Alien supports simple requests, like ab(1), out of the box. However to vary the requests or even have a conversation with the target server, a test module must be written.

A test module is a JavaScript file that provides the details for each request to be sent to the server. It is up to the test module to decide what those requests consist of, they could be simple requests, or could be a conversation based on previous responses.

Alien has a basic request module built in that is used as the default if no module is supplied.

Like ab(1) alien can run requests sequentially or concurrently or a mix of both. Alien can also run multiple tests (or conversations) concurrently.

More details about how to use alien, and how to write test modules can be found in the README of the github project.

https://github.com/redskyit/alien

Top comments (0)