The Best Performance And Load Testing Tool? k6 By Grafana Labs

Sdílet
Vložit
  • čas přidán 6. 07. 2024
  • k6 is an open-source load and performance testing tool. It competes with tolls like JMeter and Gatling and is now part of the Grafana Labs suite of tools.
    #k6 #GrafanaLabs #LoadTesting #PerformanceTesting
    Consider joining the channel: / devopstoolkit
    ▬▬▬▬▬▬ 🔗 Additional Info 🔗 ▬▬▬▬▬▬
    ➡ Gist with the commands: gist.github.com/fda147804b59f...
    🔗 k6: k6.io
    🎬 Google Cloud Run (GCR) vs Azure Container Instances (ACI) vs AWS ECS with Fargate: • Google Cloud Run (GCR)...
    ▬▬▬▬▬▬ 💰 Sponsoships 💰 ▬▬▬▬▬▬
    If you are interested in sponsoring this channel, please use calendly.com/vfarcic/meet to book a timeslot that suits you, and we'll go over the details. Or feel free to contact me over Twitter or LinkedIn (see below).
    ▬▬▬▬▬▬ 👋 Contact me 👋 ▬▬▬▬▬▬
    ➡ Twitter: / vfarcic
    ➡ LinkedIn: / viktorfarcic
    ▬▬▬▬▬▬ 🚀 Courses, books, and podcasts 🚀 ▬▬▬▬▬▬
    📚 Books and courses: www.devopstoolkitseries.com
    🎤 Podcast: www.devopsparadox.com/
    💬 Live streams: / devopsparadox
    ▬▬▬▬▬▬ ⏱ Timecodes ⏱ ▬▬▬▬▬▬
    00:00 Introduction
    01:59 What is Load, Stress, And Performance Testing
    03:17 k6 Syntax
    05:51 Run Load Tests With k6
    10:44 k6 Performance
    13:49 k6 Options
    15:27 k6 Stages
    21:30 k6 Thresholds In CI/CD Pipelines
    25:13 k6 Cloud
    28:59 Export And Monitor k6 Results
    30:22 k6 Pricing
    31:48 k6 Pros And Cons
  • Věda a technologie

