Onus testing ut CI servitium pro developers

Onus testing ut CI servitium pro developers

Una quaestionum, quae multi-producti venditores programmatis saepe occurrunt, est duplicatio facultatum fabrum - tincidunt, testium et administratorum infrastructurarum - in singulis fere quadrigis. Hoc etiam pertinet ad fabrum carum - artifices in agro oneris probatio.

Pro suis officiis directis facere et singulari experientia utens ad processum probationis onus aedificandum, methodologiam, meliorem metricam eligo, et autotesta scribunt secundum cum profiles onere, fabrum saepe explicandi testium infrastructuram a scabere, instrumenta oneris configurare et emungere. ipsi in CI systemata, vigilantia et publicatione relationum statuuntur.

Potes invenire solutiones ad aliquas normas problematum probandi quas in Technologies positivis utimur alium articulum. In hoc uno, dicam de possibilitate oneris integrandi probationes in communi CI pipeline utendi conceptu "onere probationis ut servitium" (onus testandi ut servitium). Disces quomodo et quaeve imagines oneris fontes in CI pipelino adhibeantur; quam coniungere fontes ad onera tua CI project utens constructo template; id quod demo in pipelineo simile est ad currendum onus probat et evulgandas eventus. Articulus utilis potest esse ad programmatum probandi fabrum et automationum fabrum in CI qui de architectura oneris systematis cogitant.

In conceptu essentia

Notio oneris experiendi ut servitium implicat facultatem instrumentorum onus Apache JMeter, Yandex. Tank et propria compages in systemate continua integrationis arbitrariae. Demo erit GitLab CI, sed principia sunt communia omnibus systematibus CI.

Onus probatio ut servitium est officium centralised pro onere temptationis. Onus testium in lacunis agente dedicatis currunt, eventus automatice in GitLab Paginae divulgantur, Influxus DB et Grafana vel in relationibus rationum testium (TestRail, ReportPortal, etc.). Automatio et scalae perficiuntur quam simpliciter fieri potest - addendo et parameteri gitlab-ci.yml template in the GitLab CI project.

Commodum huius accessionis est quod tota CI infrastructura, actores onerant, imagines oneris deponunt, fistulas experiuntur, et relationes evulgandas conservantur per department automationis centralised (fabrorum DevOps), dum fabrum onus probatio conatus suos evolutionis experimenti intendere potest. et de eorum analysi eventibus, sine tractatu de quaestionibus infrastructuris.

Pro simplicitate descriptionis, ponemus scopum applicationis seu cultor sub experimento iam in antecessum explicatum et configuratum (automata scripta in Pythone, SaltStack, Ansible, etc. ad hoc adhiberi possunt). Tunc totus conceptus oneris tentationis inservit in tres gradus; praeparatio, probatio, publicatio relationum. Plura in icone (omnia imagines strepitant);

Onus testing ut CI servitium pro developers

Praecipuae notiones ac definitiones in onus probatio

Cum onus exsequi probat, conamur adhaerere ISTQB signa et methodusaptis terminis ac metricis commendatur. Brevis index principalis notionum ac definitionum in onere probationis dabo.

Onus agentis - machina virtualis in qua applicatio deducetur - fons onus (Apache JMeter, Yandex.Tank vel onus moduli sui scriptum).

Test propositum (scopum) - ministra vel applicatio inaugurata in servo qui oneri subicietur.

Test sem (test causa) - gressibus parametrisis: actus usoris et motus expectati ad has actiones, cum fixa petitionibus retis et responsionibus, secundum praefinitum ambitum.

Aut onus consilium profile (profile) - in ISTQB methodus (Section 4.2.4, p. 43) profiles onus metricas definiunt quae criticae sunt ob singularem probationem et optiones ad parametris in tentatione mutando onus. Exempla figurarum in figura videre potes.

Onus testing ut CI servitium pro developers

Test β€” scriptionem praefiniti parametri.

Test consilium (test-plan) - Statuto testium et onus profile.

Testran (testrun) - Una iteratio currentis unius testi cum onere missionis plene executo et relatione recepta.

Network petitionem (petitionem) - An HTTP petitio ab agente ad signum missa.

Responsio Network (responsio) - Responsio HTTP ex scopo agenti missa.
HTTP responsio codici (HTTP responsa status) - signum responsionis vexillum e servo applicationis.
Res est plena petitio responsionis cycli. Transactio computatur ab initio mittendi petitionem (petitionem) ad complementum recipiendi responsum (responsum).

