Ola har tidligere fortalt oss litt om hvordan de på NRK innførte K6 for test av ytelse. Nå var turen kommet for å gi ivrige kollegaer en innføring.
Gjør hverandre gode
En klassisk utfordring innen ytelsestest er at vi ønsker å forsikre oss om at den ene noden eller serveren tåler mange samtidige brukere. En liknende situasjon møtte oss da vi kom inn i lokalet hvor kurset om ytelsestest skulle være. Der sto det nemlig kun noen få datamaskiner, langt under antallet kursdeltakere. Ola hadde andre planer enn å snakke ut fra en PowerPoint. Han ville nemlig også gi oss en innføring i mobbprogrammering.
Så hvordan hadde han da tenkt å løse dette med mange testere som deler maskin? Han satte opp følgende regler:
- Vi deler inn i grupper på 5 som deler 1 maskin
- Alle deltakere skal sitte foran tastaturet i 10 minutter hver
- Den som sitter ved tastaturet får kun lov til å gjøre det som gruppen sier
- Gruppen diskuterer løsninger på oppgavene som er angitt innen ytelsestest og K6, og forteller den ved tastaturet hva skal gjøres
- Når alle har hatt sin tur, er det obligatorisk pause
Snakk om å lære ytelsestest «by doing»!
En slik fremgangsmåte har definitivt fordel i å inkludere deltakerne, skape et felles eierskap til koden og testen, og ikke minst deling av kompetanse.
Vår første ytelsestest
Etter å ha gått inn på github-sidene hvor Ola hadde forberedt oppsett og oppgaver, startet gruppene. Dialogen gikk lett, og det var lov til å prøve og feile. De første oppgavene var noe enklere. De med mindre erfaring om Javascript kom seg raskt opp i kunnskaper. Når vi samlet forsto hva vi skulle gjøre, og deretter konsulterte hverandre og dokumentasjonen, fikk vi kjørt vår første vellykkede ytelsestest. Deretter gikk det slag i slag.
50 requests på 10 sekunder? – Det gikk fint!
Terskel for tillatt responstid? – Klarte det også!
Vår første ytelsestest ble faktisk «vår» test!
Utviklervennlig
K6 er et lasttestverktøy skrevet i programmeringsspråket Go. Verktøyet er lett å komme i gang med, og har blitt et alternativ til verktøy som Gatling og JMeter. Det sies at verktøyet er utviklervennlig siden det ikke krever noen spesifikke kjøretidsmiljøer. Det kjøres både lokalt og i skyen, og testene skrives i JavaScript.
Noe for deg?
Du kan gjerne prøve litt selv, se Olas side for kurset på Github. Dette kurset ti