Komentáře • 48

  • @DevOpsToolkit
    @DevOpsToolkit  Před 2 lety +4

    Which tool are you using for load testing (if any)?
    IMPORTANT: For reasons I do not comprehend (and Google support could not figure out), CZcams tends to delete comments that contain links. Please do not use them in your comments.

  • @k6io
    @k6io Před 2 lety +70

    Wow, this was such a great introduction to k6! This was shared internally and everyone on the team loves it! Thank you for appreciating this tool we're building. :) - Nicole

  • @wushuartgaro
    @wushuartgaro Před 2 lety +4

    I have been using k6 since last year, it really nails the performance testing with its simplicity, extensibility and great performance. Love it!

  • @mikkel3135
    @mikkel3135 Před 2 lety +2

    Already noticed the project looking through Grafana products, glad to have a video about it for the future!

  • @sameterayerdem676
    @sameterayerdem676 Před 2 lety +4

    I used a lot of test tool jmeter , apache benchmark , superbenchmarker etc . but it is different this is insane thanks

  • @felipeozoski
    @felipeozoski Před rokem +1

    Gotta love this channel ❤

  • @viniciosantos
    @viniciosantos Před 2 lety +1

    Great info thank you. I’ve been looking for alternatives to jmeter, this seems like a good option.

  • @pawezgorecki4117
    @pawezgorecki4117 Před 10 měsíci +4

    There is a major con of k6 not mentioned here, which is data uploads. Current k6 API doesn't support loading file contents to memory shared between VUs. Hence every VU needs to load data into memory on its own, resulting in skyrocketing memory consumption when testing anything related to file uploads at a reasonable scale.

  • @rajkumarchintakayala532
    @rajkumarchintakayala532 Před rokem +2

    Thanks for the great tutorial. The best I found on CZcams.
    Quick question: I started learning the load testing using JS & K6 recently. I did the setup and running the tests in docker container by adding the Grafana & Influx DB dependencies in docker-compose file. Is there any limit for VU's in this case?

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem +1

      There is a limit of VUs you can run in parallel and it depends on the available CPU and the operating system.

  • @JaydeepDave12
    @JaydeepDave12 Před rokem +2

    Looking at the number of subscribers to this channel, we can say that there are not enough good DevOps people in the world. only 36.5k

  • @randythamrin5976
    @randythamrin5976 Před 2 lety +1

    Thanks man

  • @saigajester
    @saigajester Před 2 lety +2

    Gatling. I reuse the API tests written in Karate. Moreover I love the feature of defining the way traffic builds up (arrival rate, sustain, leave rate). Karate DSL is way simpler for testers in my team hence Gatling was better positioned.

  • @icurtispe
    @icurtispe Před 2 lety +2

    Cool t-shirt =)

  • @IvanVasilev-bp4ez
    @IvanVasilev-bp4ez Před 3 měsíci +1

    As far as I know K6 is using a non-blocking IO approach to handle network traffic and connections which does not require 1 thread per 1 VU and that's why it's so CPU and memory efficient. Unlike jMeter which uses 1 thread per 1 VU which consumes a lot of resources.
    One thing that was really not intuitive for me is that you need to tag explicitly every request otherwise you won't be able to distinguish which type of request is slow and which is fast - they'll all go in the same bucket. Because if there is a problem somewhere it's probably either on home page or article page or something and you need to track it down. While there is load of fine-grain data which is not much useful. For example the TLS handshake time - ok, what I'm going to do with this, it comes from the server, not my app...
    But in general K6 is really great and useful tool.

  • @phanitejamarupaka4902
    @phanitejamarupaka4902 Před 2 lety +1

    Good one :) Your channel looks great. Please make a video on kpt.

    • @DevOpsToolkit
      @DevOpsToolkit  Před 2 lety

      It's already on my TODO list. I can't say when it'll be done, but I can say that it will.

    • @DevOpsToolkit
      @DevOpsToolkit  Před 2 lety

      After a long delay, it's finally done and available at czcams.com/video/Wavigyq7NdQ/video.html

  • @scottamolinari
    @scottamolinari Před rokem +1

    Out of curiosity. One of the user stories we have is to have a secondary site that will show the status of clusters to customers. We want to also offer an additional monitoring notification process for each customer's site, so if anything happens, we can notify them before they find out from their own customers, that there is an issue (and we also know about the issue too and are working on it or if the IaaS provider is at fault). Could a self-hosted k6 cover this use case, i.e. heartbeating server-side web apps (something like an automated 10 sec interval of a 1 vus call to a special health check URL for different domains)? My thinking, after watching this great review, is also offering an expanded service to our customers, so they can also load test their sites/ our system too (only for a limited time, of course). Basically the idea would be, 1. to show customer what they use is working properly 2. if it isn't working, we'll let them know before their customers will. 3. instill trust that we have their backs covered even when they get blasted with requests = success!!

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem +1

      I would not recommend using it for heartbeat signals. It is focused on performance and load testing. If you need to see statuses of infra, series, and apps using kubernetes as a control plane might be a good option. You might want to explote crossplane or other similar kubernetes-native tools which can give you the info you need through statuses and events.

  • @minimalistdev3042
    @minimalistdev3042 Před 2 lety +1

    What would you use for acceptance tests?

    • @DevOpsToolkit
      @DevOpsToolkit  Před 2 lety +3

      I'm guessing that byt acceptance tests you mean any type of functional tests that are validating an app or a system as a whole instead of doing it on the unit level. If that's the case, it's been a while since I wrote such tests myself. Back when I did write those, I used Selenium for browser-based apps, and for everything else I used "typical" tests in whichever language the app was written.

  • @fenarRH
    @fenarRH Před 2 lety +1

    (1) You look & sound more positive that's good :-) (2) It looks k6 docker image is still under loadimpact/k6 , not under grafana repo. (3) Cloud saas option is expensive imho for a developer use.

    • @DevOpsToolkit
      @DevOpsToolkit  Před 2 lety +1

      1) thanks. I guess some tools produce different reactions than others. 2) they still seem to be transitioning to grafana labs. The purchase is relatively recent. 3) SaaS is indeed expensive.

  • @nnutipa
    @nnutipa Před 2 lety +1

    Hey, thanks for the video. This hidden tranformation from JS to Go is bothering me. What if you import some library in JS and then it would be a problem with this transformation to Go? Is it possible to use Go directly?

    • @DevOpsToolkit
      @DevOpsToolkit  Před 2 lety +2

      I'm not fond of the "transformation" either. I'd prefer if the syntax is Go instead of JS. Nevertheless, I recognize that JS might have a wider adoption.

    • @KevinONeillPlus
      @KevinONeillPlus Před 2 lety +3

      I think Viktor may have misrepresented this. The JavaScript is not “transformed” into go. K6 runs a JavaScript engine (goja) which supports most of es5.1, but it’s slow, an order of magnitude slower than v8. Go is used as the control plane.

    • @DevOpsToolkit
      @DevOpsToolkit  Před 2 lety +2

      @@KevinONeillPlus Thanks for the clarification Kevin.

    • @vagabondz
      @vagabondz Před rokem +1

      @@DevOpsToolkit So will there be issues in using external libraries/dependencies?

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem

      @@vagabondz i do not use many libraries so i cannot answer that question. Most of my needs are covered with those that come out of the box.

  • @szymapans
    @szymapans Před 2 lety +4

    Good one. Get some sleep Victor ;) more than a second

  • @ayoubhoussameddinebelagha9653

    26:45 😂

  • @kumarsaheb
    @kumarsaheb Před 2 lety +1

    I like "You should be ashamed" .. Haha

  • @DaniilBubnov
    @DaniilBubnov Před rokem +1

    Have you refreshed your k6 token? It was shared in the video😳

  • @patrick93ferreira
    @patrick93ferreira Před 3 měsíci +1

    K6 or artilery? and why?

    • @DevOpsToolkit
      @DevOpsToolkit  Před 3 měsíci

      In the meantime, i switched to ddosify. I can't comment on Artillery since i haven't used it (yet).

  • @ecruz1542
    @ecruz1542 Před rokem +1

    Sleep does matter 😃

  • @kazsm9666
    @kazsm9666 Před rokem +1

    What about Locust?

  • @swarajray6997
    @swarajray6997 Před rokem +2

    K6 has the weird AGPL v3 licence which is "network leftover" licence which is why most of us avoid it. Better trust Apache 2 and MIT licensed tools

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem +1

      You're right. My bad. I should have mentioned that in the video.

  • @_kevin_
    @_kevin_ Před 2 lety +1

    Looks very rudimentary compared to JMeter in my opinion. At he beginning you said you were looking for a more modern and better tool, would have been nice to have a comparison with existing tools, detailing why k6 is more modern and better. This looks well suited for simple use cases and for developers but not so much for QA teams dedicated to load tests.

    • @DevOpsToolkit
      @DevOpsToolkit  Před 2 lety +3

      That might be true.
      I'm curious. What is the feature you think is missing the most in k6?

    • @vagabondz
      @vagabondz Před rokem +1

      @@DevOpsToolkit For example, is there an analog to feeders that Gatling provides? It is used to inject data into virtual users from external sources (json, csv and more). This is pretty crucial.

    • @DevOpsToolkit
      @DevOpsToolkit  Před rokem +1

      Something like k6.io/docs/javascript-api/init-context/open?