Hoʻouka i ka hoʻokolohua ma ke ʻano he lawelawe CI no nā mea hoʻomohala

Hoʻouka i ka hoʻokolohua ma ke ʻano he lawelawe CI no nā mea hoʻomohala

ʻO kekahi o nā pilikia i kū pinepine ʻia e nā mea kūʻai lako polokalamu he nui, ʻo ia ka hana hou ʻana o ka mākaukau o nā mea ʻenekinia - nā mea hoʻomohala, nā mea hoʻāʻo, a me nā luna hoʻokele waiwai - kokoke i kēlā me kēia hui. Pili kēia i nā ʻenekinia makamae - nā loea i ke kahua o ka hoʻāʻo ukana.

Ma kahi o ka hana ʻana i kā lākou mau hana pololei a me ka hoʻohana ʻana i kā lākou ʻike kūʻokoʻa e kūkulu i kahi kaʻina hoʻāʻo ukana, koho i kahi ʻano, nā metric maikaʻi loa a kākau i nā autotests e like me nā profiles load, pono pinepine nā ʻenekini e hoʻonohonoho i nā ʻōnaehana hoʻāʻo mai ka wā ʻōpala, hoʻonohonoho i nā mea hana ukana, a hoʻokomo iā lākou. iā lākou iho i nā ʻōnaehana CI, hoʻonohonoho i ka nānā ʻana a me ka hoʻolaha ʻana i nā hōʻike.

Hiki iā ʻoe ke loaʻa nā hoʻonā i kekahi mau pilikia hoʻonohonoho i ka hoʻāʻo ʻana a mākou e hoʻohana ai ma Positive Technologies ma ʻatikala ʻē aʻe. A i kēia mea, e kamaʻilio wau e pili ana i ka hiki ke hoʻohui i nā hoʻāʻo ukana i loko o kahi pipeline CI maʻamau e hoʻohana ana i ka manaʻo o ka "hoʻāʻo hoʻouka ma ke ʻano he lawelawe" (hoʻāʻo hoʻouka ma ke ʻano he lawelawe). E aʻo ʻoe pehea a me nā kiʻi docker o nā kumu hoʻouka e hiki ke hoʻohana ʻia i ka pipeline CI; pehea e hoʻohui ai i nā kumu hoʻouka i kāu papahana CI me ka hoʻohana ʻana i kahi hoʻohālike kūkulu; he aha ke ʻano o ka pipeline demo no ka holo ʻana i nā hoʻāʻo ukana a hoʻolaha i nā hopena. Pono paha ka ʻatikala no nā ʻenekini hoʻāʻo polokalamu a me nā ʻenekini automation ma CI e noʻonoʻo nei i ka hoʻolālā ʻana o kā lākou ʻōnaehana ukana.

ʻO ke kumu o ka manaʻo

ʻO ka manaʻo o ka hoʻāʻo ʻana i ka ukana ma ke ʻano he lawelawe e hōʻike ana i ka hiki ke hoʻohui i nā mea hana ukana Apache JMeter, Yandex.Tank a me kāu mau hana ponoʻī i loko o kahi ʻōnaehana hoʻohui mau. No GitLab CI ka demo, akā maʻamau nā loina i nā ʻōnaehana CI āpau.

ʻO ka hoʻāʻo ʻana ma ke ʻano he lawelawe he lawelawe kikowaena no ka hoʻāʻo ʻana. Holo ʻia nā hoʻāʻo hoʻouka ʻana i loko o nā loko i hoʻolaʻa ʻia, paʻi ʻia nā hopena ma GitLab Pages, Influx DB a me Grafana a i ʻole i nā ʻōnaehana hōʻike hōʻike (TestRail, ReportPortal, etc.). Hoʻokō ʻia ka automate a me ka scaling e like me ka hiki - ma ka hoʻohui ʻana a me ka hoʻohālikelike ʻana i ka template gitlab-ci.yml maʻamau i ka papahana GitLab CI.

