Domashnee zadanie k lektsii 3. <>
Sdelano:
Creda nagruzochnogo testirovaniia:
- Zaregistrirovan na saite BlazeMeter.
- Ustanovleno rasshirenie BlazeMeter dlia brauzera.
- Ustanovlen JMeter dlia nastroiki i vypolneniia nagruzochnykh testov.
- Nastroeno avtosokhranenie dlia avtomaticheskogo sokhraneniia testovogo stsenariia:
- Meniu:
Option => Save Automatically before run =>
- Meniu:
- Ustanovlen Plugins Manager, peremestiv
.jarfail v direktoriiu Apache JMeter s pomoshch'iu komandy:
mv ~/Downloads/jmeter-plugins-manager-1.10.jar /Applications/apache-jmeter-5.6.3/lib/ext/
Raund testirovaniia dobavleniia kommentariia na stranitse WordPress
1. Podgotovka rasshireniia BlazeMeter
- Dlia nachala testirovaniia pereshel na sait WordPress i zapustil rasshirenie BlazeMeter. V protsesse zapisi shagov nagruzochnogo testirovaniia byli vypolneny sleduiushchie nastroiki:
- Naznacheno nazvanie testa.
- Nastroiki v razdele Advanced options:
- Filter Pattern:
http://*/*, https://*/*(vybor otslezhivaemgog protokola). - Disable Browser Cache (otkliuchenie kesha brauzera dlia otpravki vsekh zaprosov na udalennyi server WordPress).
- Update Settings Before Running Test (nastroika testa po kolichestvu pol'zovatelei i virtual'nykh zaprosov).
- Only Top Level Request (zapis' osnovnykh zaprosov bez dopolnitel'nykh zaprosov k CSS i JavaScript).
- Filter Pattern:
2. Zapis' testovogo stsenariia
- Zapustil stsenarii zapisi v rasshirenii BlazeMeter i vypolnil sleduiushchie deistviia:
- Obnovil glavnuiu stranitsu WordPress.
- Pereshel k testovoi zapisi "Privet, mir!".
- Dobavil kommentarii s ukazannymi dannymi:
- Kommentarii
- Imia
- Ostanovil zapis' v BlazeMeter, test byl sobran i perenapravlen na osnovnuiu stranitsu saita BlazeMeter.
3. Nastroika testovogo stsenariia
- Na stranitse BlazeMeter byli nastroeny osnovnye parametry v oblasti proizvoditel'nosti (LOAD CONFIGURATION):
- Total Users - kolichestvo virtual'nykh pol'zovatelei (kolichestvo virtual'nykh potokov, kotorye budut otpravliat' parallel'nye zaprosy).
- Duration (min)
- Iterations - prodolzhitel'nost' nagruzki sistemy (Duration) ili kolichestvo iteratsii, skol'ko raz budet progoniat'sia test (Iterations). - Ramp Up Time (min) - periodichnost' dobavleniia pol'zovatelei (potokov) v sistemu (aktivno pri kolichestve pol'zovatelei bolee odnogo).
- Vybrano oblako dlia vypolneniia nagruzki (LOAD DISTRIBUTION).
- Zapushchen test (Run Test).
- Stsenarii zapuska testa zavershilsia s otkrytiem vkladki Summary, kotoraia soderzhit osnovnuiu svodku.
- Takzhe byli sdelany skrinshoty rezul'tatov nagruzochnogo testirovaniia.
- Dlia skachivaniia stsenariia v formate jmx:
- Preshel na vkladku Original Test Configuration => Files => nazvanie_testa.jmx .
4. Podgotovka Jmeter
- Skachannyi fail
WordPress_COMMENT_TEST.jmxbyl peremeshchen v direktoriiu dlia khraneniia testov proizvoditel'nosti i zapushchen s pomoshch'iu JMeter dlia nagruzki na veb-prilozhenie.
# Sozdany papki khraneniia proekta:
mkdir -p ~/Documents/Performance_testingQA79/Load_testing_web/Test-WordPress
# Peremeshchenie faila .jmx v direktoriiu:
mv ~/Downloads/WordPress_COMMENT_TEST.jmx ~/Documents/Performance_testingQA79/Load_testing_web/Test-WordPress
# Perekhod v direktoriiu:
cd ~/Documents/Performance_testingQA79/Load_testing_web/Test-WordPress
#Otkrytie testa v JMeter:
jmeter -t WordPress_COMMENT_TEST.jmx
mkdir -p ~/Documents/Performance_testingQA79/Load_testing_web/Test-WordPress
# Peremeshchenie faila .jmx v direktoriiu:
mv ~/Downloads/WordPress_COMMENT_TEST.jmx ~/Documents/Performance_testingQA79/Load_testing_web/Test-WordPress
# Perekhod v direktoriiu:
cd ~/Documents/Performance_testingQA79/Load_testing_web/Test-WordPress
#Otkrytie testa v JMeter:
jmeter -t WordPress_COMMENT_TEST.jmx
- Nazvaniia shagov v vkladke Thread Group byli izmeneny na bolee poniatnye.
- Ubrana galochka s Retrieve All Embedded Resources v razdele HTTP Request Defaults, chtoby iskliuchit' lishnie zaprosy i uskorit' poisk nuzhnogo zaprosa na kommentarii.
- V
Thread Groupbyl dobavlen slushatel' View Results Tree, chto pozvoliaet detal'no otslezhivat' i analizirovat' vypolnenie testovykh zaprosov:- Po puti: Add => Listiner => View Results Tree
- Chtoby ne bylo dublirovanii komentariia pri povtornom zapuske testa, chto privodit k oshibke v
Thread Groupdobavlen eshche odin element Random Variable sposbnyi avtomaticheki sozdavat' kommentarii randomno.- Po puti: Add => Config Elements => Random Variable
- Sozdan element po maske raspolozhennoi v dokumentatsii, kotoryi kazhdyi raz pri zapuske stsenariia budet generirovat' randomnoe znachenie kommentariia (comment_0000). Cozdana i skopirovano nazvanie peremennoi, posle chego ukazana v stsenarii testovogo shaga
${VARIABLE_COMMENT}, vmesto kommentariia. - Takzhe rassmotren bolee prostoi sposob sozdaniia randomnoi stroki bez neobkhodimosti sozdaniia Random Variable. Dostatochno ukazat'
${__RandomString(10,abcdefg)}na meste kommentariia v testovom stsenarii, chto generiruet sluchainoe znachenie iz 10 ukazannykh bukv.
- V zapushchennom i vypolnenom teste ubedilsia v ispolnenii vsekh shagov, primeneno formatirovanie rezul'tatov testirovaniia s vyborom formata HTML (Text
- HTML).
5. Generatsiia standartnogo otcheta o provedennom testirovani Apache JMeter Dashboard
- Otchet Apache JMeter Dashboard predstavliaet soboi vizualizirovannuiu svodku rezul'tatov testirovaniia proizvoditel'nosti, vkliuchaia grafiki nagruzki, statistiku vremeni otklika i protsentil'nye dannye, chto pozvoliaet effektivno analizirovat' povedenie sistemy pod nagruzkoi.
# Sgenerirovan standartnyi JMeter otchet:
jmeter -n -t ~/Documents/Performance_testingQA79/Load_testing_web/Test-WordPress/WordPress_COMMENT_TEST.jmx -l ~/Documents/Performance_testingQA79/Load_testing_web/Test-WordPress/test_results.jtl -e -o ~/Documents/Performance_testingQA79/Load_testing_web/Test-WordPress/report_output
# Perekhod v nuzhnuiu direktoriiu i otkrytie standartnogo otcheta jmeter o provedennom testirovanii (Apache JMeter Dashboard)
cd ~/Documents/Performance_testingQA79/Load_testing_web/Test-WordPress && open report_output/index.html
jmeter -n -t ~/Documents/Performance_testingQA79/Load_testing_web/Test-WordPress/WordPress_COMMENT_TEST.jmx -l ~/Documents/Performance_testingQA79/Load_testing_web/Test-WordPress/test_results.jtl -e -o ~/Documents/Performance_testingQA79/Load_testing_web/Test-WordPress/report_output
# Perekhod v nuzhnuiu direktoriiu i otkrytie standartnogo otcheta jmeter o provedennom testirovanii (Apache JMeter Dashboard)
cd ~/Documents/Performance_testingQA79/Load_testing_web/Test-WordPress && open report_output/index.html
Raund testirovaniia pokupki bileta i poluchenie QR koda na saite IDEM V KINO
1. Zapusk saita kinoteatra "Idem v kino"
- V protsesse vypolneniia zadach po testirovaniiu proizvoditel'nosti byla provedena nastroika proekta kinoteatra, kotoraia vkliuchaet v sebia klonirovanie repozitoriia s GitHub.
- Komandy dlia podgotovki i zapuska proekta:
# Sozdana papka dlia khraneniia proekta dlia provedeniia nagruzochnogo testirovaniia:
mkdir ~/Documents/Performance_testingQA79/Load_testing_web/Test-Cinema
# Perekhod v direktoriiu dlia khraneniia proekta:
cd ~/Documents/Performance_testingQA79/Load_testing_web/Test-Cinema
# Klonirovanie repozitoriia proekta:
git clone https://github.com/mshegolev/congenial-potato.git
# Perekhod v katalog kinoteatra i otkrytie papki cinema v Visual Studio Code:
cd congenial-potato/cinema && code .
mkdir ~/Documents/Performance_testingQA79/Load_testing_web/Test-Cinema
# Perekhod v direktoriiu dlia khraneniia proekta:
cd ~/Documents/Performance_testingQA79/Load_testing_web/Test-Cinema
# Klonirovanie repozitoriia proekta:
git clone https://github.com/mshegolev/congenial-potato.git
# Perekhod v katalog kinoteatra i otkrytie papki cinema v Visual Studio Code:
cd congenial-potato/cinema && code .
- V fail
docker-compose.ymldobavlena strokaplatform: linux/x86_64, chtoby ukazat' Docker na sozdanie obrazov dlia arkhitektury x86_64 (neobkhodimo dlia raboty na Apple M1 s arkhitekturoi ARM). - Chtoby izbezhat' preduprezhdeniia pri zapuske konteinerov v
docker-compose.ymludalena strokaversion: '3.7'.- V versiiakh Docker Compose 2.0 i vyshe bol'she ne trebuetsia ukazyvat' versiiu faila, tak kak kompozitor teper' avtomaticheski obrabatyvaet dannye. Eto uproshchaet rabotu i delaet faily konfiguratsii bolee poniatnymi.
- Zapushcheny konteinery s pomoshch'iu Docker i provereno ikh sostoianie:
# Zapusk konteinerov Docker v fonovom rezhime
docker-compose up -d
# Proverka zapushchennykh konteinerov
docker ps
docker-compose up -d
# Proverka zapushchennykh konteinerov
docker ps
2. Podgotovka rasshireniia BlazeMeter
- V brauzere po adresu
localhost:8000ukazannom vdocker-compose.umlzapushcheno rasshirenie BlazeMater. - Dlia zapisi shagov nagruzochnogo testirovaniia:
- Naznacheno nazvanie testa.
- Nastroiki v razdele Advanced options:
- Filter Pattern:
http://*/*, https://*/*(vybor otslezhivaemgog protokola). - Record Ajax Request (dlia zakhvata i zapisi AJAX-zaprosov, kotorye otpravliaiutsia vashim veb-prilozheniem vo vremia vzaimodeistviia s nim, osobenno polezno pri testirovanii veb-prilozhenii, ispol'zuiushchikh dinamicheskie zagruzki dannykh cherez AJAX)
- Only Top Level Request (zapis' osnovnykh zaprosov bez dopolnitel'nykh zaprosov k CSS i JavaScript).
- Filter Pattern:
3. Zapis' testovogo stsenariia:
- Zapushchen stsenarii zapisi v rasshirenii BlazeMeter dlia vosproizvedeniia shagov:
- Perekhod na stranitsu (obnovlena glavnaia stranitsa)
- Vybor seansa
- Vybor mesta
- Poluchit' kod bronirovaniia
- Poluchen kod bronirovaniia
- Zapis' v BlazeMeter ostanovlena i test sobran, perenapravlen na osnovnuiu stranitsu saita BlazeMeter.
4. Nastroika testovogo stsenariia
- Na stranitse BlazeMeter nastroeny osnovnye parametry v oblasti proizvoditel'nosti (LOAD CONFIGURATION):
- Total Users - kolichestvo virtual'nykh pol'zovatelei (kolichestvo virtual'nykh potokov, kotorye budut otpravliat' parallel'nye zaprosy).
- Duration (min)
- Iterations - prodolzhitel'nost' nagruzki sistemy (Duration) ili kolichestvo iteratsii, skol'ko raz budet progoniat'sia test (Iterations). - Ramp Up Time (min) - s kakoi periodichnost'iu pol'zovateli (potoki) budut dobavliat'sia v sistemu (rabotaet, esli pol'zovatelei bol'she odnogo).
- Vybrano oblako dlia vypolneniia nagruzki (LOAD DISTRIBUTION).
- Zapushchen test (Run Test).
- Stsenarii zapuska testa v rasshirenii BlazeMeter zavershilsia, otkrylas' vkladka Summary, kotoraia pokazyvaet osnovnuiu svodku.
- Dlia skachivaniia stsenariia v formate jmx:
- Preshel na vkladku Original Test Configuration => Files => nazvanie_testa.jmx .
5. Podgotovka Apache JMeter
- Skachennyi fail
CinemaTest.jmxperemeshchen v direktoriiu dlia khraneniia testov proizvoditel'nosti i zapushchen s pomoshch'iu JMeter dlia provedeniia nagruzki na veb-prilozhenie.
# Peremeshchenie faila .jmx v direktoriiu po testirovaniiu proizovditel'nosti:
mv ~/Downloads/CinemaTest.jmx ~/Documents/Performance_testingQA79/Load_testing_web/Test-Cinema
# Perekhod v direktoriiu:
cd ~/Documents/Performance_testingQA79/Load_testing_web/Test-Cinema
#Otkrytie testa v JMeter
jmeter -t CinemaTest.jmx
mv ~/Downloads/CinemaTest.jmx ~/Documents/Performance_testingQA79/Load_testing_web/Test-Cinema
# Perekhod v direktoriiu:
cd ~/Documents/Performance_testingQA79/Load_testing_web/Test-Cinema
#Otkrytie testa v JMeter
jmeter -t CinemaTest.jmx
-
V
Thread Groupdobavlen slushatel' View Results Tree ,odin iz naibolee populiarnykh i poleznykh instrumentov, kotoryi pozvoliaet pol'zovateliam detal'no otslezhivat' i analizirovat' vypolnenie testovykh zaprosov.- Po puti: Add => Listiner => View Results Tree
-
Nazvaniia shagov raspolozhennye vo kladke Thread Group izmeneny na bolee poniatnye.
- V shag kotoryi otvechaet za vybor riada i mesta dobavleno sluchainoe znachenie sozdanoe po maske raspolozhennoi v dokumentatsii, kotoroe kazhdyi raz pri zapuske stsenariia budet generirovat' randomnoe znachenie:
- salesPlaces =
[{"row":${_Random(1, 10)}, "place":${__Random(1,10)}, "type":"standart"}]
- salesPlaces =
- V shag kotoryi otvechaet za vybor riada i mesta dobavleno sluchainoe znachenie sozdanoe po maske raspolozhennoi v dokumentatsii, kotoroe kazhdyi raz pri zapuske stsenariia budet generirovat' randomnoe znachenie:
-
V zapushchennom i vypolnenom teste ubedilsia v ispolnenii vsekh shagov, primeneno formatirovanie rezul'tatov testirovaniia s vyborom formata HTML(Download resources).
6. Generatsiia standartnogo otcheta o provedennom testirovani Apache JMeter Dashboard
- Otchet Apache JMeter Dashboard predstavliaet soboi vizualizirovannuiu svodku rezul'tatov testirovaniia proizvoditel'nosti, vkliuchaia grafiki nagruzki, statistiku vremeni otklika i protsentil'nye dannye, chto pozvoliaet effektivno analizirovat' povedenie sistemy pod nagruzkoi.
# Sgenerirovan standartnyi JMeter otchet:
jmeter -n -t ~/Documents/Performance_testingQA79/Load_testing_web/CinemaTest.jmx -l ~/Documents/Performance_testingQA79/Load_testing_web/test_results.jtl -e -o ~/Documents/Performance_testingQA79/Load_testing_web/report_output
# Perekhod v nuzhnuiu direktoriiu i otkrytie standartnogo otcheta jmeter o provedennom testirovanii (Apache JMeter Dashboard)
cd ~/Documents/Performance_testingQA79/Load_testing_web && open report_output/index.html
jmeter -n -t ~/Documents/Performance_testingQA79/Load_testing_web/CinemaTest.jmx -l ~/Documents/Performance_testingQA79/Load_testing_web/test_results.jtl -e -o ~/Documents/Performance_testingQA79/Load_testing_web/report_output
# Perekhod v nuzhnuiu direktoriiu i otkrytie standartnogo otcheta jmeter o provedennom testirovanii (Apache JMeter Dashboard)
cd ~/Documents/Performance_testingQA79/Load_testing_web && open report_output/index.html
7. Po rezul'tatam provedeniia nagruzochnogo testirovanii sdelany skrishoty.
Dopolnitel'naia informatsiia
- https://www.blazemeter.com/ - instruktsiia po rabote s
blazemeter; - Blazemeter chrome extention - rasshirenie Chrome browser dlia zapisi testov c pomoshch'iu
blazemeter - https://jmeter.apache.org/ - instruktsiia po rabote s
jmeter; - Jmeter Test Script Recorder - instruktsiia po zapisi testov s pomoshch'iu
jmeter - Download jmeter - distributivy
jmeter - Install plugin - ustanovka plaginov v
jmeter