Load xeem raws li CI kev pabcuam rau cov neeg tsim khoom

Load xeem raws li CI kev pabcuam rau cov neeg tsim khoom

Ib qho ntawm cov teeb meem uas cov neeg muag khoom software feem ntau ntsib yog qhov sib npaug ntawm cov peev txheej ntawm cov engineers - cov neeg tsim khoom, cov neeg sim, thiab cov thawj coj hauv vaj tse - yuav luag txhua pab pawg. Qhov no kuj siv tau rau cov engineers kim - cov kws tshaj lij hauv kev kuaj kev thauj khoom.

Hloov chaw ntawm kev ua lawv txoj haujlwm ncaj qha thiab siv lawv cov kev paub tshwj xeeb los tsim cov txheej txheem thauj khoom, xaiv cov txheej txheem, kev ntsuas zoo tshaj plaws thiab sau autotests raws li cov ntaub ntawv thauj khoom, cov engineers feem ntau yuav tsum xa cov qauv kev sim los ntawm kos, teeb tsa cov cuab yeej thauj khoom, thiab kos lawv. lawv tus kheej hauv CI systems, teeb tsa kev saib xyuas thiab tshaj tawm cov ntawv ceeb toom.

Koj tuaj yeem nrhiav kev daws teeb meem rau qee lub koom haum teeb meem hauv kev sim uas peb siv ntawm Positive Technologies hauv lwm tsab xov xwm. Thiab hauv qhov no, kuv yuav tham txog qhov muaj peev xwm ntawm kev sib koom ua ke ntawm cov kev xeem thauj khoom mus rau hauv ib qho kev sib txuas CI uas siv lub tswv yim ntawm "load testing as a service" (load testing as a service). Koj yuav kawm yuav ua li cas thiab cov duab docker ntawm qhov chaw thauj khoom tuaj yeem siv rau hauv CI pipeline; Yuav ua li cas txuas cov peev txheej thauj khoom rau koj qhov project CI siv tus qauv tsim; dab tsi lub raj xa dej demo zoo li rau kev ntsuas kev thauj khoom thiab tshaj tawm cov txiaj ntsig. Cov kab lus yuav muaj txiaj ntsig zoo rau software kuaj engineers thiab automation engineers hauv CI uas tab tom xav txog kev tsim qauv ntawm lawv cov khoom thauj khoom.

Lub ntsiab ntawm lub tswvyim

Lub tswv yim ntawm kev ntsuas kev thauj khoom raws li qhov kev pabcuam cuam tshuam txog kev muaj peev xwm los koom ua ke cov cuab yeej thauj khoom Apache JMeter, Yandex.Tank thiab koj tus kheej cov txheej txheem rau hauv kev sib koom ua ke tsis tu ncua. Lub demo yuav yog rau GitLab CI, tab sis cov hauv paus ntsiab lus yog ib txwm muaj rau txhua lub tshuab CI.

Load testing raws li ib qho kev pabcuam yog qhov kev pabcuam hauv nruab nrab rau kev kuaj kev thauj khoom. Cov kev xeem thauj khoom tau khiav hauv cov chaw ua haujlwm tshwj xeeb, cov txiaj ntsig tau tshaj tawm hauv GitLab Nplooj Ntawv, Influx DB thiab Grafana lossis hauv cov ntawv tshaj tawm (TestRail, ReportPortal, thiab lwm yam). Automation thiab scaling yog siv raws li yooj yim li sai tau - los ntawm kev ntxiv thiab parameterizing tus li ib txwm gitlab-ci.yml template nyob rau hauv GitLab CI project.

Qhov kom zoo dua ntawm txoj hauv kev no yog tias tag nrho CI infrastructure, cov neeg ua haujlwm thauj khoom, cov duab docker ntawm qhov chaw thauj khoom, kuaj cov kav dej, thiab cov ntawv tshaj tawm tau tswj hwm los ntawm lub chaw haujlwm nruab nrab ntawm lub tshuab hluav taws xob (DevOps engineers), thaum thauj khoom kuaj engineers tuaj yeem tsom lawv cov kev mob siab rau kev txhim kho kev sim. thiab tsom xam ntawm lawv cov txiaj ntsig, yam tsis muaj kev cuam tshuam nrog cov teeb meem hauv vaj tse.

