Slodzes pÄrbaude kÄ CI pakalpojums izstrÄdÄtÄjiem
Viena no problÄmÄm, ar ko bieži saskaras vairÄku produktu programmatÅ«ras pÄrdevÄji, ir inženieru ā izstrÄdÄtÄju, testÄtÄju un infrastruktÅ«ras administratoru ā kompetenÄu dublÄÅ”anÄs gandrÄ«z katrÄ komandÄ. Tas attiecas arÄ« uz dÄrgiem inženieriem - speciÄlistiem slodzes testÄÅ”anas jomÄ.
TÄ vietÄ, lai veiktu savus tieÅ”os pienÄkumus un izmantotu savu unikÄlo pieredzi, lai izveidotu slodzes testÄÅ”anas procesu, izvÄlÄtos metodiku, optimÄlus rÄdÄ«tÄjus un rakstÄ«tu automÄtiskos testus saskaÅÄ ar slodzes profiliem, inženieriem bieži ir jÄizvieto testa infrastruktÅ«ra no nulles, jÄkonfigurÄ slodzes rÄ«ki un tie jÄiegulsta. KI sistÄmÄs, izveido uzraudzÄ«bu un ziÅojumu publicÄÅ”anu.
JÅ«s varat atrast risinÄjumus dažÄm organizatoriskÄm problÄmÄm testÄÅ”anÄ, ko mÄs izmantojam vietnÄ Positive Technologies cits raksts. Un Å”ajÄ es runÄÅ”u par iespÄju integrÄt slodzes testus kopÄjÄ CI cauruļvadÄ, izmantojot jÄdzienu āslodzes pÄrbaude kÄ pakalpojumsā (slodzes pÄrbaude kÄ pakalpojums). JÅ«s uzzinÄsit, kÄ un kÄdus slodzes avotu docker attÄlus var izmantot CI konveijerÄ; kÄ savienot slodzes avotus ar CI projektu, izmantojot bÅ«vÄÅ”anas veidni; kÄ izskatÄs demonstrÄcijas konveijera slodzes testu izpildei un rezultÄtu publicÄÅ”anai. Raksts var bÅ«t noderÄ«gs programmatÅ«ras testÄÅ”anas inženieriem un automatizÄcijas inženieriem CI, kuri domÄ par savas slodzes sistÄmas arhitektÅ«ru.
Koncepcijas būtība
Slodzes testÄÅ”anas kÄ pakalpojuma jÄdziens ietver spÄju integrÄt ielÄdes rÄ«kus Apache JMeter, Yandex.Tank un savus ietvarus patvaļīgÄ nepÄrtrauktas integrÄcijas sistÄmÄ. DemonstrÄcija bÅ«s paredzÄta GitLab CI, taÄu principi ir kopÄ«gi visÄm CI sistÄmÄm.
Slodzes pÄrbaude kÄ pakalpojums ir centralizÄts slodzes testÄÅ”anas pakalpojums. Slodzes testi tiek palaisti speciÄlos aÄ£entu pÅ«los, rezultÄti tiek automÄtiski publicÄti GitLab Pages, Influx DB un Grafana vai testa atskaites sistÄmÄs (TestRail, ReportPortal utt.). AutomatizÄcija un mÄrogoÅ”ana tiek Ä«stenota pÄc iespÄjas vienkÄrÅ”Äk ā pievienojot un parametrizÄjot GitLab CI projektÄ ierasto gitlab-ci.yml veidni.
Å Ä«s pieejas priekÅ”rocÄ«ba ir tÄda, ka visu CI infrastruktÅ«ru, ielÄdes aÄ£entus, slodzes avotu doku attÄlus, testÄÅ”anas cauruļvadus un pÄrskatu publicÄÅ”anu uztur centralizÄta automatizÄcijas nodaļa (DevOps inženieri), savukÄrt slodzes testÄÅ”anas inženieri var koncentrÄt savus centienus uz testu izstrÄdi. un to rezultÄtu analÄ«ze, nerisinot infrastruktÅ«ras jautÄjumus.
Apraksta vienkÄrŔības labad mÄs pieÅemsim, ka testÄjamÄ mÄrÄ·a lietojumprogramma vai serveris jau ir iepriekÅ” izvietots un konfigurÄts (Å”im nolÅ«kam var izmantot automatizÄtos skriptus programmÄs Python, SaltStack, Ansible utt.). Tad visa slodzes testÄÅ”anas kÄ pakalpojuma koncepcija ietilpst trÄ«s posmos: atskaiÅ”u sagatavoÅ”ana, testÄÅ”ana, publicÄÅ”ana. SÄ«kÄka informÄcija par diagrammu (visi attÄli ir noklikŔķinÄmi):
Slodzes testÄÅ”anas pamatjÄdzieni un definÄ«cijas
Veicot slodzes testus, mÄs cenÅ”amies ievÄrot ISTQB standarti un metodika, izmantojiet atbilstoÅ”u terminoloÄ£iju un ieteicamos rÄdÄ«tÄjus. Es sniegÅ”u Ä«su galveno jÄdzienu un definÄ«ciju sarakstu slodzes testÄÅ”anÄ.
IekrauÅ”anas aÄ£ents - virtuÄlÄ maŔīna, kurÄ tiks palaists lietojumprogramma - slodzes avots (Apache JMeter, Yandex.Tank vai paÅ”rakstÄ«ts ielÄdes modulis).
PÄrbaudes mÄrÄ·is (mÄrÄ·is) - serveris vai serverÄ« instalÄta lietojumprogramma, kas tiks ielÄdÄta.
Testa scenÄrijs (pÄrbaudes gadÄ«jums) - parametrizÄtu darbÄ«bu kopums: lietotÄja darbÄ«bas un paredzamÄs reakcijas uz Ŕīm darbÄ«bÄm ar fiksÄtiem tÄ«kla pieprasÄ«jumiem un atbildÄm atkarÄ«bÄ no norÄdÄ«tajiem parametriem.
Profils vai slodzes plÄns (profils) - plkst ISTQB metodoloÄ£ija (4.2.4. sadaļa, 43. lpp.) slodzes profili definÄ metriku, kas ir kritiska konkrÄtam testam, un iespÄjas testa laikÄ mainÄ«t slodzes parametrus. AttÄlÄ varat redzÄt profilu piemÄrus.
PÄrbaude ā skripts ar iepriekÅ” noteiktu parametru kopu.
PÄrbaudes plÄns (pÄrbaudes plÄns) - testu komplekts un slodzes profils.
Testran (testrun) - viena iterÄcija viena testa izpildei ar pilnÄ«bÄ izpildÄ«tu slodzes scenÄriju un saÅemto atskaiti.
TÄ«kla pieprasÄ«jums (pieprasÄ«jums) ā HTTP pieprasÄ«jums, kas nosÅ«tÄ«ts no aÄ£enta uz mÄrÄ·i.
TÄ«kla atbilde (atbilde) ā HTTP atbilde, kas nosÅ«tÄ«ta no mÄrÄ·a aÄ£entam.
HTTP atbildes kods (HTTP atbildes statuss) - standarta atbildes kods no lietojumprogrammu servera.
DarÄ«jums ir pilns pieprasÄ«juma-atbildes cikls. DarÄ«jums tiek skaitÄ«ts no pieprasÄ«juma (pieprasÄ«juma) nosÅ«tÄ«Å”anas sÄkuma lÄ«dz atbildes (atbildes) saÅemÅ”anas pabeigÅ”anai.
DarÄ«juma statuss - vai bija iespÄjams veiksmÄ«gi pabeigt pieprasÄ«juma-atbildes ciklu. Ja Å”ajÄ ciklÄ ir kÄda kļūda, tad viss darÄ«jums tiek uzskatÄ«ts par neveiksmÄ«gu.
Reakcijas laiks (latents) - laiks no pieprasÄ«juma (pieprasÄ«juma) nosÅ«tÄ«Å”anas beigÄm lÄ«dz atbildes (atbildes) saÅemÅ”anas sÄkumam.
IelÄdÄt metriku ā noslogotÄ pakalpojuma un slodzes aÄ£enta raksturlielumi, kas noteikti slodzes pÄrbaudes procesÄ.
Pamatmetrika slodzes parametru mÄrÄ«Å”anai
Daži no metodoloÄ£ijÄ visbiežÄk izmantotajiem un ieteiktajiem ISTQB (36., 52. lpp.) rÄdÄ«tÄji ir parÄdÄ«ti zemÄk esoÅ”ajÄ tabulÄ. LÄ«dzÄ«gas metrikas aÄ£entam un mÄrÄ·im ir norÄdÄ«tas vienÄ rindÄ.
Slodzes aģenta metrika
MÄrÄ·a sistÄmas vai lietojumprogrammas metrika, kas tiek testÄta zem slodzes
Skaits vCPU un atmiÅa RAM, Disks - slodzes aÄ£enta "dzelzs" raksturlielumi CPU, AtmiÅa, diska lietojums - CPU, atmiÅas un diska ielÄdes dinamika
testÄÅ”anas procesÄ. Parasti mÄra procentos no
maksimÄlÄs pieejamÄs vÄrtÄ«bas
TÄ«kla caurlaidspÄja (uz slodzes aÄ£ents) - caurlaidspÄja
tīkla interfeiss serverī,
kur ir uzstÄdÄ«ts slodzes aÄ£ents.
Parasti mÄra baitos sekundÄ (bps) TÄ«kla caurlaidspÄja(mÄrÄ·Ä«) - tÄ«kla interfeisa joslas platums
mÄrÄ·a serverÄ«. Parasti mÄra baitos sekundÄ (bps)
VirtuÄlie lietotÄji- virtuÄlo lietotÄju skaits,
ievieÅ”ot slodzes scenÄrijus un
reÄlu lietotÄja darbÄ«bu atdarinÄÅ”ana VirtuÄlo lietotÄju statuss, NokÄrtots/Neizdevies/KopÄ ā sekmÄ«go un
neveiksmÄ«gi virtuÄlo lietotÄju statusi
slodzes scenÄrijiem, kÄ arÄ« to kopÄjo skaitu.
Parasti ir sagaidÄms, ka visi lietotÄji varÄja pabeigt
visi jÅ«su uzdevumi, kas norÄdÄ«ti slodzes profilÄ.
Jebkura kļūda nozÄ«mÄ, ka Ä«sts lietotÄjs to nevarÄs izdarÄ«t
atrisiniet savu problÄmu, strÄdÄjot ar sistÄmu
PieprasÄ«jumi sekundÄ (minÅ«tÄ)- tÄ«kla pieprasÄ«jumu skaits sekundÄ (vai minÅ«tÄ).
SvarÄ«gs ielÄdes aÄ£enta raksturlielums ir tas, cik pieprasÄ«jumu tas var Ä£enerÄt.
Faktiski Ŕī ir virtuÄlo lietotÄju piekļuves lietojumprogrammai imitÄcija Atbildes sekundÄ (minÅ«tÄ)
- tÄ«kla atbilžu skaits sekundÄ (vai minÅ«tÄ).
SvarÄ«ga mÄrÄ·a pakalpojuma Ä«paŔība: cik daudz
Ä£enerÄt un nosÅ«tÄ«t atbildes uz vaicÄjumiem ar
iekrauŔanas aģents
HTTP atbildes statussā dažÄdu atbildes kodu skaits
no lietojumprogrammu servera, ko saÅÄmis ielÄdes aÄ£ents.
PiemÄram, 200 OK nozÄ«mÄ veiksmÄ«gu zvanu,
un 404 - ka resurss netika atrasts
Latentums (reakcijas laiks) - laiks no beigÄm
pieprasÄ«juma (pieprasÄ«juma) nosÅ«tÄ«Å”ana pirms atbildes (atbildes) saÅemÅ”anas uzsÄkÅ”anas.
Parasti mÄra milisekundÄs (ms)
DarÄ«juma reakcijas laiksā viena pilna darÄ«juma veikÅ”anas laiks,
pieprasījuma-atbildes cikla pabeigŔana.
Å is ir laiks no pieprasÄ«juma (pieprasÄ«juma) nosÅ«tÄ«Å”anas sÄkuma
lÄ«dz atbildes (atbildes) saÅemÅ”anas pabeigÅ”anai.
DarÄ«juma laiku var izmÄrÄ«t sekundÄs (vai minÅ«tÄs)
vairÄkos veidos: apsveriet minimumu,
maksimums, vidÄjais un, piemÄram, 90. procentile.
MinimÄlais un maksimÄlais rÄdÄ«jums ir ÄrkÄrtÄjs
sistÄmas veiktspÄjas statuss.
VisbiežÄk izmantotÄ ir deviÅdesmitÄ procentile,
kÄ tas liecina lielÄkajai daļai lietotÄju,
Ärti darboties pie sistÄmas veiktspÄjas sliekÅ”Åa
DarÄ«jumi sekundÄ (minÅ«tÄ) - pabeigto skaits
darÄ«jumi sekundÄ (minÅ«tÄ),
tas ir, cik daudz pieteikumu varÄja pieÅemt un
apstrÄdÄt pieprasÄ«jumus un izdot atbildes.
Faktiski tÄ ir sistÄmas caurlaidspÄja
ReÄliem lietotÄjiem neveiksmÄ«gi
darÄ«jums patiesÄ«bÄ nozÄ«mÄs
nespÄja strÄdÄt ar sistÄmu zem slodzes
Slodzes pÄrbaudes shematiskÄ diagramma
Slodzes testÄÅ”anas koncepcija ir ļoti vienkÄrÅ”a un sastÄv no trim galvenajiem posmiem, kurus es jau minÄju: Sagatavot-pÄrbaudes-ziÅojumu, tas ir, testa mÄrÄ·u sagatavoÅ”ana un parametru iestatÄ«Å”ana slodzes avotiem, pÄc tam slodzes testu izpilde un beigÄs testa atskaites Ä£enerÄÅ”ana un publicÄÅ”ana.
Shematiskas piezīmes:
QA.Tester ir eksperts slodzes testÄÅ”anÄ,
MÄrÄ·is ir mÄrÄ·a lietojumprogramma, kuras darbÄ«bu slodzes laikÄ vÄlaties uzzinÄt.
EntÄ«tiju, posmu un posmu klasifikators diagrammÄ
Posmi un soļi
Kas notiek
Kas atrodas pie ieejas
KÄda ir izvade
SagatavoÅ”anÄs: sagatavoÅ”anas posms testÄÅ”anai
VM
MÄkoÅa izvietoÅ”ana
virtuÄlÄ maŔīna ar
nepiecieÅ”amÄs Ä«paŔības
VM iestatÄ«jumi ielÄdes aÄ£entam
AutomatizÄcijas skripti
VM izveide
VM konfigurÄts
mÄkonis
Sūtīt
OS iestatīŔana un sagatavoŔana
vide priekÅ”
kravas aģenta darbs
Vides iestatījumi priekŔ
kravas aģents
AutomatizÄcijas skripti
vides iestatījumi
Sagatavota vide:
OS, pakalpojumi un lietojumprogrammas,
nepiecieŔams darbam
kravas aģents
LoadAgents
UzstÄdÄ«Å”ana, konfigurÄÅ”ana un parametru noteikÅ”ana
iekrauŔanas aģents.
Vai lejupielÄdÄjot docker attÄlu no
iepriekÅ” konfigurÄts slodzes avots
IelÄdÄt avota doka attÄlu
(YAT, JM vai paŔrakstīts ietvars)
Iestatījumi
kravas aģents
UzstÄdÄ«ts un gatavs
strÄdÄt slodzes aÄ£entu
Tests: slodzes testu izpildes posms. Avoti ir ielÄdes aÄ£enti, kas izvietoti GitLab CI specializÄtos aÄ£entu pÅ«los
Slodze
IekrauŔanas aģenta palaiŔana
ar izvÄlÄto pÄrbaudes plÄnu
un slodzes parametri
LietotÄja opcijas
inicializÄcijai
kravas aģents
PÄrbaudes plÄns
PÄrbaudes mÄrÄ·is
Izpildes žurnÄli
slodzes testi
SistÄmas žurnÄli
MÄrÄ·a metrikas un slodzes aÄ£enta izmaiÅu dinamika
Palaist aģentus
AÄ£enta izpilde
daudz testa skriptu
saskaÅÄ ar
slodzes profils
IelÄdÄt aÄ£enta mijiedarbÄ«bu
testÄÅ”anas nolÅ«kos
PÄrbaudes plÄns
PÄrbaudes mÄrÄ·is
Baļķi
"NeapstrÄdÄtu" baļķu kolekcija
slodzes pÄrbaudes laikÄ:
iekrauŔanas aģenta darbības ieraksti,
testa mÄrÄ·a stÄvoklis
un VM, kas vada aģentu
MÄrÄ·u metrikas izmaiÅu dinamika
un kravas aģents
Atskaite: testa ziÅojuma sagatavoÅ”anas posms
Ä¢enerators
ApstrÄde savÄkta
iekrauÅ”anas sistÄma un
uzraudzÄ«bas sistÄma "neapstrÄdÄta"
metrika un žurnÄli
Atskaites noformÄÅ”ana in
cilvÄkam lasÄma forma
iespÄjams ar elementiem
analītiķi
Izpildes žurnÄli
slodzes testi
SistÄmas žurnÄli
Metrikas izmaiÅu dinamika
mÄrÄ·a un slodzes aÄ£ents
ApstrÄdÄti "neapstrÄdÄti" baļķi
piemÄrotÄ formÄtÄ
augÅ”upielÄdes ÄrÄjÄ atmiÅÄ
StatiskÄs slodzes ziÅojums,
cilvÄkam lasÄms
PublicÄt
ZiÅojuma publicÄÅ”ana
par slodzi
ÄrÄjÄ pÄrbaude
apkalpoŔana
ApstrÄdÄts "neapstrÄdÄts"
žurnÄlus piemÄrotÄ formÄtÄ
izkrauÅ”anai uz Äru
krÄtuves
SaglabÄts ÄrÄjÄ
uzglabÄÅ”anas atskaites par
slodze, piemÄrota
cilvÄku analÄ«zei
Slodzes avotu savienoÅ”ana CI veidnÄ
PÄrejam uz praktisko daļu. Es vÄlos parÄdÄ«t, kÄ daži projekti uzÅÄmumÄ PozitÄ«vÄs tehnoloÄ£ijas esam ieviesuÅ”i slodzes testÄÅ”anas koncepciju kÄ pakalpojumu.
PirmkÄrt, ar mÅ«su DevOps inženieru palÄ«dzÄ«bu mÄs GitLab CI izveidojÄm Ä«paÅ”u aÄ£entu kopu, lai veiktu slodzes testus. Lai veidnÄs tos nesajauktu ar citÄm veidnÄm, piemÄram, montÄžas pÅ«liem, mÄs pievienojÄm Å”iem aÄ£entiem atzÄ«mes, tagi: slodze. Varat izmantot citus saprotamus tagus. ViÅi jautÄ reÄ£istrÄcijas laikÄ GitLab CI skrÄjÄji.
KÄ pÄc aparatÅ«ras uzzinÄt nepiecieÅ”amo jaudu? Slodzes aÄ£entu raksturlielumus - pietiekamu vCPU, RAM un diska skaitu - var aprÄÄ·inÄt, pamatojoties uz to, ka aÄ£entÄ vajadzÄtu darboties Docker, Python (priekÅ” Yandex.Tank), GitLab CI aÄ£ents, Java (Apache JMeter). . Java, izmantojot JMeter, ir arÄ« ieteicams izmantot vismaz 512 MB RAM un kÄ augÅ”Äjo robežu 80% pieejamÄs atmiÅas.
TÄdÄjÄdi, pamatojoties uz mÅ«su pieredzi, mÄs iesakÄm slodzes aÄ£entiem izmantot vismaz 4 vCPU, 4 GB RAM, 60 GB SSD. TÄ«kla kartes caurlaidspÄja tiek noteikta, pamatojoties uz slodzes profila prasÄ«bÄm.
MÄs galvenokÄrt izmantojam divus ielÄdes avotus - Apache JMeter un Yandex.Tank docker attÄlus.
Yandex.Tank ir Yandex atvÄrtÄ koda rÄ«ks slodzes pÄrbaudei. TÄs modulÄrÄ arhitektÅ«ra ir balstÄ«ta uz Phantom augstas veiktspÄjas asinhrono uz trÄpÄ«jumu balstÄ«to HTTP pieprasÄ«jumu Ä£eneratoru. TvertnÄ ir iebÅ«vÄts pÄrbaudÄmÄ servera resursu monitorings, izmantojot SSH protokolu, var automÄtiski apturÄt testu noteiktos apstÄkļos, var parÄdÄ«t rezultÄtus gan konsolÄ, gan grafiku veidÄ, jÅ«s varat savienot savus moduļus lai paplaÅ”inÄtu funkcionalitÄti. Starp citu, mÄs izmantojÄm Tank, kad tas vÄl nebija mainstream. RakstÄ "Yandex.Tank un slodzes testÄÅ”anas automatizÄcijaĀ» varat izlasÄ«t stÄstu par to, kÄ ar to veicÄm slodzes testÄÅ”anu 2013. gadÄ PT lietojumprogrammu ugunsmÅ«ris ir viens no mÅ«su uzÅÄmuma produktiem.
Apache JMeter ir Apache atvÄrtÄ koda slodzes testÄÅ”anas rÄ«ks. To var vienlÄ«dz labi izmantot gan statisku, gan dinamisku tÄ«mekļa lietojumprogrammu testÄÅ”anai. JMeter atbalsta milzÄ«gu skaitu protokolu un veidu, kÄ mijiedarboties ar lietojumprogrammÄm: HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET utt.), SOAP / REST tÄ«mekļa pakalpojumi, FTP, TCP, LDAP, SMTP(S), POP3( S)) un IMAP(S), datu bÄzes, izmantojot JDBC, var izpildÄ«t Äaulas komandas un strÄdÄt ar Java objektiem. JMeter ir IDE, lai izveidotu, atkļūdotu un izpildÄ«tu testa plÄnus. Ir arÄ« CLI komandrindas darbÄ«bai jebkurÄ ar Java saderÄ«gÄ operÄtÄjsistÄmÄ (Linux, Windows, Mac OS X). Å is rÄ«ks var dinamiski Ä£enerÄt HTML testa ziÅojumu.
Lai atvieglotu lietoÅ”anu mÅ«su uzÅÄmumÄ, lai paÅ”i testÄtÄji varÄtu mainÄ«t un pievienot vidi, mÄs izveidojÄm GitLab CI ielÄdes avotu docker attÄlu bÅ«ves ar publicÄÅ”anu iekÅ”ÄjÄ doku reÄ£istrs vietnÄ Artifactory. Tas ļauj ÄtrÄk un vienkÄrÅ”Äk savienot tos cauruļvados slodzes testiem. KÄ veikt docker push uz reÄ£istru, izmantojot GitLab CI - skatiet instrukcijas.
MÄs paÅÄmÄm Å”o pamata doka failu Yandex.Tank:
Dockerfile
1 | FROM direvius/yandex-tank
2 | ENTRYPOINT [""]
Un Apache JMeter Ŕis:
Dockerfile
1 | FROM vmarrazzo/jmeter
2 | ENTRYPOINT [""]
Slodzes testu veikÅ”anas veidnes piemÄrs ir pieejams projektÄ demonstrÄcijas slodze. Uz readme fails Varat izlasÄ«t veidnes lietoÅ”anas instrukcijas. PaÅ”Ä veidnÄ (fails .gitlab-ci.yml) ir piezÄ«mes par to, par ko ir atbildÄ«gs katrs solis.
Veidne ir ļoti vienkÄrÅ”a, un tajÄ ir parÄdÄ«ti trÄ«s slodzes testÄÅ”anas posmi, kas aprakstÄ«ti iepriekÅ” diagrammÄ: pÄrskatu sagatavoÅ”ana, testÄÅ”ana un publicÄÅ”ana. AtbildÄ«gs par to posmi: Sagatavojiet, pÄrbaudiet un ziÅojiet.
Posms Sagatavot jÄizmanto, lai iepriekÅ” konfigurÄtu testa mÄrÄ·us vai pÄrbaudÄ«tu to pieejamÄ«bu. Slodzes avotu vide nav jÄkonfigurÄ, tie ir iepriekÅ” izveidoti kÄ docker attÄli un ievietoti docker reÄ£istrÄ: vienkÄrÅ”i norÄdiet vÄlamo versiju testa stadijÄ. Bet jÅ«s varat tos atjaunot un izveidot savus modificÄtos attÄlus.
Posms PÄrbaude izmanto, lai norÄdÄ«tu ielÄdes avotu, palaistu testus un uzglabÄtu testa artefaktus. Varat izvÄlÄties jebkuru ielÄdes avotu: Yandex.Tank, Apache JMeter, savu vai visus kopÄ. Lai atspÄjotu nevajadzÄ«gos avotus, vienkÄrÅ”i komentÄjiet vai izdzÄsiet darbu. Ieejas punkti slodzes avotiem:
Apache JMeter startÄÅ”anas parametri ir norÄdÄ«ti failÄ ./tests/jmeter.sh.
PiezÄ«me. MontÄžas konfigurÄcijas veidne tiek izmantota, lai iestatÄ«tu mijiedarbÄ«bu ar CI sistÄmu, un tÄ nenozÄ«mÄ testa loÄ£ikas ievietoÅ”anu tajÄ. Testiem tiek norÄdÄ«ts ieejas punkts, kurÄ atrodas vadÄ«bas bash skripts. Testu izpildes, atskaiÅ”u Ä£enerÄÅ”anas un paÅ”u testa skriptu metode ir jÄievieÅ” kvalitÄtes nodroÅ”inÄÅ”anas inženieriem. DemonstrÄcijÄ abiem ielÄdes avotiem Yandex galvenÄs lapas pieprasÄ«jums tiek izmantots kÄ vienkÄrÅ”Äkais tests. Skripti un testa parametri atrodas direktorijÄ ./testi.
Pie skatuves ziÅojums jÄapraksta, kÄ testa posmÄ iegÅ«tos testa rezultÄtus publicÄt ÄrÄjÄs krÄtuvÄs, piemÄram, GitLab lapÄs vai Ä«paÅ”Äs atskaites sistÄmÄs. GitLab Pages pieprasa, lai ./publiskais direktorijs nebÅ«tu tukÅ”s un pÄc testu pabeigÅ”anas tajÄ ir jÄbÅ«t vismaz failam index.html. Par GitLab Pages pakalpojuma niansÄm varat lasÄ«t. ŠæŠ¾ ŃŃŃŠ»ŠŗŠµ.
DemonstrÄcijas piemÄrÄ cauruļvads ar slodzes testiem un diviem slodzes avotiem (varat atspÄjot nevajadzÄ«go) izskatÄs Å”Ädi:
Apache JMeter pats var Ä£enerÄt HTML atskaiti, tÄpÄc izdevÄ«gÄk ir to saglabÄt GitLab lapÄs, izmantojot standarta rÄ«kus. Apache JMeter pÄrskats izskatÄs Å”Ädi:
Yandex.Tank demonstrÄcijas piemÄrÄ jÅ«s redzÄsit tikai viltus teksta ziÅojums sadaÄ¼Ä GitLab lapas. TestÄÅ”anas laikÄ Tank var saglabÄt rezultÄtus InfluxDB datu bÄzÄ, un no turienes tos var parÄdÄ«t, piemÄram, Grafana (konfigurÄcija tiek veikta failÄ ./tests/example-yandextank-test.yml). Å Ädi izskatÄs Tanka ziÅojums Grafana:
Kopsavilkums
RakstÄ es runÄju par jÄdzienu "slodzes pÄrbaude kÄ pakalpojums" (slodzes pÄrbaude kÄ pakalpojums). GalvenÄ ideja ir izmantot iepriekÅ” konfigurÄtu ielÄdes aÄ£entu kopu infrastruktÅ«ru, slodzes avotu docker attÄlus, ziÅoÅ”anas sistÄmas un konveijeru, kas tos apvieno GitLab CI, pamatojoties uz vienkÄrÅ”u .gitlab-ci.yml veidni (piemÄrs ŠæŠ¾ ŃŃŃŠ»ŠŗŠµ). To visu atbalsta neliela automatizÄcijas inženieru komanda, un to atkÄrto pÄc produktu komandu pieprasÄ«juma. Es ceru, ka tas palÄ«dzÄs jums sagatavot un ieviest lÄ«dzÄ«gu shÄmu jÅ«su uzÅÄmumÄ. Paldies par uzmanÄ«bu!
PS Gribu pateikt lielu paldies saviem kolÄÄ£iem Sergejam Kurbanovam un Nikolajam Jusevam par tehnisko palÄ«dzÄ«bu slodzes testÄÅ”anas kÄ pakalpojuma koncepcijas ievieÅ”anÄ mÅ«su uzÅÄmumÄ.
Autors: Timurs Gilmullins - vietnieks Positive Technologies tehnoloÄ£iju un attÄ«stÄ«bas procesu (DevOps) vadÄ«tÄjs