k6 - Лепшы досвед распрацоўшчыка для тэсціравання нагрузкі

За апошнія гады індустрыя тэставання прадукцыйнасці перажыла радыкальную трансфармацыю. Традыцыйна выпрабаванні нагрузкі праводзілі інжынеры па тэсціраванні прадукцыйнасці, а таксама інжынеры па кантролі якасці і тэсціроўшчыкі. Гэтыя ролі звычайна працавалі ў якасці незалежных падраздзяленняў, правяраючы прадукцыйнасць пасля таго, як распрацоўшчыкі скончылі стварэнне прыкладанняў.

З прыняццем гнуткіх прынцыпаў сярод каманд распрацоўшчыкаў праграмнага забеспячэння тэставанне прадукцыйнасці па меры актыўнасці пачынаецца значна раней у працэсе распрацоўкі, так званай тэсціраванне па змене ўлева . Замест таго, каб пакідаць тэсціраванне прадукцыйнасці аддзелу кантролю якасці, каманды праграмнага забеспячэння зараз праводзяць тэставанне самастойна альбо ў супрацоўніцтве з інжынерамі кантролю якасці.

Яшчэ адна перавага зрушэння тэставання ўлева - гэта ўсё большае павелічэнне ўзроўню тэставання прадукцыйнасці ў праграмных камандах. Але многія з гэтых новых карыстальнікаў патрабуюць інструментаў, якія выдатна ўпісваюцца ў іх паўсядзённы працоўны працэс , дазваляючы ім рэгулярна тэстуйце з мінімальнымі намаганнямі. Традыцыйныя інструменты, такія як JMeter і LoadRunner, не падыходзілі так добра, і замест гэтага яны звяртаюцца да новага пакалення інструментаў, такіх як k6.




Раскрыццё k6

k6 - гэта бясплатная і інструмент тэсціравання нагрузкі з адкрытым зыходным кодам з мэтай зрабіць тэставанне прадукцыйнасці прадуктыўным і прыемным.

Інструмент можна падключыць да сцэнарыяў, а тэсты k6 напісаны на Javascript , што дае магчымасць пісаць тэсты на адной з самых вядомых моў праграмавання.


Магутная мова сцэнарыяў і API прадстаўляюць неабходную гнуткасць для імітацыі рэальных сцэнарыяў у вашых сцэнарыях. Паколькі прыкладання і сістэмы пастаянна развіваюцца, магчымасць мадулярызацыі тэстаў рэзка павысіць эфектыўнасць працэсу тэставання.

img / performance / 81 / k6-the-best-developer-experience.png

k6 - гэта інструмент каманднага радка, даступны для Windows, Linux і Mac. Акрамя таго, ёсць афіцыйны малюнак Docker.

Выканаць тэст прадукцыйнасці з k6 так жа проста, як запусціць каманду bash:


img / performance / 81 / k6-the-best-developer-experience-2.png

Некалькі прыкметных асаблівасцей сцэнарыяў:

  • Надзейныя і добра дакументаваныя API Javascript для тэставых сцэнарыяў
  • Глыбокая наладка з дапамогай некалькіх варыянтаў канфігурацыі
  • Сцэнарыі
  • Параметрызацыя з дапамогай зменных асяроддзя
  • Падтрымка Websockets
  • Крукі жыццёвага цыкла для налады ўстаноўкі і адключэння
  • Праверкі, паказчыкі, тэгі, файлы cookie ...


Запіс сеансаў і канвертары

Як і самыя складаныя інструменты тэсціравання нагрузкі, k6 мае рэгістратар сеансаў, які палягчае стварэнне тэстаў нагрузкі з карыстацкай сесіі. Вам трэба толькі прадаставіць файл HAR з браўзэра альбо сеансу карыстальніка, і рэгістратар створыць для вас тэст k6. Гэта асабліва карысна, калі вы вэб-сайты для тэставання нагрузкі .

Акрамя таго, іншыя інструменты могуць дапамагчы вам аўтагенераваць тэсты k6 з розных тэхналогій:


  • Пераўтваральнік JMeter: пераўтварэнне файла .MX JMeter у сцэнар k6.
  • Пераўтваральнік паштальёнаў: пераўтварэнне калекцыі паштальёнаў у сцэнар k6.
  • Канвертар OpenAPI: пераўтварыць спецыфікацыю Swagger / OpenAPI у сцэнар k6.
  • Пашырэнне аглядальніка: генерацыя сцэнарыя k6 з сеансу браўзэра. Даступна толькі для карыстальнікаў воблака k6.

Хоць вам не трэба выкарыстоўваць дыктафон і канвэртары, каб пачаць тэставанне, гэтыя інструменты могуць дапамагчы хутчэй уключыць вашу каманду ў k6 альбо стварыць тэсты.