Rau qhov yooj yim ntawm cov lus piav qhia, peb yuav xav tias lub hom phiaj daim ntawv thov lossis cov neeg rau zaub mov hauv kev sim twb tau siv thiab teeb tsa ua ntej (automated scripts hauv Python, SaltStack, Ansible, thiab lwm yam tuaj yeem siv rau qhov no). Tom qab ntawd tag nrho lub tswv yim ntawm kev kuaj load raws li qhov kev pabcuam haum rau hauv peb theem: kev npaj, kev sim, kev tshaj tawm cov ntaub ntawv. Ntau cov ntsiab lus ntawm daim duab (tag nrho cov duab yog clickable):

Load xeem raws li CI kev pabcuam rau cov neeg tsim khoom

Cov ntsiab lus tseem ceeb thiab cov ntsiab lus hauv kev kuaj load

Thaum ua cov kev ntsuam xyuas load, peb sim ua raws li ISTQB cov qauv thiab txheej txheem, siv cov terminology tsim nyog thiab pom zoo metrics. Kuv yuav muab cov npe luv luv ntawm cov ntsiab lus tseem ceeb thiab cov ntsiab lus hauv kev ntsuas kev thauj khoom.

Load agent - lub tshuab virtual uas daim ntawv thov yuav raug tso tawm - qhov chaw thauj khoom (Apache JMeter, Yandex.Tank lossis tus kheej sau ntawv thauj khoom).

Test lub hom phiaj (target) - server lossis daim ntawv thov ntsia ntawm lub server uas yuav raug thauj.

Test scenario (test case) - ib txheej ntawm cov kauj ruam parameterized: cov neeg siv kev nqis tes ua thiab cov kev xav tau tshwm sim rau cov kev ua no, nrog cov kev thov txuas txuas ruaj khov thiab cov lus teb, nyob ntawm qhov tsis muaj qhov tshwj xeeb.

Profile lossis Load Plan (profile) - ntawm ISQB methodology (Nqe 4.2.4, p. 43) load profiles txhais cov metrics uas yog ib qho tseem ceeb rau ib qho kev xeem thiab cov kev xaiv rau kev hloov load tsis nyob rau hauv lub xeem. Koj tuaj yeem pom cov piv txwv ntawm cov profiles hauv daim duab.

Load xeem raws li CI kev pabcuam rau cov neeg tsim khoom

Kuaj - ib tsab ntawv nrog cov txheej txheem predetermined.

Test Plan (Test Plan) - ib txheej ntawm cov kev xeem thiab ib tug load profile.

Testran (zeeg) - ib qho iteration ntawm kev khiav ib qho kev xeem nrog ib tug tag nrho executed load scenario thiab tau txais tsab ntawv ceeb toom.

Network Request (thov) - Kev thov HTTP xa los ntawm tus neeg sawv cev mus rau lub hom phiaj.

Network teb ( teb) - Cov lus teb HTTP xa los ntawm lub hom phiaj mus rau tus neeg sawv cev.
HTTP teb chaws (HTTP cov xwm txheej teb) - tus qauv teb chaws los ntawm daim ntawv thov server.
Kev ua lag luam yog ib lub voj voog kev thov kom teb tag nrho. Ib qho kev lag luam raug suav txij thaum pib xa daim ntawv thov (thov) mus rau qhov ua tiav ntawm tau txais cov lus teb ( teb).

Cov xwm txheej ua lag luam - seb nws puas tuaj yeem ua tiav lub voj voog kev thov- teb. Yog tias muaj ib qho yuam kev hauv lub voj voog no, tag nrho cov kev lag luam raug suav tias ua tsis tiav.

Lub sijhawm teb (latency) - lub sij hawm los ntawm qhov kawg ntawm kev xa ib daim ntawv thov (thov) mus rau qhov pib ntawm tau txais cov lus teb ( teb).

Load metrics - Cov yam ntxwv ntawm cov kev pabcuam thauj khoom thiab tus neeg saib xyuas kev thauj khoom tau txiav txim siab hauv cov txheej txheem ntawm kev kuaj kev thauj khoom.

Basic metrics rau ntsuas load parameters

Qee qhov feem ntau siv thiab pom zoo hauv cov txheej txheem ISQB (p. 36, 52) cov metrics muaj nyob rau hauv cov lus hauv qab no. Cov kev ntsuas zoo sib xws rau tus neeg sawv cev thiab lub hom phiaj tau teev nyob rau tib kab.

