Našumo testavimas
„Performance Testing“ yra programinės įrangos testavimo procesas, naudojamas programinės įrangos greičiui, atsako laikui, stabilumui, patikimumui, masteliui ir išteklių naudojimui tikrinti esant tam tikram darbo krūviui. Pagrindinis našumo testavimo tikslas yra nustatyti ir pašalinti našumą programinės įrangos našume. Tai yra našumo inžinerijos pogrupis, taip pat žinomas kaip „Perf Testing“.
Našumo testavimo metu pagrindinis dėmesys skiriamas programinės įrangos patikrinimui
- Greitis - nustato, ar programa reaguoja greitai
- Mastelis - nustato didžiausią vartotojo apkrovą, kurią gali atlaikyti programinė įranga.
- Stabilumas - nustato, ar taikymas yra stabilus esant skirtingoms apkrovoms
Šioje pamokoje sužinosite
- Kas yra našumo testavimas?
- Kodėl reikia atlikti našumo testavimą?
- Veiklos testavimo tipai
- Dažnos našumo problemos
- Našumo tikrinimo procesas
- Našumo tikrinimo metrika: stebimi parametrai
- Našumo bandymo atvejų pavyzdžiai
- Našumo tikrinimo įrankiai
- DUK
Kodėl reikia atlikti našumo testavimą?
Programinės įrangos sistemos palaikomos funkcijos ir funkcionalumas nėra vienintelis rūpestis. Svarbu programinės įrangos našumas, pvz., Jos atsakymo laikas, patikimumas, išteklių naudojimas ir mastelis. Našumo testavimo tikslas yra ne rasti klaidas, bet pašalinti našumą.
Našumo testavimas atliekamas siekiant suinteresuotosioms šalims suteikti informacijos apie jų taikymą greičio, stabilumo ir mastelio atžvilgiu. Dar svarbiau yra tai, kad našumo testavimas atskleidžia, ką reikia patobulinti, kol produktas pateks į rinką. Be našumo testavimo programinė įranga greičiausiai kenčia nuo tokių problemų: veikia lėtai, kai tuo pačiu metu ją naudoja keli vartotojai, skirtingų operacinių sistemų neatitikimai ir blogas naudojimas.
Veiklos bandymai nustatys, ar jų programinė įranga atitinka numatomo darbo krūvio greičio, mastelio ir stabilumo reikalavimus. Į rinką siunčiamos paraiškos, kurių našumo metrika yra prasta dėl neegzistuojančių ar prastų rezultatų tikrinimo, greičiausiai įgis blogą reputaciją ir nepasieks numatytų pardavimo tikslų.
Taip pat turėtų būti patikrintos svarbiausios misijos programos, tokios kaip kosminės paleidimo programos ar gyvybę gelbėjanti medicinos įranga, siekiant užtikrinti, kad jos veiktų ilgą laiką be nukrypimų.
Anot „Dunn & Bradstreet“, 59% „Fortune 500“ kompanijų kiekvieną savaitę apytiksliai praleidžia 1,6 valandos. Atsižvelgiant į tai, kad vidutinė „Fortune 500“ įmonė, kurioje dirba ne mažiau kaip 10 000 darbuotojų, moka 56 USD per valandą, tokios organizacijos prastovos išlaidų darbo jėgos dalis būtų 896 000 USD per savaitę, o tai reiškia daugiau nei 46 mln. USD per metus.
Apskaičiuota, kad tik 5 minučių Google.com prastova (rugpjūčio 19, 13) paieškos milžinui kainuoja net 545 000 USD.
Apskaičiuota, kad bendrovės prarado 1100 USD per sekundę pardavimus dėl neseniai įvykusio „Amazon“ interneto paslaugų nutraukimo.
Taigi našumo testavimas yra svarbus.
Veiklos testavimo tipai
- Įkrovos testavimas - patikrina programos gebėjimą atlikti numatomus vartotojo įkelimus. Tikslas yra nustatyti našumo trūkumus prieš pradedant veikti programinei įrangai.
- Streso testavimas - tai programos testavimas esant labai dideliam krūviui, siekiant sužinoti, kaip ji tvarko didelį srautą ar apdoroja duomenis. Tikslas yra nustatyti programos lūžio tašką.
- Ištvermės testavimas - atliekamas siekiant įsitikinti, kad programinė įranga per ilgą laiką gali atlaikyti numatomą apkrovą.
- Smaigalių testavimas - išbandoma programinės įrangos reakcija į staigius didelius vartotojų sukuriamos apkrovos šuolius.
- Tūrio testavimas - pagal tūrio bandymą didelis Nr. apie. Duomenys kaupiami duomenų bazėje ir stebimas bendras programinės įrangos sistemos elgesys. Tikslas yra patikrinti programinės įrangos našumą esant skirtingoms duomenų bazių tomams.
- Mastelio tikrinimas - mastelio tikrinimo tikslas yra nustatyti programinės įrangos efektyvumą „didinant“, kad būtų palaikoma didesnė vartotojo apkrova. Tai padeda planuoti savo programinės įrangos sistemos papildymą.
Dažnos našumo problemos
Dauguma našumo problemų yra susijusios su greičiu, atsako laiku, įkelties laiku ir prastu masteliu. Greitis dažnai yra vienas iš svarbiausių programos atributų. Lėtai veikianti programa praras potencialius vartotojus. Našumo testavimas atliekamas siekiant įsitikinti, kad programa veikia pakankamai greitai, kad išlaikytų vartotojo dėmesį ir susidomėjimą. Pažvelkite į šį įprastų našumo problemų sąrašą ir pastebėkite, kaip greitis yra įprastas daugelio jų veiksnys:
- Ilgas įkrovimo laikas - įkėlimo laikas paprastai yra pradinis laikas, per kurį reikia paleisti programą. Tai turėtų būti kuo mažiau. Nors kai kurių programų neįmanoma įkelti greičiau nei per minutę, jei įmanoma, įkrovos laikas turėtų būti trumpesnis nei kelios sekundės.
- Blogas atsakymo laikas - atsako laikas yra laikas, kurio reikia nuo tada, kai vartotojas įveda duomenis į programą, kol programa pateikia atsakymą į tą įvestį. Paprastai tai turėtų būti labai greita. Vėlgi, jei vartotojas turi laukti per ilgai, jis praranda susidomėjimą.
- Prastas mastelio keitimas - programinės įrangos produktas kenčia nuo prasto mastelio, kai jis negali susidoroti su numatomu vartotojų skaičiumi arba kai jis negali priimti pakankamai plačios vartotojų grupės. Turėtų būti atliktas apkrovos bandymas, kad programa būtų patenkinta numatomu vartotojų skaičiumi.
- Butelio kakleliai - kliūtys sistemoje yra kliūtys, pabloginančios bendrą sistemos našumą. Butelio kaklelis yra tada, kai kodavimo klaidos arba aparatinės įrangos problemos sumažina pralaidumą esant tam tikroms apkrovoms. Butelio kaklelį dažnai sukelia vienas sugedęs kodo skyrius. Raktas norint išspręsti problemą yra surasti kodo skyrių, kuris sukelia sulėtėjimą, ir pabandyti jį ten išspręsti. Butelio kaklelis paprastai nustatomas arba taisant blogus veikimo procesus, arba pridedant papildomos aparatinės įrangos. Kai kurie bendri veiklos trūkumai yra
- Procesoriaus naudojimas
- Atminties panaudojimas
- Tinklo naudojimas
- Operacinės sistemos apribojimai
- Disko naudojimas
Našumo tikrinimo procesas
Veikimo bandymams taikoma metodika gali būti labai įvairi, tačiau eksploatacinių savybių bandymų tikslas lieka tas pats. Tai gali padėti parodyti, kad jūsų programinė įranga atitinka tam tikrus iš anksto nustatytus našumo kriterijus. Arba tai gali padėti palyginti dviejų programinės įrangos sistemų našumą. Tai taip pat gali padėti nustatyti jūsų programinės įrangos dalis, kurios pablogina jos veikimą.
Žemiau pateikiamas bendras procesas, kaip atlikti našumo testavimą
- Nustatykite savo bandymų aplinką - žinokite savo fizinę bandymo aplinką, gamybos aplinką ir galimas testavimo priemones. Prieš pradėdami bandymo procesą, išsiaiškinkite išsamią aparatūros, programinės įrangos ir tinklo konfigūracijų informaciją, naudojamą bandant. Tai padės testuotojams sukurti efektyvesnius testus. Tai taip pat padės nustatyti galimus iššūkius, su kuriais bandytojai gali susidurti atlikdami bandymus.
- Nurodykite veiklos priimtinumo kriterijus - tai apima našumo, atsako trukmės ir išteklių paskirstymo tikslus ir apribojimus. Taip pat būtina nustatyti projekto sėkmės kriterijus, neatitinkančius šių tikslų ir apribojimų. Testuotojai turėtų būti įgalioti nustatyti veiklos kriterijus ir tikslus, nes projekto specifikacijose dažnai nebus pakankamai įvairių veiklos rezultatų palyginimo kriterijų. Kartais jų gali ir nebūti. Kai įmanoma, rasti panašią programą, su kuria būtų galima palyginti, yra geras būdas nustatyti veiklos tikslus.
- Planuokite ir supraskite našumo testus - nustatykite, kaip gali skirtis naudojimas tarp galutinių vartotojų, ir nustatykite pagrindinius scenarijus, kad išbandytumėte visus galimus naudojimo atvejus. Būtina imituoti įvairius galutinius vartotojus, planuoti našumo testo duomenis ir apibūdinti, kokia metrika bus renkama.
- Testavimo aplinkos konfigūravimas - prieš vykdymą paruoškite testavimo aplinką. Taip pat sutvarkykite įrankius ir kitus išteklius.
- Įgyvendinkite bandymo projektą - sukurkite našumo testus pagal savo testo projektą.
- Atlikite testus - atlikite ir stebėkite testus.
- Analizuokite, derinkite ir bandykite dar kartą - konsoliduokite, analizuokite ir dalinkitės testų rezultatais. Tada tiksliai sureguliuokite ir išbandykite dar kartą, kad įsitikintumėte, ar pagerėjo ar sumažėjo našumas. Kadangi su kiekvienu pakartotiniu bandymu patobulinimai paprastai mažėja, sustabdykite, kai trūkumus sukelia procesorius. Tada galite pasirinkti galimybę padidinti procesoriaus galią.
Našumo tikrinimo metrika: stebimi parametrai
Pagrindiniai parametrai, stebimi atliekant eksploatacinių savybių bandymus, yra šie:
- Procesoriaus naudojimas - laikas, kurį procesorius praleidžia vykdydamas nenaudojamas gijas.
- Atminties naudojimas - fizinės atminties kiekis, prieinamas procesams kompiuteryje.
- Disko laikas - kiek laiko diskas užimtas vykdant skaitymo ar rašymo užklausą.
- Pralaidumas - parodo tinklo sąsajos naudojamus bitus per sekundę.
- Privatūs baitai - proceso paskirtų baitų, kurių negalima bendrinti tarp kitų procesų, skaičius. Jie naudojami matuojant atminties nutekėjimą ir naudojimą.
- Įsipareigota atmintis - sunaudotos virtualios atminties kiekis.
- Atminties puslapiai per sekundę - į diską įrašytų ar iš jo perskaitytų puslapių skaičius, kad būtų pašalintos kietojo puslapio klaidos. Kietieji puslapių trūkumai yra tada, kai kodas, gautas ne iš dabartinio darbo rinkinio, iškviečiamas iš kitur ir gaunamas iš disko.
- Puslapio klaidos per sekundę - bendras procesoriaus klaidų puslapių apdorojimo dažnis. Tai vėl atsitinka, kai procesui reikalingas kodas ne iš jo darbo rinkinio.
- Procesoriaus pertraukimai per sekundę - yra vid. aparatūros pertraukimų skaičius, kurį procesorius gauna ir apdoroja kiekvieną sekundę.
- Disko eilės ilgis - tai vid. ne. skaitymo ir rašymo užklausų, esančių eilėje pasirinktame diske per pavyzdinį intervalą.
- Tinklo išvesties eilės ilgis - išvesties paketų eilės paketuose ilgis. Viskas, kas yra daugiau nei du, reiškia, kad vėluojama, o kliūtis reikia nutraukti.
- Bendras tinklo baitų per sekundę greitis, kurį baitai siunčiami ir gaunami sąsajoje, įskaitant kadravimo simbolius.
- Atsakymo laikas - laikas nuo tada, kai vartotojas pateikia užklausą, kol gaunamas pirmasis atsakymo simbolis.
- Perdavimo greitis - kompiuteris ar tinklas gauna užklausas per sekundę.
- Ryšio telkimo suma - vartotojų užklausų, kurias tenkina sujungtos jungtys, skaičius. Kuo daugiau užklausų tenkins jungtys baseine, tuo geresnis bus našumas.
- Didžiausias aktyvių seansų skaičius - didžiausias seansų, kurie gali būti aktyvūs vienu metu, skaičius.
- Rezultatų santykis - tai susiję su SQL sakinių, kuriuos tvarko talpykloje saugomi duomenys, o ne brangios įvesties / išvesties operacijos, skaičiumi. Tai yra gera vieta pradėti spręsti trūkumus.
- Pataikymai per sekundę - ne. įvykių žiniatinklio serveryje per kiekvieną apkrovos testo sekundę.
- Atgalinis segmentas - duomenų kiekis, kurį galima sugrąžinti bet kuriuo laiko momentu.
- Duomenų bazių užraktai - reikia stebėti ir kruopščiai sureguliuoti lentelių ir duomenų bazių užrakinimą.
- Viršutiniai laukimai - stebimi siekiant nustatyti, kokį laukimo laiką galima sutrumpinti, kai sprendžiama, kaip greitai duomenys gaunami iš atminties
- Gijų skaičius - programos būklę galima išmatuoti Nr. vykdomų ir šiuo metu aktyvių gijų.
- Šiukšlių surinkimas - tai susiję su nepanaudotos atminties grąžinimu į sistemą. Reikia stebėti šiukšlių surinkimo efektyvumą.
Našumo bandymo atvejų pavyzdžiai
- Patikrinkite, ar atsakymo laikas yra ne ilgesnis kaip 4 sekundės, kai vienu metu prie interneto prisijungia 1000 vartotojų.
- Patikrinkite, ar apkrovos programos atsakymo laikas yra priimtino diapazono ribose, kai tinklo ryšys yra lėtas
- Patikrinkite maksimalų vartotojų skaičių, kurį programa gali apdoroti, kol ji užstringa.
- Patikrinkite duomenų bazės vykdymo laiką, kai vienu metu skaitomi / rašomi 500 įrašų.
- Patikrinkite programos ir duomenų bazės serverio procesoriaus ir atminties naudojimą esant didžiausios apkrovos sąlygoms
- Patikrinkite reakcijos laiką, esant mažoms, normalioms, vidutinėms ir sunkioms apkrovoms.
Atliekant tikrąjį eksploatacinių savybių bandymą, neaiškūs terminai, tokie kaip priimtinas diapazonas, didelė apkrova ir kt., Pakeičiami konkrečiais skaičiais. Našumo inžinieriai nustato šiuos skaičius pagal verslo reikalavimus ir techninę programos aplinką.
Našumo tikrinimo įrankiai
Rinkoje yra daugybė efektyvumo tikrinimo įrankių. Testavimui pasirinktas įrankis priklausys nuo daugelio veiksnių, tokių kaip palaikomo protokolo rūšys, licencijos kaina, techninės įrangos reikalavimai, platformos palaikymas ir kt. Žemiau pateikiamas populiariai naudojamų testavimo įrankių sąrašas.
- „LoadNinja“ - keičia mūsų bandymų apkrovą. Šis debesyje pagrįstas apkrovos testavimo įrankis suteikia komandoms galimybę įrašyti ir akimirksniu atkurti išsamius apkrovos testus be sudėtingos dinaminės koreliacijos ir vykdyti šiuos apkrovos testus realiose naršyklėse. Komandos gali padidinti bandymų aprėptį. & sutrumpinti apkrovos bandymo laiką daugiau nei 60%.
- „NeoLoad“ - tai „ DevOps“ sukurta našumo testavimo platforma, kuri sklandžiai integruojasi į jūsų esamą nuolatinio pristatymo vamzdyną. Su „NeoLoad“ komandos išbando 10 kartų greičiau nei naudojant tradicinius įrankius, kad atitiktų naujus reikalavimus per visą „Agile“ programinės įrangos kūrimo gyvavimo ciklą - nuo komponento iki visos sistemos apkrovos testų.
- „HP LoadRunner“ - tai populiariausi našumo tikrinimo įrankiai šiandien rinkoje. Šis įrankis gali imituoti šimtus tūkstančių vartotojų, pritaikydamas programas realiam gyvenimui, kad būtų galima nustatyti jų elgesį esant numatomoms apkrovoms. „Loadrunner“ turi virtualų vartotojų generatorių, kuris imituoja gyvų žmonių veiksmus.
- „Jmeter“ - vienas iš pagrindinių įrankių, naudojamų tikrinant žiniatinklio ir programų serverius.
DUK
Kurias programas turėtume išbandyti?
Našumo testavimas visada atliekamas tik kliento-serverio sistemose. Tai reiškia, kad bet kuriai programai, kuri nėra kliento-serverio architektūra, nereikia atlikti našumo testavimo.
Pvz., „Microsoft“ skaičiuoklė nėra pagrįsta kliento-serverio funkcija ir joje nėra kelių vartotojų; taigi jis nėra kandidatas į našumo testavimą.
Kuo skiriasi našumo testavimas ir našumo inžinerija
Labai svarbu suprasti skirtumą tarp našumo testavimo ir našumo inžinerijos. Žemiau yra bendras supratimas:
Našumo testavimas yra disciplina, susijusi su dabartinės programinės įrangos našumo testavimu ir ataskaitų teikimu pagal įvairius parametrus.
Veiklos inžinerija yra procesas, kurio metu programinė įranga yra išbandoma ir derinama siekiant realizuoti reikiamą našumą. Šiuo procesu siekiama optimizuoti svarbiausias programos našumo savybes, ty vartotojo patirtį.
Istoriškai bandymai ir derinimas buvo aiškiai atskirti ir dažnai konkuruojantys. Tačiau per pastaruosius kelerius metus kelios testuotojų ir kūrėjų kišenės savarankiškai bendradarbiavo kurdamos derinimo komandas. Kadangi šios komandos sulaukė didelio pasisekimo, veiklos testavimo ir našumo derinimo koncepcija įsitvirtino, ir dabar mes tai vadiname veiklos inžinerija.
Išvada
Programinės įrangos inžinerijos srityje, prieš parduodant bet kurį programinės įrangos produktą, būtina atlikti našumo testavimą. Tai užtikrina klientų pasitenkinimą ir apsaugo investuotojo investicijas nuo gedimų. Našumo testavimo išlaidos paprastai yra daugiau nei kompensuojamos dėl geresnio klientų pasitenkinimo, lojalumo ir išlaikymo.