Pag-load sa pagsulay ingon usa ka serbisyo sa CI alang sa mga developer

Pag-load sa pagsulay ingon usa ka serbisyo sa CI alang sa mga developer

Usa sa mga problema nga kanunay giatubang sa mga tigbaligya sa software nga daghang produkto mao ang pagdoble sa mga kahanas sa mga inhenyero - mga developer, tester, ug mga tagdumala sa imprastraktura - sa halos matag team. Kini magamit usab sa mahal nga mga inhenyero - mga espesyalista sa natad sa pagsulay sa pagkarga.

Imbis nga buhaton ang ilang direkta nga mga katungdanan ug gamiton ang ilang talagsaon nga kasinatian aron magtukod usa ka proseso sa pagsulay sa pagkarga, pagpili usa ka pamaagi, labing maayo nga sukatan ug pagsulat sa mga autotest uyon sa mga profile sa pagkarga, ang mga inhenyero kanunay kinahanglan nga mag-deploy sa imprastraktura sa pagsulay gikan sa wala, i-configure ang mga himan sa pagkarga, ug i-embed kini. sa ilang kaugalingon sa mga sistema sa CI, nagpahimutang sa pagmonitor ug pagmantala sa mga taho.

Makapangita ka og mga solusyon sa pipila ka mga problema sa organisasyon sa pagsulay nga among gigamit sa Positive Technologies sa laing artikulo. Ug niining usa, maghisgot ko bahin sa posibilidad sa pag-integrate sa mga load tests ngadto sa usa ka komon nga CI pipeline gamit ang konsepto sa "load testing as a service" (load testing as a service). Mahibal-an nimo kung giunsa ug unsang mga imahe sa docker sa mga gigikanan sa karga ang magamit sa pipeline sa CI; unsaon pagkonektar sa mga tinubdan sa load sa imong CI project gamit ang build template; unsa ang hitsura sa demo pipeline alang sa pagpadagan sa mga pagsulay sa pagkarga ug pagmantala sa mga resulta. Mahimong mapuslanon ang artikulo alang sa mga inhenyero sa pagsulay sa software ug mga inhenyero sa automation sa CI nga naghunahuna bahin sa arkitektura sa ilang sistema sa pagkarga.

Ang diwa sa konsepto

Ang konsepto sa load testing isip usa ka serbisyo nagpasabot sa abilidad sa pag-integrate sa load tools Apache JMeter, Yandex.Tank ug imong kaugalingong frameworks ngadto sa usa ka arbitraryong padayon nga integration system. Ang demo alang sa GitLab CI, apan ang mga prinsipyo komon sa tanang sistema sa CI.

Ang pagsulay sa pagkarga isip usa ka serbisyo usa ka sentralisadong serbisyo alang sa pagsulay sa pagkarga. Ang mga pagsulay sa pagkarga gipadagan sa gipahinungod nga mga pool sa ahente, ang mga resulta awtomatiko nga gipatik sa Mga Pahina sa GitLab, Influx DB ug Grafana o sa mga sistema sa pagreport sa pagsulay (TestRail, ReportPortal, ug uban pa). Ang pag-automate ug pag-scaling kay gipatuman sa yano kutob sa mahimo - pinaagi sa pagdugang ug pag-parameter sa naandan nga template sa gitlab-ci.yml sa proyekto sa GitLab CI.

Ang bentaha sa kini nga pamaagi mao nga ang tibuuk nga imprastraktura sa CI, mga ahente sa pagkarga, mga imahe sa docker sa mga gigikanan sa pagkarga, mga pipeline sa pagsulay, ug mga taho sa pagmantala gipadayon sa usa ka sentralisado nga departamento sa automation (mga inhenyero sa DevOps), samtang ang mga inhenyero sa pagsulay sa pagkarga mahimong magpunting sa ilang mga paningkamot sa pagpalambo sa pagsulay. ug pagtuki sa ilang mga resulta, nga walay pag-atubang sa mga isyu sa imprastraktura.

