Layisha uvavanyo njengenkonzo CI kubaphuhlisi

Layisha uvavanyo njengenkonzo CI kubaphuhlisi

Enye yeengxaki abasoloko bejongana nazo abathengisi besoftware yeemveliso ezininzi kukuphinda-phindwa kobuchule beenjineli - abaphuhlisi, abavavanyi, kunye nabalawuli beziseko zophuhliso - phantse kuwo onke amaqela. Oku kusebenza nakwiinjineli ezibizayo - iingcali kwinkalo yovavanyo lomthwalo.

Endaweni yokwenza imisebenzi yabo ethe ngqo kwaye basebenzise amava abo akhethekileyo ukwakha inkqubo yovavanyo lomthwalo, khetha indlela yokusebenza, iimetrikhi ezifanelekileyo kwaye ubhale ii-autotests ngokuhambelana neeprofayili zomthwalo, iinjineli zihlala zisebenzisa iziseko zovavanyo ukusuka ekuqaleni, ziqwalasele izixhobo zomthwalo, kwaye uzifake. ngokwabo kwiinkqubo zeCI, ukubeka iliso kunye nokupapashwa kweengxelo.

Ungafumana izisombululo kwiingxaki ezithile zombutho kuvavanyo esilisebenzisa kwiPositive Technologies in elinye inqaku. Kwaye kule, ndiza kuthetha malunga nokuba kunokwenzeka ukudibanisa iimvavanyo zomthwalo kumbhobho weCI oqhelekileyo usebenzisa ingcamango "yokuvavanya umthwalo njengenkonzo" (uvavanyo lomthwalo njengenkonzo). Uya kufunda ukuba yeyiphi imifanekiso ye-docker yemithombo yomthwalo enokusetyenziswa kumbhobho weCI; indlela yokudibanisa imithombo yomthwalo kwiprojekthi yakho yeCI usebenzisa itemplate yokwakha; ujongeka njani umbhobho wedemo xa uqhuba iimvavanyo zomthwalo kunye nokupapasha iziphumo. Eli nqaku linokuba luncedo kwiinjineli zovavanyo lwesoftware kunye neenjineli ezizenzekelayo kwi-CI abacinga malunga noyilo lwenkqubo yomthwalo wabo.

Undoqo wengcamango

Ingcamango yovavanyo lomthwalo njengenkonzo ithetha ukukwazi ukudibanisa izixhobo zokulayisha i-Apache JMeter, i-Yandex.Tank kunye nezakhelo zakho zibe yinkqubo yokudibanisa eqhubekayo. Idemo iya kuba yeGitLab CI, kodwa imigaqo iqhelekile kuzo zonke iinkqubo zeCI.

Uvavanyo lomthwalo njengenkonzo yinkonzo esembindini yovavanyo lomthwalo. Iimvavanyo zomthwalo ziqhutywa kumachibi eearhente ezinikezelweyo, iziphumo zipapashwa ngokuzenzekelayo kwiGitLab Pages, Influx DB kunye neGrafana okanye kwiinkqubo zokunika ingxelo zovavanyo (TestRail, ReportPortal, njl.). Ukuzenzekela kunye nokukala kuphunyezwa ngokulula kangangoko - ngokongeza kunye nokulinganisa itemplate eqhelekileyo ye-gitlab-ci.yml kwiprojekthi ye-GitLab CI.

Inzuzo yale ndlela kukuba yonke isiseko se-CI, ii-agent zomthwalo, imifanekiso ye-docker yemithombo yomthwalo, imibhobho yokuvavanya, kunye neengxelo zokupapasha zigcinwa yisebe le-automation ye-centralized (i-DevOps engineers), ngelixa iinjineli zokuvavanya umthwalo zinokugxila kwimigudu yazo ekuphuhlisweni kovavanyo. kunye nohlalutyo lweziphumo zabo, ngaphandle kokujongana nemiba yeziseko zophuhliso.

Ukulula kwenkcazo, siya kucinga ukuba isicelo esijoliswe kuyo okanye iseva phantsi kovavanyo sele isetyenzisiwe kwaye iqwalaselwe kwangaphambili (izikripthi ezizenzekelayo kwiPython, i-SaltStack, i-Ansible, njl njl. zingasetyenziselwa oku). Ke yonke ingqikelelo yovavanyo lomthwalo njengenkonzo ingena kwizigaba ezithathu: ukulungiswa, uvavanyo, ukupapashwa kweengxelo. Iinkcukacha ezithe vetshe kumzobo (yonke imifanekiso iyacofa):

