Junior
Պատմեք ինձ բեռի թեստավորման մասին։
sobes.tech AI
Պատասխան AI-ից
Բեռնաթափման փորձարկումը՝ դա փորձարկման տեսակ է, որը նպատակ ունի որոշելու հավելվածի (համակարգի) արտադրողականությունը, կայունությունը և ընդարձակելիությունը տարբեր բեռների դեպքում:
Բեռնաթափման փորձարկման խնդիրները՝
- սահմանել համակարգի դիմացկունության սահմանը;
- հայտնաբերել «կեղտոտ» տեղերը (բոտլնեկները);
- գնահատել համակարգի արձագանքման ժամանակը նշված բեռի դեպքում;
- ստուգել համակարգի կայունությունը երկարաժամկետ բեռի դեպքում;
- ստուգել համակարգի ընդարձակելիությունը:
Բեռնաթափման փորձարկման տեսակները՝
- Բեռնաթափման փորձարկում (Load Testing): ստուգում է համակարգի վարքը սպասվող (ստանդարտ) բեռի դեպքում;
- Սթրես-փորձարկում (Stress Testing): ստուգում է համակարգը այն բեռի դեպքում, որը գերազանցում է նորմալը, մինչև համակարգը չվնասվի։ Մ maksat - սահմանել դիմացկունության սահմանը;
- Ավարտական/սպասման փորձարկում (Endurance/Soak Testing): ստուգում է համակարգի կայունությունը երկարաժամկետ միջին կամ բարձր բեռի դեպքում, հայտնաբերում է հիշողության արտահոսքերը, արտադրողականության նվազումը ժամանակի ընթացքում;
- Պիկային բեռի փորձարկում (Spike Testing): ստուգում է համակարգի վարքը հանկարծակի, միաժամանակյա բեռի աճի դեպքում;
- Ընդարձակելիության փորձարկում (Scalability Testing): գնահատում է համակարգի կարողությունը մեծացող բեռը մշակելու համար հորիզոնական կամ ուղղահայաց ընդարձակման միջոցով;
- Տվյալների ծավալի փորձարկում (Volume Testing): ստուգում է համակարգի վարքը տվյալների բազայի կամ այլ պահեստների ծավալը մեծացնելու դեպքում:
Աշխատանքային փուլերը՝
- Նպատակի սահմանում: հստակ սահմանել արտադրողականության մետրիկները (արձագանքման ժամանակ, անցանելիություն, սխալների քանակը) և հաջողության չափանիշները;
- Սցենարների պլանավորում և նախագծում: օգտագործողների սցենարների վերլուծություն, բեռի պրոֆիլի սահմանում (վիրավորական օգտվողների քանակը, հարցումների ինտենսիվությունը);
- Փորձարկման սցենարների մշակում: օգտվողների գործողությունների իմիտացիայի համար սցենարների գրառում՝ բեռնաթափման գործիքների օգտագործմամբ;
- Փորձարկման միջավայրի պատրաստում: փորձարկման ստենդի կարգավորում, որը պատճենում է աշխատանքային միջավայրը;
- Փորձարկումների իրականացման: տարբեր բեռների տակ փորձարկումների գործարկում;
- Հսկողություն և տվյալների հավաքում: համակարգի, սերվերների, տվյալների բազայի արտադրողականության մետրիկների հավաքում;
- Արդյունքների վերլուծություն և հաշվետվություն: ստացված արդյունքների համեմատություն նպատակային մետրիկների հետ, խնդիրների հայտնաբերում, հաշվետվության պատրաստում:
Բեռնաթափման փորձարկման գործիքներ՝
- JMeter
- LoadRunner
- Gatling
- k6
- Locust
Օրինակ՝ պարզ JMeter սցենար (HTTP հարցում):
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2" properties="5.0" jmeter="5.6.2">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Բեռնաթափման փորձարկման օրինակ">
<hashTree>
<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group">
<intProp name="ThreadGroup.num_threads">100</intProp>
<intProp name="ThreadGroup.ramp_time">10</intProp>
<longProp name="ThreadGroup.duration">60</longProp>
<boolProp name="ThreadGroup.scheduler">true</boolProp>
<hashTree>
<HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Օրինակ HTTP Հարցում">
<stringProp name="HTTPSampler.domain">example.com</stringProp>
<stringProp name="HTTPSampler.path">/</stringProp>
<stringProp name="HTTPSampler.method">GET</stringProp>
<boolProp name="HTTPSampler.follow_redirects">true</boolProp>
<boolProp name="HTTPSampler.auto_redirects">false</boolProp>
<boolProp name="HTTPSampler.use_keepalive">true</boolProp>
<boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
<boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">false</boolProp>
<boolProp name="HTTPSampler.embedded_url_report">true</boolProp>
<boolProp name="HTTPSampler.connect_timeout"></boolProp>
<boolProp name="HTTPSampler.response_timeout"></boolProp>
<stringProp name="HTTPSampler.protocol">https</stringProp>
<stringProp name="HTTPSampler.contentEncoding"></stringProp>
<stringProp name="HTTPSampler.comment"></stringProp>
<stringProp name="HTTPSampler.port"></stringProp>
<stringProp name="HTTPSampler.image_parser">true</stringProp>
<stringProp name="HTTPSampler.concurrentDwn">Both</stringProp>
<stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
<stringProp name="HTTPSampler.implementation_status">OK</stringProp>
<boolProp name="HTTPSampler.postBodyRaw">false</boolProp>
<listProp name="HTTPSampler.HTTP_HEADERS"></listProp>
</HTTPSamplerProxy>
<hashTree/>
</hashTree>
</hashTree>
</hashTree>
</TestPlan>
</hashTree>
</jmeterTestPlan>
Բեռնաթափման փորձարկման ժամանակ հավաքվող մետրիկները՝
- Արձագանքման ժամանակը (Response Time)
- Ապրանքունակությունը (Throughput)
- Սխալների քանակը մեկ վայրկյանում (Errors per Second)
- Հարցումների քանակը մեկ վայրկյանում (Requests per Second / Transactions per Second)
- CPU օգտագործումը (CPU Utilization)
- Հիշողության օգտագործումը (Memory Usage)
- Հավաքածուի ակտիվությունը (Disk I/O)
- Ցանցային ակտիվությունը (Network I/O)
- Տվյալների բազայի մետրիկները (հարցումների քանակ, հարցումների կատարման ժամանակ)
Բեռնաթափման փորձարկումը օգնում է կանխել համակարգի սխալները արտադրականում բարձր բեռի դեպքում և ապահովել ընդունելի որակական մակարդակ օգտվողների համար։