Alang sa kayano sa paghulagway, atong hunahunaon nga ang target nga aplikasyon o server ubos sa pagsulay na-deploy na ug gi-configure nang daan (awtomatikong mga script sa Python, SaltStack, Ansible, ug uban pa mahimong gamiton alang niini). Pagkahuman ang tibuuk nga konsepto sa pagsulay sa pagkarga ingon usa ka serbisyo mohaum sa tulo ka yugto: pag-andam, pagsulay, pagmantala sa mga taho. Dugang nga mga detalye sa diagram (ang tanan nga mga hulagway ma-click):

Pag-load sa pagsulay ingon usa ka serbisyo sa CI alang sa mga developer

Panguna nga mga konsepto ug kahulugan sa pagsulay sa pagkarga

Kung nagpahigayon mga pagsulay sa pagkarga, gisulayan namon nga sundon Mga sumbanan ug pamaagi sa ISTQB, gamita ang angay nga terminolohiya ug girekomendar nga mga sukatan. Maghatag ako usa ka mubo nga lista sa mga nag-unang konsepto ug kahulugan sa pagsulay sa pagkarga.

ahente sa load - usa ka virtual nga makina diin ang aplikasyon ilunsad - ang gigikanan sa pagkarga (Apache JMeter, Yandex.Tank o usa ka module sa pagkarga sa kaugalingon nga gisulat).

Tumong sa pagsulay (target) - server o aplikasyon nga na-install sa server nga ipailalom sa pagkarga.

Scenario sa pagsulay (test case) - usa ka hugpong sa mga parameterized nga mga lakang: mga aksyon sa user ug gipaabut nga mga reaksyon sa kini nga mga aksyon, nga adunay mga hangyo ug tubag sa network, depende sa gitakda nga mga parameter.

Profile o plano sa pagkarga (profile) - sa ISTQB nga pamaagi (Seksyon 4.2.4, p. 43) Ang mga profile sa load naghubit sa mga sukatan nga kritikal alang sa usa ka partikular nga pagsulay ug mga kapilian sa pagbag-o sa mga parameter sa pagkarga sa panahon sa pagsulay. Makita nimo ang mga pananglitan sa mga profile sa numero.

Pag-load sa pagsulay ingon usa ka serbisyo sa CI alang sa mga developer

Pagsulay β€” usa ka script nga adunay gitino nang daan nga set sa mga parameter.

Plano sa pagsulay (plano sa pagsulay) - usa ka hugpong sa mga pagsulay ug usa ka profile sa pagkarga.

Testran (testrun) - usa ka pag-uli sa pagpadagan sa usa ka pagsulay nga adunay bug-os nga gipatuman nga senaryo sa pagkarga ug ang nadawat nga taho.

Pangayo sa network (hangyo) β€” Usa ka hangyo sa HTTP nga gipadala gikan sa usa ka ahente ngadto sa usa ka target.

Tubag sa network (tubag) β€” Usa ka tubag sa HTTP nga gipadala gikan sa target hangtod sa ahente.
HTTP response code (HTTP responses status) - standard response code gikan sa application server.
Ang usa ka transaksyon usa ka kompleto nga siklo sa paghangyo-tubag. Ang usa ka transaksyon giihap gikan sa pagsugod sa pagpadala sa usa ka hangyo (hangyo) hangtod sa pagkompleto sa pagdawat usa ka tubag (tubag).

Status sa transaksyon - kung posible nga malampuson nga makompleto ang siklo sa paghangyo-tubag. Kung adunay bisan unsang sayup sa kini nga siklo, nan ang tibuuk nga transaksyon giisip nga wala molampos.

Panahon sa pagtubag (latency) - ang oras gikan sa katapusan sa pagpadala sa usa ka hangyo (hangyo) hangtod sa pagsugod sa pagdawat usa ka tubag (tubag).

Mga sukatan sa pagkarga - ang mga kinaiya sa gikarga nga serbisyo ug ang ahente sa pagkarga nga gitino sa proseso sa pagsulay sa pagkarga.

Mga sukaranan nga sukatan alang sa pagsukod sa mga parameter sa pagkarga