Layisha uvavanyo njengenkonzo CI kubaphuhlisi

Iingcamango ezisisiseko kunye neenkcazo kuvavanyo lomthwalo

Xa siqhuba iimvavanyo zomthwalo, sizama ukubambelela Imigangatho ye-ISTQB kunye nendlela yokusebenza, sebenzisa isigama esifanelekileyo kunye neemetriki ezicetyiswayo. Ndiza kunika uluhlu olufutshane lweengcamango eziphambili kunye neenkcazo kuvavanyo lomthwalo.

Iarhente yomthwalo - umatshini obonakalayo apho isicelo siya kuqaliswa - umthombo womthwalo (Apache JMeter, Yandex.Tank okanye imodyuli yomthwalo obhalwayo).

Injongo yovavanyo (injongo) - iseva okanye isicelo esifakwe kwiseva esiya kuba phantsi komthwalo.

Imeko yovavanyo (imeko yovavanyo) - isethi yamanyathelo eparameterized: izenzo zomsebenzisi kunye neempendulo ezilindelekileyo kwezi zenzo, kunye nezicelo zenethiwekhi ezisisigxina kunye neempendulo, kuxhomekeke kwiiparamitha ezichaziweyo.

Iprofayile okanye isicwangciso sokulayisha (iprofayile) - ngaphakathi Indlela yokusebenza yeISTQB (Icandelo 4.2.4, iphe. 43) iiprofayili zomthwalo zichaza iimetriki ezibaluleke kakhulu kuvavanyo oluthile kunye nokukhethwa kokutshintsha iiparitha zomthwalo ngexesha lovavanyo. Ungabona imizekelo yeeprofayili kumzobo.

Layisha uvavanyo njengenkonzo CI kubaphuhlisi

Uvavanyo β€” umbhalo oneseti emiselwe kwangaphambili yeeparamitha.

Isicwangciso sovavanyo (isicwangciso sovavanyo) - isethi yeemvavanyo kunye neprofayili yomthwalo.

Testran (tesrun) - uphinda-phindo olunye lokuqhuba uvavanyo olunye kunye nemeko yomthwalo owenziwe ngokupheleleyo kunye nengxelo efunyenweyo.

Isicelo senethiwekhi (isicelo) - Isicelo se-HTTP esithunyelwe kwi-arhente ukuya kwindawo ekujoliswe kuyo.

Impendulo yenethiwekhi (impendulo) - Impendulo ye-HTTP ethunyelwe kwithagethi kwi-arhente.
Ikhowudi yokuphendula ye-HTTP (isimo seempendulo ze-HTTP) - ikhowudi yempendulo eqhelekileyo evela kwiseva yesicelo.
Intengiselwano ngumjikelo opheleleyo wokuphendula isicelo. Intengiselwano ibalwa ukususela ekuqaleni kokuthumela isicelo (isicelo) ukuya ekugqityweni kokufumana impendulo (impendulo).

Ubume bentengiselwano - ingaba bekunokwenzeka na ukugqiba umjikelo wokuphendula ngempumelelo isicelo. Ukuba bekukho nayiphi na impazamo kulo mjikelo, ke yonke intengiselwano ithathwa njengengaphumelelanga.

Ixesha lokuphendula (latency) - ixesha ukusuka ekupheleni kokuthumela isicelo (isicelo) ukuya ekuqaleni kokufumana impendulo (impendulo).

Layisha iimetriki - iimpawu zenkonzo elayishiweyo kunye ne-arhente yomthwalo enqunywe kwinkqubo yokuvavanya umthwalo.

Iimetrics ezisisiseko zokulinganisa iiparamitha zomthwalo

Ezinye zezona zisetyenziswa kakhulu kwaye zicetyiswa kwindlela yokusebenza ISTQB (iphe. 36, 52) iimetriki ziboniswe kwitheyibhile engezantsi. Iimetriki ezifanayo ze-arhente kunye neethagethi zidweliswe kumgca omnye.

