Lasttest del 1 - Introduktion

Lasttest

Om du har följt våra tidigare artikelserier och gjort din hemläxa har du redan insett vikten av att locka besökare till din sajt genom att tänka omnichannel, paketera dina erbjudanden med en bra story, och har kanske till och med tagit steget ut och internationaliserat din sajt. Allt arbete blir dock snabbt för intet om sajten inte håller för trycket utan rasar samman, men även ett mindre drastiskt scenarie kan få dramatiska effekter. En studie från Akamai har t.ex. visat att 40 % av användarna lämnar en e-handelssajt om sidladdningen tar mer än 3 s, och 64 % av dessa väljer en annan sajt nästa gång de ska shoppa. Det finns därför mycket att vinna på att säkerställa att sajten levererar även när trycket på den ökar.

När bör man lasttesta?

Lasttester syftar till att ge ett mått på hur väl systemet fungerar vid en given last, d.v.s. när ett visst antal användare utför en eller flera specifika uppgifter på sajten. Dessa mått brukar särskilt efterfrågas inför större kampanjer där man förväntar en betydande ökning av antalet besökare, eller i samband med en större systemändring. Vid dessa fall vill man antingen säkerställa att man klarar den givna lasten, eller helt enkelt undersöka gränserna för vad systemet klarar av. Det senare fallet är egentligen inte per definition ett lasttest, utan ett stresstest, men tekniken är densamma.

Även mindre ändringar kan dock få stora konsekvenser för prestandan. Detta fångas normalt inte i funktions- eller regressionstester, och det kan därför vara bra att köra lasttester kontinuerligt i samband med varje release som en del i systemets QoS-testning.

I de två kommande artiklarna kommer vi att gå in mer detaljerat på hur man; (i) säkerställer att systemet klarar ett visst antal användare och hittar eventuella flaskhalsar inför t.ex. en kampanj (stresstest), och (ii) kontinuerligt följer upp systemets prestanda (QoS-testning).

I den här inledande artikeln tittar vi istället mer allmänt på hur man går tillväga för att sätta upp ett lasttest.

Vad ska vi mäta?

Det mest grundläggande mätetalet vid ett lasttest är laddtiden för de olika sidorna på sajten, och då gärna också mätt från olika geografiska platser. Om det visar sig att laddtiden vid full last fortfarande med god marginal ligger under det värde som anses acceptabelt så finns det inte heller något behov av att mäta något annat. Skulle det däremot visa sig att laddtiden ökar mer än önskvärt ger det dock väldigt lite information om vad som är orsaken till detta. För att förstå bättre vad som påverkar resultatet bör man därför titta på den individuella laddtiden för de olika delarna som utgör innehållet på varje sida som HTML, CSS, javascript, json och bilder. Det är också viktigt att mäta saker som bandbredd, CPU-användning och minnesanvändning, för att kunna avgöra vad som är flaskhalsen i systemet.

Vilka sidor ska testas?

För att få ett rättvisande resultat så är det av yttersta vikt att den last som man genererar mot systemet verkligen återspeglar hur användarna rör sig på sajten och de uppgifter som de utför på denna. Det krävs därför en god kunskap om sina användare för att kunna skapa ett bra lasttest. Verktyg som Google Analytics kan vara en bra utgångspunkt för detta.

För att lasttesta en e-handelssajt räcker det alltså normalt inte med att enbart surfa runt på sajten utan vi behöver även simulera att varor läggs i kundvagnen, att användare registrerar sig eller loggar in, samt att ordrar faktiskt läggs.

Hur genomför man ett lasttest?

Det enklaste för att skapa ett lasttest är att använda sig av ett för ändamålet framtaget verktyg som t ex OctoPerf. Dessa verktyg låter dig skapa användarscenarier, generera last utifrån användarscenarierna, och presenterar resultatet av lasttesterna.

Ett användarscenarie skapas typiskt upp genom att spela in en användare som utför en viss uppgift på sajten och sparar detta som ett script. Scriptet kan sedan manipuleras så att det t.ex. hämtar inloggningsuppgifter från en tabell eller slumpvis genererar data.

Ett lasttest skapas sedan genom att man tar fram en lastprofil som anger hur många användare som ska vara aktiva vid varje tidpunkt, samt vilka användarscenarier som dessa ska köra. Dessa användarscenarier körs sedan från en separat serverpark som anropar sajten som ska testas över Internet. Det finns också möjlighet att ställa in så att vissa andelar av scenarierna körs från olika geografiska punkter.

Under testet spelas sedan mätetal som laddtider mm in och presenteras för användaren så att denna kan analysera resultatet av testen.

Lasttest

I nästa artikel kommer vi att gå igenom ett exempel på hur man kan sätta upp ett lasttest inför t ex en kampanj samt hur man tolkar resultaten.

Kontakta oss

Vi berättar gärna mer om lasttester.

*

Lasttest del 2 – Genomföra tester

I den här andra delen om lasttest går vi igenom hur man hittar eventuella flaskhalsar i systemet och undersöker hur mycket last systemet klarar med bibehållen användarupplevelse. På 3bits får vi ofta den här frågan från våra kunder i samband med att de skall lansera en kampanj eller av någon annan anledning förväntar sig en extra stor tillströmning av besökare på sajten.

Läs mer

Lasttest del 3 – QoS-tester

I den här tredje och avslutande delen tittar vi på hur man använder lasttest som en del av sin Quality of Service (QoS) testing. Även om själva förfarandet i princip är detsamma som vid ett stresstest så är syftet ett annat, och för att få ut maximalt av lasttestet måste detta även återspeglas i upplägget.

Läs mer