Pipila sa labing sagad nga gigamit ug girekomenda sa pamaagi ISTQB (p. 36, 52) ang metrics gipakita sa table sa ubos. Ang parehas nga mga sukatan alang sa ahente ug target gilista sa parehas nga linya.

Mga sukatan alang sa ahente sa pagkarga
Mga sukatan sa target nga sistema o aplikasyon nga gisulayan ubos sa pagkarga

Gidaghanon sa  vCPU ug memorya RAM,
disk - "iron" nga mga kinaiya sa ahente sa pagkarga
CPU, Memorya, Paggamit sa disk - dinamika sa CPU, memorya ug pagkarga sa disk
sa proseso sa pagsulay. Kasagaran gisukod isip porsyento sa
maximum nga magamit nga mga kantidad

network throughput (sa load agent) - throughput
interface sa network sa server,
diin gibutang ang load agent.
Kasagaran gisukod sa bytes kada segundo (bps)
network throughput(sa target) - bandwidth sa interface sa network
sa target nga server. Kasagaran gisukod sa bytes kada segundo (bps)

Virtual nga tiggamit- ang gidaghanon sa mga virtual nga tiggamit,
pagpatuman sa mga senaryo sa pagkarga ug
pagsundog sa tinuod nga mga aksyon sa user
Ang kahimtang sa virtual nga tiggamit, Passed/Failed/Total β€” gidaghanon sa malampuson ug
dili malampuson nga mga kahimtang sa mga virtual nga tiggamit
alang sa mga senaryo sa pagkarga, ingon man sa ilang kinatibuk-ang gidaghanon.

Sa kasagaran gilauman nga ang tanan nga mga tiggamit makahimo sa pagkompleto
tanan nimong buluhaton nga gitakda sa load profile.
Ang bisan unsang sayup nagpasabut nga ang usa ka tinuud nga tiggamit dili makahimo
pagsulbad sa imong problema sa diha nga nagtrabaho uban sa sistema

Mga hangyo kada segundo (minuto)- ang gidaghanon sa mga hangyo sa network matag segundo (o minuto).

Usa ka importante nga kinaiya sa usa ka load agent mao ang gidaghanon sa mga hangyo nga mahimo niini.
Sa tinuud, kini usa ka imitasyon sa pag-access sa aplikasyon sa mga virtual nga tiggamit
Mga tubag kada segundo (minuto)
- ang gidaghanon sa mga tubag sa network matag segundo (o minuto).

Usa ka importante nga kinaiya sa target nga serbisyo: unsa ka daghan
paghimo ug pagpadala mga tubag sa mga pangutana nga adunay
loading ahente

Status sa pagtubag sa HTTP- gidaghanon sa lain-laing mga tubag code
gikan sa application server nga nadawat sa load agent.
Pananglitan, ang 200 OK nagpasabut nga malampuson nga tawag,
ug 404 - nga ang kapanguhaan wala makit-an

Kalihokan (panahon sa pagtubag) - panahon gikan sa katapusan
pagpadala og hangyo (hangyo) sa dili pa magsugod sa pagdawat og tubag (tubag).
Kasagaran gisukod sa milliseconds (ms)

Panahon sa pagtubag sa transaksyon- oras sa usa ka bug-os nga transaksyon,
pagkompleto sa siklo sa hangyo-tubag.
Kini ang oras gikan sa pagsugod sa pagpadala sa hangyo (hangyo)
hangtod sa pagkompleto sa pagdawat sa tubag (tubag).

Ang oras sa transaksyon mahimong masukod sa mga segundo (o minuto)
sa daghang mga paagi: hunahunaa ang minimum,
maximum, average ug, pananglitan, ang 90th percentile.
Ang minimum ug maximum nga mga pagbasa kay grabe
kahimtang sa performance sa sistema.
Ang XNUMX percentile mao ang kasagarang gigamit,
ingon nga kini nagpakita sa kadaghanan sa mga tiggamit,
komportable nga naglihok sa threshold sa performance sa sistema