Iimetrics zearhente yomthwalo
Iimetrics zenkqubo ekujoliswe kuyo okanye usetyenziso oluvavanywa phantsi komthwalo

Inani le  vCPU kunye nenkumbulo i-ram,
disk - "intsimbi" iimpawu ze-arhente yomthwalo
ICPU, Imemori, ukusetyenziswa kweDiski -Amandla e-CPU, inkumbulo kunye nokulayishwa kwediski
kwinkqubo yovavanyo. Idla ngokulinganiswa njengepesenti ye
awona maxabiso aphezulu akhoyo

umsebenzi womnatha (kwi-arhente yomthwalo) - throughput
ujongano lwenethiwekhi kumncedisi,
apho i-arhente yomthwalo ifakwe khona.
Idla ngokulinganiswa ngee-bytes ngesekhondi (bps)
umsebenzi womnatha(kwithagethi) - ujongano lomnatha wonxibelelwano
kumncedisi ekujoliswe kuwo. Idla ngokulinganiswa ngee-bytes ngesekhondi (bps)

Abasebenzisi benyani-inani labasebenzisi benyani,
ukuphumeza iimeko zomthwalo kunye
ukulinganisa izenzo zabasebenzisi bokwenyani
Ubume babasebenzisi benyani, Upasiwe/Ayiphumelelanga/ Iyonke β€” inani labaphumeleleyo kunye
iimeko ezingaphumelelanga zabasebenzisi benyani
kwiimeko zomthwalo, kunye nenani labo lilonke.

Ngokuqhelekileyo kulindeleke ukuba bonke abasebenzisi bakwazi ukugqiba
yonke imisebenzi yakho echazwe kwiprofayile yomthwalo.
Nayiphi na impazamo iya kuthetha ukuba umsebenzisi wokwenene akayi kukwazi
Sombulula ingxaki yakho xa usebenza nenkqubo

Izicelo ngesekhondi nganye (umzuzu)- inani lezicelo zenethiwekhi ngesekhondi (okanye ngomzuzu).

Uphawu olubalulekileyo lwe-arhente yomthwalo kukuba zingaphi izicelo ezinokuzenza.
Enyanisweni, oku kukulinganisa ukufikelela kwisicelo ngabasebenzisi benyani
Iimpendulo ngomzuzwana (umzuzu)
- inani leempendulo zenethiwekhi ngesekhondi (okanye ngomzuzu).

Uphawu olubalulekileyo lwenkonzo ekujoliswe kuyo: yimalini
velisa kwaye uthumele iimpendulo kwimibuzo nge
i-arhente yokulayisha

Ubume bempendulo yeHTTP- inani leekhowudi ezahlukeneyo zokuphendula
kwiseva yesicelo efunyenwe ngummeli womthwalo.
Umzekelo, 200 OK uthetha umnxeba ophumeleleyo,
kunye ne-404 - ukuba ubutyebi abufunyanwanga

Ukuhamba (ixesha lokuphendula) - ixesha ukusuka ekupheleni
ukuthumela isicelo (isicelo) phambi kokuqala ukufumana impendulo (impendulo).
Idla ngokulinganiswa ngeemilliseconds (ms)

Ixesha lokuphendula intengiselwano- ixesha lentengiselwano enye epheleleyo,
ukugqitywa komjikelo wokuphendula isicelo.
Eli lixesha ukususela ekuqaleni kokuthumela isicelo (isicelo)
de kugqitywe ukufumana impendulo (impendulo).

Ixesha lentengiselwano inokulinganiswa ngemizuzwana (okanye imizuzu)
ngeendlela ezininzi: qwalasela ubuncinane,
ubuninzi, umndilili kwaye, umzekelo, ipesenti ye-90.
Ubuncinci kunye nobuninzi bokufunda bugqithise
ubume bokusebenza kwenkqubo.
Ipesenti yamashumi alithoba yeyona isetyenziswa kakhulu,
njengoko ibonisa uninzi lwabasebenzisi,
ukusebenza kakuhle kumda wokusebenza kwenkqubo

Iintengiselwano ngesekhondi (umzuzu) - inani elipheleleyo
intengiselwano ngesekhondi (umzuzu),
oko kukuthi, singakanani isicelo esikwazileyo ukwamkela kwaye
inkqubo yezicelo kwaye ikhuphe iimpendulo.
Enyanisweni, oku kukuphela kwenkqubo