ʻO ka maikaʻi o kēia ala ʻo ia ka mālama ʻana o ka ʻōnaehana CI holoʻokoʻa, nā mea lawe ukana, nā kiʻi docker o nā kumu hoʻouka, nā pipeline hoʻāʻo, a me nā hōʻike hoʻopuka e mālama ʻia e kahi keʻena automation centralized (DevOps engineers), ʻoiai hiki i nā ʻenekini hoʻāʻo ukana ke hoʻoikaika i kā lākou hoʻoikaika ʻana i ka hoʻomohala ʻana. a me ka nānā ʻana i kā lākou hopena, me ka ʻole e pili ana i nā pilikia ʻoihana.

No ka maʻalahi o ka wehewehe ʻana, e manaʻo mākou ua hoʻonohonoho ʻia a hoʻonohonoho ʻia ka noi a i ʻole server ma lalo o ka hoʻāʻo ʻana ma mua (hiki ke hoʻohana ʻia nā palapala ma Python, SaltStack, Ansible, etc. no kēia). A laila ʻo ka manaʻo holoʻokoʻa o ka hoʻāʻo ʻana ma ke ʻano he lawelawe i komo i ʻekolu mau pae: hoʻomākaukau, hoʻāʻo, hoʻopuka i nā hōʻike. Nā kikoʻī hou aku e pili ana i ke kiʻikuhi (hiki ke kaomi i nā kiʻi āpau):

Hoʻouka i ka hoʻokolohua ma ke ʻano he lawelawe CI no nā mea hoʻomohala

Nā manaʻo kumu a me nā wehewehe i ka hoʻāʻo hoʻouka

Ke hoʻokō nei i nā hoʻāʻo ukana, hoʻāʻo mākou e pili Nā kūlana ISTQB a me ke ʻano hana, hoʻohana i nā huaʻōlelo kūpono a me nā ana i manaʻo ʻia. E hāʻawi wau i kahi papa inoa pōkole o nā manaʻo nui a me nā wehewehe i ka hoʻāʻo ʻana.

Agena ukana - he mīkini virtual kahi e hoʻomaka ai ka noi - ke kumu hoʻouka (Apache JMeter, Yandex.Tank a i ʻole kahi module hoʻoili i kākau ʻia).

Pahuhopu hoao - ke kikowaena a i ʻole ka noi i hoʻokomo ʻia ma ka kikowaena e kau ʻia i ka ukana.

Hōʻike hoʻāʻo (hihia hoʻāʻo) - kahi hoʻonohonoho o nā ʻanuʻu i hoʻohālikelike ʻia: nā hana a ka mea hoʻohana a me nā hopena i manaʻo ʻia i kēia mau hana, me nā noi pūnaewele paʻa a me nā pane, e pili ana i nā ʻāpana i kuhikuhi ʻia.

Paʻi a hoʻouka paha (profile) - ma ISTQB hana (Pauku 4.2.4, p. 43) wehewehe ʻia nā kikoʻī hoʻouka i nā metric koʻikoʻi no kahi hoʻāʻo a me nā koho no ka hoʻololi ʻana i nā ʻāpana ukana i ka wā o ka hoʻāʻo. Hiki iā ʻoe ke ʻike i nā laʻana o nā profiles ma ke kiʻi.

Hoʻouka i ka hoʻokolohua ma ke ʻano he lawelawe CI no nā mea hoʻomohala

Hoao - he palapala me kahi hoʻonohonoho i koho mua ʻia.

Hoʻolālā hoʻāʻo (plan-test) - kahi hoʻonohonoho o nā hoʻāʻo a me kahi palapala hoʻouka.

Testran - hoʻokahi manawa o ka holo ʻana i hoʻokahi hoʻokolohua me kahi hiʻohiʻona hoʻokō piha a me ka hōʻike i loaʻa.

Noi pūnaewele (noi) - He noi HTTP i hoʻouna ʻia mai kahi ʻelele i kahi pahuhopu.

Pane pūnaewele (pane) - He pane HTTP i hoʻouna ʻia mai ka pahuhopu i ka ʻelele.
Ka helu pane HTTP (ke kūlana pane HTTP) - ka helu pane maʻamau mai ke kikowaena noi.
ʻO ke kālepa kahi pōʻai noi-pane piha. Heluhelu ʻia kahi kālepa mai ka hoʻomaka ʻana o ka hoʻouna ʻana i kahi noi (noi) a i ka pau ʻana o ka loaʻa ʻana o kahi pane (pane).

