Stresstestning
Stresstestning innebär att man matar ett system med stora mängder data eller kommandon i snabb takt. Stresstest är en effektiv metod inom testning av program och system för att se- Om systemet är skalbart, dvs om tillförande av mer resurser (processorer, minne, diskar etc) ger ökad prestanda. Annorlunda uttryckt, räcker det att addera mer pengar för hårdvara och licenser för att öka genomströmning eller krävs det höga utvecklingskostnader? En enstaka extra webbserver och lastbalanserare är nästan alltid mycket billigare än att utveckla och bygga ett ersättningssystem
- Om systemet fungerar även under temporär överbelastning, önskvärt är att systemet lägger sig nära maximal genomströmning men fortsätter att fungera, inga delar/komponenter kraschar
- Om systemet fortsätter fungerar vid långvarig hög last som ändå inte är en överbelastning, här hittas minnesläckage och liknande resursslöseri
- Vilka komponenter i systemet som är första flaskhalsen och vad som händer om flaskhalsen undanröjs, normalt fortsätter man med nästa flaskhals så länge som tid och kostnader tillåter det och så länge som undanröjandet ökar systemets genomströmning
- Att systemet klarar av att flera samtidiga användare, här hittas funktionella fel som är väldigt svårhittade med traditionella funktionella testmetoder. Här ser man om låsningar i databaser hanteras rätt, sessioner flyttas mellan webbservrar utan problem, det finns så kallde race conditions, etc
Centrala begrepp
De huvudsakliga begreppen inom stresstestning är genomströmning, svarstid och virtuell användare. Vid testningen försöker man öka genomströmningen så mycket det går samtidigt som svarstiderna hålls relativt konstanta. Genomströmningen ökas genom att använda allt från en enstaka virtuell användare upp till flera hundra.
Prioritering
För att kunna hantera och förstå systemet som mäts, krävs en analys av systemet och dess dataflöden. Det krävs också att man förstås sammanhanget som systemet används i. På detta vis går det att förstå vilka brister som är allvarliga fel och vilka som små skönhetsfel, ja kanske till och med brister som ingen någonsin märker under utvecklingen eller den funktionella testningen - men som ger stora problem när systemet sätts i produktion.
Naturligtvis vill man mäta rätt saker, att man väljer ut rätt del eller dataflöde.
Kortslutningar
Efter analysen av systemet framgår det vilka komponenter som det består av. Det kan handla om en webbserver som pratar med en tillämpningsserver som i tur pratar med en databasserver. Kanske finns det en koppling till en stordator med kunddata eller en extern koppling till en certifikatfabrik, http://www-5.ibm.com/se/news/2001/06/27-bank.html. I stresstestning kopplas vissa delar bort för att komma åt flaskhalsar. Detta kallas att kortsluta vissa komponenter.
I detta exempel kan man byta ut kopplingen till certifikatfabriken med ett litet program som returnerar redan inspelade svar. Syntaktiskt riktiga svar men med meningslöst innehåll. På detta vis hindras inte en ökning av lasten av ett externt system.
På samma vis kan databasen kopplas bort eller mätning ske direkt mot tillämpningsservern utan att behöva lita till webbserverns genomströmning, istället kan mätningen koncentrera sig på tillämpningsserverns prestanda och affärslogiken där.
Mätning
Vid en prestandamätning inom stresstestning utförs först en referensmätning. Svarstid vid lägsta möjliga belastning mäts upp. En enstaka virtuell användare används. Därefter ökas belastning genom använda flera virtuella användare samtidigt. Både genomströmning och svarstid för varje transaktion hålls hela tiden under uppsikt.
Automatisering
Då stresstestning oftast utförs av datorer (testprogram) istället för av mänskliga testare så lämpar sig denna typ av testning väl för atuomatisering. Ett väl konfigurerat system för stresstestning (både insamling och analys av data) kan med fördel automatiseras och köras nattetid och på så sätt ge färsk information om systemets prestanda, detta leder i sin tur till att systemets prestanda-attribut kan spåras under implementationsfasen.
Olika symptom
Några vanliga olika symptom som kan upplevas från systemet som testas är att när genomströmningen fortsätter öka när fler virtuella användare läggs till så har systemet mer att ge. Maximinivån på belastning har inte uppnåtts.
När genomströmning inte längre ökar trots att fler virtuella användare läggs till för att öka belastningen, samtidigt som svarstiderna börja öka, så har maximal belastningsnivå, som systemet kan hantera, överskridits. Ligger istället svarstiderna kvar på sin nivå utan att öka markant, så har maximal nivå hittats. Det vill säga, maximal nivå på just denna konfiguration med hård- och mjukvara.
Om felaktiga, eller inga, svar börjar ges av systemet, så har något gått sönder.
/Klaus Zeuge
Mätprogram
- är en gratis applikation från Microsoft för stresstest av webtjänster, exempelvis sådana som körs under IIS tjänsten. Microsoft Web Application Stress Tool följer även med Microsoft Visual Studio .NET.
- ab är ett mätprogram för stresstestning av webbservrar, som medföljer Apache
- Bonnie++ är ett mätprogram för stresstestning av filsystem, http://www.coker.com.au/bonnie++/
Artikeln skriven 2009-01-16 av Learning4sharing
Inga kategorier för denna artikel än...Intresserad av fler artiklar?
Mats SvegforsGrundare
Svenskar i Världen
Hans Rausing
Bertil Hult
Margot Wallström
Oriflame
Yngve Bergquist
Ishotell