Ubume bentengiselwano , Ipasile / Ayiphumelelanga / Iyonke - inani
ngempumelelo, ayiphumelelanga kunye nenani lilonke lentengiselwano.

Kubasebenzisi bokwenyani abaphumelelanga
intengiselwano iya kuthetha ngenene
ukungakwazi ukusebenza kunye nenkqubo phantsi komthwalo

Layisha Testing Schematic Diagram

Ingqikelelo yovavanyo lomthwalo ilula kakhulu kwaye iqulathe amanqanaba amathathu aphambili, esele ndiwakhankanyile: Lungiselela-Uvavanyo-Ngxelo, oko kukuthi, ukulungiselela iinjongo zovavanyo kunye nokubeka iiparitha kwimithombo yomthwalo, emva koko uqhuba iimvavanyo zomthwalo kwaye, ekugqibeleni, ukuvelisa nokupapasha ingxelo yovavanyo.

Layisha uvavanyo njengenkonzo CI kubaphuhlisi

Amanqaku oyilo:

  • I-QA.Tester yingcali yovavanyo lomthwalo,
  • Ithagethi sisicelo ekujoliswe kuso ofuna ukwazi ukuziphatha kwayo phantsi komthwalo.

Umdidi wamaqumrhu, izigaba kunye namanyathelo kumzobo

Amanqanaba kunye namanyathelo
Kwenzeka ntoni
Yintoni ekungeneni
Yintoni imveliso

Lungiselela: inqanaba lokulungiselela uvavanyo

LoadParameters
Ukuseta kunye nokuqalisa
umsebenzisi
iparameters zokulayisha,
ukhetho lweemetrics kunye
Ukulungiselela isicwangciso sovavanyo
(layisha iprofayile)
Iinketho ezenzelwe wena
ukuqaliswa kwe-arhente yomthwalo
Isicwangciso sovavanyo
Injongo yovavanyo

VM
Ukusasazwa kwamafu
umatshini wenyani nge
iimpawu ezifunekayo
Izicwangciso ze-VM ze-arhente yomthwalo
Imibhalo ezenzekelayo ye
Ukwenziwa kweVM
I-VM ilungiselelwe ngaphakathi
ilifu

Umz
Ukuseta OS kunye nolungiselelo
imekobume ye
umsebenzi wearhente yomthwalo
Iisetingi zokusingqongileyo ze
iarhente yomthwalo
Imibhalo ezenzekelayo ye
izicwangciso zokusingqongileyo
Imekobume elungisiweyo:
I-OS, iinkonzo kunye nezicelo,
iyimfuneko emsebenzini
iarhente yomthwalo

LoadAgents
Ukufakela, uqwalaselo kunye neparameterization
i-arhente yokulayisha.
Okanye ukukhuphela umfanekiso wedocker ukusuka
umthombo womthwalo olungiselelwe kwangaphambili
Layisha umthombo wedocker umfanekiso
(YAT, JM okanye isakhelo esizibhalelayo)
Iisetingi
iarhente yomthwalo
Misela kwaye ulungile
kwi-arhente yomthwalo wokusebenza

Uvavanyo: inqanaba lokwenziwa kovavanyo lomthwalo. Imithombo zii-arhente zomthwalo ezifakwe kwii-arhente ezizinikeleyo kumachibi e-GitLab CI

umthwalo
Ukuqalisa i-Arhente yomthwalo
ngesicwangciso sovavanyo esikhethiweyo
kunye neeparamitha zokulayisha
Iinketho Zomsebenzisi
yokuqalisa
iarhente yomthwalo
Isicwangciso sovavanyo
Injongo yovavanyo
Izigodo zokuphumeza
iimvavanyo zomthwalo
Iilogi zenkqubo
Amandla otshintsho kwiimetriki zenjongo kunye nearhente yomthwalo

Baleka iiarhente
Ukuphunyezwa kwearhente
imithwalo yemibhalo yovavanyo
ngokwenxa ye
layisha iprofayile
Layisha i-Agent Interaction
ngenjongo yokuvavanya
Isicwangciso sovavanyo
Injongo yovavanyo