Kūlana kūʻai - inā paha ua hiki ke hoʻopau pono i ka pōʻai noi-pane. Inā he hewa i loko o kēia pōʻai, a laila manaʻo ʻia ʻaʻole i kūleʻa ka hana holoʻokoʻa.

Ka manawa pane (latency) - ka manawa mai ka hopena o ka hoʻouna ʻana i kahi noi (noi) a i ka hoʻomaka ʻana o ka loaʻa ʻana o kahi pane (pane).

Nā ana hoʻouka - nā hiʻohiʻona o ka lawelawe i hoʻouka ʻia a me ka mea lawe ukana i hoʻoholo ʻia i ke kaʻina o ka hoʻāʻo ʻana.

Nā ana kumu no ke ana ʻana i nā ʻāpana ukana

ʻO kekahi o nā mea maʻamau i hoʻohana ʻia a ʻōlelo ʻia i ke ʻano hana ISTQB (p. 36, 52) hōʻike ʻia nā ana ma ka papa ma lalo. Hoʻopaʻa ʻia nā metric like no ka ʻelele a me ka pahuhopu ma ka laina like.

Nā ana no ka mea lawe ukana
Ke ho'āʻo ʻia nei nā metric o ka ʻōnaehana pahuhopu a i ʻole ka noi ma lalo o ka hoʻouka ʻana

Ka helu o  vCPU a me ka hoʻomanaʻo hipa kāne,
pā hōkū - "hao" hiʻona o ka ukana ukana
CPU, Hoʻomanaʻo, hoʻohana Disk - ka ikaika o ka CPU, ka hoʻomanaʻo a me ka hoʻouka ʻana i ka disk
ma ka hoao ana. Ana maʻamau e like me ka pākēneka o
nā waiwai loaʻa loa

hoʻokomo pūnaewele (ma luna o ka ukana ukana) - throughput
kaʻina pūnaewele ma ke kikowaena,
kahi i hoʻokomo ʻia ai ka mea lawe ukana.
Ana maʻamau i nā paita no kekona (bps)
hoʻokomo pūnaewele(ma ka pahu hopu) - bandwidth interface pūnaewele
ma luna o ke kikowaena pahu hopu. Ana maʻamau i nā paita no kekona (bps)

Mea hoʻohana ponoʻī- ka helu o nā mea hoʻohana virtual,
ka hoʻokō ʻana i nā hiʻohiʻona ukana a
hoʻohālike i nā hana hoʻohana maoli
Kūlana mea hoʻohana virtual, Holo/Holo/Ka huina — helu o ka holomua a
nā kūlana kūleʻa o nā mea hoʻohana virtual
no nā hiʻohiʻona hoʻouka, a me kā lākou helu helu.

Manaʻo maʻamau ua hiki i nā mea hoʻohana a pau ke hoʻopau
ʻO kāu mau hana a pau i kuhikuhi ʻia ma ka ʻaoʻao hoʻouka.
ʻO kēlā me kēia hewa, ʻaʻole hiki i ka mea hoʻohana maoli ke hana
hoʻoponopono i kou pilikia i ka hana ʻana me ka ʻōnaehana

Noi no kekona (minuke)- ka helu o nā noi pūnaewele i kekona (a i ʻole minuke).

ʻO kahi hiʻohiʻona koʻikoʻi o kahi mea lawe ukana ʻo ka nui o nā noi e hiki ke hana.
ʻO kaʻoiaʻiʻo, he hoʻohālike kēia o ke komo ʻana i ka noi e nā mea hoʻohana virtual
Nā pane i kekona (minuke)
- ka helu o nā pane pūnaewele no kekona (a i ʻole minuke).

ʻO kahi hiʻohiʻona koʻikoʻi o ka lawelawe pahuhopu: pehea ka nui
hana a hoʻouna i nā pane i nā nīnau me
mea lawe ukana

