# K6 Review: Open Source Load Testing Tool for Developers | Abstracta ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article4.6bc1851654a0.png) URL:: https://abstracta.us/blog/performance-testing/k6-review/ Author:: Juan Pablo Sobral ## Highlights > In early 2020, the tool reached two million test runs per month ([View Highlight](https://instapaper.com/read/1383818342/15386358)) > In the industry, there has been a need for a load testing tool that is built for teams that everyone is able to use (from developers and testers to DevOps/SREs). The k6 team achieved this, democratizing load testing by building an application written in Go, (seeking to squeeze as much performance as possible out of the hardware) while the scripting is done using JavaScript. As you could imagine, in a world where JavaScript ranks as the number one most popular programming language by Stack Overflow for three years in a row, having a load testing tool whose scripting is based in it is a great way to lure developers into trying and ultimately, sticking with it. ([View Highlight](https://instapaper.com/read/1383818342/15386363)) > What I mean by this is that the barrier to entry is low, if there is any at all. ([View Highlight](https://instapaper.com/read/1383818342/15386366)) > k6 has really good documentation (https://k6.io/docs/), however, there are certain things that you may find hidden where you’d least expect and it’s lacking in some specific examples for how to do things. ([View Highlight](https://instapaper.com/read/1383818342/15386370)) > Finally, its results reporting is quite good. ([View Highlight](https://instapaper.com/read/1383818342/15386373)) > If you’re coming from other popular tools such as JMeter or Gatling, you might find the way of doing certain things more difficult or somewhat “hacky.” ([View Highlight](https://instapaper.com/read/1383818342/15386378)) > there is no easy way to perform general checks or set acceptance criteria for the whole test. What I mean by this is that when using different groups as I did, you can’t define an error percentage or response time threshold for all of the requests inside each group from the “master” group. ([View Highlight](https://instapaper.com/read/1383818342/15386392)) > For k6, I think the fairest comparison you could make against similar tools is with Gatling. ([View Highlight](https://instapaper.com/read/1383818342/15386394)) > For me, the barrier to entry is lower with k6 than Gatling. My reasons for this are the fact that JavaScript is more widespread than Scala and also because I found k6’s docs to be more helpful than those of Gatling. ([View Highlight](https://instapaper.com/read/1383818342/15386397)) > Parameterization is easier with k6. In Gatling, if you want to change, for example, the number of VUs between runs, you first need to declare a variable in your script, which will then take the value from the maven parameters passed when running the script. However, in k6, you can have a hardcoded value for VUs in your script, run it, then run it again passing a flag and overwrite that value, without needing to touch the script. ([View Highlight](https://instapaper.com/read/1383818342/15386399)) > Gatling also supports a wide variety of protocols either natively or with help from its users’ communities while k6 only supports HTTP1.1 / 2 and WebSockets. ([View Highlight](https://instapaper.com/read/1383818342/15386404)) > When it comes to reporting, I’d say Gatling is the winner today since k6’s built-in reporting is not quite as advanced. ([View Highlight](https://instapaper.com/read/1383818342/15386406)) > Both tools offer a paid, cloud-based version that better support reporting and distributed executions. Gatling however, also offers a free shell script which allows you to distribute your simulation amongst as many machines as you’d like. This script does require some previous configurations in all of the generators though. ([View Highlight](https://instapaper.com/read/1383818342/15386410)) --- Title: K6 Review: Open Source Load Testing Tool for Developers | Abstracta Author: Juan Pablo Sobral Tags: readwise, articles date: 2024-01-30 --- # K6 Review: Open Source Load Testing Tool for Developers | Abstracta ![rw-book-cover](https://readwise-assets.s3.amazonaws.com/static/images/article4.6bc1851654a0.png) URL:: https://abstracta.us/blog/performance-testing/k6-review/ Author:: Juan Pablo Sobral ## AI-Generated Summary None ## Highlights > In early 2020, the tool reached two million test runs per month ([View Highlight](https://instapaper.com/read/1383818342/15386358)) > In the industry, there has been a need for a load testing tool that is built for teams that everyone is able to use (from developers and testers to DevOps/SREs). The k6 team achieved this, democratizing load testing by building an application written in Go, (seeking to squeeze as much performance as possible out of the hardware) while the scripting is done using JavaScript. As you could imagine, in a world where JavaScript ranks as the number one most popular programming language by Stack Overflow for three years in a row, having a load testing tool whose scripting is based in it is a great way to lure developers into trying and ultimately, sticking with it. ([View Highlight](https://instapaper.com/read/1383818342/15386363)) > What I mean by this is that the barrier to entry is low, if there is any at all. ([View Highlight](https://instapaper.com/read/1383818342/15386366)) > k6 has really good documentation (https://k6.io/docs/), however, there are certain things that you may find hidden where you’d least expect and it’s lacking in some specific examples for how to do things. ([View Highlight](https://instapaper.com/read/1383818342/15386370)) > Finally, its results reporting is quite good. ([View Highlight](https://instapaper.com/read/1383818342/15386373)) > If you’re coming from other popular tools such as JMeter or Gatling, you might find the way of doing certain things more difficult or somewhat “hacky.” ([View Highlight](https://instapaper.com/read/1383818342/15386378)) > there is no easy way to perform general checks or set acceptance criteria for the whole test. What I mean by this is that when using different groups as I did, you can’t define an error percentage or response time threshold for all of the requests inside each group from the “master” group. ([View Highlight](https://instapaper.com/read/1383818342/15386392)) > For k6, I think the fairest comparison you could make against similar tools is with Gatling. ([View Highlight](https://instapaper.com/read/1383818342/15386394)) > For me, the barrier to entry is lower with k6 than Gatling. My reasons for this are the fact that JavaScript is more widespread than Scala and also because I found k6’s docs to be more helpful than those of Gatling. ([View Highlight](https://instapaper.com/read/1383818342/15386397)) > Parameterization is easier with k6. In Gatling, if you want to change, for example, the number of VUs between runs, you first need to declare a variable in your script, which will then take the value from the maven parameters passed when running the script. However, in k6, you can have a hardcoded value for VUs in your script, run it, then run it again passing a flag and overwrite that value, without needing to touch the script. ([View Highlight](https://instapaper.com/read/1383818342/15386399)) > Gatling also supports a wide variety of protocols either natively or with help from its users’ communities while k6 only supports HTTP1.1 / 2 and WebSockets. ([View Highlight](https://instapaper.com/read/1383818342/15386404)) > When it comes to reporting, I’d say Gatling is the winner today since k6’s built-in reporting is not quite as advanced. ([View Highlight](https://instapaper.com/read/1383818342/15386406)) > Both tools offer a paid, cloud-based version that better support reporting and distributed executions. Gatling however, also offers a free shell script which allows you to distribute your simulation amongst as many machines as you’d like. This script does require some previous configurations in all of the generators though. ([View Highlight](https://instapaper.com/read/1383818342/15386410))