Metrics rau tus neeg sawv cev load
Metrics ntawm lub hom phiaj system los yog daim ntawv thov raug kuaj nyob rau hauv load

Cov naj npawb ntawm  vCPU thiab nco RAM,
disk - "hlau" yam ntxwv ntawm tus neeg sawv cev thauj khoom
CPU, Nco, siv Disk - dynamics ntawm CPU, nco thiab disk loading
nyob rau hauv tus txheej txheem ntawm kev xeem. Feem ntau ntsuas raws li feem pua ​​​​ntawm
qhov muaj nqis tshaj plaws

network throughput (ntawm load agent) - throughput
network interface ntawm lub server,
qhov twg tus neeg sawv cev thauj khoom raug teeb tsa.
Feem ntau ntsuas hauv bytes ib thib ob (bps)
network throughput(ntawm lub hom phiaj) - network interface bandwidth
ntawm lub hom phiaj server. Feem ntau ntsuas hauv bytes ib thib ob (bps)

Cov neeg siv virtual- tus naj npawb ntawm cov neeg siv virtual,
siv load scenarios thiab
xyaum ua cov neeg siv tiag tiag
Cov neeg siv virtual xwm txheej, Dhau/Failed/Tag nrho β€” tus naj npawb ntawm kev vam meej thiab
tsis ua tiav cov xwm txheej ntawm cov neeg siv virtual
rau load scenarios, nrog rau lawv tag nrho cov naj npawb.

Nws yog feem ntau xav tias txhua tus neeg siv tuaj yeem ua tiav
tag nrho koj cov dej num teev nyob rau hauv lub load profile.
Ib qho yuam kev yuav txhais tau tias tus neeg siv tiag tiag yuav tsis tuaj yeem ua tau
daws koj qhov teeb meem thaum ua haujlwm nrog lub kaw lus

Thov ib feeb (feeb)- tus naj npawb ntawm kev thov network ib ob (lossis feeb).

Ib qho tseem ceeb ntawm tus neeg sawv cev thauj khoom yog pes tsawg qhov kev thov nws tuaj yeem tsim.
Qhov tseeb, qhov no yog kev coj ua ntawm kev nkag mus rau daim ntawv thov los ntawm cov neeg siv virtual
Teb ib feeb (feeb)
- tus naj npawb ntawm cov lus teb hauv network ib ob (lossis feeb).

Ib tug yam ntxwv tseem ceeb ntawm lub hom phiaj kev pab cuam: ntau npaum li cas
tsim thiab xa cov lus teb rau cov lus nug nrog
loading tus neeg saib xyuas

HTTP teb xwm txheej- tus lej ntawm cov lej teb sib txawv
los ntawm daim ntawv thov server tau txais los ntawm tus neeg sawv cev thauj khoom.
Piv txwv li, 200 OK txhais tau tias hu tau zoo,
thiab 404 - tias cov peev txheej tsis pom

Latency (lub sijhawm teb) - lub sijhawm los ntawm qhov kawg
xa ib daim ntawv thov (thov) ua ntej pib tau txais cov lus teb ( teb ).
Feem ntau ntsuas hauv milliseconds (ms)

Lub sijhawm ua haujlwm teb- lub sijhawm ntawm ib qho kev hloov pauv tag nrho,
ua tiav ntawm lub voj voog thov- teb.
Nov yog lub sijhawm txij thaum pib xa daim ntawv thov (thov)
mus txog thaum ua tiav qhov tau txais cov lus teb (xws li teb).

Lub sijhawm ua lag luam tuaj yeem ntsuas hauv vib nas this (lossis feeb)
nyob rau hauv ntau txoj kev: xav txog qhov tsawg kawg nkaus,
qhov siab tshaj plaws, nruab nrab thiab, piv txwv li, 90 feem pua.
Qhov tsawg kawg nkaus thiab kev nyeem ntawv siab kawg yog qhov kawg
system kev ua tau zoo raws li txoj cai.
Lub ninetieth feem pua ​​yog feem ntau siv,
raws li nws qhia feem ntau ntawm cov neeg siv,
yooj yim khiav lag luam ntawm qhov pib ntawm kev ua haujlwm system

