When we are doing Load Testing on our APIs, we often have several issues:
- The tool is not easy to use by everyone
- It doesn't allow to do "high volumes easily"
- The visualization of the results can be difficult to read
So today, we will see how K6 resolve all these issues.
What is K6?
Created in 2016, K6 is a open source Load Testing tool developed in Go. It was created to help the developers' life with load testing, because in the companies this kind of task was more of the developers' responsability.
The project was acquired in june 2021 by Grafana Labs with the objective to accelerate the development of the project.
Why it resolves the issues ?
Easy to use
The great force of this tool is that it's really easy to install and use. In ten minutes you can install it, create a first simple scenario and execute it!
Also, the language used to write the test cases is JavaScript. It's a simple language that anyone can read and use, no matter which other language you already know. It's a flexible language which helps to avoid some blocking issue.
High performances
In comparision of other tools which are using the JVM to be executed, K6 needs less resources. So it will be easier to have higher volumes for each instances.
Data visualization
Against other tools, K6 can be integrated with Grafana, Datadog and others to have a great visualization. Also you can have a real time visualization. (Which can help a lot in some cases)
Go check by yourself and test the tool. Everything is simple to use, it's well documented with all the steps for each setup...
I really like this tool and find it really easier to use.
In conclusion, try it and give me a feedback about what you think about it!
Links
- K6 website - https://k6.io/
- GitHub project - https://github.com/grafana/k6
I hope it will help you! 🍺
Top comments (1)
Nice write-up.
Regarding the load tests tool, I suggest considering NBomber, a .NET tool for load testing. It's a modern and flexible .NET load-testing framework for Pull and Push scenarios, designed to test any system regardless of a protocol (HTTP/WebSockets/AMQP, etc) or a semantic model (Pull/Push).