Mga transaksyon kada segundo (minuto) - ang gidaghanon sa kompleto
mga transaksyon kada segundo (minuto),
sa ato pa, kung pila ang nadawat sa aplikasyon ug
mga hangyo sa proseso ug mga tubag sa isyu.
Sa tinuud, kini ang throughput sa sistema

Status sa transaksyon , Nakapasar / Napakyas / Total - numero
malampuson, dili malampuson ug ang kinatibuk-ang gidaghanon sa mga transaksyon.

Alang sa tinuod nga tiggamit nga wala molampos
ang transaksyon magpasabot gayod
kawalay katakus sa pagtrabaho uban sa sistema ubos sa load

Load Testing Schematic Diagram

Ang konsepto sa pagsulay sa pagkarga yano ra kaayo ug naglangkob sa tulo nga mga nag-unang yugto, nga akong nahisgutan na: Pag-andam-Pagsulay-Taho, kana mao, pag-andam sa mga tumong sa pagsulay ug pagtakda sa mga parametro alang sa mga tinubdan sa load, dayon ipatuman ang mga pagsulay sa pagkarga ug, sa katapusan, paghimo ug pagmantala sa usa ka test report.

Pag-load sa pagsulay ingon usa ka serbisyo sa CI alang sa mga developer

Mga nota sa eskematiko:

  • Ang QA.Tester usa ka eksperto sa pagsulay sa pagkarga,
  • Ang target mao ang target nga aplikasyon diin gusto nimo mahibal-an ang pamatasan niini ubos sa pagkarga.

Klasipikasyon sa mga entidad, mga yugto ug mga lakang sa diagram

Mga yugto ug mga lakang
Unsay nahitabo
Unsa ang naa sa entrada
Unsa ang output

Pag-andam: yugto sa pagpangandam alang sa pagsulay

Mga LoadParameter
Pagbutang ug pagsugod
tiggamit
mga parameter sa pagkarga,
pagpili sa metrics ug
pag-andam sa plano sa pagsulay
(load profile)
Pasadya nga mga kapilian alang sa
pagsugod sa ahente sa pagkarga
Plano sa pagsulay
Katuyoan sa pagsulay

VM
Pag-deploy sa panganod
virtual machine nga adunay
gikinahanglan nga mga kinaiya
Mga setting sa VM alang sa ahente sa pagkarga
Automation script para sa
Pagbuhat sa VM
Gi-configure ang VM sa
ang panganod

Gipasalig ni Env
Pag-setup ug pag-andam sa OS
palibot alang sa
trabaho sa load agent
Mga setting sa palibot alang sa
ahente sa pagkarga
Automation script para sa
setting sa palibot
Giandam nga palibot:
OS, serbisyo ug aplikasyon,
gikinahanglan alang sa trabaho
ahente sa pagkarga

LoadAgents
Pag-instalar, pag-configure ug pag-parameter
loading ahente.
O pag-download sa usa ka docker nga imahe gikan sa
preconfigured load source
I-load ang gigikanan nga imahe sa docker
(YAT, JM o self-written framework)
Mga setting
ahente sa pagkarga
Ibutang ug andam
sa pagtrabaho load ahente

Pagsulay: yugto sa pagpatuman sa mga pagsulay sa pagkarga. Ang mga gigikanan mao ang mga ahente sa pagkarga nga gipakatap sa gipahinungod nga mga pool sa ahente alang sa GitLab CI

load
Pagsugod sa Load Agent
uban sa pinili nga plano sa pagsulay
ug load parameters
Mga Opsyon sa Gumagamit
para sa initialization
ahente sa pagkarga
Plano sa pagsulay
Katuyoan sa pagsulay
Mga log sa pagpatay
mga pagsulay sa pagkarga
Mga log sa sistema
Mga dinamika sa mga pagbag-o sa mga sukatan sa katuyoan ug ahente sa pagkarga

Pagdagan sa mga Ahente
Pagpatay sa Ahente
daghang mga script sa pagsulay
subay sa
load profile
Interaksyon sa Load Agent
alang sa katuyoan sa pagsulay
Plano sa pagsulay
Katuyoan sa pagsulay