Transactions per second (feeb) - tus naj npawb ntawm tiav
kev hloov pauv ib thib ob (feeb),
uas yog, npaum li cas daim ntawv thov tau txais thiab
txheej txheem thov thiab muab cov lus teb.
Qhov tseeb, qhov no yog qhov dhau los ntawm qhov system

Cov xwm txheej ua lag luam , Dhau / Tsis Tau / Tag Nrho - tus lej
ua tiav, tsis ua tiav thiab tag nrho cov kev hloov pauv.

Rau cov neeg siv tiag tiag tsis ua tiav
kev pauv yuav txhais tau tias
tsis muaj peev xwm ua haujlwm nrog lub kaw lus hauv qab load

Load Test Schematic Diagram

Lub tswv yim ntawm kev kuaj load yog yooj yim heev thiab muaj peb theem tseem ceeb, uas kuv twb tau hais lawm: Npaj-Test-Report, uas yog, npaj cov hom phiaj kev xeem thiab teeb tsa cov kev txwv rau qhov chaw thauj khoom, tom qab ntawd ua tiav cov kev xeem thauj khoom thiab, thaum kawg, tsim thiab tshaj tawm cov ntawv xeem.

Load xeem raws li CI kev pabcuam rau cov neeg tsim khoom

Schematic sau ntawv:

  • QA.Tester yog tus kws tshaj lij hauv kev kuaj xyuas,
  • Target yog lub hom phiaj daim ntawv thov uas koj xav paub nws tus cwj pwm nyob rau hauv load.

Classifier ntawm cov chaw, theem thiab cov kauj ruam hauv daim duab

Cov theem thiab cov kauj ruam
Yuav ua li cas
Dab tsi ntawm qhov nkag
Cov zis yog dab tsi

Npaj: npaj theem rau kev xeem

LoadParameters
Kev teeb tsa thiab pib
tus neeg siv
load parameters,
xaiv metrics thiab
kev npaj xeem
(Load profile)
Kev cai xaiv rau
load agent pib
Kev npaj kuaj
Lub hom phiaj ntawm kev sim

VM
Huab kev xa tawm
virtual tshuab nrog
xav tau yam ntxwv
VM teeb tsa rau tus neeg sawv cev thauj khoom
Automation scripts rau
VM creation
VM configured hauv
Cov huab

Xa
Kev teeb tsa thiab kev npaj OS
ib puag ncig rau
load agent ua haujlwm
Environment settings rau
load tus neeg sawv cev
Automation scripts rau
ib puag ncig kev teeb tsa
Npaj ib puag ncig:
OS, kev pabcuam thiab kev siv,
tsim nyog rau kev ua haujlwm
load tus neeg sawv cev

LoadAgents
Installation, configuration thiab parameterization
loading tus neeg saib xyuas.
Los yog rub tawm cov duab docker los ntawm
preconfigured load qhov chaw
Load qhov chaw docker duab
(YAT, JM lossis tus kheej sau lub moj khaum)
Chaw
load tus neeg sawv cev
Teeb tsa thiab npaj
mus ua hauj lwm load agent

Test: theem ntawm kev ua tiav ntawm kev kuaj load. Cov peev txheej yog cov neeg ua haujlwm thauj khoom xa mus rau hauv cov chaw ua haujlwm tshwj xeeb rau GitLab CI

load
Pib lub Load Agent
nrog rau txoj kev npaj xeem xaiv
thiab load parameter
Kev xaiv neeg siv
rau qhov pib
load tus neeg sawv cev
Kev npaj kuaj
Lub hom phiaj ntawm kev sim
Cov ntawv ua haujlwm
load xeem
System logs
Dynamics ntawm kev hloov pauv hauv lub hom phiaj metrics thiab tus neeg sawv cev thauj khoom

Khiav cov neeg sawv cev
Kev Ua Haujlwm
loads ntawm cov ntawv xeem
nyob rau hauv raws li
load profile
Load Agent Interaction
rau lub hom phiaj ntawm kev sim
Kev npaj kuaj
Lub hom phiaj ntawm kev sim

cav
Sau ntawm "raws" cav
thaum kuaj load:
load cov ntaub ntawv ua haujlwm ntawm tus neeg sawv cev,
lub xeev ntawm lub hom phiaj xeem
thiab VM khiav tus neeg sawv cev

Cov ntawv ua haujlwm
load xeem
System logs

kev ntsuas
Sau "raws" metrics thaum kuaj

