Skip to content

A simple Go based Load testing tool that uses goroutines to generate load

License

Notifications You must be signed in to change notification settings

jessezach/meteorburst

Repository files navigation

Meteor Burst

Go Report Card

Meteor Burst is simplistic load testing tool. It can be used to quickly run basic loads tests against a REST API. It provides a simple form based UI where you can provide the URL, Headers, Method, Payload and number of users to simulate.
Meteor Burst will provide you with a realtime average response time, 99th percentile, 90th percentile and 50th percentile numbers.

Installation

Make sure you have Go setup and $GOPATH added to path.
Also make sure you have $GOPATH/bin add to path. Check here

  • Install bee tool.
    $ go get -u github.com/beego/bee

  • Install code.
    $ go get github.com/jz-jess/meteorburst

  • Inside project root, run server
    $ cd jz-jess/meteorburst
    $ bee run

    OR

  • Install go dep
    brew install dep or go get -u github.com/golang/dep/cmd/dep

  • Navigate to your Gopath/src and clone the repository
    $ cd $GOPATH/src/
    git clone https://github.com/jz-jess/meteorburst.git

  • Navigate to meteorburst and install dependencies
    $ cd meteorburst
    $ dep ensure

  • Inside project root, run server
    $ bee run

| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v1.10.0
2019/01/06 00:31:24 INFO     ▶ 0001 Using 'meteorburst' as 'appname'
2019/01/06 00:31:24 INFO     ▶ 0002 Initializing watcher...

App should be running on http://localhost:8080/
TCP server should be running on http://0.0.0.0:8082/

How to use

  • Navigate to http://localhost:8080/

  • Fill the required fields with the details of the endpoint you want to load test. Alt text

  • Press start

  • Tests should begin and metrics should be visible Alt text Alt text

  • Press stop button whenever you want to stop the tests. Alt text

Duration

You can optionally add duration in minutes or seconds to a test. The tests will run for the specified duration and stop automatically after.
Alt text

Ramp up

Most tests require a pattern of of load generation. You would want to generate load in a linear manner or a step by step manner. Meteor Burst provides ramping up of users in linear fashion or using step. Linear Ramp up duration has to be provided in seconds.
Alt text

Step Ramp up can be done as follow:

  • Select Step option in the Ramp up dropdown. A table should be displayed.
  • Add number of users, duration and unit (seconds, minutes). You can add as many steps as required.
    Alt text

Distributed Load testing

Incase you want to generate a high load. You can install meteor client and run them on different machines.Follow the steps below

  • Install meteor go get github.com/jz-jess/meteor
  • Run meteor <server-ip>:<port>, Ex: meteor 0.0.0.0:8082
    You can see the number of slaves connected in the UI. The tests will automatically run on slaves.
    Alt text

Important: When running meteor client, port should always be 8082 since tcp server runs on 8082. Clients will get disconnected when app server is closed.

Note

Please star the repository if you find this useful.
For any queries or issues, raise an issue or email me at iamjess988@gmail.com

Releases

No releases published

Packages

No packages published

Languages