mga troso
Koleksyon sa "hilaw" nga mga troso
sa panahon sa pagsulay sa pagkarga:
mga rekord sa kalihokan sa load agent,
kahimtang sa target sa pagsulay
ug ang VM nga nagpadagan sa ahente

Mga log sa pagpatay
mga pagsulay sa pagkarga
Mga log sa sistema

Sukdanan
Pagkolekta sa "hilaw" nga sukatan sa panahon sa pagsulay

Mga dinamika sa mga pagbag-o sa mga sukatan sa katuyoan
ug load agent

Report: yugto sa pagpangandam sa report sa pagsulay

Generator
Pagproseso nga nakolekta
loading system ug
sistema sa pagmonitor "hilaw"
metrics ug logs
Pagporma sa usa ka report sa
mabasa sa tawo nga porma
posible sa mga elemento
analista
Mga log sa pagpatay
mga pagsulay sa pagkarga
Mga log sa sistema
Mga dinamika sa mga pagbag-o sa mga sukatan
target ug load agent
Giproseso nga "hilaw" nga mga troso
sa usa ka porma nga angay alang sa
gi-upload sa external storage
Static load report,
mabasa sa tawo

imantala
Pagmantala sa taho
bahin sa load
pagsulay sa gawas
serbisyo
Giproseso nga "hilaw"
log sa usa ka angay nga format
alang sa pagdiskarga sa gawas
mga tipiganan
Gitipigan sa gawas
mga taho sa pagtipig sa
load, angay
alang sa pagtuki sa tawo

Pagkonektar sa mga tinubdan sa load sa template sa CI

Mopadayon kita sa praktikal nga bahin. Gusto nakong ipakita kung giunsa ang pipila ka mga proyekto sa kompanya Positibo nga Teknolohiya among gipatuman ang konsepto sa load testing isip usa ka serbisyo.

Una, sa tabang sa among mga inhenyero sa DevOps, naghimo kami usa ka gipahinungod nga grupo sa mga ahente sa GitLab CI aron magpadagan sa mga pagsulay sa pagkarga. Aron dili malibug sila sa mga template sa uban, sama sa mga pool pool, gidugang namon ang mga tag sa kini nga mga ahente, tags: load. Mahimo nimong gamiton ang bisan unsang ubang masabtan nga mga tag. Nangutana sila atol sa pagparehistro GitLab CI Runners.

Giunsa mahibal-an ang gikinahanglan nga gahum pinaagi sa hardware? Ang mga kinaiya sa mga ahente sa pagkarga - igo nga gidaghanon sa vCPU, RAM ug Disk - mahimong kalkulado base sa kamatuoran nga ang Docker, Python (alang sa Yandex.Tank), ahente sa GitLab CI, Java (alang sa Apache JMeter) kinahanglan nga modagan sa ahente. . Alang sa Java ubos sa JMeter, girekomenda usab ang paggamit sa labing gamay nga 512 MB nga RAM ug, ingon usa ka taas nga limitasyon, 80% magamit nga memorya.

Busa, base sa among kasinatian, among girekomendar ang paggamit ug labing menos 4 vCPUs, 4 GB RAM, 60 GB SSD para sa mga load agent. Ang throughput sa network card gitino base sa mga kinahanglanon sa load profile.

Kami nag-una sa paggamit sa duha ka load tinubdan - Apache JMeter ug Yandex.Tank docker mga larawan.

Yandex.Tank kay usa ka open source tool gikan sa Yandex para sa load testing. Ang modular nga arkitektura niini gibase sa high-performance nga asynchronous nga hit-based nga HTTP request generator sa Phantom. Ang tangke adunay usa ka built-in nga pag-monitor sa mga kahinguhaan sa server nga gipailalom sa pagsulay pinaagi sa SSH protocol, mahimong awtomatiko nga ihunong ang pagsulay sa ilawom sa piho nga mga kondisyon, mahimo’g ipakita ang mga resulta sa console ug sa porma sa mga graph, mahimo nimong ikonekta ang imong mga module niini aron mapalapad ang pag-andar. Pinaagi sa dalan, gigamit namon ang Tank sa wala pa kini mainstream. Sa artikulo nga "Yandex.Tank ug load testing automationΒ» mabasa nimo ang istorya kung giunsa namo pagpahigayon ang load testing niini niadtong 2013 PT Application Firewall usa sa mga produkto sa among kompanya.