Status transactionis - num fieri potuit ut cyclum responsionis petitionis feliciter absolveret. Si ullus error in hoc cyclo fuit, tunc tota res male habetur.

Responsio temporis (latency) - tempus ab fine mittendi petitionem ad initium recipiendi responsum (responsum).

Onus metrics - characteres onerosi servitii et agentis onus in processu probationis oneris determinatae.

Basic metrics ad parametri onus mensuræ

Quaedam de usitatis in methodo et commendatione ISTQB in tabula infra monstrantur metrici. Similia metri causa agentis et clypei in eadem linea inscripti sunt.

Metrica ad onus agentis
Metrica systematis seu applicationis scopum sub onus tentantur

numerus  vCPU et memoria RAM,
orbis - "ferrum" notas oneris agentis
cpu, Memoria, Disk usus - dynamica CPU, memoria et orbis loading .
in processu temptationis. Plerumque metiri ut recipis
maxime available values

network throughput (on agente onus) - throughput
interface retis in calculonis servi;
ubi agens onus installed.
Plerumque metiri in bytes per alterum (bps)
network throughput(In scopum) - network interface Sed
in scopum server. Plerumque metiri in bytes per alterum (bps)

Rectum users- numerus utentium virtualium;
exsequendam onus missionibus et
imitandis verus usor actus
Rectum users statusTransierunt / Deficio / Total - felix et numerus
male status operis virtualis users
pro missionibus onere, ac eorum numero.

Vulgo exspectatur quod omnes users complere poterant
omnia opera tua certa in onus profile.
Ullus error vult verum usor intelligi non posse
quando opus tuum solve forsit cum ratio

Petitiones per secundo (minute)- numerus retis petitiones secundae (vel minutae).

Magni momenti notio oneris agentis est quot petitiones generare potest.
Re vera, haec imitatio est accessus ad applicationem virtualis utentium
Responsiones per secundam (minutam)
- respondeo numero retis secundo (vel minuto).

Ad scopum servitium magni momenti proprium: quanto
generare et responsa quaero cum
loading agente

HTTP responsio status- diversis responsionis numerus codes
ex applicatione servo ab agente onus accepit.
Exempli gratia, 200 OK significat bonam vocationem,
et 404 - quod subsidium non inventum est

Virus (responsio temporis) - tempus a fine
mittens petitionem (petitionem) antequam responsum acciperet(response).
Plerumque metiri milliseconds (MS)

Transactio responsio tempusβ€” tempus unius plenae rei;
complementum petitionis responsionis exolvuntur.
Hoc tempus ab initio mittendi postulationem (petitionem)
usque ad completionem responsionis (responsio).

Transactio tempus metiri potest in secundis (vel minutis)
in pluribus: minimum considera;
maximum, mediocris et, exempli gratia, 90th cent.
Lectiones minimae et maximae sunt extremae
ratio perficiendi status.
Nonagesimus centus in vulgatis est;
sicut maxime ostendit utentes;
commode operating ad limina ratio perficiendi

Transactions per secundam (minutam) - numerus completus
transactions per alterum (minutum);
id est, quantum applicatio admittere poterat
processus petitiones et exitus respondeo.
Nam id est lorem

Status transactionis , Transierunt / Deficio / Totalis numerus
prospera, adversa et summa rerum.

Nam vera users potuit
rem in actu intelliguntur
posse operari cum ratio sub onus

Testis onus Schematic Diagram

Notio oneris probatio valde simplex est ac tribus principalibus gradibus consistit, de quibus ante dixi; Para-Test-Report, hoc est, proposita probationes praeparare et parametri ad fontes oneris disponere, deinde onus probationes exsequens et, in fine, relationem testium generare et evulgare.

Onus testing ut CI servitium pro developers

Notae schematicae:

  • QA.Tester peritus est in onere probationis;
  • Scopum est scopo applicatio pro qua mores eius sub onere cognoscere vis.

Classificans entium, gradus et gradus in diagrammate

Gradus et gradus
Quid fit?
Quid ante ostium?
Quid est output

Praepara: praeparatio scaena ad probationem

LoadParameters
Occasus et initialization
user
parametri onus;
de metrics et electionis
test consilium praeparatio
(Profile onus)
Custom options for
onus agente initialization
Test consilium
Propositum temptationis

VM
Cloud deployment
virtualis apparatus est
characteres requiritur
VM occasus pro agente onus
Automation scripta for
VM creatio
VM configuratum
ad nubes

env
OS setup et praeparatio
amet for
agente onus opus
Environment occasus for
onus agente
Automation scripta for
amet occasus
Ambitus paratus:
OS, officia et applicationes;
necesse est opus
onus agente

