Skip to content

Latest commit

 

History

History
59 lines (32 loc) · 3.57 KB

Alternatives.md

File metadata and controls

59 lines (32 loc) · 3.57 KB

Alternatives

What alternatives exist? First of all let's look at why k6 + AWS Timestream could be a good solution.

Why k6

There's a good (although written by k6!) comparison of k6 against other load testing tools here.

The three key points for me are:

  • It's performant. As load tests get bigger they require more computing resources. This is expensive to orchestrate, costly, and environmentally unfriendly.
  • I can use existing Javascript libraries. There's a broad ecosystem of Javascript libraries and they allow us to reproduce browser behaviour accurately - for big tests they're typically end 2 end acting as browsers would do.
  • It's supported by Grafana.

Why AWS Timestream

A lot of businesses use AWS heavily. For good reason: it provides good tooling, it's well understood and supported, and allows huge scaling.

Whilst Timestream is not as mature as other AWS products (e.g. DynamoDB) Timestream is dedicated to storing Timeseries data. This means the burden of spinning up and maintaining the huge, but short lived infrastructure required for load testing is passed to AWS - and to a service designed to gather metrics from large numbers of users (or virtual users).

Why not

Consider alternative solutions if:

  • You have support to push to another k6 output.
  • You have an existing load testing solution.
  • You have teams that prefer to use another language or a UI.

k6 Alternatives

Load Test Frameworks

Artillery

Artillery has many of the same benefits as k6, and I do particularly like:

Locust

Locust looks to be a great solution for teams comfortable with Python or where there are Python libraries useful for a load test. It comes with a UI and is quite easy to get started running distributed tests - including an open source Terraform module.

Jmeter

Jmeter has a large number of performance testing experts who are comfortable with its use. It was first released in 1998 so is battle-hardened and well understood. Since scripts are generally built using a UI, it can be more suited to teams who do not necessarily write code.

Datastores

InfluxDB

InfluxDB has solutions that go from running it yourself, to running it as a pay-as-you-go serverless solution. It has multiple integrations and allows you to run SQL against your results.

TimescaleDB

TimescaleDB looks to be very performant, cost effective and easy-to-use but does not currently have a serverless solution. They published some interesting results in Dec 2020 showing much better performance results that suggests it would be a better choice for larger scale tests.

Summary

With Javascript and AWS being so popular, using k6 and Timestream should be a great starting point for many teams.