Lasttester i molnet – Genomgång av Apica LoadTest

Özgür Bal Okategoriserade Leave a Comment

I vår förra artikel pratade vi om vikten av att över huvud taget testa din webbsida eller applikation.

I den här arikeln ska vi visa och berätta mer om hur lasttester görs med Apica Systems applikation, Apica LoadTest.

 

Apica LoadTest

Apica Load Test är i princip ett system som, med hjälp av olika testprofiler, låter dig testa en webbserver. Genom ett par enkla steg kan du specificera vilken URL som ska testas och finjustera variabler såsom frekvens och samtidiga anrop. När testet är klart får du en fullständig rapport på hur testet gick, genomsnittliga svarstider och annan relevant information som tillsammans ger dig ett bra underlag att utgå ifrån när du ska optimera din sida.

 

Förberedelser

Först och främst behöver du ha en sida eller en applikation som kan testas. Idealiskt är om testobjektet är separerat från livemiljön i en utvecklingsmiljö, så att du kan testa den hur många gånger du vill utan att riskera att ta ned sidan eller att dina besökare upplever den som seg.

I vissa fall kan vara tvungen att köra testerna mot miljöer som ligger live. I dessa fall bör man vara väldigt försiktig så att man inte tar ned sidan. Det är alltid rekommenderat att du har total kontroll över sidan innan du kör igång. Redundans är förstås också önskvärt men möjligheten att kunna nå sidan via remote access är av stor vikt om något skulle gå fel.

Låt oss för enkelhetens skull anta att du har en enkel hemsida som du vill testa. Du har också en liten databas kopplad till sidan och allt är redo att ta emot trafik. Om vill använda Apicas system för lasttester behöver du först bli kund hos Apica, mer information om detta hittar du här.

 

Första testet

Vi loggar in i kontrollpanelen och väljer direkt “Generate runnable loadtests”. Här skapar vi tidigare nämnda profiler eller “classes” som de kallas här.

För att göra detta behöver du ange upp till tre URL:er. En av dem är obligatorisk och de andra två är valfria. För varje URL kan du finjustera och bestämma vilka filer som testapplikationen ska ladda ned, du kan exempelvis ställa in att den ska ignorera script och bilder. Alternativt kan du välja URL:er och filer genom ett Selenium script vilket är en del av Selenium Test Automation Platform.

Den viktigaste variabeln som du kommer behöva ställa in är “Think time per page” uttryckt i sekunder. Funktionen lägger helt enkelt in en fördröjning när din sida eller applikation ska testas. När vi surfar runt på en hemsida klickar vi (oftast) inte på första bästa länk eller bild vi ser. Den här lilla funktionen hjälper systemet att simulera en riktigt person som navigerar på sidan. Det finns också en funktion för att göra klickandet lite mer slumpmässigt.

När vi är klara klickar vi på “Generate executable file” och väntar några sekunder på att filen ska skapas.

 

 

 

 

 

 

 

Första ronden

 

Då har vi vår första “class” konfigurerad med en eller flera URL:er. Vi navigerar vidare till “LoadTest scheduler” fliken.

Här väljer vi filen som skapades i föregående steg under “Available class files”. Det är snart dags att köra igång men först ska vi bara kika igenom variablerna som ger oss absolut kontroll över hur vi vill stressa vår sida.

  • Number of concurrent users
  • Load test duration
  • Max. network bandwidth
    • Ger oss möjligheten att simulera många användare med långsamma uppkopplingar eller få användare med snabba uppkopplingar
  • Request timeout
    • Hur många sekunder ska användarna vänta innan de anser att anslutningen gjorde timeout
  • Startup delay per user
    • Användbart för att undvika att alla användarna startar samtidigt och direkt sänker servern. Självklart kan man ställa in så att ett mindre antal användare startar samtidigt för att simulera många samtidiga anslutningar.
  • Exec agent
    • Här kan vi välja flera agenter från Europa och USA
  • Start loadtest immediately
    • Vi kan dra igång testet direkt eller tala om för systemet att schemalägga testet

När vi har ställt in det vi vill klickar vi på “Initiate loadtest” och väntar på att testet ska läggas till i kön.

En text, liknande den nedan dyker upp:

“Loadtest job saved with id 939.
You can check the status under the ‘My loadtest jobs’ tab.
Remaining user count for this time period: 490”

Värdefull data

Under “My loadtests” hittar vi vårt testjobb. Om testet är pågående kommer du kunna uppdatera och följa utvecklingen. Klickar du på förstoringsglaset får du upp informationen i realtid.

Här ser vi flera grafer som visar hur din webbsida presterar. Det är självklart alltid bra att ha verktyg för att göra mätningar back-end också, på så sätt kan man jämföra båda resultaten.

Här kan du även ta bort det pågående testet och se information såsom “Average time (ms)” som visar hur lång tid det tar för din sida att laddas, soft och hard errors som ger dig en överblick av hur många anrop som misslyckas. Klicka på graferna för en detaljerad vy.

När testet är klart finns det en fullständig rapport att läsa under “My loadtests”.

Målet här är att ha så få fel som möjligt i relation till last-förhållandena. Till exempel, om du vet att din sida kommer behöva hantera 100 samtidiga användare så vill du säkerställa att den klarar ända upp till 150 samtidiga användare bara för att vara på den säkra sidan.

 

Nästa artikel

Detta var en genomgång av Apica Loadtest kontrollpanelen och hur enkelt det är att testa en webbsida med Apica System. Nästa gång kommer vi att göra ett par riktiga tester mot våra virtuella maskiner i City Cloud och dela med oss av intressanta data om hur webbservrar presterar under tung last.