LoadAgents
Institutionem, configurationem et parameterizationem
agente oneratisque.
Aut download imago a docker
preconfigured fons onus
Onus fons docker imaginem
(YAT, JM vel auto-scripta compage)
Occasus
onus agente
Erexit paratus
ad opus onus agente

Test: scaena executionis oneris probat. Fontes oneris agentium in piscinas agentis dedicatas explicaverunt pro GitLab CI

load
Satus in agente Lond
cum delectis test consilium
et onus parametri
User Options
ad initialization "
onus agente
Test consilium
Propositum temptationis
Supplicium omnia
onus probat
Ratio acta
Edidit mutationum in meta metrica et onus agentis

Currere agentium
Effectus agentis
-perinde test scriptor
ad normam
onus profile "
Onus agentis commercium
ad temptationem
Test consilium
Propositum temptationis

Acta
Collectio "rudis" lignorum
per onus probatio;
actio agentis onus records
statum test target
et VM cursus agentis

Supplicium omnia
onus probat
Ratio acta

Metrics
Colligendis "rudis" metrics in probatione

Edidit mutationes in metam metrics
et onus agente

Report: test fama praeparatio scaena

generator
Processus collected
loading ratio et
magna ratio "rudis"
metrics ac robora
Institutio relationis in
homo readable forma
maxime cum elementis
analystae
Supplicium omnia
onus probat
Ratio acta
Edidit mutationum in metrics
scopum et onus agente
Processionaliter "rudis" omnia
in forma apta
uploads ad externum repono
Static onus fama,
homo-readable

publish
Publicatio relationis
de onus
probatio in externis
servitium
Processionaliter "rudis"
tigna apto forma
exonerare ad externa
repositoria
Salvus in externis
in repono tradit
onus, idoneus
humana analysis

Connectens onus fontes in CI template

Ad partem practicam transeamus. Cupio ostendere quomodo in aliquibus inceptis in comitatu Positivas Technologies conceptum oneris probationis implevimus ut servitium.

Primum, ope fabrum DevOporum nostrorum, dedicatum stagnum agentium in GitLab CI creavimus ut onus probatum curreret. Ut eas in templates cum aliis non confundamus, ut piscinas conventus, texturas his actoribus adiunximus; tags: onus. Omnibus aliis textibus comprehensibilis uti potes. rogant per registration GitLab CI Cursores.

Quomodo ad inveniendam vim inquisitam per hardware? Proprietates agentium oneris - vCPU, RAM et Disk - numerus sufficientis computari potest ex eo quod Docker, Python (pro Yandex.Tank), agens GitLab CI, Java (pro Apache JMeter) currere debent in agente. . Pro Java sub JMeter, commendatur etiam ut minimum 512 MB RAM et quasi limitem superiorem; LXXX% available memoria.

Ita in nostra experientia commendamus utentes saltem 4 vCPUs, 4 GB RAM, 60 GB SSD pro agentibus onere. Perput de card network reticularis secundum exigentias oneris profile determinatur.

Maxime duobus onus fontibus utimur - Apache JMeter et Yandex.Tank docker imagines.

Yandex.Tank instrumentum apertum ab Yandex oneris probationis est. Architectura modularis eius fundata est in summus operationis phantasmatis asynchrono hit-substructio HTTP petitio generantis. Piscina constructa in vigilantia facultatum servientis sub testi- bus SSH protocolli, sponte obsistere potest probationem sub certis condicionibus, ostendere eventus tum in consolatorio et in graphi forma, modulos tuos coniungere potes. ad eam ampliare functionality. Viam usus est lacus, cum nondum amet erat. In articulo "Yandex.Tank et onus probatio automationΒ» fabulam legere potes quomodo onus probandi cum illo in MMXIII praestiti sumus PT Application Firewall unus e nostris productis.

Apache JMeter fons apertus est instrumentum probationis ab Apache onus. Aeque bene adhiberi potest ad applicationes interretiales tum dynamicas tum probandas. JMeter ingentem numerum protocolla et vias ad applicationes inter se congruentes sustinet: HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET, etc.), SOAP / CETERA Webservationes, FTP, TCP, LDAP, SMTP(S), POP3(. S) ) et IMAP(S), database per JDBC, testa imperia et opera cum obiectis Javae exercere possunt. JMeter habet IDE creandi, debugging et exsequens consilia examinis. Est etiam CLI operatio lineae imperandi in quavis systemate operante Java compatible (Linux, Windows, Mac OS X). Instrumentum dynamice potest generare famam examinis HTML.

