Tutorial de testare a performanței

Încărcarea testelor

Ce este testarea performanței?

Test de performanta este un proces de testare a software-ului utilizat pentru testarea vitezei, timpului de răspuns, stabilității, fiabilității, scalabilității și utilizării resurselor unei aplicații software într-o anumită sarcină de lucru. Scopul principal al testării performanței este de a identifica și elimina blocajele de performanță din aplicația software. Este un subset al ingineriei performanței și este cunoscut și ca „Testarea performanței”.

Obiectivul Testării performanței este verificarea programelor software

  • Viteză – Stabilește dacă aplicația răspunde rapid
  • scalabilitate – Determină sarcina maximă de utilizator pe care o poate suporta aplicația software.
  • Stabilitate – Stabilește dacă aplicația este stabilă la sarcini variabile

De ce se face testarea performanței?

Caracteristicile și funcționalitățile susținute de un sistem software nu sunt singura preocupare. Performanța unei aplicații software, precum timpul de răspuns, fiabilitatea, utilizarea resurselor și scalabilitatea, contează. Scopul testării performanței nu este de a găsi erori, ci de a elimina blocajele de performanță.

Testarea performanței este realizată pentru a oferi părților interesate informații despre aplicația lor în ceea ce privește viteza, stabilitatea și scalabilitatea. Mai important, Testarea performanței descoperă ceea ce trebuie îmbunătățit înainte ca produsul să intre pe piață. Fără testarea performanței, este posibil ca software-ul să sufere de probleme precum: funcționarea lentă în timp ce mai mulți utilizatori îl folosesc simultan, inconsecvențe între diferite sisteme de operare și utilizare slabă.

Test de performanta

Testarea performanței va determina dacă software-ul lor îndeplinește cerințele de viteză, scalabilitate și stabilitate la sarcinile de lucru așteptate. Aplicațiile trimise pe piață cu valori de performanță slabe din cauza testării de performanță inexistente sau slabe sunt susceptibile să câștige o reputație proastă și să nu atingă obiectivele de vânzări așteptate.

De asemenea, aplicații critice pentru misiune precum programele de lansare în spațiu sau echipamentele medicale de salvare ar trebui testate performanța pentru a se asigura că funcționează pe o perioadă lungă de timp, fără abateri.

Potrivit Dunn & Bradstreet, 59% dintre companiile Fortune 500 se confruntă cu aproximativ 1.6 ore de nefuncționare în fiecare săptămână. Având în vedere că o companie medie Fortune 500, cu minim 10,000 de angajați, plătește 56 USD pe oră, partea cu forța de muncă a costurilor de nefuncționare pentru o astfel de organizație ar fi de 896,000 USD pe săptămână, tradusă în peste 46 milioane USD pe an.

Doar a 5 minute de pauză de Google.com (19-aug-13) se estimează că îl va costa pe gigantul căutării la fel de mult $ 545,000.

Se estimează că companiile au pierdut valoarea vânzărilor 1100 USD pe secundă din cauza unei recente Amazon Întreruperea serviciului web.

Prin urmare, testarea performanței este importantă. Pentru a vă ajuta cu acest proces, consultați această listă de instrumente de testare a performanței.

Tipuri de testare a performanței

Există în principal șase tipuri de testare a performanței în testarea software-ului, care sunt explicate mai jos.

  • Testare de sarcină - verifică capacitatea aplicației de a funcționa sub sarcinile anticipate ale utilizatorilor. Obiectivul este de a identifica blocajele de performanță înainte ca aplicația software să intre în funcțiune.
  • Testare stresanta - implică testarea unei aplicații sub sarcini extreme pentru a vedea cum gestionează traficul ridicat sau procesarea datelor. Obiectivul este de a identifica punctul de rupere al unei aplicații.
  • Testare de anduranță - se face pentru a se asigura că software-ul poate face față sarcinii așteptate pe o perioadă lungă de timp.
  • Testarea vârfurilor - testează reacția software-ului la vârfurile bruște mari ale încărcăturii generate de utilizatori.
  • Testarea volumului – Sub Volum Testing mare nr. de. Datele sunt populate într-o bază de date, iar comportamentul general al sistemului software este monitorizat. Obiectivul este de a verifica performanța aplicației software în diferite volume de baze de date.
  • Testare de scalabilitate – Obiectivul testării de scalabilitate este de a determina eficiența aplicației software în „scalarea” pentru a susține o creștere a încărcăturii utilizatorilor. Vă ajută să planificați suplimentarea capacității sistemului dumneavoastră software.

