Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

levvolkov/load_testing_web

Repository files navigation

Domashnee zadanie k lektsii 3. <>

Zadanie.

Sdelano:

Creda nagruzochnogo testirovaniia:

  1. Zaregistrirovan na saite BlazeMeter.
  2. Ustanovleno rasshirenie BlazeMeter dlia brauzera.
  3. Ustanovlen JMeter dlia nastroiki i vypolneniia nagruzochnykh testov.
  • Nastroeno avtosokhranenie dlia avtomaticheskogo sokhraneniia testovogo stsenariia:
    • Meniu: Option => Save Automatically before run =>
  • Ustanovlen Plugins Manager, peremestiv .jar fail 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).

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
      • Email
    • 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.jmx byl 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
  • 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 Group byl 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 Group dobavlen 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


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 .
  • V fail docker-compose.yml dobavlena stroka platform: 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.yml udalena stroka version: '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

2. Podgotovka rasshireniia BlazeMeter

  • V brauzere po adresu localhost:8000 ukazannom v docker-compose.uml zapushcheno 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).

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.jmx peremeshchen 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
  • V Thread Group dobavlen 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"}]
  • 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

7. Po rezul'tatam provedeniia nagruzochnogo testirovanii sdelany skrishoty.



Dopolnitel'naia informatsiia

Releases

No releases published

Packages

Contributors