Apache JMeter kay usa ka open source load testing tool gikan sa Apache. Mahimo kining magamit nga parehas nga maayo alang sa pagsulay sa parehas nga static ug dinamikong aplikasyon sa web. Gisuportahan sa JMeter ang daghang mga protocol ug mga paagi aron makig-uban sa mga aplikasyon: HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, etc.), SOAP / REST Webservices, FTP, TCP, LDAP, SMTP(S), POP3( S) ) ug IMAP(S), mga database pinaagi sa JDBC, maka-execute sa shell commands ug makatrabaho sa Java objects. Ang JMeter adunay IDE alang sa paghimo, pag-debug ug pagpatuman sa mga plano sa pagsulay. Adunay usab usa ka CLI alang sa operasyon sa command line sa bisan unsang Java compatible operating system (Linux, Windows, Mac OS X). Ang himan mahimo nga dinamikong makamugna og HTML test report.

Alang sa kasayon ​​​​sa paggamit sa sulod sa among kompanya, alang sa katakus sa mga tigsulay sa ilang kaugalingon nga magbag-o ug magdugang sa palibot, naghimo kami mga pagtukod sa mga imahe sa docker sa mga gigikanan sa load sa GitLab CI nga adunay publikasyon sa internal. docker registry sa Artifactory. Kini naghimo niini nga mas paspas ug mas sayon ​​sa pagkonektar kanila sa pipelines alang sa load pagsulay. Giunsa pagbuhat ang docker push sa rehistro pinaagi sa GitLab CI - tan-awa mga instruksyon.

Among gikuha kining batakang docker file para sa Yandex.Tank:

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

Ug alang sa Apache JMeter kini:

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

Mahimo nimo mabasa kung giunsa ang among padayon nga sistema sa panagsama nagtrabaho sa artikulo "Automation sa mga proseso sa pag-uswag: kung giunsa namon gipatuman ang mga ideya sa DevOps sa Positive Technologies".

Template ug pipeline

Usa ka pananglitan sa usa ka template alang sa pagpahigayon sa mga pagsulay sa pagkarga anaa sa proyekto demo load. ang readme nga file Mahimo nimong basahon ang mga panudlo alang sa paggamit sa template. Sa template mismo (file .gitlab-ci.yml) adunay mga nota bahin sa kung unsa ang responsable sa matag lakang.

