Documente Academic
Documente Profesional
Documente Cultură
Pentru respectarea cerintelor non-functionale de performanta si simularea unui mediu de productie cat
mai fidel, produsele noi create sunt supuse diferitor testari. Astfel se creeaza scripturi si scenarii de diferite tipuri,
Exista doua clasificari majore a tipajelor de testari:
1. Testare functionala
2. Testare non-functionalaa
Testarea de performanta face parte din a 2-a clasa si asigura testarea vitezii cu care se misca
sistemul IT, simuleaza conditiile normale de functionare a sistemului si raporteaza timpii de raspuns generati de
functionalitatile acestuia pentru indeplinirea indicatorilor de performanta. Sistemul este testat sub un amestec
de condiții de încărcare și se verifică timpul necesar pentru a primi un feedback din partea acestuia.
Testarea de performanţă va oferi informaţii despre cum se va comporta produsul în utilizarea zilnică,
cu acces concurent din partea utilizatorilor. Rezultatele vor folosi în estimarea resurselor hardware
necesare pentru a susține un anumit număr de utilizatori.
De ce trebuie aplicata?
Testarea performanței cuprinde o serie de teste diferite care permit analiza diferitelor
aspecte ale sistemului, aratind ce schimbari trebuie facute înainte de a expune produsul spre utilizare
(în special problemele de supraincarcare in diferite conditii de stress sub care este expus sistemul).
Exemplu: timpul de raspuns trebuie sa fie de mai putin de 1 secunda in 90% din cazuri la o aplicatie
de genul Calculator matematic simplu. De asemenea, aplicațiile de tip critice, cum ar fi programe de
lansare în spațiu sau echipamente medicale de salvare a vieții, ar trebui să fie testate pentru a se
asigura că acestea funcționează pentru o perioadă lungă de timp fără devieri. Daca masuratorile de
1
performanta sunt nemultumitoare, atunci se iau masuri pentru imbunatatire (rescrierea codului,
alocarea mai multor resurse, redesign de sistem …).
Tipurile si cerintele
Cerintele reprezinta cel mai important aspect alături de tehnologia folosită în dezvoltarea
produsului. Necesarul de tool-uri este de asemenea determinat pe baza cerinţelor şi a tehnologiei
folosite. Cerinţele Non-funcționale vor conţine cifrele exacte pentru timpul de răspuns, număr de
acţiuni concurente. In linii generale, exista 3 categorii de cerinte expuse la diferite etape pe parcursul
testarii. Astfel avem:
2
1. Resursele umane necesare
Skill-urile necesare pentru designul, scrierea și executarea testelor de performanţă trebuie analizate
cu grijă. Consider Testarea de Performanţă ca un efort de echipa în care trebuie sa fie implicaţi
arhitecţii și programatorii. Expertiza arhitecţilor în arhitectura produsului este de folos în design-ul
testelor care vor descoperi vulnerabilităţile sistemului, pe când expertiza developerilor este
folositoare în scrierea script-urilor, analiza rezultatelor pentru o mai bună înţelegere a
comportamentului sistemului şi a acţiunilor coercitive.
3
O altă abordare în obținerea informaţiilor despre performanţa unui sistem este de a adăuga
listener-i în Unit test şi în testele de API. Astfel se vor obține informaţii despre cât de
performante sunt anumite metode/fluxuri.
Setul de rezultate colectate în cursul testelor de performanţă trebuie definit cu grijă şi să fie
minimalist pentru:
a colecta rezultatele relevante. Tool-urile pentru teste de performanţă oferă o larga varietate
de rezultate ce pot fi colectate în special în ceea ce priveşte timpul de răspuns. Resursele
hardware pot fi monitorizate prin intermediul acestor tool-uri sau instalând tool-uri de
monitorizare direct pe sistemul aflat în test
a nu colecta prea multe rezultate. Colectarea prea multor rezultate va avea impact atât asupra
maşinii pe care rulează tool-ul de testare, consumând din resursele necesare susţinerii load-
ului cât şi a resurselor de pe sistemul aflat în test afectând numărul de acţiuni executate
4
NeoLoad - platforma de testare a performanțelor concepută pentru DevOps care se
integrează perfect în conducta dvs. de livrare continuă. Cu NeoLoad, echipele testează cu 10 ori mai
repede decât cu instrumentele tradiționale pentru a satisface noul nivel al cerințelor în întregul ciclu
de viață al dezvoltării software-ului Agile - de la testele de sarcină pentru componente la întregul
sistem.
WebLOAD - este un pionier și lider în testarea încărcării, oferind capabilități bogate pentru
gestionarea testelor de performanță pe scară largă în medii complexe de întreprindere. Rulat în cloud
sau local, WebLOAD oferă scripturi avansate, înregistrare și corelație automată, permițând
organizațiilor să automatizeze testarea încărcării pentru integrarea DevOps și livrarea continuă
Jmeter - unul dintre instrumentele de vârf utilizate pentru testarea încărcării serverelor web
și a aplicațiilor.
Metodologia adoptată pentru testarea performanțelor poate varia foarte mult, dar ținta
testului de performanță rămâne aceeași. Acest lucru vă poate ajuta să demonstrați că software-ul
dvs. îndeplinește anumite criterii de performanță
predefinite. Sau poate ajuta la Figura 2: Etapele procesului de testare
Identificarea mediul de
testare - cunoașteți mediul dvs. de
testare fizic, mediul de producție și
instrumentele de testare disponibile.
5
Înțelegeți configurațiile hardware, software și de rețea utilizate în timpul testelor înainte de a începe
procesul de testare. Acest lucru îi va ajuta pe testeri să creeze teste mai eficiente. De asemenea, va
contribui la identificarea potențialelor provocări pe care testerele le pot întâmpina în timpul
procedurilor de testare a performanței.
Cele mai multe probleme de performanță se învârt în jurul vitezei, timpului de răspuns,
timpului de încărcare și scalabilității reduse. 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
6
performanțelor se face pentru a vă asigura că o aplicație rulează suficient de repede pentru a păstra
atenția și interesul utilizatorului. Uitați-vă la următoarea listă de probleme comune de performanță și
observați cum viteza este un factor comun în multe dintre ele:
Durata lungă de încărcare - Timpul de încărcare este, în mod normal, timpul inițial de
lansare a unei aplicații. Acest lucru ar trebui, în general, 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 trebuie păstrat sub
câteva secunde, dacă este posibil.
Timp de răspuns îndelungat - Timpul de răspuns este timpul necesar 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 pierd
interesul.
Utilizarea CPU
Utilizarea memoriei
Utilizarea rețelei
Limitări ale sistemului de operare
Utilizarea discului
7
Utilizarea procesorului - cantitatea de procesor de timp petrece executarea firelor non-
inactive.
Utilizarea memoriei - cantitatea de memorie fizică disponibilă pentru procesele de pe un
computer.
Timp disc - timpul de disc este ocupat executând o solicitare de citire sau scriere.
Lungimea de bandă - arată biții pe secundă folosiți de o interfață de rețea.
Byte private - numărul de octeți pe care un proces le-a alocat, care nu pot fi distribuite între
alte procese. Acestea sunt folosite pentru a măsura scurgeri de memorie și utilizare.
Memorie angajată - cantitatea de memorie virtuală utilizată.
Pagini de memorie / secundă - numărul de pagini scrise sau citite de pe disc pentru a
rezolva defectele de pagină greu. Defectele greșite ale paginii sunt atunci când un cod nu
din setul de lucru curent este apelat din altă parte și preluat de pe un disc.
Pagini defecte / secundă - rata globală în care paginile de eroare sunt procesate de procesor.
Acest lucru apare din nou atunci când un proces necesită un cod din afara setului său de
lucru.
CPU întrerupe pe secundă - este valoarea medie. numărul de întreruperi hardware pe care
un procesor le primește și procesează fiecare secundă.
Lungimea cozii de dischete - este media. Nu. de solicitări de citire și scriere în coadă pentru
discul selectat în timpul unui interval de eșantionare.
Lungimea cozii de ieșire a rețelei - lungimea cozii de pachete de ieșire în pachete. Orice
altceva decât două înseamnă o întârziere și blocarea trebuie să fie oprită.
Total octeți de rețea pe secundă - rata pe care octeții sunt trimise și primite pe interfață,
incluzând caractere de încadrare.
Timp de răspuns - timpul de la momentul în care un utilizator introduce o solicitare până la
primirea primului caracter al răspunsului.
Capacitatea de transfer - un computer sau o rețea primește cereri pe secundă.
Suma de grupare a conexiunilor - numărul de solicitări ale utilizatorilor care sunt
îndeplinite de conexiunile colectate. Cele mai multe cereri întâlnite de conexiunile din pool,
cu atât va fi mai bună performanța.
Sesiuni active maxim - numărul maxim de sesiuni care pot fi active simultan.
8
Sferturi de lovituri - Acest lucru are legătură cu numărul de instrucțiuni SQL care sunt
gestionate de date cache în loc de operații I / O costisitoare. Acesta este un loc bun pentru a
începe pentru rezolvarea problemelor de blocaj.
Afișări pe secundă - nr. de hit-uri pe un server web în timpul fiecărei secunde a unui test de
sarcină.
Rollback segment - cantitatea de date care poate reveni în orice moment.
Blocarea bazei de date - blocarea meselor și bazelor de date trebuie monitorizată și reglată
cu atenție.
Top așteaptă - sunt monitorizate pentru a determina ce perioade de așteptare pot fi reduse
atunci când se ocupă cu cât de repede sunt preluate din memorie
Conținutul firului - O sănătate a aplicațiilor poate fi măsurată prin nr. de fire care se execută
și sunt active în prezent.
Colectarea gunoiului - are legătură cu returnarea memoriei neutilizate înapoi la sistem.
Colectarea gunoiului trebuie monitorizată pentru eficiență.
Concluzie