În această secțiune, vom afla despre testarea performanței, de ce avem nevoie de aceasta, tipurile de testare a performanței și procesul de testare a performanței.
Următoarele sunt subiectele, pe care le vom înțelege în această secțiune:
Ce este testarea performanței?
Este cea mai importantă parte a testării nefuncționale.
Verificarea comportamentului unei aplicații prin aplicarea unei sarcini este cunoscută sub denumirea de testare a performanței.
În general, această testare definește cât de repede răspunde serverul la cererea utilizatorului.
În timp ce testăm performanța aplicației, ne vom concentra asupra diferiților factori, cum ar fi Timp de răspuns, încărcare și stabilitate a aplicației.
Timp de raspuns: Timpul de răspuns este timpul necesar serverului pentru a răspunde la cererea clientului.
Sarcină: Aici, Load înseamnă că atunci când N-număr utilizatorilor care folosesc simultan aplicația sau trimit cererea către server la un moment dat.
Stabilitate: Pentru factorul de stabilitate, putem spune că, atunci când N-număr de utilizatori care folosesc aplicația simultan pentru un anumit timp.
Când folosim testarea performanței?
Vom face teste de performanță odată ce software-ul este stabil și mutat în producție și poate fi accesat de mai mulți utilizatori simultan, din acest motiv, pot apărea unele probleme de performanță. Pentru a evita aceste probleme de performanță, testerul efectuează o rundă de testare a performanței.
Deoarece este o testare nefuncțională, ceea ce nu înseamnă că folosim întotdeauna testarea performanței, mergem doar la testarea performanței atunci când aplicația este stabilă din punct de vedere funcțional.
Notă: Testarea performanței nu poate fi efectuată manual, deoarece rezultatul său costisitor și precis nu poate fi menținut.
Tipuri de testare a performanței
Următoarele sunt tipurile de testare a performanței:
dezactivarea modului dezvoltator
Permiteți-ne să discutăm unul câte unul pentru a vă oferi o înțelegere completă Încărcare, stres, scalabilitate, și Stabilitate test de performanta.
Testare de sarcină
Testarea de sarcină este utilizată pentru a verifica performanța unei aplicații prin aplicarea unei sarcini care este fie mai mică sau egală cu sarcina dorită, cunoscută sub denumirea de testare a sarcinii.
De exemplu: În imaginea de mai jos, 1000 de utilizatori sunt cele sarcina dorita , care este dat de client, și 3/secundă este poartă pe care dorim să-l realizăm în timpul efectuării unei încercări de sarcină.
Testare stresanta
Testarea la stres este testarea, care verifică comportamentul unei aplicații prin aplicarea unei sarcini mai mari decât sarcina dorită.
De exemplu: Dacă am luat exemplul de mai sus și am mărit încărcarea dorită de la 1000 la 1100 de utilizatori, iar obiectivul este 4/secundă. În timpul efectuării testului de stres în acest scenariu, va trece deoarece sarcina este mai mare (cu 100 mai mult) decât sarcina dorită reală.
Testare de scalabilitate
Verificarea performanței unei aplicații prin creșterea sau scăderea sarcinii în anumite scale (numărul unui utilizator) este cunoscută ca testarea de scalabilitate . Testarea de scalabilitate ascendentă și de scalabilitate descendentă se numește testare de scalabilitate.
Testarea de scalabilitate este împărțită în două părți, care sunt după cum urmează:
Testare de scalabilitate ascendentă
Testează unde noi crește numărul de utilizatori la o anumită scară până ajungem la un punct de accident. Vom folosi teste de scalabilitate ascendentă pentru a găsi capacitatea maximă a unei aplicații.
Testare de scalabilitate descendentă
eroare: nu s-a putut găsi sau încărca clasa principală
Testarea de scalabilitate descendentă este utilizată atunci când testarea de încărcare nu este trecută, apoi începe scăderea nr. de utilizatori într-un anumit interval până când scopul este atins. Astfel încât să fie ușor de identificat blocajul (bug).
Testare de stabilitate
Verificarea performanței unei aplicații prin aplicarea sarcinii pentru o anumită durată de timp este cunoscut ca Testare de stabilitate .
Exemplu de testare a performanței
Să luăm un exemplu unde vom face testați comportamentul unei aplicații în care sarcina dorită este fie mai mică de 1000, fie egală cu 1000 de utilizatori .
În imaginea de mai jos, putem vedea că 100 în sus utilizatorii sunt crescuti continuu pentru a verifica capacitate maximă , care se mai numește testarea de scalabilitate ascendentă .
1200 → 3,5sec: [nu este mai mică sau egală cu sarcina dorită, de aceea va fi Eșuează ]
1300 → 4sec: [nu este mai mic sau egal cu sarcina dorită. adică, Eșuează ]
1400 → Prăbușit
Notă 1: Testarea de volum și de înmuiere este un tip de testare, dar nu de testare a performanței.
Testarea volumului
Testarea volumului este testare, care ne ajută să verificăm comportamentul unei aplicații prin inserarea unui volum masiv de încărcare în termeni de date, cunoscut sub numele de testare de volum, iar aici, ne vom concentra pe numărul de rate de date decât pe numărul de utilizatori. .
Nota 2:
Volumul este o capacitate în timp ce sarcina este o cantitate, adică testarea sarcinii înseamnă că nu. de utilizatori, iar testarea volumului înseamnă cantitatea de date.
Testarea la înmuiere
În acest tip de testare, vom verifica comportamentul unei aplicații asupra mediului, care este nesuportabil pentru o perioadă lungă de timp este cunoscut sub numele de testare la înmuiere.
În general, testarea la înmuiere este un tip negativ de testare, deoarece știm deja că serverul sau mediul nu sunt compatibile.
Procesul de testare a performanței
Testarea performanței nu poate fi efectuată manual deoarece:
- Avem nevoie de multe resurse și a devenit o abordare mai costisitoare.
- Și acuratețea nu se poate menține atunci când urmărim manual timpul de răspuns.
Procesul de testare a performanței va fi finalizat în următorii pași:
- Identificați scenarii de performanță
- Planificați și proiectați scriptul de testare a performanței
- Configurați mediul de testare și distribuiți încărcarea
- Executați scripturi de testare
- Rezultat
- Rezultatul analizei
- Identificați gâtul de sticlă
- Reluați testul
Dacă executăm o flux pozitiv a procesului de testare a performanței, ar putea urma următorul proces:
Identificați scenarii de performanță
În primul rând, vom identifica scenariile de performanță pe baza acestor factori de mai jos:
Cele mai frecvente scenarii: Înseamnă că putem găsi scenariile de performanță pe baza scenariilor, care sunt utilizate în mod obișnuit ca în aplicația Gmail; vom efectua autentificați-vă, trimiteți inbox, trimiteți articole și compuneți un e-mail și deconectați-vă .
Cele mai critice scenarii: Scenariile critice înseamnă utilizate în mod regulat și importante pentru afaceri, ca în aplicația Gmail autentificare, redactare, inbox și deconectare .
Tranzacție uriașă de date: Dacă avem date uriașe înseamnă că n-număr de utilizatori care folosesc aplicația în același timp.
Odată ce identificăm scenariile de performanță, vom trece la pasul următor.
Planificați și proiectați scriptul de testare a performanței
În acest pas, vom instala instrumentele în Test Engineer Machine și vom accesa serverul de testare, apoi vom scrie niște scripturi conform scenariilor de testare și vom rula instrumentul.
stdin în c
Odată ce am terminat cu scrisul scenariului, vom trece la pasul următor.
Configurați mediul de testare și distribuiți încărcarea
După scrierea scripturilor de testare, vom aranja mediul de testare înainte de execuție. Și, de asemenea, gestionați instrumentele, alte resurse și distribuiți încărcătura conform „Modelului de utilizare” sau menționați durata și stabilitatea.
Executați scripturi de testare
Odată ce am terminat cu distribuirea încărcării, vom executa, valida și monitoriza scripturile de testare.
Rezultat
După executarea scripturilor de testare, vom obține rezultatul testului. Și verificați dacă rezultatul îndeplinește obiectivul în timpul de răspuns dat sau nu, iar timpul de răspuns ar putea fi maxim, mediu și minim.
Dacă răspunsul nu îndeplinește timpul necesar, atunci vom alege flux negativ unde se vor efectua pașii de mai jos:
Rezultatul analizei
În primul rând, vom analiza rezultatul testului dacă acesta corespunde sau nu cu timpul de răspuns.
Identificați gâtul de sticlă
După aceea, vom identifica blocaj (defecțiune sau problemă de performanță ). Și blocajul ar putea apărea din cauza acestor aspecte precum problemă în cod, problemă hardware (hard disk, procesor RAM), probleme de rețea, si problema software (sistem de operare) . Și după ce găsim blocajul, vom face spectacol reglare (repare sau ajustare) pentru a rezolva acest blocaj.
Reluați testul
Odată ce remediam blocajele, rulăm din nou scripturile de testare și verificăm rezultatul dacă îndeplinește obiectivul cerut sau nu.
Problema apare la testarea performanței
În timpul testării de performanță a aplicației, pot apărea unele probleme, iar aceste probleme sunt numite și problema de performanta .
Problemele de performanță sunt următoarele:
Problemă cu timpul de răspuns
Timpul de răspuns înseamnă cât de repede răspunde serverul la cererea clientului. Dacă solicitarea utilizatorului nu se finalizează în timpul de răspuns dat, este posibil ca utilizatorul să-și piardă interesul pentru software-ul sau aplicația specifică. De aceea, aplicația sau software-ul ar trebui să aibă un timp de răspuns perfect pentru a răspunde rapid la cererea utilizatorului.
Problemă de scalabilitate
Problemele de scalabilitate apar atunci când aplicația nu poate prelua în același timp numărul n de utilizatori și solicitările așteptate ale utilizatorilor. De aceea vom face testarea de scalabilitate ascendentă (verificați capacitatea maximă a aplicației) și testarea de scalabilitate descendentă (atunci când timpul estimat nu corespunde cu ora reală).
Gâtul de sticlă
Gâtul de sticlă este numele informal al bug-ului, care apare atunci când aplicația este limitată de o singură componentă și creează un impact negativ asupra performanței sistemului.
Principalele cauze ale blocajului sunt probleme software (probleme legate de sistemul de operare), probleme hardware (probleme legate de hard disk, RAM și procesor), și problema de codificare, etc.
Următoarele sunt cele mai frecvente blocaje de performanță:
căutarea bfs
- Utilizarea memoriei
- Utilizarea discului
- Utilizarea CPU
- Limitări ale sistemului de operare
- Utilizarea rețelei
Probleme de viteza
Când efectuăm teste de performanță pe aplicație, aplicația ar trebui să fie mai rapidă ca viteză pentru a atrage interesul și atenția utilizatorului, deoarece dacă viteza aplicației este lentă, acesta poate pierde interesul utilizatorului pentru aplicație.
Instrumente de testare a performanței
Avem diverse tipuri de instrumente de testare a performanței disponibile pe piață, unde unele sunt instrumente comerciale și instrumente open-source.
Instrumente comerciale: LoadRunner[HP], WebLOAD, NeoLoad
Instrument open-source: JMeter
LoadRunner
Este unul dintre cele mai puternice instrumente de testare a performanței, care este utilizat pentru a susține testarea performanței pentru o gamă extinsă de protocoale, număr de tehnologii și medii de aplicație.
Identifică rapid cele mai frecvente cauze ale problemelor de performanță. Și, de asemenea, preziceți cu exactitate scalabilitatea și capacitatea aplicației.
JMeter
Software-ul Apache JMeter este un instrument open-source, care este în întregime o aplicație Java concepută pentru a încărca comportamentul de testare funcțional și pentru a măsura performanța.
În general, a fost conceput pentru testarea aplicațiilor web, dar acum sa extins și la alte funcții de testare.
Apache JMeter este folosit pentru a testa performanța atât pentru resurse statice și dinamice, cât și pentru aplicații web dinamice.
Poate fi folosit pentru a reproduce sarcina grea de pe un server, rețea sau obiect, grup de servere pentru a-i testa puterea sau pentru a analiza performanța generală la diferite tipuri de încărcare.
Încărcare web
Instrument de testare WebLOAD utilizat pentru a testa testarea de încărcare, testarea performanței și aplicațiile web pentru teste de stres.
Instrumentul WebLOAD combină performanța, scalabilitatea și integritatea ca un singur proces pentru verificarea aplicațiilor web și mobile.
NeoLoad
Neotys dezvoltă un instrument de testare care se numește NeoLoad. NeoLoad este utilizat pentru a testa scenariile de testare a performanței. Cu ajutorul NeoLoad, putem găsi zonele de blocaj în web și în procesul de dezvoltare a aplicațiilor mobile.
Instrumentul de testare NeoLoad este mai rapid în comparație cu instrumentele tradiționale.
În afară de ele, există și alte instrumente Sarcină electrică, instrument de stres web, LoadUI Pro, StresStimulus, LoadView, LoadNinja și RedLine13, care ajută la testarea performanței software-ului sau a unei aplicații.