Dynamics ntawm kev hloov hauv lub hom phiaj metrics
thiab load agent

Daim ntawv qhia: xeem daim ntawv qhia kev npaj theem

Generator
Cov txheej txheem sau
loading system thiab
saib xyuas system "raws"
metrics thiab cav
Tsim ib daim ntawv qhia nyob rau hauv
tib neeg nyeem daim ntawv
ua tau nrog cov ntsiab lus
cov kws tshuaj ntsuam
Cov ntawv ua haujlwm
load xeem
System logs
Dynamics ntawm kev hloov hauv metrics
phiaj thiab load agent
Cov txheej txheem "raws" cav
nyob rau hauv ib hom ntawv haum rau
uploads rau sab nraud cia
Static load qhia,
tib neeg nyeem tau

luam tawm
Tshaj tawm ntawm tsab ntawv ceeb toom
txog load
kuaj nyob rau hauv sab nraud
kev pabcuam
Processed "raws"
log nyob rau hauv ib tug haum hom
rau unloading rau sab nraud
chaw khaws cia
Txuag rau sab nraud
cov ntaub ntawv khaws cia rau
load, haum
rau tib neeg tsom xam

Txuas qhov chaw thauj khoom hauv CI template

Cia peb mus rau qhov ua tau zoo. Kuv xav qhia li cas ntawm qee qhov haujlwm hauv tuam txhab Cov thev naus laus zis zoo peb tau siv lub tswv yim ntawm kev kuaj load raws li kev pabcuam.

Ua ntej, nrog kev pab los ntawm peb cov kws ua haujlwm DevOps, peb tsim ib lub koom haum tshwj xeeb ntawm cov neeg sawv cev hauv GitLab CI los khiav cov kev xeem thauj khoom. Txhawm rau kom tsis txhob cuam tshuam lawv hauv cov qauv nrog lwm tus, xws li cov pas dej sib dhos, peb ntxiv cov cim npe rau cov neeg ua haujlwm no, cim npe: load. Koj tuaj yeem siv lwm cov ntawv nkag siab. Lawv nug thaum sau npe GitLab CI Runners.

Yuav ua li cas thiaj nrhiav tau lub zog xav tau los ntawm kev kho vajtse? Cov yam ntxwv ntawm cov neeg ua haujlwm thauj khoom - tus naj npawb txaus ntawm vCPU, RAM thiab Disk - tuaj yeem suav tau raws li qhov tseeb tias Docker, Python (rau Yandex.Tank), GitLab CI tus neeg sawv cev, Java (rau Apache JMeter) yuav tsum tau khiav ntawm tus neeg sawv cev. . Rau Java nyob rau hauv JMeter, nws tseem pom zoo kom siv tsawg kawg yog 512 MB ntawm RAM thiab, raws li kev txwv siab, 80% muaj kev nco.

Yog li, raws li peb cov kev paub dhau los, peb pom zoo kom siv tsawg kawg 4 vCPUs, 4 GB RAM, 60 GB SSD rau cov neeg ua haujlwm thauj khoom. Lub throughput ntawm daim npav network yog txiav txim siab raws li qhov yuav tsum tau muaj ntawm qhov profile load.

Peb tsuas yog siv ob qhov chaw thauj khoom - Apache JMeter thiab Yandex.Tank docker duab.

Yandex.Tank yog ib qho cuab yeej qhib los ntawm Yandex rau kev kuaj load. Nws cov qauv tsim qauv yog raws li Phantom's high-performance asynchronous hit-based HTTP thov generator. Lub tank muaj kev tswj xyuas cov peev txheej ntawm cov neeg rau zaub mov hauv kev sim ntawm SSH raws tu qauv, tuaj yeem nres qhov kev xeem raws li cov xwm txheej tau teev tseg, tuaj yeem tso tawm cov txiaj ntsig ob qho tib si hauv console thiab hauv daim duab, koj tuaj yeem txuas koj cov modules. rau nws kom nthuav functionality. Los ntawm txoj kev, peb siv lub Tank thaum nws tseem tsis tau mainstream. Hauv tsab xov xwm "Yandex.Tank thiab thauj khoom kuaj automationΒ» koj tuaj yeem nyeem zaj dab neeg ntawm qhov peb tau ua qhov kev sim ntsuas nrog nws hauv 2013 PT Application Firewall yog ib qho ntawm peb lub tuam txhab cov khoom.