Iimpawu
Ukuqokelelwa kweelogi "ezikrwada".
ngexesha lovavanyo lomthwalo:
iirekhodi zomsebenzi we-arhente yomthwalo,
imeko yovavanyo ekujoliswe kulo
kunye neVM eqhuba iarhente

Izigodo zokuphumeza
iimvavanyo zomthwalo
Iilogi zenkqubo

Metrics
Ukuqokelela "ikrwada" imitha ngexesha lovavanyo

Utshintsho kwiimetriki zenjongo
kunye ne-arhente yomthwalo

Ingxelo: isigaba sokulungiselela ingxelo yovavanyo

Generator
Ukusetyenzwa kuqokelelwe
inkqubo yokulayisha kunye
inkqubo yokubeka iliso "ekrwada"
iimetrics kunye nelogi
Ukwenziwa kwengxelo kwi
ifom efundekayo yomntu
enokwenzeka ngezinto
abahlalutyi
Izigodo zokuphumeza
iimvavanyo zomthwalo
Iilogi zenkqubo
Utshintsho kwiimetriki
ekujoliswe kuyo kunye ne-arhente yomthwalo
Ilogs "ekrwada".
kwifomathi efanelekileyo
ukulayisha kwindawo yokugcina yangaphandle
Ingxelo yomthwalo omileyo,
efundekayo ngabantu

Shicilela
Ukupapashwa kwengxelo
malunga nomthwalo
uvavanyo lwangaphandle
inkonzo
Isetyenzwe "ekrwada"
logs ngendlela efanelekileyo
yokukhuphela ukuya ngaphandle
iindawo zokugcina
Igcinwe ngaphandle
iingxelo zokugcina kwi
umthwalo, ufanelekile
kuhlalutyo lwabantu

Ukudibanisa iMithombo yoMlayisho kwi-CI Template

Masiqhubele phambili kwinxalenye ebonakalayo. Ndifuna ukubonisa indlela kwiiprojekthi ezithile kwinkampani IiTekhnoloji eziPositive siphumeze ingqikelelo yovavanyo lomthwalo njengenkonzo.

Okokuqala, ngoncedo lweenjineli zethu ze-DevOps, senze iqela elizinikeleyo leearhente kwi-GitLab CI ukuqhuba iimvavanyo zomthwalo. Ukuze ungabaphambanisi kwiitemplates nabanye, njengamachibi endibano, songeze iithegi kwezi arhente, Tags: umthwalo. Ungasebenzisa ezinye iithegi eziqondakalayo. Bayabuza ngexesha lobhaliso Ababaleki beGitLab CI.

Indlela yokufumana amandla afunekayo nge-hardware? Iimpawu zeearhente zomthwalo - inani elaneleyo le-vCPU, i-RAM kunye neDiski - ingabalwa ngokusekelwe kwinto yokuba i-Docker, i-Python (ye-Yandex.Tank), i-agent ye-GitLab CI, i-Java (ye-Apache JMeter) kufuneka isebenze kwi-arhente. . KwiJava phantsi kweJMeter, kuyacetyiswa ukuba usebenzise ubuncinci be-512 MB ye-RAM kwaye, njengomda ophezulu, 80% inkumbulo ekhoyo.

Ngaloo ndlela, ngokusekelwe kumava ethu, sincoma ukusebenzisa ubuncinane ii-vCPU ze-4, i-RAM ye-4 GB, i-60 GB SSD ye-agent yomthwalo. Ukugqithiswa kwekhadi lenethiwekhi kuchongwa ngokusekelwe kwiimfuno zeprofayili yomthwalo.

Ngokukodwa sisebenzisa imithombo emibini yomthwalo - iApache JMeter kunye neYandex.Tank docker imifanekiso.

Yandex.Tank sisixhobo esivulelekileyo esivela kwiYandex yokuvavanya umthwalo. Uyilo loyilo lwemodyuli lusekwe kwi-Phantom's high-performance asynchronous hit-based application HTTP generator. Itanki inohlolo olwakhelwe ngaphakathi lwemithombo yomncedisi phantsi kovavanyo nge-SSH protocol, inokumisa ngokuzenzekelayo uvavanyo phantsi kweemeko ezichaziweyo, ingabonisa iziphumo zombini kwi-console kunye nendlela yeegrafu, unokudibanisa iimodyuli zakho. kuyo ukwandisa ukusebenza. Ngendlela, sasebenzisa iTanki xa yayingekabikho. Kwinqaku "Yandex.Tank kunye novavanyo lokulayisha oluzenzekelayoΒ» ungalifunda ibali lendlela esilwenze ngayo uvavanyo lomthwalo ngo-2013 PT Isicelo soFirewall yenye yeemveliso zenkampani yethu.

