Performance and load testing with K6
Introducing K6
It's open source, it's a CLI tool with developer friendly APIs (read: JavaScript), it does performance and load testing, and most importantly: it's free. It also has browser automation.
Writing tests
Tests consist of 2 main parts: requests and assertions, it's JavaScript, you can do what you want. For reporting, tests can be grouped inside a group, but this is mostly for reporting purposes.
After the tests have finished, K6 will present a bunch of checks (e.g. the status is 200). We are doing performance testing, we don't care that much about the checks. We're talking about metrics, and this is where K6 really shines. The results contain metrics on requests and responses, everything in percentiles.
Test configuration is passed using options, this is the way to configure test parameters in a readable format.
Reporting
K6 supports a custom summary where you can address all available metrics. There's also a web dashboard, which generates a dashboard.