Probleme comune de performanță

Cele mai multe probleme de performanță se referă la viteză, timpul de răspuns, timpul de încărcare și scalabilitatea slabă. Viteza este adesea unul dintre cele mai importante atribute ale unei aplicații. O aplicație care rulează lentă va pierde potențiali utilizatori. Testarea performanței asigură că o aplicație funcționează suficient de rapid pentru a menține atenția și interesul utilizatorului. Aruncați o privire la următoarea listă de probleme frecvente de performanță și observați cum viteza este un factor comun în multe dintre ele:

  • Timp lung de încărcare - Timpul de încărcare este în mod normal timpul inițial necesar unei aplicații pentru a porni. În general, acest lucru ar trebui să fie redus la minimum. În timp ce unele aplicații sunt imposibil de încărcat în mai puțin de un minut, timpul de încărcare ar trebui menținut sub câteva secunde dacă este posibil.
  • Timp de răspuns slab - Timpul de răspuns este timpul necesar de când un utilizator introduce date în aplicație până când aplicația emite un răspuns la acea intrare. În general, acest lucru ar trebui să fie foarte rapid. Din nou, dacă un utilizator trebuie să aștepte prea mult, își pierde interesul.
  • Scalabilitate slabă - Un produs software suferă de o scalabilitate slabă atunci când nu poate gestiona numărul așteptat de utilizatori sau când nu găzduiește o gamă suficient de largă de utilizatori. Încărcarea testelor ar trebui făcut pentru a fi sigur că aplicația poate gestiona numărul anticipat de utilizatori.
  • blocaj - Blocajele sunt obstacole într-un sistem care degradează performanța generală a sistemului. Blocarea este atunci când fie erorile de codare, fie problemele hardware determină o scădere a debitului sub anumite sarcini. Blocarea este adesea cauzată de o secțiune defectuoasă a codului. Cheia pentru remedierea unei probleme de blocaj este găsirea secțiunii de cod care provoacă încetinirea și încercarea de a o remedia acolo. Blocajul este, în general, remediat fie prin remedierea proceselor de rulare proaste, fie prin adăugarea de hardware suplimentar. niste blocajele comune de performanță sunt
    • Utilizarea procesorului
    • Utilizarea memoriei
    • Utilizarea rețelei
    • Operalimitări ale sistemului
    • Utilizarea discului

Cum se face testarea performanței

Metodologia adoptată pentru testarea performanței poate varia foarte mult, dar obiectivul testelor de performanță rămâne același. Vă poate ajuta să demonstrați că sistemul dumneavoastră software îndeplinește anumite criterii de performanță predefinite. Sau poate ajuta la compararea performanței a două sisteme software. De asemenea, poate ajuta la identificarea părților sistemului software care îi degradează performanța.

Mai jos este un proces generic despre cum să efectuați testarea performanței

Procesul de testare a performanței
Procesul de testare a performanței

Pasul 1) Identificați mediul dvs. de testare

Cunoaște-ți mediul fizic de testare, mediul de producție și ce instrumente de testare sunt disponibile. Înțelegeți detaliile despre configurațiile hardware, software și rețelei utilizate în timpul testării înainte de a începe procesul de testare. Va ajuta testerii să creeze teste mai eficiente. De asemenea, va ajuta la identificarea posibilelor provocări pe care testatorii le pot întâlni în timpul procedurilor de testare a performanței.

Pasul 2) Identificați criteriile de acceptare a performanței

Aceasta include obiective și constrângeri pentru debit, timpii de răspuns și alocarea resurselor. De asemenea, este necesar să se identifice criteriile de succes a proiectului în afara acestor obiective și constrângeri. Testerii ar trebui să fie împuterniciți să stabilească criterii și obiective de performanță, deoarece deseori specificațiile proiectului nu vor include o varietate suficient de mare de repere de performanță. Uneori poate să nu existe deloc. Atunci când este posibil, găsirea unei aplicații similare cu care să se compare este o modalitate bună de a stabili obiective de performanță.