Ang template yano ra kaayo ug nagpakita sa tulo ka yugto sa load testing nga gihulagway sa dayagram sa ibabaw: pag-andam, pagsulay, ug pagmantala sa mga taho. Responsable niini mga hugna: Pag-andam, Pagsulay ug Pagreport.

  1. Stage Pag-andam kinahanglan gamiton aron i-preconfigure ang mga target sa pagsulay o susihon ang pagkaanaa niini. Ang palibot alang sa mga tinubdan sa load dili kinahanglan nga ma-configure, kini pre-built isip docker images ug gibutang sa docker registry: ipiho lang ang gusto nga bersyon sa Test stage. Apan mahimo nimong tukuron kini pag-usab ug maghimo sa imong kaugalingon nga giusab nga mga imahe.
  2. Stage pagsulay gigamit sa pagtino sa tinubdan sa load, pagpadagan sa mga pagsulay, ug pagtipig sa mga artifact sa pagsulay. Mahimo nimong pilion ang bisan unsang gigikanan sa pagkarga: Yandex.Tank, Apache JMeter, imong kaugalingon, o tanan. Aron ma-disable ang wala kinahanglana nga mga gigikanan, pagkomento lang o pagtangtang sa trabaho. Mga punto sa pagsulod alang sa mga tinubdan sa load:

    Mubo nga sulat: Ang assembly configuration template gigamit sa pag-set up sa interaksyon sa CI system ug wala magpasabot sa pagbutang sa test logic niini. Alang sa mga pagsulay, gipiho ang entry point, diin nahimutang ang control bash script. Ang pamaagi sa pagpadagan sa mga pagsulay, paghimo og mga taho, ug ang mga script sa pagsulay mismo kinahanglan nga ipatuman sa mga inhenyero sa QA. Sa demo, alang sa duha ka tinubdan sa load, ang Yandex main page request gigamit isip pinakasimple nga pagsulay. Ang mga script ug mga parameter sa pagsulay naa sa direktoryo ./mga pagsulay.

  3. Sa entablado Report kinahanglan nimong ihulagway kung giunsa pagmantala ang mga resulta sa pagsulay nga nakuha sa yugto sa Pagsulay sa mga eksternal nga pagtipig, pananglitan, sa GitLab Pages o espesyal nga mga sistema sa pagreport. Ang GitLab Pages nagkinahanglan nga ang ./public directory mahimong walay sulod ug adunay labing menos usa ka index.html file human makompleto ang mga pagsulay. Makabasa ka bahin sa mga nuances sa serbisyo sa GitLab Pages. link.

    Mga pananglitan kung giunsa ang pag-eksport sa datos:

    Pag-post sa mga panudlo sa pag-setup:

Sa panig-ingnan sa demo, ang pipeline nga adunay mga pagsulay sa pagkarga ug duha nga gigikanan sa pagkarga (mahimo nimong ma-disable ang wala kinahanglana) ingon niini:

Pag-load sa pagsulay ingon usa ka serbisyo sa CI alang sa mga developer

Ang Apache JMeter makahimo og usa ka HTML nga report mismo, mao nga mas mapuslanon ang pagtipig niini sa GitLab Pages gamit ang standard nga mga himan. Ingon niini ang hitsura sa taho sa Apache JMeter:

Pag-load sa pagsulay ingon usa ka serbisyo sa CI alang sa mga developer

Sa pananglitan sa demo alang sa Yandex.Tank, makita ra nimo peke nga text report sa seksyon para sa GitLab Pages. Atol sa pagsulay, ang Tank makaluwas sa mga resulta ngadto sa database sa InfluxDB, ug gikan didto mahimo silang ipakita, pananglitan, sa Grafana (ang pag-configure gihimo sa file. ./tests/example-yandextank-test.yml). Kini ang hitsura sa taho ni Tank sa Grafana:

Pag-load sa pagsulay ingon usa ka serbisyo sa CI alang sa mga developer

Sumaryo

Sa artikulo, naghisgot ako bahin sa konsepto sa "pagsulay sa pagkarga ingon usa ka serbisyo" (pagsulay sa pagkarga ingon usa ka serbisyo). Ang nag-unang ideya mao ang paggamit sa imprastraktura sa pre-configured pool sa load agents, docker images sa load sources, reporting systems ug pipeline nga naghiusa kanila sa GitLab CI base sa simple nga .gitlab-ci.yml template (pananglitan link). Kining tanan gisuportahan sa usa ka gamay nga grupo sa mga inhenyero sa automation ug gisundog sa hangyo sa mga team sa produkto. Nanghinaut ko nga kini makatabang kanimo sa pag-andam ug pagpatuman sa susamang laraw sa imong kompanya. Salamat sa pagtagad!

PS Gusto nakong isulti ang usa ka dako nga salamat sa akong mga kauban, Sergey Kurbanov ug Nikolai Yusev, alang sa teknikal nga tabang sa pagpatuman sa konsepto sa load testing isip usa ka serbisyo sa among kompanya.

awtor nga: Timur Gilmullin - Deputy Ulo sa Mga Teknolohiya ug Mga Proseso sa Pag-uswag (DevOps) sa Positive Technologies

Source: www.habr.com

Idugang sa usa ka comment