Kūlana pane HTTP- ka helu o nā helu pane like ʻole
mai ke kikowaena noi i loaʻa mai e ka luna ukana.
No ka laʻana, ʻo 200 OK ke ʻano o ke kelepona kūleʻa,
a me 404 - ʻaʻole i loaʻa ka waiwai

Latency (manawa pane) - manawa mai ka hopena
hoʻouna i kahi noi (noi) ma mua o ka hoʻomaka ʻana e loaʻa kahi pane (pane).
Ana maʻamau i nā milliseconds (ms)

Ka manawa pane pāʻoihana- ka manawa o hoʻokahi kālepa piha,
ka pau ʻana o ka pōʻaiapuni noi-pane.
ʻO kēia ka manawa mai ka hoʻomaka ʻana o ka hoʻouna ʻana i ke noi (noi)
a hiki i ka pau ana o ka loaa ana o ka pane (pane).

Hiki ke ana ʻia ka manawa hana i kekona (a i ʻole mau minuke)
ma nā ʻano he nui: e noʻonoʻo i ka liʻiliʻi,
kiʻekiʻe, awelika a, no ka laʻana, ka 90th percentile.
ʻO ka liʻiliʻi a me ka nui o nā heluhelu he kiʻekiʻe loa
kūlana hana ʻōnaehana.
ʻO ka ninetieth percentile ka mea maʻamau i hoʻohana ʻia,
e like me ka hōʻike ʻana i ka hapa nui o nā mea hoʻohana,
hana ʻoluʻolu ma ka paepae o ka hana ʻōnaehana

Nā hana i kekona (minuke) - ka helu o ka piha
nā hana i kekona (minuke),
ʻo ia hoʻi, pehea ka nui o ka noi i hiki ke ʻae a
kaʻina hana a hoʻopuka i nā pane.
ʻO ka ʻoiaʻiʻo, ʻo kēia ka throughput o ka ʻōnaehana

Kūlana kūʻai , Ua hala / hāʻule / huina - helu
kūleʻa, kūleʻa ʻole a me ka nui o nā hana.

No nā mea hoʻohana maoli ʻaʻole i kūleʻa
ke ano maoli ka hana
hiki ʻole ke hana me ka ʻōnaehana ma lalo o ka ukana

Hoʻouka Hoʻāʻo Schematic Diagram

He mea maʻalahi loa ka manaʻo o ka hoʻāʻo ʻana a loaʻa i ʻekolu mau pae nui, aʻu i haʻi mua ai: Hoʻomākaukau-Hoʻo-Hoʻike, ʻo ia hoʻi, ka hoʻomākaukau ʻana i nā pahuhopu hoʻāʻo a me ka hoʻonohonoho ʻana i nā ʻāpana no nā kumu hoʻouka, a laila hoʻokō i nā hoʻāʻo hoʻouka a, i ka hopena, hana a hoʻopuka i kahi hōʻike hōʻike.

Hoʻouka i ka hoʻokolohua ma ke ʻano he lawelawe CI no nā mea hoʻomohala

Nā memo schematic:

  • He loea ʻo QA.Tester i ka hoʻāʻo ukana,
  • ʻO ka pahuhopu ka noi hulina āu e makemake ai e ʻike i kāna ʻano ma lalo o ka ukana.

Hoʻokaʻawale i nā hui, nā pae a me nā ʻanuʻu i ke kiʻi

Nā pae a me nā ʻanuʻu
He aha kēia mea
He aha ma ka puka komo
He aha ka hopena

E hoʻomākaukau: pae hoʻomākaukau no ka hoʻāʻo

LoadParameters
Hoʻonohonoho a hoʻomaka
mea hoʻohana
nā palena hoʻouka,
koho ana o na ana a
hoʻomākaukau hoʻolālā hoʻāʻo
(hoʻouka ʻike)
Nā koho maʻamau no
ka hoʻomaka ʻana o ka mea lawe ukana
Hoʻolālā hoʻāʻo
Ke kumu o ka hoao ana

VM
Hoʻolaha kapua
mīkini virtual me
nā hiʻohiʻona i makemake ʻia
Nā hoʻonohonoho VM no ka mea lawe ukana
Nā palapala hōʻoia no
Hana ʻia ʻo VM
VM i hoʻonohonoho ʻia i loko
ke ao