Apache JMeter yog qhov qhib qhov chaw kuaj cov cuab yeej los ntawm Apache. Nws tuaj yeem siv sib npaug zoo rau kev sim ob qho tib si zoo li qub thiab dynamic web applications. JMeter txhawb nqa ntau tus txheej txheem thiab txoj hauv kev los cuam tshuam nrog cov ntawv thov: HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, thiab lwm yam), SOAP / REST Webservices, FTP, TCP, LDAP, SMTP(S), POP3( S) ) thiab IMAP(S), databases ntawm JDBC, tuaj yeem ua tiav cov lus txib thiab ua haujlwm nrog Java khoom. JMeter muaj IDE rau kev tsim, kho qhov muag thiab ua tiav cov phiaj xwm sim. Kuj tseem muaj CLI rau cov kab hais kom ua haujlwm ntawm txhua qhov kev khiav haujlwm Java (Linux, Windows, Mac OS X). Cov cuab yeej tuaj yeem tsim cov ntawv xeem HTML dynamically.

Rau kev yooj yim ntawm kev siv hauv peb lub tuam txhab, rau lub peev xwm ntawm cov neeg sim lawv tus kheej hloov thiab ntxiv ib puag ncig, peb tau tsim cov duab docker ntawm qhov chaw thauj khoom ntawm GitLab CI nrog kev tshaj tawm rau sab hauv. docker npe ntawm Artifactory. Qhov no ua rau nws sai dua thiab yooj yim dua los txuas rau lawv hauv cov kav dej rau kev ntsuas kev thauj khoom. Yuav ua li cas docker thawb mus rau npe ntawm GitLab CI - saib cov lus qhia.

Peb muab cov ntaub ntawv docker yooj yim rau Yandex.Tank:

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

Thiab rau Apache JMeter qhov no yog:

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

Koj tuaj yeem nyeem seb peb qhov kev sib koom ua ke txuas ntxiv ua haujlwm li cas hauv kab lus "Automation ntawm cov txheej txheem kev loj hlob: yuav ua li cas peb siv DevOps cov tswv yim ntawm Cov Tshuab Zoo".

Template thiab pipeline

Ib qho piv txwv ntawm tus qauv rau kev ntsuas kev thauj khoom muaj nyob hauv qhov project demo load. Cov readme cov ntaub ntawv Koj tuaj yeem nyeem cov lus qhia rau kev siv tus qauv. Nyob rau hauv lub template nws tus kheej (file .gitlab-ci.yml) muaj cov ntaub ntawv hais txog dab tsi txhua kauj ruam yog lub luag haujlwm rau.

Cov qauv no yooj yim heev thiab ua kom pom peb theem ntawm kev ntsuas kev thauj khoom tau piav qhia hauv daim duab saum toj no: npaj, kuaj, thiab tshaj tawm cov ntaub ntawv. Lub luag haujlwm rau qhov no internship: Npaj, Xeem thiab Tshaj Qhia.

  1. Theem Npaj yuav tsum tau siv rau preconfigure xeem lub hom phiaj los yog xyuas lawv muaj. Ib puag ncig rau qhov chaw thauj khoom tsis tas yuav tsum tau teeb tsa, lawv tau tsim ua ntej ua cov duab docker thiab muab tso rau hauv docker npe: tsuas yog qhia qhov xav tau version ntawm Test theem. Tab sis koj tuaj yeem tsim kho lawv thiab ua koj tus kheej hloov cov duab.
  2. Theem xeem siv los txheeb xyuas qhov chaw thauj khoom, khiav kev xeem, thiab khaws cov khoom siv pov thawj. Koj tuaj yeem xaiv txhua qhov chaw thauj khoom: Yandex.Tank, Apache JMeter, koj tus kheej, lossis tag nrho ua ke. Txhawm rau kaw qhov tsis tsim nyog, tsuas yog tawm tswv yim lossis tshem tawm txoj haujlwm. Cov ntsiab lus nkag rau qhov chaw thauj khoom:

    Lus Cim: Cov qauv kev sib koom ua ke yog siv los teeb tsa kev sib cuam tshuam nrog CI system thiab tsis hais txog qhov kev tso kawm ntawm kev sim ntsuas hauv nws. Rau kev ntsuam xyuas, lub ntsiab lus nkag yog teev, qhov twg cov ntawv tswj bash nyob. Cov txheej txheem ntawm kev xeem khiav, tsim cov ntawv ceeb toom, thiab cov ntawv xeem lawv tus kheej yuav tsum tau ua los ntawm QA engineers. Hauv qhov demo, rau ob qhov chaw thauj khoom, Yandex nplooj ntawv tseem ceeb thov siv los ua qhov kev sim yooj yim tshaj plaws. Cov ntawv sau thiab cov ntsuas ntsuas yog nyob rau hauv phau ntawv teev npe ./tests.

  3. Nyob rau theem Daim ntawv qhia txog koj yuav tsum tau piav qhia txog yuav ua li cas luam tawm cov txiaj ntsig tau txais los ntawm Kev Xeem Qib rau cov chaw khaws cia sab nraud, piv txwv li, rau GitLab Nplooj ntawv lossis cov txheej txheem qhia tshwj xeeb. GitLab Nplooj ntawv xav kom cov ./public directory tsis yog khoob thiab muaj tsawg kawg yog ib daim ntawv index.html tom qab kev xeem tiav. Koj tuaj yeem nyeem txog cov nuances ntawm qhov kev pabcuam GitLab nplooj ntawv. txuas.

    Piv txwv ntawm yuav ua li cas export cov ntaub ntawv:

    Tshaj tawm cov lus qhia kev teeb tsa:

Hauv qhov piv txwv demo, lub raj xa dej nrog cov kev ntsuas thauj khoom thiab ob qhov chaw thauj khoom (koj tuaj yeem kaw qhov tsis tsim nyog) zoo li qhov no:

Load xeem raws li CI kev pabcuam rau cov neeg tsim khoom

Apache JMeter tuaj yeem tsim ib daim ntawv qhia HTML nws tus kheej, yog li nws muaj txiaj ntsig ntau los khaws nws hauv GitLab Nplooj ntawv siv cov cuab yeej txheem. Nov yog qhov Apache JMeter tsab ntawv ceeb toom zoo li:

Load xeem raws li CI kev pabcuam rau cov neeg tsim khoom

Hauv qhov piv txwv demo rau Yandex.Tank, koj tsuas yog pom fake text report hauv seem rau GitLab Nplooj ntawv. Thaum kuaj, Tank tuaj yeem khaws cov txiaj ntsig rau InfluxDB database, thiab los ntawm qhov ntawd lawv tuaj yeem tso tawm, piv txwv li, hauv Grafana (kev teeb tsa tau ua tiav hauv cov ntaub ntawv ./tests/example-yandextank-test.yml). Nov yog li cas Tank daim ntawv tshaj tawm zoo li hauv Grafana:

Load xeem raws li CI kev pabcuam rau cov neeg tsim khoom

Txoj kev xaus

Nyob rau hauv tsab xov xwm, kuv tham txog lub tswvyim ntawm "load testing as a service" (load testing as a service). Lub tswv yim tseem ceeb yog siv cov txheej txheem ntawm kev teeb tsa ua ntej cov pas dej ua ke ntawm cov neeg ua haujlwm thauj khoom, cov duab docker ntawm cov chaw thauj khoom, cov txheej txheem tshaj tawm thiab cov raj xa dej uas sib xyaw ua ke hauv GitLab CI raws li qhov yooj yim .gitlab-ci.yml template (piv txwv. txuas). Tag nrho cov no yog kev txhawb nqa los ntawm ib pab pawg me ntawm automation engineers thiab rov ua dua ntawm qhov kev thov ntawm pawg khoom. Kuv vam tias qhov no yuav pab tau koj hauv kev npaj thiab siv cov tswv yim zoo sib xws hauv koj lub tuam txhab. Ua tsaug rau koj mloog!

PS Kuv xav hais tias ua tsaug ntau rau kuv cov npoj yaig, Sergey Kurbanov thiab Nikolai Yusev, rau kev pab cuam nrog kev siv lub tswv yim ntawm kev kuaj load raws li kev pabcuam hauv peb lub tuam txhab.

sau: Timur Gillmullin - Tus Lwm Thawj Coj Lub taub hau ntawm Kev Tshawb Fawb thiab Kev Txhim Kho Cov Txheej Txheem (DevOps) ntawm Cov Tshuab Zoo

Tau qhov twg los: www.hab.com

Ntxiv ib saib