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

Поділитися
Вставка
  • Опубліковано 25 тра 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
  • Наука та технологія

КОМЕНТАРІ • 47

  • @DevOpsToolkit
    @DevOpsToolkit  2 роки тому +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), UA-cam tends to delete comments that contain links. Please do not use them in your comments.

  • @k6io
    @k6io 2 роки тому +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 2 роки тому +4

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

  • @pawezgorecki4117
    @pawezgorecki4117 9 місяців тому +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.

  • @sameterayerdem676
    @sameterayerdem676 2 роки тому +4

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

  • @mikkel3135
    @mikkel3135 2 роки тому +2

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

  • @viniciosantos
    @viniciosantos 2 роки тому +1

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

  • @felipeozoski
    @felipeozoski Рік тому +1

    Gotta love this channel ❤

  • @IvanVasilev-bp4ez
    @IvanVasilev-bp4ez Місяць тому +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.

  • @JaydeepDave12
    @JaydeepDave12 Рік тому +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

  • @saigajester
    @saigajester 2 роки тому +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.

  • @randythamrin5976
    @randythamrin5976 2 роки тому +1

    Thanks man

  • @rajkumarchintakayala532
    @rajkumarchintakayala532 Рік тому +2

    Thanks for the great tutorial. The best I found on UA-cam.
    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  Рік тому +1

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

  • @icurtispe
    @icurtispe 2 роки тому +2

    Cool t-shirt =)

  • @phanitejamarupaka4902
    @phanitejamarupaka4902 2 роки тому +1

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

    • @DevOpsToolkit
      @DevOpsToolkit  2 роки тому

      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  Рік тому

      After a long delay, it's finally done and available at ua-cam.com/video/Wavigyq7NdQ/v-deo.html

  • @scottamolinari
    @scottamolinari Рік тому +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  Рік тому +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.

  • @szymapans
    @szymapans 2 роки тому +4

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

  • @fenarRH
    @fenarRH 2 роки тому +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  2 роки тому +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.

  • @kumarsaheb
    @kumarsaheb 2 роки тому +1

    I like "You should be ashamed" .. Haha

  • @ecruz1542
    @ecruz1542 Рік тому +1

    Sleep does matter 😃

  • @nnutipa
    @nnutipa 2 роки тому +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  2 роки тому +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 2 роки тому +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  2 роки тому +2

      @@KevinONeillPlus Thanks for the clarification Kevin.

    • @vagabondz
      @vagabondz Рік тому +1

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

    • @DevOpsToolkit
      @DevOpsToolkit  Рік тому

      @@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.

  • @minimalistdev3042
    @minimalistdev3042 2 роки тому +1

    What would you use for acceptance tests?

    • @DevOpsToolkit
      @DevOpsToolkit  2 роки тому +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.

  • @ayoubhoussameddinebelagha9653
    @ayoubhoussameddinebelagha9653 4 місяці тому

    26:45 😂

  • @DaniilBubnov
    @DaniilBubnov Рік тому +1

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

  • @kazsm9666
    @kazsm9666 Рік тому +1

    What about Locust?

  • @patrick93ferreira
    @patrick93ferreira 2 місяці тому +1

    K6 or artilery? and why?

    • @DevOpsToolkit
      @DevOpsToolkit  2 місяці тому

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

  • @swarajray6997
    @swarajray6997 Рік тому +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  Рік тому +1

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

  • @_kevin_
    @_kevin_ 2 роки тому +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  2 роки тому +3

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

    • @vagabondz
      @vagabondz Рік тому +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  Рік тому +1

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