ʻO Env
Hoʻonohonoho OS a hoʻomākaukau
kaiapuni no
hana hoʻoili ukana
Nā hoʻonohonoho kaiapuni no
mea lawe ukana
Nā palapala hōʻoia no
hoʻonohonoho kaiapuni
Kaiapuni i hoomakaukauia:
OS, nā lawelawe a me nā noi,
pono no ka hana
mea lawe ukana

LoadAgents
Hoʻonohonoho, hoʻonohonoho a me ka hoʻonohonoho ʻana
mea lawe ukana.
A i ʻole e hoʻoiho i kahi kiʻi docker mai
kumu hoʻouka i hoʻonohonoho mua ʻia
E hoʻouka i ke kiʻi docker kumu
(YAT, JM a i ʻole ka papa hana kākau iho)
Nā hoʻonohonoho
mea lawe ukana
Hoʻonohonoho a mākaukau
to work load agent

Ho'āʻo: pae o ka hoʻokō ʻana i nā hoʻāʻo hoʻouka. ʻO nā kumu nā mea lawe ukana i hoʻonoho ʻia i loko o nā loko i hoʻolaʻa ʻia no GitLab CI

haawe
E hoʻomaka ana i ka Load Agent
me ka papahana hoʻāʻo i koho ʻia
a me nā palena hoʻouka
Nā koho mea hoʻohana
no ka hoʻomaka ʻana
mea lawe ukana
Hoʻolālā hoʻāʻo
Ke kumu o ka hoao ana
Nā lāʻau hoʻokō
hoʻāʻo hoʻouka
Pūnaehana moʻolelo
Dynamics o nā hoʻololi ʻana i nā anana pahu hopu a me ka mea lawe ukana

Holo i na Agena
Hooko Agena
ka nui o na palapala hoao
e kulike i
hoʻoili ʻike
Hoʻouka ʻAgent Interaction
no ka hoao ana
Hoʻolālā hoʻāʻo
Ke kumu o ka hoao ana

Nā leka
ʻOhi o nā lāʻau "raw".
i ka wā hoʻāʻo hoʻouka:
nā moʻolelo hana hoʻoili ukana,
kūlana o ka pahuhopu hoʻāʻo
a me ka VM e holo ana i ka luna

Nā lāʻau hoʻokō
hoʻāʻo hoʻouka
Pūnaehana moʻolelo

Nā Kūkākūkā
ʻOhi ʻana i nā ana "raw" i ka wā hoʻāʻo

Dynamics o nā hoʻololi i nā ana pahu hopu
a me ka mea lawe ukana

Hōʻike: pae hoʻomākaukau hōʻike hōʻike

Hoʻomākaukau
ʻOhi ʻia ka hana ʻana
ʻōnaehana hoʻouka a me
ʻōnaehana nānā "raw"
nā ana a me nā lāʻau
Hoʻokumu ʻana i kahi hōʻike ma
ʻano heluhelu kanaka
hiki me nā mea
nā kānaka kālailai
Nā lāʻau hoʻokō
hoʻāʻo hoʻouka
Pūnaehana moʻolelo
Nā hoʻololi i nā ana
pahu hopu a ukana
Hana ʻia nā lāʻau "raw".
ma ke ano kupono no
hoʻouka i ka waihona waho
Hōʻike hoʻouka paʻa,
hiki ke heluhelu kanaka

hoolaha
Hoolaha ana i ka hoike
e pili ana i ka ukana
hoao ana ma waho
lawelawe
Hana ʻia "raw"
nā moʻolelo ma ke ʻano kūpono
no ka wehe ʻana i waho
hale waihona
Mālama ʻia ma waho
hōʻike waihona ma
haawe, kupono
no ka noonoo kanaka

Hoʻohui i nā kumu hoʻouka ma ka template CI

E neʻe kākou i ka ʻāpana hana. Makemake wau e hōʻike pehea i kekahi mau papahana i ka hui Nā ʻenehana maikaʻi ua hoʻokō mākou i ka manaʻo o ka hoʻāʻo ukana ma ke ʻano he lawelawe.

