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

Поделиться
HTML-код
  • Опубликовано: 7 сен 2024

Комментарии • 48

  • @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), RUclips tends to delete comments that contain links. Please do not use them in your comments.

  • @k6io
    @k6io 2 года назад +72

    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!

  • @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!

  • @zgoor
    @zgoor Год назад +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.

  • @IvanVasilev-bp4ez
    @IvanVasilev-bp4ez 5 месяцев назад +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.

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

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

  • @felipeozoski
    @felipeozoski Год назад +1

    Gotta love this channel ❤

  • @viniciosantos
    @viniciosantos 2 года назад +1

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

  • @icurtispe
    @icurtispe 2 года назад +2

    Cool t-shirt =)

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

  • @rajkumarchintakayala532
    @rajkumarchintakayala532 2 года назад +2

    Thanks for the great tutorial. The best I found on RUclips.
    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  2 года назад +1

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

  • @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  2 года назад

      After a long delay, it's finally done and available at ruclips.net/video/Wavigyq7NdQ/видео.html

  • @szymapans
    @szymapans 2 года назад +4

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

  • @randythamrin5976
    @randythamrin5976 2 года назад +1

    Thanks man

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

  • @kumarsaheb
    @kumarsaheb 2 года назад +1

    I like "You should be ashamed" .. Haha

  • @ecruz1542
    @ecruz1542 Год назад +1

    Sleep does matter 😃

  • @DaniilBubnov
    @DaniilBubnov Год назад +1

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

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

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

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

  • @patrick93ferreira
    @patrick93ferreira 5 месяцев назад +1

    K6 or artilery? and why?

    • @DevOpsToolkit
      @DevOpsToolkit  5 месяцев назад

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

  • @ayoubhoussameddinebelagha9653
    @ayoubhoussameddinebelagha9653 8 месяцев назад

    26:45 😂

  • @kazsm9666
    @kazsm9666 Год назад +1

    What about Locust?

  • @_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?