Ad facilitatem usui in nostro comitatu, pro facultate testium se mutare et ambitum addere, imagines oneris in GitLab CI cum publicatione ad interni fontes fabricare fecimus. docker subcriptio ad Artificium. Hoc efficit ut citius ac facilius eas in pipelines coniungere pro onere probationum. Facere docker impulsum ad subcriptio per GitLab CI - see instructiones.

Hanc tabellam fundamentalem docker pro Yandex.Tank cepimus:

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

Et pro Apache JMeter hoc unum;

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

Legere potes quomodo systema continua integrationis nostrae in articulo operatur "Automatio processuum evolutionis: quomodo ideas DevOps in positivis Technologies implevimus?".

Formula et pipeline

Exemplum exemplum faciendi onus probat in project demo onus. Quod readme file Leges instructiones uti potes. In ipsum Formula (file .gitlab-ci.yml) exstant notae circa quae quisque gradus eius est.

Formula est valde simplex et demonstrat tres gradus oneris probationis in schemate supra descriptos: praeparatio, probatio et evulgatio relationum. Responsible for this Internship: Para, Test et Report.

  1. scaena para utendum est preconfigure test scuta vel reprehendo eorum disponibilitate. Ambitus ad fontes oneris configurari non indiget, prae-aedificantur ut officinae imagines, et in registro positi sunt: ​​modo desideratam versionem in scaena test. Sed eas reficere potes ac modificata tua facere imagines.
  2. scaena Test usus est ad fontem oneris designandam, currunt probationes et copia testium artificialium. Omne onus principium eligere potes: Yandex.Tank, Apache JMeter, tua, vel omnia simul. Ut fontes supervacuos disable, tantum explanare vel officium delere. Ingressus puncta ad fontes onus:

    Nota: Formula syngraphae synagogae adhibetur ad commercium cum CI systemate constituendum et non implicat in eo logicam probationis collocationem. Pro probationibus, punctum aculei specificatur, ubi scriptum imperium vercundus sita est. Modus currentium testium, relationum generandi, et ipsa scripta test per machinas QA perfici debet. In demo, pro utroque onere fontes, Yandex paginae principalis postulatio pro simplicissima testi adhibetur. Scriptor et test parametri sunt in indicem ./test.

  3. In scaena Report debes describere quomodo edendi proventum testium in sceno probatio ad ceptacula externa, exempli gratia, ad GitLab Paginas vel systemata speciales renuntiationes. GitLab Paginae postulat ut ./publici indicis non-vacua sint et saltem indicem.html fasciculum contineant post probationes completae. Legere potes de servitio paginarum nuances GitLab. Link.

    Exempla quomodo notitias exportandi:

    Posting setup instructions:

In demo exempli gratia pipeline cum onere probat et duo fontes oneris (potest disable superfluum) hoc modo se habent:

Onus testing ut CI servitium pro developers

Apache JMeter HTML relationem ipsam generare potest, ideo utilior est eam servare in Paginae GitLab utens norma instrumenta. Sic Apache JMeter fama similis est;

Onus testing ut CI servitium pro developers

In demo exemplum pro Yandex.Tank, solum videbis fake text fama in sectione pro Paginae GitLab. In probatione, Lacus eventus ad datorum InfluxDB conservare potest, et inde exponi possunt, exempli gratia, in Grafana (configuratio quae fit in tabella. ./test/exemple-yandextank-test.yml). Hoc est quam fama spectat in Grafana lacus:

Onus testing ut CI servitium pro developers

summary

In articulo, dixi de notione "load testandi ut servitium" (onus testandi sicut servitium). Praecipua idea est infrastructuras lacus praefiguratorum agentium oneris uti, imagines sculpsit oneris fontes, systemata referens et pipelineum qui eos in GitLab CI componit ex simplici .gitlab-ci.yml template (exempli gratia Link). Haec omnia parva machinarum automationis machinarum manipulus sustentatur et ad instantiam iunctorum productorum replicatur. Opto hoc te adiuvare ad parandum et exsequendum simile consilium in tuo comitatu. Gratias tibi ago pro attentio!

PS magnas gratias tibi dicere volumus collegis meis, Sergey Kurbanov et Nikolai Yusev, pro technicis auxiliis cum exsequendo notionis oneris probationis servitium in nostro comitatu.

auctor: Timur Gilmullin - Deputatus Caput Technologiae et Processus Development (DevOps) apud Positivum Technologiae

Source: www.habr.com