ʻO ka mea mua, me ke kōkua o kā mākou ʻenehana DevOps, ua hana mākou i kahi wai hoʻolaʻa o nā mea hana ma GitLab CI e holo i nā hoʻāʻo ukana. I ʻole e huikau iā lākou i nā templates me nā poʻe ʻē aʻe, e like me nā loko hui, ua hoʻohui mākou i nā hōʻailona i kēia mau mea hana, Tags: ukana. Hiki iā ʻoe ke hoʻohana i nā hōʻailona ʻē aʻe. Nīnau lākou i ka wā kākau inoa ʻO GitLab CI Runners.

Pehea e ʻike ai i ka mana i koi ʻia e ka lako kamepiula? ʻO nā hiʻohiʻona o nā mea hoʻouka - kahi helu kūpono o vCPU, RAM a me Disk - hiki ke helu ʻia ma muli o ka holo ʻana o Docker, Python (no Yandex.Tank), GitLab CI agent, Java (no Apache JMeter) e holo ma luna o ka ʻelele. . No Java ma lalo o JMeter, ua ʻōlelo ʻia e hoʻohana i ka liʻiliʻi o 512 MB o RAM a, ma ke ʻano he palena kiʻekiʻe, 80% hoʻomanaʻo i loaʻa.

No laila, e pili ana i kā mākou ʻike, manaʻo mākou e hoʻohana ma ka liʻiliʻi he 4 vCPU, 4 GB RAM, 60 GB SSD no nā mea lawe ukana. Hoʻoholo ʻia ka throughput o ke kāleka pūnaewele ma muli o nā koi o ka ʻaoʻao hoʻouka.

Hoʻohana nui mākou i ʻelua kumu hoʻouka - Apache JMeter a me Yandex.Tank docker kiʻi.

ʻO Yandex.Tank ʻO ia kahi mea hana open source mai Yandex no ka hoʻāʻo ʻana. Hoʻokumu ʻia kona hoʻolālā modular ma luna o ka Phantom's high-performance asynchronous hit-based HTTP request generator. Loaʻa i ka pahu ka nānā ʻana i nā kumuwaiwai o ka server ma lalo o ka hoʻāʻo ʻana ma o ka protocol SSH, hiki ke hoʻopau koke i ka hoʻāʻo ma lalo o nā kūlana i kuhikuhi ʻia, hiki ke hōʻike i nā hopena ma ka console a ma ke ʻano o nā kiʻi, hiki iā ʻoe ke hoʻohui i kāu mau modula. iā ia e hoʻonui i ka hana. Ma ke ala, ua hoʻohana mākou i ka Tank i ka wā ʻaʻole ia i ka mainstream. Ma ka ʻatikala "ʻO Yandex.Tank a hoʻouka i ka automation hoʻāʻo» hiki iā ʻoe ke heluhelu i ka moʻolelo o kā mākou hana ʻana i ka hoʻāʻo ukana me ia ma 2013 PT Pākuʻi Puhi ʻo ia kekahi o nā huahana a kā mākou hui.

ʻO Apache JMeter he mea hoʻāʻo hoʻāʻo ʻana i ke kumu kumu mai Apache. Hiki ke hoʻohana maikaʻi ʻia no ka hoʻāʻo ʻana i nā noi pūnaewele static a me ka ikaika. Kākoʻo ʻo JMeter i ka nui o nā protocols a me nā ala e launa pū me nā noi: HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, etc.), SOAP / REST Webservices, FTP, TCP, LDAP, SMTP(S), POP3( S) ) a me IMAP(S), nā ʻikepili ma o JDBC, hiki ke hoʻokō i nā kauoha shell a hana pū me nā mea Java. Loaʻa iā JMeter kahi IDE no ka hana ʻana, hoʻopau a hoʻokō i nā hoʻolālā hoʻāʻo. Aia kekahi CLI no ka hana laina kauoha ma kekahi ʻōnaehana hoʻohana like Java (Linux, Windows, Mac OS X). Hiki i ka mea hana ke hana i kahi hōʻike hōʻike HTML.

