Kuinka ladata Testaa Node.js-sovelluksesi K6: lla

Okei, olet kehittänyt Node.js-sovelluksesi, suorittanut yksikkötestejä, suorittanut integraatiotestit nyt mitä sinun pitäisi tehdä? Sinun tulisi suorittaa kuormitustesti! oikea? Jotta voidaan nähdä, pystyykö sovelluksesi käsittelemään odotetun kuorman. Joten miten voit suorittaa kuormitustestin? Mitä työkalua on saatavana? Tässä artikkelissa aion puhua yhdestä sellaisesta työkalusta, jonka avulla voit ladata sovelluksesi testauksen.

Sovelluksen nimi on k6. K6 on avoimen lähdekoodin projekti, jonka tarkoituksena on tarjota mahdollisuus testata taustan infrastruktuurin suorituskyky. Sen kirjoittama Go ja JavaScript. K6 on moderni kuormituksen testaustyökalu, joka perustuu LoadImpact-kokemukseen. Se ei ole ensimmäinen työkalu, joka tuli esiin Google-hakutuloksissa. Mutta Grafanan visualisoima yksinkertaisuus ja kyky viedä tietoja InfluxDB: hen tekevät siitä tehokkaan työkalun sovelluksen lataamiseen.

K6 käyttää virtuaalisten käyttäjien (VU) käsitettä. Sinulla voi olla useita lukumäärä virtuaalisia käyttäjiä, jotka suorittavat testiskriptin samanaikaisesti. Testikomentosarjat voidaan kirjoittaa sovelluksellesi nykyaikaisella ES6-syntaksilla.

Asennus

Macissa voit suorittaa,

hauduta hana loadimpact / k6
hauduta asentaa k6

Jos olet toisella alustalla, lataa binääri täältä.

Kuormitustesti

Jotta lataustesti voidaan suorittaa k6: lla, sinun on luotava testiä kuvaava komentosarja. Seuraava on yksinkertainen esimerkki komentosarjasta,

tuo http: stä k6 / http;
tuo {tarkista, nukuta} kohdasta "k6";
vie let options = {
  vus: 10,
  kesto: "10s"
};
vie oletustoiminto () {
  olkoon res = http.get ("URL");
  tarkista (res, {
    "menestys": (r) => r.status == 200
  });
};

Vaihtoehtoissa vus määrittelee tarvitsemiesi virtuaalisten käyttäjien määrän ja kesto on testin suorittamiseen tarvittava aika. Yksityiskohtainen luettelo käytettävissä olevista vaihtoehdoista löytyy täältä.

Suorita testi suorittaa,

k6 suorita script.js

Tulokset ovat seuraavat:

/ \ | ‾‾ | / ‾‾ / / ‾ /
     / \ / \ | | _ / / / /
    / \ / \ | | / ‾‾ \
   / \ | | ‾ \ \ | (_) |
  / __________ \ | __ | \ __ \ \ ___ / Tervetuloa versioon k6 v0.17.1!
toteutus: paikallinen
     lähtö: -
     käsikirjoitus: /opt/k6-v0.17.2-linux64/script.js (js)
kesto: 10 s, iteraatiot: 0
        vus: 10, max: 10
verkko-käyttöliittymä: http://127.0.0.1:6565/
[käynnissä] 1s / 10s
[käynnissä] 1.9s / 10s
[käynnissä] 3s / 10s
[käynnissä] 3.9s / 10s
[käynnissä] 5s / 10s
[käynnissä] 5.9s / 10s
[käynnissä] 6.9s / 10s
[käynnissä] 8s / 10s
[käynnissä] 9s / 10s
[käynnissä] 9.9s / 10s
[tehty] 10s / 10s
✓ menestys
sekit ................: 100,00%
    tiedot vastaanotettu .........: 8,3 kB (828 B / s)
    data_lähetetty .............: 1,0 kB (100 B / s)
    http_req_blocked ......: keskiarvo = 15,34 ms korkeintaan = 460,51 ms med = 2,26 µs min = 1,17 µs p (90) = 4,87 µs p (95) = 6,37 µs
    http_req_ yhdistäminen ...: keskim. = 13,65 ms enintään = 409,75 ms med = 0 s min = 0 s p (90) = 0 s p (95) = 0 s
    http_req_duration .....: keskiarvo = 316,86 ms = 410,34 ms keskiarvo = 307,13 ms min = 263,38 ms p (90) = 399,14 ms p (95) = 406,81 ms
    http_req_vastaanotto ....: keskiarvo = 209,5µs max = 9,89 ms med = 117,57µs min = 62,95µs p (90) = 228,21µs p (95) = 289,2µs
    http_req_sending ......: keskiarvo = 21,04µs max = 195,85µs med = 16,37µs min = 7,74µs p (90) = 35,21µs p (95) = 43,46µs
    http_req_waiting ......: keskimäärin = 316,62 ms = 410,16 ms med = 306,97 ms min = 263,25 ms p (90) = 398,95 ms p (95) = 406,69 ms
    http_reqs .............: 300 (30 / s)
    vus ...................: 10
    vus_max ...............: 10

Näiden mittareiden merkitykset löytyvät täältä.

Tulosten visualisointi Grafanalla

Nyt kun tiedämme kuinka unohtaa muuttujat suorittamalla testit, avulla ne visualisoidaan Grafanassa. Jotta Grafanan tiedot voidaan visualisoida, meidän on vietävä ne Grafanan ymmärtämään muotoon. K6 tukee tietojen viemistä InfluxDB: hen, joka Grafana ymmärtää.

Seuraavat komennot asentavat Grafanan ja InfluxDB: n,

Ubuntu 16.04
Sudo apt-get install grafana
sudo apt-get install fluxdb
mac
hauduta asentaa grafana
hauduta asentaa effxdb

Oletuksena InfluxDB-palvelin toimii portissa 8086 ja Grafana-palvelin portissa 3000.

Nyt voidaan suorittaa lataustesti ja viedä tietoja InfluxDB: hen,

k6: n suoritus - outxdb = http: // localhost: 8086 / resultsdb script.js

Tässä resultsdb on tietokanta, joka luodaan InfluxDB: ään.

Siirry nyt kohtaan http: // localhost: 3000. Luo sitten tietolähde.

Tietolähteen määrittäminen

Aseta arvot kuten yllä. Valitse pääsy välityspalvelimeksi, jos haluat käyttää InfluxDB: tä palvelinpuolelta (esimerkiksi jos InfluxDB on käynnissä Grafana-palvelimen localhostissa)

Luo nyt uusi kojetaulu (päävalikko -> kojetaulut -> uusi) ja luo kuvaaja.

kaavio

Siirry graafin muokkaustilaan ja valitse luotu tietolähde Metrics-sovelluksessa. Voit valita muuttujan seuraavasti. Kun valitset muuttujan, tiedot ladataan kaavioon.

Muokkaa tietoja

Elämämme helpottamiseksi käyttäjät ovat jo luoneet kattavat Grafanan kojetaulut. Jotta voit tuoda ne,

Päävalikko -> Kojetaulut -> Tuo

Nyt sinun on kirjoitettava hallintapaneelin tunnus. Tämän kojelautatyypin 2587 tuonti.

Esiasetettu Grafanan kojelauta

Ok ihmiset, onnellinen kuormitustestaus !!!