I-Apache JMeter sisixhobo sokuvavanya umthwalo ovulelekileyo ovela kwi-Apache. Ingasetyenziswa ngokulinganayo ngokulinganayo ukuvavanya zombini usetyenziso lwewebhu olungatshintshiyo kunye noluguquguqukayo. I-JMeter ixhasa inani elikhulu leeprothokholi kunye neendlela zokunxibelelana nezicelo: HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, njl.), SEAP / REST Webservices, FTP, TCP, LDAP, SMTP(S), POP3( S) ) kunye ne-IMAP(S), oovimba beenkcukacha nge-JDBC, bangenza imiyalelo yeqokobhe kwaye basebenze ngezinto zeJava. I-JMeter ine-IDE yokudala, ukulungisa iimpazamo kunye nokwenza izicwangciso zovavanyo. Kukwakho ne-CLI yokusebenza komgca womyalelo kuyo nayiphi na inkqubo yokusebenza ehambelana neJava (Linux, Windows, Mac OS X). Isixhobo sinokwenza ingxelo yovavanyo lwe-HTML ngamandla.

Ukuze kube lula ukusetyenziswa ngaphakathi kwinkampani yethu, ukuze abavavanyi bakwazi ukutshintsha kwaye bongeze indalo, senze imifanekiso ye-docker yemithombo yomthwalo kwi-GitLab CI ngokupapashwa ngaphakathi. Ubhaliso lwedocker kwi-Artifactory. Oku kwenza ukuba kukhawuleze kwaye kube lula ukuzidibanisa kwimibhobho yovavanyo lomthwalo. Uyenza njani idocker push kwiregistry ngeGitLab CI-bona imiyalelo.

Sithathe le fayile yedocker esisiseko yeYandex.Tank:

Dockerfile 
1 | FROM direvius/yandex-tank
2 | ENTRYPOINT [""]

Kwaye ngeApache JMeter le:

Dockerfile 
1 | FROM vmarrazzo/jmeter
2 | ENTRYPOINT [""]

Unokufunda indlela inkqubo yethu yokudibanisa eqhubekayo isebenza kwinqaku "Ukuzenzekela kweenkqubo zophuhliso: indlela esiphumeze ngayo izimvo zeDevOps kwiPositive TechnologiesΒ».

Itemplate kunye nombhobho

Umzekelo wethemplate yokuqhuba iimvavanyo zomthwalo uyafumaneka kwiprojekthi umthwalo demo. Ku funda ifayile Unokufunda imiyalelo yokusebenzisa ithempleyithi. Kwitemplate ngokwayo (ifayile .gitlab-ci.yml) kukho amanqaku malunga nokuba inyathelo ngalinye linoxanduva ngantoni.

