DEV Community

Cover image for Automated Load Inducing Emulation Network
Mehuge
Mehuge

Posted on

1

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

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay