freeloader
Just a super easy load-testing framework.
- no complex GUI to get lost in
- load tests == code, and yes you should check them in :)
- easy to plug-in to your CI server
- get started in seconds
Getting started
Freeloader uses 4 basic keywords:
request
to create an HTTP request using unirestemit
to push the request down the pipelinesend
to make the actual HTTP calljoin
to join 2 streams together
The simplest test looks like:
; // See unirest documentation for all the options (headers, file uploads...)var r = request ; ;
That's it! This test sends a single HTTP request, and finishes as soon as the response is received.
Building a pipeline
It becomes a lot more interesting when we start building a pipeline. Each step in the pipeline has access to all requests & responses. They can modify payloads, generate more requests, or collect data for reporting.
freeloader-bundle contains a lot of useful modules to get started. Each module is an instance of a Node.js stream, and you can also easily create your own.
;
Which outputs something like:
................................................................................................................ Waiting
The test suite will end:
- when every request has been sent
- or when you press
Ctrl-C
- or when a module adds its own stopping condition
Test pipelines can easily be included in a CI test suite:
;
Joining streams
Streams can also be joined for more complex scenarios. Here are a few examples:
- Emit 2 different requests with a total concurrency of 50
;
- Emit 2 different requests with a concurrency of 50 each
var s1 = ;var s2 = ;;
It's up to each reporter to either give global stats, or group the report by request URL.