Pasul 3) Planificați și proiectați teste de performanță

Determinați modul în care utilizarea este probabil să varieze între utilizatorii finali și identificați scenariile cheie pentru a testa toate cazurile de utilizare posibile. Este necesar să se simuleze o varietate de utilizatori finali, să se planifice datele de testare a performanței și să se sublinieze ce valori vor fi adunate.

Pasul 4) Configurarea mediului de testare

Pregătiți mediul de testare înainte de execuție. De asemenea, aranjați instrumente și alte resurse.

Pasul 5) Implementați proiectarea testului

Creați testele de performanță conform designului dvs. de testare.

Pasul 6) Rulați testele

Executați și monitorizați testele.

Pasul 7) Analizați, reglați și retestați

Consolidați, analizați și partajați rezultatele testelor. Apoi reglați fin și testați din nou pentru a vedea dacă există o îmbunătățire sau o scădere a performanței. Deoarece îmbunătățirile devin în general mai mici cu fiecare retestare, opriți-vă când blocajul este cauzat de CPU. Atunci este posibil să aveți opțiunea de a crește puterea procesorului.

Valori de testare a performanței: parametri monitorizați

Parametrii de bază monitorizați în timpul testării de performanță includ:

metrici de testare a performanței

  • Utilizarea procesorului - o cantitate de timp pe care procesorul îl petrece executând fire non-inactive.
  • Utilizarea memoriei - cantitatea de memorie fizică disponibilă proceselor de pe un computer.
  • Timp de disc - perioada de timp pe care discul este ocupat executând o solicitare de citire sau scriere.
  • Lățime de bandă - arată biți pe secundă utilizați de o interfață de rețea.
  • octeți privați – numărul de octeți alocați de un proces care nu pot fi partajați cu alte procese. Acestea sunt folosite pentru a măsura pierderile de memorie și utilizarea.
  • Memoria angajată - cantitatea de memorie virtuală utilizată.
  • Pagini de memorie/secundă – numărul de pagini scrise sau citite de pe disc pentru a rezolva erorile de pagină. Erori de pagină hard sunt atunci când codul care nu este din setul de lucru curent este apelat din altă parte și preluat de pe un disc.
  • Eroare de pagină/secundă – rata totală în care paginile de eroare sunt procesate de procesor. Acest lucru se întâmplă din nou când un proces necesită cod din afara setului său de lucru.
  • întreruperi CPU pe secundă - este media. numărul de întreruperi hardware pe care un procesor le primește și le procesează în fiecare secundă.
  • Lungimea cozii de disc - este media. nu. de cereri de citire și scriere puse în coadă pentru discul selectat în timpul unui interval de eșantionare.
  • Lungimea cozii de ieșire din rețea – lungimea cozii de pachete de ieșire în pachete. Orice mai mult de două înseamnă că o întârziere și blocajele trebuie oprite.
  • Octeți de rețea în total pe secundă - rata octeților trimiși și primiți pe interfață, inclusiv caracterele de încadrare.
  • Timp de raspuns - timpul de la momentul în care un utilizator introduce o solicitare până la primirea primului caracter al răspunsului.
  • Debitul - rata un computer sau o rețea primește cereri pe secundă.
  • Cantitatea de pooling de conexiuni - numărul de solicitări ale utilizatorilor care sunt îndeplinite de conexiunile grupate. Cu cât sunt mai multe solicitări îndeplinite de conexiunile din piscină, cu atât performanța va fi mai bună.
  • Sesiuni active maxime - numărul maxim de sesiuni care pot fi active simultan.
  • Proporții de lovituri - Acest lucru are de-a face cu numărul de SQL instrucțiuni care sunt gestionate de date stocate în cache în loc de operațiuni I/O costisitoare. Acesta este un loc bun de început pentru a rezolva problemele de blocaj.
  • Lovituri pe secundă - nu-ul. de accesări pe un server web în fiecare secundă a unui test de încărcare.
  • Segment de derulare – cantitatea de date care poate fi anulată în orice moment.
  • Blocări baze de date - blocarea tabelelor și bazelor de date trebuie monitorizată și reglată cu atenție.
  • Cele mai bune așteptări - sunt monitorizate pentru a determina ce timpi de așteptare pot fi redusi atunci când se ocupă de cât de repede sunt recuperate datele din memorie
  • Numărul de fire - Sănătatea unei aplicații poate fi măsurată prin nr. de fire care rulează și sunt active în prezent.
  • Colectarea gunoiului - Are de-a face cu returnarea memoriei neutilizate înapoi la sistem. Colectarea gunoiului trebuie monitorizată pentru eficiență.