Ithemplate ilula kakhulu kwaye ibonisa izigaba ezintathu zokuvavanya umthwalo ochazwe kumzobo ongentla: ukulungiselela, ukuvavanya, kunye nokushicilela iingxelo. Uxanduva loku ma nqanaba: Lungiselela, uvavanyo kunye neNgxelo.

  1. Inqanaba Lungiselela kufuneka isetyenziswe ukucwangcisa iithagethi zovavanyo okanye ukujonga ubukho bazo. Imekobume yemithombo yomthwalo ayifuni ukuqwalaselwa, yakhiwe kwangaphambili njengemifanekiso ye-docker kwaye ifakwe kwi-docker registry: cacisa nje inguqulelo efunwayo kwinqanaba loVavanyo. Kodwa unokubakha kwakhona kwaye wenze eyakho imifanekiso elungisiweyo.
  2. Inqanaba uvavanyo isetyenziselwa ukukhankanya umthombo womthwalo, qhuba iimvavanyo, kunye nogcino lobugcisa bovavanyo. Unokukhetha nawuphi na umthombo womthwalo: Yandex.Tank, Apache JMeter, eyakho, okanye zonke kunye. Ukukhubaza imithombo engeyomfuneko, vele uphawule okanye ucime umsebenzi. Iindawo zokungena kwimithombo yomthwalo:

    Qaphela: Ithempleyithi yokumisela indibano isetyenziselwa ukuseta intsebenziswano kunye nenkqubo yeCI kwaye ayithethi ukubekwa kwengqiqo yovavanyo kuyo. Kwiimvavanyo, indawo yokungena icacisiwe, apho iskripthi solawulo se-bash sikhoyo. Indlela yokuqhuba iimvavanyo, ukuvelisa iingxelo, kunye neencwadi zeempendulo zovavanyo ngokwazo maziphunyezwe ziinjineli ze-QA. Kwidemo, kuyo yomibini imithombo yomthwalo, isicelo sephepha eliphambili leYandex sisetyenziswa njengolona vavanyo lulula. Izikripthi kunye neeparamitha zovavanyo zikuluhlu ./uvavanyo.

  3. Eqongeni ingxelo kufuneka uchaze indlela yokupapasha iziphumo zovavanyo ezifunyenwe kwinqanaba loVavanyo kwiindawo zokugcina zangaphandle, umzekelo, kwiGitLab Pages okanye iinkqubo zokunika ingxelo ezizodwa. IGitLab Pages ifuna ukuba i-./public directory ingabi nanto kwaye iqulathe noko ifayile ye index.html emva kokuba uvavanyo lugqityiwe. Unokufunda malunga nee-nuances zenkonzo yeGitLab Pages. ikhonkco.

    Imizekelo yendlela yokuthumela ngaphandle idatha:

    Ukuthumela imiyalelo yokuseta:

Kumzekelo wedemo, umbhobho oneemvavanyo zomthwalo kunye nemithombo emibini yomthwalo (unokukhubaza okungeyomfuneko) ijongeka ngolu hlobo:

Layisha uvavanyo njengenkonzo CI kubaphuhlisi

I-Apache JMeter inokuvelisa ingxelo ye-HTML ngokwayo, ngoko kunenzuzo ngakumbi ukuyigcina kumaphepha eGitLab usebenzisa izixhobo eziqhelekileyo. Nantsi indlela ingxelo ye-Apache JMeter ejongeka ngayo:

Layisha uvavanyo njengenkonzo CI kubaphuhlisi

Kumzekelo wedemo yeYandex.Tank, uya kubona kuphela ingxelo yombhalo womgunyathi kwicandelo lamaphepha eGitLab. Ngexesha lokuvavanya, iTanki inokugcina iziphumo kwi-database ye-InfluxDB, kwaye ukusuka apho ingaboniswa, umzekelo, kwiGrafana (uqwalaselo lwenziwa kwifayile. ./tests/example-yandextank-test.yml). Le yindlela ekhangeleka ngayo ingxelo yeTanki eGrafana:

Layisha uvavanyo njengenkonzo CI kubaphuhlisi

Isishwankathelo

Kwinqaku, ndathetha ngengcamango "yokuvavanya umthwalo njengenkonzo" (uvavanyo lomthwalo njengenkonzo). Ingcamango ephambili kukusebenzisa iziseko zamachibi esele ziqwalaselwe ii-arhente zomthwalo, imifanekiso yedocker yemithombo yomthwalo, iinkqubo zokunika ingxelo kunye nombhobho odibanisa kwi-GitLab CI ngokusekelwe kwitemplate elula .gitlab-ci.yml (umzekelo ikhonkco). Konke oku kuxhaswa liqela elincinci leenjineli ze-automation kwaye ziphindaphindwe ngesicelo samaqela emveliso. Ndiyathemba ukuba oku kuya kukunceda ekulungiseleleni nasekuphumezeni iskimu esifanayo kwinkampani yakho. Enkosi ngengqalelo!

PS Ndifuna ukubulela kakhulu kubalingane bam, uSergey Kurbanov kunye noNikolai Yusev, ngoncedo lobugcisa ngokuphunyezwa kombono wokuvavanya umthwalo njengenkonzo kwinkampani yethu.

umbhali: UTimur Gilmullin - Usekela INtloko yeTekhnoloji kunye neeNkqubo zoPhuhliso (i-DevOps) kwi-Positive Technologies

umthombo: www.habr.com

Yongeza izimvo