Load tester is a simple tool created for easy load testing HTTP endpoints focused on response time and verifying expected results.
What it can do:
- Launch specific number of users (streams) and loops for each user over specific amount of time (ramp up).
- Supports writing general results & http results.
- Supports different tasks: http_request, sleep, comparisons.
- Supports variables: both predefined and parsed from http results (status, headers, response time, body (json)).
- Supports comparison actions, which can be used to check if you got correct response code, got response in satisfying amount of time or if you got expected result -> number of items returned, property equals/contains/starts(ends)With/lesser/greater/regex - or their ‘not’ counterparts.
- Accepts json as test definition.
To start using the tool, download the latest binaries for your OS from the 'Releases' section on GitHub. This tools supports Windows (x86/x64), Linux (x86/x64) and MacOS (x64).
To run the test, execute following command in your terminal:
load-tester -i TEST_FILE -id TEST_ID -o OUTPUT_FOLDER -t TOLERANCE_PERCENTAGE
Where
Argument | Type | Description |
---|---|---|
TEST_FILE | string | Path to the JSON file containing test definition |
TEST_ID | string | Random id to be given for the test and used in output files' name |
OUTPUT_FOLDER | string | Path to the directory where results files will be saved |
TOLERANCE_PERCENTAGE | float | Percentage of failed loops, which can be tolerated. i.e -t 3.5 means that if 3.5% or less of loops have failed, the test will be marked successful. To fail the test on any error - omit this argument or set it to 0 |
Learn about writing a test file definition here or have a look at the example file
Learn about results produced by this application here
If you would like to build the application yourself, you can run included build script:
build.sh PACKAGE_NAME [PLATFORM]
Where PACKAGE_NAME
would be the base name of output execution file (i.e if the package name is load-tester it will produce load-tester-x64 or load-tester-x86 files).
PLATFORM
argument is optional and can be one of the following: "windows/amd64" "windows/386" "darwin/amd64" "linux/amd64" "linux/386"
.
If this argument is ommited, than the build script will produce packages for all the mentioned above platforms.
Please feel free to create a pull request with your suggestions and fixes.