Exemplu de cazuri de testare de testare a performanței

  • Cazul de testare 01: Verificați timpul de răspuns nu este mai mare de 4 secunde când 1000 de utilizatori accesează site-ul simultan.
  • Cazul de testare 02: Verificați că timpul de răspuns al aplicației sub încărcare este într-un interval acceptabil atunci când conectivitatea la rețea este lentă
  • Cazul de testare 03: Verificați numărul maxim de utilizatori pe care aplicația îi poate gestiona înainte de a se bloca.
  • Cazul de testare 04: Verificați timpul de execuție a bazei de date când 500 de înregistrări sunt citite/scrise simultan.
  • Cazul de testare 05: Verificați utilizarea CPU și a memoriei aplicației și a serverului de baze de date în condiții de vârf de încărcare
  • Cazul de testare 06: Verificați timpul de răspuns al aplicației în condiții de încărcare scăzută, normală, moderată și grea.

În timpul executării efective a testului de performanță, termeni vagi precum intervalul acceptabil, sarcina mare etc. sunt înlocuiți cu numere concrete. Inginerii de performanță stabilesc aceste numere în funcție de cerințele de afaceri și de peisajul tehnic al aplicației.

Instrumente de testare a performanței

Există o mare varietate de instrumente de testare a performanței disponibile pe piață. Instrumentul pe care îl alegeți pentru testare va depinde de mulți factori, cum ar fi tipurile de protocol acceptat, costul licenței, cerințele hardware, suportul pentru platformă etc. Mai jos este o listă a instrumentelor de testare utilizate în mod popular.

  • HP LoadRunner - este cel mai popular instrument de testare a performanței de pe piață astăzi. Acest instrument este capabil să simuleze sute de mii de utilizatori, punând aplicațiile sub sarcini reale pentru a determina comportamentul acestora în condițiile sarcinilor așteptate. Loadrunner prezintă un generator virtual de utilizatori care simulează acțiunile utilizatorilor umani vii.
  • Jmetru – unul dintre instrumentele de vârf utilizate pentru testarea încărcării serverelor web și de aplicații.

Întrebări Frecvente

Testarea performanței se face întotdeauna numai pentru sisteme bazate pe client-server. Aceasta înseamnă că orice aplicație care nu este o arhitectură bazată pe client-server nu trebuie să necesite testarea performanței.

De exemplu, Microsoft Calculatorul nu se bazează nici pe client-server și nici nu rulează mai mulți utilizatori; prin urmare, nu este un candidat pentru testarea performanței.

Test de performanță

Este important să înțelegem diferența dintre testarea performanței și ingineria performanței. O înțelegere este împărtășită mai jos:

Test de performanta este o disciplină preocupată de testare și raportare performanța actuală a unei aplicații software sub diferiți parametri.

Ingineria performanței este procesul prin care software-ul este testat și reglat cu intenția de a realiza performanța necesară. Acest proces își propune să optimizeze cea mai importantă trăsătură de performanță a aplicației, adică experiența utilizatorului.

Din punct de vedere istoric, testarea și reglarea au fost domenii distinct distincte și adesea concurente. În ultimii ani, totuși, mai multe buzunare de testeri și dezvoltatori au colaborat independent pentru a crea echipe de tuning. Deoarece aceste echipe au avut un succes semnificativ, conceptul de a combina testarea performanței cu reglarea performanței a prins, iar acum îl numim ingineria performanței.

Concluzie

In Inginerie Software, Testarea performanței este necesară înainte de comercializarea oricărui produs software. Acesta asigură satisfacția clienților și protejează investiția unui investitor împotriva eșecului produsului. Costurile testării performanței sunt, de obicei, mai mult decât compensate cu o satisfacție, loialitate și reținere îmbunătățite ale clienților.