No ka maʻalahi o ka hoʻohana ʻana i loko o kā mākou hui, no ka hiki i nā mea hōʻike iā lākou iho ke hoʻololi a hoʻohui i ke kaiapuni, hana mākou i nā kiʻi docker o nā kumu hoʻouka ma GitLab CI me ka paʻi ʻana i ka kūloko. hoʻopaʻa inoa docker ma Artifactory. ʻO kēia ka wikiwiki a me ka maʻalahi o ka hoʻopili ʻana iā lākou i nā pipelines no nā hoʻāʻo hoʻouka. Pehea e hana ai i ka docker push i ka hoʻopaʻa inoa ma o GitLab CI - ʻike nā kuhikuhi.

Lawe mākou i kēia faila docker kumu no Yandex.Tank:

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

A no Apache JMeter kēia:

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

Hiki iā ʻoe ke heluhelu pehea e hana ai kā mākou ʻōnaehana hoʻohui mau i ka ʻatikala "ʻO ke kaʻina hana hoʻomohala: pehea mākou i hoʻokō ai i nā manaʻo DevOps ma Positive Technologies".

Papahana a me ka paipu

Loaʻa kahi laʻana o kahi laʻana no ka hoʻokō ʻana i nā hoʻāʻo ukana ma ka papahana hōʻike hōʻike. ka readme waihona Hiki iā ʻoe ke heluhelu i nā kuhikuhi no ka hoʻohana ʻana i ka template. Ma ka template pono'ī (file .gitlab-ci.yml) aia nā memo e pili ana i ke kuleana o kēlā me kēia ʻanuʻu.

He mea maʻalahi loa ka laʻana a hōʻike i nā ʻanuʻu ʻekolu o ka hoʻāʻo ʻana i ka ukana i wehewehe ʻia ma ke kiʻi ma luna: hoʻomākaukau, hoʻāʻo, a hoʻopuka i nā hōʻike. kuleana no keia Nā wāwae: Hoʻomākaukau, ho'āʻo a hōʻike.

  1. Wāwae E hoʻomākaukau pono e hoʻohana ʻia e hoʻonohonoho mua i nā pahuhopu hoʻāʻo a nānā paha i ko lākou loaʻa. ʻAʻole pono e hoʻonohonoho ʻia ke kaiapuni no nā kumu hoʻouka, ua kūkulu mua ʻia lākou e like me nā kiʻi docker a kau ʻia ma ka papa inoa docker: e kuhikuhi wale i ka mana i makemake ʻia ma ke kahua hōʻike. Akā hiki iā ʻoe ke kūkulu hou iā lākou a hana i kāu mau kiʻi i hoʻololi ʻia.
  2. Wāwae hōʻike hoʻohana ʻia e kuhikuhi i ke kumu hoʻouka, hoʻāʻo hoʻāʻo, a mālama i nā mea hoʻāʻo hoʻāʻo. Hiki iā ʻoe ke koho i kahi kumu hoʻouka: Yandex.Tank, Apache JMeter, kāu ponoʻī, a i ʻole hui pū ʻia. No ka hoʻopau ʻana i nā kumu pono ʻole, e ʻōlelo wale a holoi paha i ka hana. Nā wahi komo no nā kumu hoʻouka:

    'Ōlelo Aʻo: Hoʻohana ʻia ka laʻana hoʻonohonoho hui no ka hoʻonohonoho ʻana i ka pilina me ka ʻōnaehana CI a ʻaʻole ia e hoʻokomo i ka loiloi hoʻāʻo i loko. No nā hoʻāʻo, ua kuhikuhi ʻia ka helu komo, kahi i loaʻa ai ka mana bash script. Pono e hoʻokō ʻia ke ʻano o ka hoʻāʻo ʻana, ka hana ʻana i nā hōʻike, a me nā palapala hōʻike ponoʻī e nā ʻenekini QA. I ka demo, no nā kumu hoʻouka ʻelua, hoʻohana ʻia ka noi ʻaoʻao nui Yandex ma ke ʻano maʻalahi loa. Aia nā palapala a me nā ʻāpana hoʻāʻo i ka papa kuhikuhi ./nā hoʻāʻo.

  3. Ma ke kahua hoike pono ʻoe e wehewehe i ke ʻano o ka hoʻolaha ʻana i nā hopena hoʻāʻo i loaʻa ma ke kahua hōʻike i nā waihona waho, no ka laʻana, i GitLab Pages a i ʻole nā ​​ʻōnaehana hōʻike kūikawā. Pono nā ʻaoʻao ʻo GitLab ʻaʻole i nele ka papa kuhikuhi ./public a loaʻa i kahi faila index.html ma hope o ka pau ʻana o nā hoʻāʻo. Hiki iā ʻoe ke heluhelu e pili ana i nā nuances o ka lawelawe ʻo GitLab Pages. loulou.

    Nā laʻana o ka lawe ʻana i ka ʻikepili:

    Ke kau ʻana i nā ʻōlelo hoʻonohonoho:

I ka laʻana demo, ʻo ka pipeline me nā hoʻāʻo hoʻouka a me ʻelua kumu hoʻouka (hiki iā ʻoe ke hoʻopau i ka mea pono ʻole) e like me kēia:

Hoʻouka i ka hoʻokolohua ma ke ʻano he lawelawe CI no nā mea hoʻomohala

Hiki iā Apache JMeter ke hana i kahi hōʻike HTML ponoʻī, no laila ʻoi aku ka maikaʻi o ka mālama ʻana iā ia ma GitLab Pages me ka hoʻohana ʻana i nā mea hana maʻamau. ʻO kēia ke ʻano o ka hōʻike ʻo Apache JMeter:

Hoʻouka i ka hoʻokolohua ma ke ʻano he lawelawe CI no nā mea hoʻomohala

Ma ka hiʻohiʻona demo no Yandex.Tank, ʻike wale ʻoe hōʻike kikokikona hoʻopunipuni ma ka ʻāpana no nā ʻaoʻao GitLab. I ka wā o ka hoʻāʻo ʻana, hiki i ka Tank ke mālama i nā hopena i ka waihona InfluxDB, a mai laila hiki ke hōʻike ʻia, no ka laʻana, ma Grafana (hana ʻia ka hoʻonohonoho ʻana i ka faila. ./tests/example-yandextank-test.yml). ʻO kēia ke ʻano o ka hōʻike a Tank ma Grafana:

Hoʻouka i ka hoʻokolohua ma ke ʻano he lawelawe CI no nā mea hoʻomohala

Hōʻuluʻulu

Ma ka ʻatikala, ua kamaʻilio wau e pili ana i ka manaʻo o ka "hoʻāʻo hoʻouka ma ke ʻano he lawelawe" (hoʻāʻo hoʻouka ma ke ʻano he lawelawe). ʻO ka manaʻo nui ʻo ka hoʻohana ʻana i ka ʻōnaehana o nā loko i hoʻonohonoho mua ʻia o nā mea lawe ukana, nā kiʻi docker o nā kumu hoʻouka, nā ʻōnaehana hōʻike a me kahi pipeline e hoʻohui iā lākou ma GitLab CI e pili ana i kahi maʻalahi .gitlab-ci.yml template (laʻana. loulou). Kākoʻo ʻia kēia mau mea āpau e kahi hui liʻiliʻi o nā ʻenekini automation a hoʻopiʻi ʻia ma ke noi o nā hui huahana. Manaʻo wau e kōkua kēia iā ʻoe i ka hoʻomākaukau ʻana a me ka hoʻokō ʻana i kahi papahana like i kāu ʻoihana. Mahalo iā ʻoe no ka nānā ʻana!

PS Makemake wau e mahalo nui i koʻu mau hoa hana, ʻo Sergey Kurbanov lāua ʻo Nikolai Yusev, no ke kōkua ʻenehana me ka hoʻokō ʻana i ka manaʻo o ka hoʻāʻo ukana ma ke ʻano he lawelawe i kā mākou hui.

mea kākau: Timur Gilmullin - Hope Ke poʻo o ka ʻenehana a me nā kaʻina hana hoʻomohala (DevOps) ma Positive Technologies

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka