Tutorial de testare a performanței: Ce este, tipuri, valori și amp; Exemplu

Cuprins:

Anonim

Test de performanta

Testarea performanței este un proces de testare software utilizat pentru testarea vitezei, a timpului de răspuns, a stabilității, a fiabilității, a scalabilității și a utilizării resurselor unei aplicații software sub o anumită sarcină de lucru. Scopul principal al testării performanței este identificarea și eliminarea blocajelor de performanță din aplicația software. Este un subset de inginerie de performanță și, de asemenea, cunoscut sub numele de „Testarea perfecțiunilor”.

Accentul testării performanței este verificarea unui program software

  • Viteză - Stabilește dacă aplicația răspunde rapid
  • Scalabilitate - Determină încărcarea maximă de utilizator pe care o poate aplica aplicația software.
  • Stabilitate - Determină dacă aplicația este stabilă la sarcini diferite

În acest tutorial, veți învăța-

  • Ce este testarea performanței?
  • De ce se efectuează testarea performanței?
  • Tipuri de testare a performanței
  • Probleme comune de performanță
  • Proces de testare a performanței
  • Valori de testare a performanței: parametrii monitorizați
  • Exemple de cazuri de testare a performanței
  • Instrumente de testare a performanței
  • FAQ

De ce se efectuează testarea performanței?

Caracteristicile și funcționalitatea acceptate de un sistem software nu reprezintă 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 se face pentru a oferi părților interesate informații despre aplicația lor cu privire la viteză, stabilitate și scalabilitate. 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, neconcordanțe între diferite sisteme de operare și utilizare slabă.

Testarea performanței va determina dacă software-ul lor îndeplinește cerințele de viteză, scalabilitate și stabilitate sub sarcinile de lucru așteptate. Aplicațiile trimise pe piață cu valori de performanță slabe datorită testelor de performanță inexistente sau slabe sunt susceptibile de a câștiga o reputație proastă și nu vor îndeplini obiectivele de vânzări așteptate.

De asemenea, aplicațiile critice pentru misiune, cum ar fi programele de lansare a spațiului sau echipamentele medicale care salvează viețile, trebuie testate pentru a se asigura că acestea funcționează pentru o perioadă lungă de timp, fără abateri.

Potrivit Dunn & Bradstreet, 59% din companiile Fortune 500 experimentează aproximativ 1,6 ore de nefuncționare în fiecare săptămână. Având în vedere că compania medie Fortune 500 cu un minim de 10.000 de angajați plătește 56 USD pe oră, partea forței de muncă din costurile de nefuncționare pentru o astfel de organizație ar fi de 896.000 USD săptămânal, ceea ce se traduce prin peste 46 milioane USD pe an.

Se estimează că doar un timp de nefuncționare de 5 minute pentru Google.com (19 august-13) va costa gigantul căutării până la 545.000 de dolari.

Se estimează că companiile au pierdut vânzări în valoare de 1100 de dolari pe secundă din cauza unei întreruperi recente a serviciului web Amazon.

Prin urmare, testarea performanței este importantă.

Tipuri de testare a performanței

  • Testarea încărcării - verifică capacitatea aplicației de a efectua sub sarcini anticipate ale utilizatorului. Obiectivul este de a identifica blocajele de performanță înainte ca aplicația software să devină activă.
  • Testarea stresului - implică testarea unei aplicații sub sarcini de lucru extreme pentru a vedea cum gestionează traficul ridicat sau procesarea datelor. Obiectivul este de a identifica punctul de rupere al unei aplicații.
  • Testarea rezistenței - se face pentru a vă asigura că software-ul poate gestiona sarcina așteptată pe o perioadă lungă de timp.
  • Testarea vârfurilor - testează reacția software-ului la creșteri bruște mari ale încărcării generate de utilizatori.
  • Testare volum - Sub testare volum mare nr. de. Datele sunt populate într-o bază de date și comportamentul general al sistemului software este monitorizat. Obiectivul este de a verifica performanța aplicației software în diferite volume de baze de date.
  • Testarea scalabilității - Obiectivul testării scalabilității este de a determina eficacitatea aplicației software în „extinderea” pentru a sprijini o creștere a încărcării utilizatorilor. Ajută la planificarea adăugării capacității la sistemul software.

Probleme comune de performanță

Majoritatea problemelor de performanță se învârt în jurul vitezei, timpului de răspuns, timpul de încărcare și scalabilitatea redusă. Viteza este adesea unul dintre cele mai importante atribute ale unei aplicații. O aplicație care rulează lent va pierde potențialii utilizatori. Testarea performanței se face pentru a vă asigura că o aplicație rulează suficient de rapid pentru a menține atenția și interesul unui utilizator. Aruncați o privire la următoarea listă de probleme de performanță obișnuite și observați cum viteza este un factor comun în multe dintre ele:

  • Timp de încărcare lung - Timpul de încărcare este în mod normal timpul inițial necesar unei aplicații pentru a porni. Acest lucru ar trebui, în general, să fie redus la minimum. Deși 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 la momentul în care un utilizator introduce date în aplicație până când aplicația transmite 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 redusă 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. Testarea încărcării trebuie 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 erorile de codare sau problemele hardware determină o scădere a capacității de producție sub anumite încărcări. Blocajul este adesea cauzat de o secțiune defectă de cod. Cheia pentru rezolvarea unei probleme de blocaj este să găsiți secțiunea de cod care cauzează încetinirea și să încercați să o remediați acolo. Blocajul este în general rezolvat fie prin remedierea unor procese de rulare slabe, fie prin adăugarea de hardware suplimentar. Unele blocaje de performanță obișnuite sunt
    • Utilizarea procesorului
    • Utilizarea memoriei
    • Utilizarea rețelei
    • Limitări ale sistemului de operare
    • Utilizarea discului

Proces de testare a performanței

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

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

  1. Identificați-vă mediul de testare - Cunoașteți-vă mediul de testare fizică, mediul de producție și ce instrumente de testare sunt disponibile. Înțelegeți detaliile configurațiilor hardware, software și de rețea 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.
  2. Identificați criteriile de acceptare a performanței - Aceasta include obiective și constrângeri pentru transfer, timpi de răspuns și alocarea resurselor. De asemenea, este necesar să se identifice criteriile de succes ale proiectului în afara acestor obiective și constrângeri. Testatorii 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 largă de etaloane de performanță. Uneori s-ar putea să nu existe deloc. Când este posibil, găsirea unei aplicații similare cu care să comparați este o modalitate bună de a stabili obiective de performanță.
  3. Planificați și proiectați teste de performanță - Determinați modul în care utilizarea va varia probabil între utilizatorii finali și identificați scenariile cheie pentru a testa pentru toate cazurile de utilizare posibile. Este necesar să simulați o varietate de utilizatori finali, să planificați datele de testare a performanței și să evidențiați ce valori vor fi colectate.
  4. Configurarea mediului de testare - Pregătiți mediul de testare înainte de executare. De asemenea, aranjați instrumente și alte resurse.
  5. Implementați proiectarea testului - Creați testele de performanță în funcție de proiectarea testului.
  6. Rulați testele - Executați și monitorizați testele.
  7. Analizați, reglați și retestați - Consolidați, analizați și distribuiț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 blocarea este cauzată de CPU. Atunci este posibil să aveți opțiunea de a crește puterea procesorului.

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

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

  • Utilizarea procesorului - o cantitate de timp petrecută de procesor executând fire non-inactive.
  • Utilizarea memoriei - cantitatea de memorie fizică disponibilă proceselor pe un computer.
  • Timp disc - cantitatea de timp pe care discul este ocupat cu executarea unei cereri de citire sau scriere.
  • Lățime de bandă - arată biții pe secundă utilizați de o interfață de rețea.
  • Octeți privați - numărul de octeți pe care un proces i-a alocat, care nu poate fi distribuit între alte procese. Acestea sunt utilizate pentru a măsura scurgerile de memorie și utilizarea.
  • Memorie angajată - cantitatea de memorie virtuală utilizată.
  • Pagini de memorie / secundă - numărul de pagini scrise sau citite de pe disc pentru a rezolva defecțiunile de pagină. Defecțiunile de pagină hard sunt atunci când codul care nu provine din setul de lucru curent este chemat din altă parte și recuperat de pe un disc.
  • Eroare pagină / secundă - rata generală în care paginile de erori sunt procesate de procesor. Acest lucru se întâmplă din nou atunci când un proces necesită cod din afara setului său de lucru.
  • Întreruperile procesorului pe secundă - este media. numărul de întreruperi hardware pe care un procesor le primește și procesează în fiecare secundă.
  • Lungimea cozii de disc - este media. Nu. de cereri de citire și scriere în coadă pentru discul selectat în timpul unui interval de eșantionare.
  • Lungimea cozii de ieșire în rețea - lungimea cozii de ieșire a pachetelor din pachete. Orice mai mult de două înseamnă o întârziere și blocajele trebuie oprite.
  • Rețeaua totală de octeți pe secundă - rata care octeți sunt trimiși și primiți pe interfață, inclusiv caractere de încadrare.
  • Timp de răspuns - timpul de la momentul în care un utilizator introduce o cerere până la primirea primului caracter al răspunsului.
  • Rata de viteză - un computer sau o rețea primește solicitări pe secundă.
  • Cantitatea de pooling de conexiuni - numărul de solicitări ale utilizatorilor care sunt satisfăcute de conexiunile pooled. Cu cât sunt mai multe solicitări satisfăcute 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.
  • Rapoarte de acces - Acest lucru are legătură cu numărul de instrucțiuni SQL care sunt tratate de date memorate în cache, în loc de operațiuni I / O costisitoare. Acesta este un loc bun de început pentru rezolvarea problemelor de blocaj.
  • Afisari pe secunda - nr. de accesări pe un server web în fiecare secundă a unui test de încărcare.
  • Segment de revenire - cantitatea de date care poate reveni în orice moment.
  • Blocări de baze de date - blocarea tabelelor și a bazelor de date trebuie monitorizată și reglată cu atenție.
  • Așteptări de top - sunt monitorizate pentru a determina ce timpi de așteptare pot fi reduse atunci când se tratează cât de repede sunt recuperate datele din memorie
  • Număr de fire - Starea sănătății aplicațiilor poate fi măsurată prin nr. de fire care rulează și sunt active în prezent.
  • Colectarea gunoiului - Are legătură cu returnarea memoriei neutilizate înapoi în sistem. Colectarea gunoiului trebuie monitorizată pentru eficiență.

Exemple de cazuri de testare a performanței

  • Verificați dacă timpul de răspuns nu depășește 4 secunde atunci când 1000 de utilizatori accesează site-ul web simultan.
  • Verificați timpul de răspuns al aplicației sub încărcare se află într-un interval acceptabil atunci când conectivitatea la rețea este lentă
  • Verificați numărul maxim de utilizatori pe care aplicația îi poate gestiona înainte de a se bloca.
  • Verificați timpul de execuție a bazei de date când 500 de înregistrări sunt citite / scrise simultan.
  • Verificați utilizarea procesorului și a memoriei aplicației și a serverului bazei de date în condiții de încărcare maximă
  • Verificați timpul de răspuns al aplicației în condiții de încărcare redusă, normală, moderată și grea.

În timpul execuției efective a testului de performanță, termenii vagi, cum ar fi domeniul acceptabil, sarcina grea etc. sunt înlocuiți cu numere concrete. Inginerii de performanță stabilesc aceste numere conform cerințelor afacerii și peisajului 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, suport pentru platformă etc. Mai jos este o listă a instrumentelor de testare utilizate în mod popular.

  • LoadNinja - revoluționează modul în care încărcăm testul. Acest instrument de testare a încărcării bazat pe cloud împuternicește echipele să înregistreze și să redea instantaneu teste complete de încărcare, fără corelație dinamică complexă și să ruleze aceste teste de încărcare în browsere reale la scară largă. Echipele pot crește acoperirea testelor. & reduceți timpul de testare a sarcinii cu peste 60%.
  • NeoLoad - este platforma de testare a performanței concepută pentru DevOps care se integrează perfect în conducta dvs. de livrare continuă existentă. Cu NeoLoad, echipele testează de 10 ori mai repede decât cu instrumentele tradiționale pentru a îndeplini noul nivel de cerințe pe parcursul întregului ciclu de viață al dezvoltării software Agile - de la componente la teste complete de încărcare la nivel de sistem.
  • 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 sub sarcini așteptate. Loadrunner are un generator de utilizatori virtuali care simulează acțiunile utilizatorilor umani vii.
  • Jmeter - unul dintre instrumentele de top utilizate pentru testarea încărcării serverelor web și de aplicații.

FAQ

Ce aplicații ar trebui să testăm performanța?

Testarea performanței se face întotdeauna numai pentru sistemele 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 Calculator nu este nici bazat pe client-server și nici nu rulează mai mulți utilizatori; prin urmare, nu este un candidat pentru testarea performanței.

Care este diferența dintre testarea performanței și ingineria performanței

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

Testarea performanței este o disciplină preocupată de testarea și raportarea performanței actuale 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 tărâmuri distincte și adesea concurente. Cu toate acestea, în ultimii ani, câteva buzunare de testeri și dezvoltatori au colaborat independent pentru a crea echipe de tuning. Deoarece aceste echipe s-au confruntat cu un succes semnificativ, conceptul de cuplare a testelor de performanță cu reglarea performanței a prins, iar acum îl numim inginerie de performanță.

Concluzie

În Ingineria software, testarea performanței este necesară înainte de comercializarea oricărui produs software. 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 satisfacția, loialitatea și păstrarea îmbunătățite a clienților.