Рэгістратар і канвертар сесій



Візуалізацыя вынікаў

Па змаўчанні k6 выводзіць вынік на кансоль. Акрамя таго, даступна некалькі інтэграцый, якія дапамогуць вам падчас аналізу і візуалізацыі вынікаў тэстаў:

  • Апач Кафка
  • k6 Воблака
  • DataDog
  • Прыток DB + Графана
  • JSON
  • NewRelic
  • СтатыстыкаD

img / performance / 81 / k6-the-best-developer-experience-4.png




Бесперапыннае і аўтаматызаванае тэсціраванне

У супольнасці тэсціравання аўтаматызацыя з'яўляецца канчатковай мэтай для многіх арганізацый. Калі ваша прыкладанне і сістэма змяняюцца, аўтаматызацыя і правядзенне частых тэстаў дапамогуць вам раней улавіць рэгрэс прадукцыйнасці.

У дакументацыі прыведзены рэкамендацыі па большасці папулярных інструментаў CI / CD, якія дазваляюць лёгка інтэграваць k6 у канвееры CI.

  • Лазурныя трубаправоды
  • CircleCI
  • Дзеянні GitHub
  • GitLab
  • Джэнкінс
  • TeamCity

Каманда k6 лічыць, што выраб тэставанне мэтанакіраванага з'яўляецца неабходным умовай для аўтаматызацыі. Пры запуску аўтаматызаваных тэстаў асноўная мэта вашага тэсту павінна быць па-першае, каб праверыць чаканні прадукцыйнасці вашай сістэмы, а па-другое, папярэдзіць вас, калі сістэма не адпавядае мэтам прадукцыйнасці. Напрыклад, праверка, што:

  • Час адказу на 95% запытаў не перавышае 600 мс.
  • Сістэма не дае памылак больш за 0,5%.

У k6 вы вызначаеце гэтыя чаканні з Парогі у вашым тэсце. Калі ваша сістэма не дасягне іх, k6 паведаміць вам пра няспраўнасць, якая вяртае ненулявы код выхаду.


img / performance / 81 / k6-the-best-developer-experience-5.png

Калі вы хочаце даведацца больш пра гэтую тэму, прачытайце кіраўніцтва k6 аўтаматызацыя тэсціравання прадукцыйнасці і дакументацыя 'Парогі'.



k6 Воблака

k6 Воблака з'яўляецца камерцыйным прадуктам SaaS, які суправаджае інструмент k6 з адкрытым зыходным кодам. k6 OSS бясплатны і мае некалькі інтэграцыі кіраваць тэстамі нагрузкі ў вашай уласнай інфраструктуры. Воблака k6 - гэта неабавязковая паслуга, якая забяспечвае інфраструктуру і сістэмы тэсціравання нагрузкі, якія дапамогуць вам правесці выпрабаванні.

Каб лепш зразумець, што такое воблака k6, пералічым некалькі яго асаблівасцей:

  • Маштабуйце тэсты па гарызанталі і ў розных геаграфічных месцах.
  • Захоўвайце і візуалізуйце вынікі тэстаў.
  • Аўтаматычна выяўляе праблемы з прадукцыйнасцю.
  • Суадносіце вынікі паміж рознымі тэстамі.
  • Убудаваныя карыстальнікі з канструктарам графічнага інтэрфейсу.
  • Арганізуйце каманды і выпрабаванні ў цэнтральным месцы.
  • Аказанне спецыяльнай падтрымкі.

k6 Воблака



Супольнасць

Суполка k6 сапраўды падтрымлівае і дапамагае - сіла поспеху праекта.

Калі вы пачынаеце з k6, не забудзьцеся звязацца з імі Слабасць альбо форум супольнасці для любых тыпаў пытанняў. Ёсць некалькі каналаў і катэгорый для розных тэм, такіх як #grafana, #documentation, #feedback, #duscussion і г.д.

Для тых, хто цікавіцца ўнутранымі элементамі праекта, прытрымлівайцеся праекту ў GitHub .



Выснова

Гэты пост накіраваны на прадстаўленне ўводу k6 - аднаго з самых захапляльных інструментаў тэсціравання нагрузкі. Калі вы хочаце даведацца, што яшчэ можа прапанаваць k6, рэкамендуем прачытаць k6 Дакументы .

Усяго за чатыры гады жыцця k6 стаў шматфункцыянальным і канкурыраваў з добра вядомымі інструментамі, атрымаўшы зорнае прызнанне сярод распрацоўшчыкаў, DevOps і супольнасцей, якія тэстуюць.

Каманда k6 і супольнасць стварылі інструмент тэсціравання прадукцыйнасці, арыентаваны на распрацоўшчыкаў, які адпавядае попыту і патрэбам новай эры.