Blog post -

How we created k6 - the engineering story.

As mentioned in a previous blogpost, we here at Load Impact had realized there were no load testing tools suitable for developers. Most of them were either too simple and limited, like ApacheBench, or they were old, large and clunky GUI applications with little appeal to developers, like JMeter or Load Runner. The end result of this lack of suitable tools was that developers have not been doing much load testing at all. Given the complex-to-learn and -use tools it hasn’t been worth the effort for them.

We wanted to change this, and at the same time build a tool we could use ourselves in our online load testing service, so we sat down and thought about what a good, modern load testing tool for developers should look like, and then tried to come up with a design that matched those criteria. We have written an article explaining our reasoning, the conclusions and the decisions we made.

In our view, a good load testing tool for developers should be:

  • Scriptable in a popular, high-level language, so that a large portion of developers would feel at home immediately and not have to learn much that was new to them, while still giving them the power and flexibility they need. They can write test cases in real code, not some limited DSL.
  • High-performing, so that it could be run on limited hardware (e.g. a laptop) and still be useful.
  • Written in a popular language, so that we might get community contributions in the open source project.
  • Suitable for automation. Automation-friendly scripting API, pass/fail results, standardized output format that can be parsed by a computer, etc.

We also have some requirements that probably do not affect the design of the tool, such as:

  • It should be an open source project. Developers these days expect open source and many shy away from tools that do not publish their source code, or even from tools without an open source license acceptable to them. We also believe that having the code out in the open makes the tool better, plus it may encourage more help from, and interaction with, the community. Check out our open source stewardship text for more information.

Read the full article here

Related links

Topics

  • Computers, computer technology, software

Categories

  • k6
  • load impact
  • load testing
  • performance testing
  • open source load testing
  • open source load testing tool
  • golang
  • javascript
  • automation testing
  • unit testing
  • devops
  • continuous integration
  • continuous delivery

Related content

  • Load Impact Announces its Next Generation Load Testing Solution

    Stockholm, Sweden - 26 June 2018 - Load Impact, the leading provider of SaaS solutions for load testing of websites, apps and APIs, is excited to announce its next generation solution consisting of 3 key components: k6, Load ImpactInsights and Load Impact Cloud Execution. It’s built for today’s DevOps teams and fits into software developers’ Continuous Integration workflows. Load Impact allows tea

  • Updated version of the Open Source load testing tool benchmarks conducted earlier this year

    Earlier this year, we wrote a couple of articles reviewing the functionality, usability (link to review article) and performance (link to benchmark article) of a bunch of open-source load testing tools. Since then, we have uncovered our own open-source load testing tool — k6 — and it would seem it is time for an update to our reviews and benchmarks, so that we both include k6 but also test newer v

  • The State of Load Testing according to us

    "Once upon a time, I wrote a very simple command-line load testing tool in C. I called it "myload", partly because it was written by, well...myself, and partly as an allusion to MySQL (this was back in the days when MySQL ruled and I had yet to start using PostgreSQL)", says Ragnar Lönn, the founder of Load Impact.
    Reinventing the wheel gets better the second (and third) time you do it
    After