ื‘ื“ื™ืงืช ืขื•ืžืกื™ื ื›ืฉื™ืจื•ืช CI ืœืžืคืชื—ื™ื

ื‘ื“ื™ืงืช ืขื•ืžืกื™ื ื›ืฉื™ืจื•ืช CI ืœืžืคืชื—ื™ื

ืื—ืช ื”ื‘ืขื™ื•ืช ืฉืกืคืงื™ ืชื•ื›ื ื” ืžืจื•ื‘ื™ ืžื•ืฆืจื™ื ืžืชืžื•ื“ื“ื™ื ืื™ืชื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื”ื™ื ืฉื›ืคื•ืœ ื”ื›ื™ืฉื•ืจื™ื ืฉืœ ืžื”ื ื“ืกื™ื - ืžืคืชื—ื™ื, ื‘ื•ื“ืงื™ื ื•ืžื ื”ืœื™ ืชืฉืชื™ืช - ื›ืžืขื˜ ื‘ื›ืœ ืฆื•ื•ืช. ื–ื” ื—ืœ ื’ื ืขืœ ืžื”ื ื“ืกื™ื ื™ืงืจื™ื - ืžื•ืžื—ื™ื ื‘ืชื—ื•ื ื‘ื“ื™ืงืช ืขื•ืžืกื™ื.

ื‘ืžืงื•ื ืœื‘ืฆืข ืืช ื—ื•ื‘ื•ืชื™ื”ื ื”ื™ืฉื™ืจื•ืช ื•ืœื”ืฉืชืžืฉ ื‘ื ื™ืกื™ื•ื ื ื”ื™ื™ื—ื•ื“ื™ ืœื‘ื ื™ื™ืช ืชื”ืœื™ืš ื‘ื“ื™ืงืช ืขื•ืžืก, ืœื‘ื—ื•ืจ ืžืชื•ื“ื•ืœื•ื’ื™ื”, ืžื“ื“ื™ื ืื•ืคื˜ื™ืžืœื™ื™ื ื•ืœื›ืชื•ื‘ ื‘ื“ื™ืงื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช ื‘ื”ืชืื ืœืคืจื•ืคื™ืœื™ ืขื•ืžืก, ื”ืžื”ื ื“ืกื™ื ืฆืจื™ื›ื™ื ืœืจื•ื‘ ืœืคืจื•ืก ืชืฉืชื™ืช ื‘ื“ื™ืงื” ืžืืคืก, ืœื”ื’ื“ื™ืจ ื›ืœื™ ืขื•ืžืก ื•ืœื”ื˜ืžื™ืข ืื•ืชื. ืขืฆืžื ื‘ืžืขืจื›ื•ืช CI, ืœื”ืงื™ื ื ื™ื˜ื•ืจ ื•ืคืจืกื•ื ื“ื•ื—ื•ืช.

ืืชื” ื™ื›ื•ืœ ืœืžืฆื•ื ืคืชืจื•ื ื•ืช ืœื›ืžื” ื‘ืขื™ื•ืช ืืจื’ื•ื ื™ื•ืช ื‘ื‘ื“ื™ืงื•ืช ืฉืื ื• ืžืฉืชืžืฉื™ื ื‘ื”ืŸ ื‘-Positive Technologies ื‘ ืžืืžืจ ืื—ืจ. ื•ื‘ื–ื”, ืื“ื‘ืจ ืขืœ ื”ืืคืฉืจื•ืช ืœืฉืœื‘ ื‘ื“ื™ืงื•ืช ืขื•ืžืก ื‘ืฆื™ื ื•ืจ CI ื ืคื•ืฅ ืชื•ืš ืฉื™ืžื•ืฉ ื‘ืžื•ืฉื’ "ื‘ื“ื™ืงืช ืขื•ืžืก ื›ืฉื™ืจื•ืช" (ื‘ื“ื™ืงืช ืขื•ืžืก ื›ืฉื™ืจื•ืช). ืชืœืžื“ ื›ื™ืฆื“ ื•ื‘ืื™ืœื• ืชืžื•ื ื•ืช docker ืฉืœ ืžืงื•ืจื•ืช ืขื•ืžืก ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืฆื™ื ื•ืจ CI; ื›ื™ืฆื“ ืœื—ื‘ืจ ืžืงื•ืจื•ืช ืขื•ืžืก ืœืคืจื•ื™ืงื˜ ื”-CI ืฉืœืš ื‘ืืžืฆืขื•ืช ืชื‘ื ื™ืช ื‘ื ื™ื™ื”; ืื™ืš ื ืจืื” ืฆื™ื ื•ืจ ื”ื”ื“ื’ืžื” ืœื”ืคืขืœืช ื‘ื“ื™ืงื•ืช ืขื•ืžืก ื•ืคืจืกื•ื ื”ืชื•ืฆืื•ืช. ื”ืžืืžืจ ืขืฉื•ื™ ืœื”ื™ื•ืช ืฉื™ืžื•ืฉื™ ืœืžื”ื ื“ืกื™ ื‘ื“ื™ืงื•ืช ืชื•ื›ื ื” ื•ืžื”ื ื“ืกื™ ืื•ื˜ื•ืžืฆื™ื” ื‘-CI ืฉื—ื•ืฉื‘ื™ื ืขืœ ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ืฉืœ ืžืขืจื›ืช ื”ืขื•ืžืก ืฉืœื”ื.

ืžื”ื•ืช ื”ืจืขื™ื•ืŸ

ื”ืจืขื™ื•ืŸ ืฉืœ ื‘ื“ื™ืงืช ืขื•ืžืก ื›ืฉื™ืจื•ืช ืžืจืžื– ืขืœ ื”ื™ื›ื•ืœืช ืœืฉืœื‘ ืืช ื›ืœื™ ื”ื˜ืขื™ื ื” Apache JMeter, Yandex.Tank ื•ื”ืžืกื’ืจื•ืช ืฉืœืš ืœืžืขืจื›ืช ืื™ื ื˜ื’ืจืฆื™ื” ืจืฆื™ืคื” ืฉืจื™ืจื•ืชื™ืช. ื”ื”ื“ื’ืžื” ืชื”ื™ื” ืขื‘ื•ืจ GitLab CI, ืืš ื”ืขืงืจื•ื ื•ืช ืžืฉื•ืชืคื™ื ืœื›ืœ ืžืขืจื›ื•ืช ื”-CI.

ื‘ื“ื™ืงืช ืขื•ืžืกื™ื ื›ืฉื™ืจื•ืช ื”ื™ื ื• ืฉื™ืจื•ืช ืžืจื•ื›ื– ืœื‘ื“ื™ืงืช ืขื•ืžืกื™ื. ื‘ื“ื™ืงื•ืช ืขื•ืžืก ืžื•ืคืขืœื•ืช ื‘ืžืื’ืจื™ ืกื•ื›ื ื™ื ื™ื™ืขื•ื“ื™ื™ื, ื”ืชื•ืฆืื•ืช ืžืชืคืจืกืžื•ืช ืื•ื˜ื•ืžื˜ื™ืช ื‘-GitLab Pages, Influx DB ื•-Grafana ืื• ื‘ืžืขืจื›ื•ืช ื“ื™ื•ื•ื— ื‘ื“ื™ืงื•ืช (TestRail, ReportPortal ื•ื›ื•'). ืื•ื˜ื•ืžืฆื™ื” ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืžื™ื•ืฉืžื™ื ื‘ืฆื•ืจื” ืคืฉื•ื˜ื” ื›ื›ืœ ื”ืืคืฉืจ - ืขืœ ื™ื“ื™ ื”ื•ืกืคื” ื•ืคืจืžื˜ืจ ืฉืœ ืชื‘ื ื™ืช gitlab-ci.yml ื”ืจื’ื™ืœื” ื‘ืคืจื•ื™ืงื˜ GitLab CI.

ื”ื™ืชืจื•ืŸ ืฉืœ ื’ื™ืฉื” ื–ื• ื”ื•ื ืฉื›ืœ ืชืฉืชื™ืช ื”-CI, ืกื•ื›ื ื™ ื”ืขื•ืžืก, ืชืžื•ื ื•ืช ื”ื“ื•ืงืจ ืฉืœ ืžืงื•ืจื•ืช ืขื•ืžืก, ืฆื™ื ื•ืจื•ืช ื‘ื“ื™ืงื” ื•ืคืจืกื•ื ื“ื•ื—ื•ืช ื ืฉืžืจื™ื ืขืœ ื™ื“ื™ ืžื—ืœืงืช ืื•ื˜ื•ืžืฆื™ื” ืžืจื›ื–ื™ืช (ืžื”ื ื“ืกื™ DevOps), ื‘ืขื•ื“ ืฉืžื”ื ื“ืกื™ ื‘ื“ื™ืงื•ืช ืขื•ืžืก ื™ื›ื•ืœื™ื ืœืžืงื“ ืืช ืžืืžืฆื™ื”ื ื‘ืคื™ืชื•ื— ื‘ื“ื™ืงื•ืช. ื•ื ื™ืชื•ื— ื”ืชื•ืฆืื•ืช ืฉืœื”ื, ืžื‘ืœื™ ืœื”ืชืขืกืง ื‘ื ื•ืฉืื™ ืชืฉืชื™ืช.

ืœืžืขืŸ ืคืฉื˜ื•ืช ื”ืชื™ืื•ืจ, ื ื ื™ื— ืฉื™ื™ืฉื•ื ื”ื™ืขื“ ืื• ื”ืฉืจืช ื”ื ื‘ื“ืง ื›ื‘ืจ ื ืคืจืก ื•ื”ื•ื’ื“ืจ ืžืจืืฉ (ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืกืงืจื™ืคื˜ื™ื ืื•ื˜ื•ืžื˜ื™ื™ื ื‘- Python, SaltStack, Ansible ื•ื›ื•'). ืื– ื›ืœ ื”ืจืขื™ื•ืŸ ืฉืœ ื‘ื“ื™ืงืช ืขื•ืžืก ื›ืฉื™ืจื•ืช ืžืชืื™ื ืœืฉืœื•ืฉื” ืฉืœื‘ื™ื: ื”ื›ื ื”, ื‘ื“ื™ืงื”, ืคืจืกื•ื ื“ื•ื—ื•ืช. ืคืจื˜ื™ื ื ื•ืกืคื™ื ืขืœ ื”ืชืจืฉื™ื (ื›ืœ ื”ืชืžื•ื ื•ืช ื ื™ืชื ื•ืช ืœืœื—ื™ืฆื”):

ื‘ื“ื™ืงืช ืขื•ืžืกื™ื ื›ืฉื™ืจื•ืช CI ืœืžืคืชื—ื™ื

ืžื•ืฉื’ื™ ื™ืกื•ื“ ื•ื”ื’ื“ืจื•ืช ื‘ื‘ื“ื™ืงืช ืขื•ืžืกื™ื

ื‘ืขืช ื‘ื™ืฆื•ืข ื‘ื“ื™ืงื•ืช ืขื•ืžืก, ืื ื• ืžื ืกื™ื ืœื“ื‘ื•ืง ืกื˜ื ื“ืจื˜ื™ื ื•ืžืชื•ื“ื•ืœื•ื’ื™ื” ืฉืœ ISTQB, ื”ืฉืชืžืฉ ื‘ื˜ืจืžื™ื ื•ืœื•ื’ื™ื” ื”ืžืชืื™ืžื” ื•ื‘ืžื“ื“ื™ื ื”ืžื•ืžืœืฆื™ื. ืืชืŸ ืจืฉื™ืžื” ืงืฆืจื” ืฉืœ ื”ืžื•ืฉื’ื™ื ื•ื”ื”ื’ื“ืจื•ืช ื”ืขื™ืงืจื™ื™ื ื‘ื‘ื“ื™ืงืช ืขื•ืžืกื™ื.

ืกื•ื›ืŸ ืขื•ืžืก - ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ื” ืชื•ืคืขืœ ื”ืืคืœื™ืงืฆื™ื” - ืžืงื•ืจ ื”ื˜ืขื™ื ื” (Apache JMeter, Yandex.Tank ืื• ืžื•ื“ื•ืœ ืขื•ืžืก ื‘ื›ืชื‘ ืขืฆืžื™).

ื™ืขื“ ื‘ื“ื™ืงื” (ื™ืขื“) - ืฉืจืช ืื• ืืคืœื™ืงืฆื™ื” ืžื•ืชืงืŸ ืขืœ ื”ืฉืจืช ืฉื™ื”ื™ื” ื ืชื•ืŸ ืœื˜ืขื™ื ื”.

ืชืจื—ื™ืฉ ื‘ื“ื™ืงื” (ืžืงืจื” ืžื‘ื—ืŸ) - ืงื‘ื•ืฆื” ืฉืœ ืฉืœื‘ื™ื ืขื ืคืจืžื˜ืจื™ื: ืคืขื•ืœื•ืช ืžืฉืชืžืฉ ื•ืชื’ื•ื‘ื•ืช ืฆืคื•ื™ื•ืช ืœืคืขื•ืœื•ืช ืืœื•, ืขื ื‘ืงืฉื•ืช ื•ืชื’ื•ื‘ื•ืช ืงื‘ื•ืขื•ืช ื‘ืจืฉืช, ื‘ื”ืชืื ืœืคืจืžื˜ืจื™ื ืฉืฆื•ื™ื ื•.

ืคืจื•ืคื™ืœ ืื• ืชื•ื›ื ื™ืช ื˜ืขื™ื ื” (ืคืจื•ืคื™ืœ) - ืคื ื™ืžื” ืžืชื•ื“ื•ืœื•ื’ื™ื™ืช ISTQB (ืกืขื™ืฃ 4.2.4, ืขืž' 43) ืคืจื•ืคื™ืœื™ ืขื•ืžืก ืžื’ื“ื™ืจื™ื ืžื“ื“ื™ื ืฉื”ื ืงืจื™ื˜ื™ื™ื ืœื‘ื“ื™ืงื” ืžืกื•ื™ืžืช ื•ืืคืฉืจื•ื™ื•ืช ืœืฉื™ื ื•ื™ ืคืจืžื˜ืจื™ ืขื•ืžืก ื‘ืžื”ืœืš ื”ื‘ื“ื™ืงื”. ื ื™ืชืŸ ืœืจืื•ืช ื“ื•ื’ืžืื•ืช ืฉืœ ืคืจื•ืคื™ืœื™ื ื‘ืื™ื•ืจ.

ื‘ื“ื™ืงืช ืขื•ืžืกื™ื ื›ืฉื™ืจื•ืช CI ืœืžืคืชื—ื™ื

ืžึดื‘ึฐื—ึธืŸ - ืกืงืจื™ืคื˜ ืขื ืงื‘ื•ืฆื” ืงื‘ื•ืขื” ืžืจืืฉ ืฉืœ ืคืจืžื˜ืจื™ื.

ืชื›ื ื™ืช ื‘ื“ื™ืงื” (ืชื›ื ื™ืช ื‘ื“ื™ืงื”) - ืกื˜ ื‘ื“ื™ืงื•ืช ื•ืคืจื•ืคื™ืœ ืขื•ืžืก.

Testran (testrun) - ืื™ื˜ืจืฆื™ื” ืื—ืช ืฉืœ ื”ืคืขืœืช ื‘ื“ื™ืงื” ืื—ืช ืขื ืชืจื—ื™ืฉ ืขื•ืžืก ืžื‘ื•ืฆืข ื‘ืžืœื•ืื• ื•ื”ื“ื•ื— ืฉื”ืชืงื‘ืœ.

ื‘ืงืฉืช ืจืฉืช (ื‘ืงืฉื”) โ€” ื‘ืงืฉืช HTTP ืฉื ืฉืœื—ื” ืžืกื•ื›ืŸ ืืœ ื™ืขื“.

ืชื’ื•ื‘ืช ืจืฉืช (ืชื’ื•ื‘ื”) - ืชื’ื•ื‘ืช HTTP ืฉื ืฉืœื—ืช ืžื”ืžื˜ืจื” ืœืกื•ื›ืŸ.
ืงื•ื“ ืชื’ื•ื‘ื” HTTP (ืกื˜ื˜ื•ืก ืชื’ื•ื‘ื•ืช HTTP) - ืงื•ื“ ืชื’ื•ื‘ื” ืกื˜ื ื“ืจื˜ื™ ืžืฉืจืช ื”ื™ื™ืฉื•ืžื™ื.
ืขืกืงื” ื”ื™ื ืžื—ื–ื•ืจ ื‘ืงืฉื”-ืชื’ื•ื‘ื” ืฉืœื. ืขืกืงื” ื ืกืคืจืช ืžืชื—ื™ืœืช ืฉืœื™ื—ืช ื”ื‘ืงืฉื” (ื‘ืงืฉื”) ื•ืขื“ ืœืกื™ื•ื ืงื‘ืœืช ื”ืชื’ื•ื‘ื” (ืชื’ื•ื‘ื”).

ืกื˜ื˜ื•ืก ืขืกืงื” - ื”ืื ื ื™ืชืŸ ื”ื™ื” ืœื”ืฉืœื™ื ื‘ื”ืฆืœื—ื” ืืช ืžื—ื–ื•ืจ ื”ื‘ืงืฉื”-ืชื’ื•ื‘ื”. ืื ื”ื™ื™ืชื” ืฉื’ื™ืื” ื›ืœืฉื”ื™ ื‘ืžื—ื–ื•ืจ ื–ื”, ื”ืขืกืงื” ื›ื•ืœื” ื ื—ืฉื‘ืช ื›ืœื ืžื•ืฆืœื—ืช.

ื–ืžืŸ ืชื’ื•ื‘ื” (ืฉื”ื™ื™ื”) - ื”ื–ืžืŸ ืžืกื™ื•ื ืฉืœื™ื—ืช ื‘ืงืฉื” (ื‘ืงืฉื”) ื•ืขื“ ืชื—ื™ืœืช ืงื‘ืœืช ืชื’ื•ื‘ื” (ืชื’ื•ื‘ื”).

ื˜ืขืŸ ืžื“ื“ื™ื - ื”ืžืืคื™ื™ื ื™ื ืฉืœ ื”ืฉื™ืจื•ืช ื”ื˜ืขื•ืŸ ื•ืกื•ื›ืŸ ื”ืขื•ืžืก ืฉื ืงื‘ืข ื‘ืชื”ืœื™ืš ื‘ื“ื™ืงืช ื”ืขื•ืžืก.

ืžื“ื“ื™ื ื‘ืกื™ืกื™ื™ื ืœืžื“ื™ื“ืช ืคืจืžื˜ืจื™ ืขื•ืžืก

ื›ืžื” ืžื”ื ืคื•ืฆื™ื ื•ื”ืžื•ืžืœืฆื™ื ื‘ื™ื•ืชืจ ื‘ืžืชื•ื“ื•ืœื•ื’ื™ื” ISTQB (ืขืž' 36, 52) ื”ืžื“ื“ื™ื ืžื•ืฆื’ื™ื ื‘ื˜ื‘ืœื” ืœื”ืœืŸ. ืžื“ื“ื™ื ื“ื•ืžื™ื ืขื‘ื•ืจ ืกื•ื›ืŸ ื•ื™ืขื“ ืจืฉื•ืžื™ื ื‘ืื•ืชื” ืฉื•ืจื”.

ืžื“ื“ื™ื ืขื‘ื•ืจ ืกื•ื›ืŸ ื”ืขื•ืžืก
ืžื“ื“ื™ื ืฉืœ ืžืขืจื›ืช ื”ื™ืขื“ ืื• ื”ืืคืœื™ืงืฆื™ื” ื”ื ื‘ื“ืงืช ืชื—ืช ืขื•ืžืก

ื›ืžื•ืช  vCPU ื•ื–ื™ื›ืจื•ืŸ RAM,
ื“ื™ืกืง - ืžืืคื™ื™ื ื™ "ื‘ืจื–ืœ" ืฉืœ ืกื•ื›ืŸ ื”ืขื•ืžืก
CPU, ื–ื™ื›ืจื•ืŸ, ืฉื™ืžื•ืฉ ื‘ื“ื™ืกืง - ื“ื™ื ืžื™ืงื” ืฉืœ ื˜ืขื™ื ืช ืžืขื‘ื“, ื–ื™ื›ืจื•ืŸ ื•ื“ื™ืกืง
ื‘ืชื”ืœื™ืš ื”ื‘ื“ื™ืงื”. ื ืžื“ื“ ื‘ื“ืจืš ื›ืœืœ ื›ืื—ื•ื– ืž
ืขืจื›ื™ื ื–ืžื™ื ื™ื ืžืงืกื™ืžืœื™ื™ื

ืชืคื•ืงืช ืจืฉืช (ืขืœ ืกื•ื›ืŸ ืขื•ืžืก) - ืชืคื•ืงื”
ืžืžืฉืง ืจืฉืช ื‘ืฉืจืช,
ื”ื™ื›ืŸ ืžื•ืชืงืŸ ืกื•ื›ืŸ ื”ืขื•ืžืก.
ื ืžื“ื“ ื‘ื“ืจืš ื›ืœืœ ื‘ื‘ืชื™ื ืœืฉื ื™ื™ื” (bps)
ืชืคื•ืงืช ืจืฉืช(ื‘ืžื˜ืจื”) - ืจื•ื—ื‘ ืคืก ืฉืœ ืžืžืฉืง ืจืฉืช
ื‘ืฉืจืช ื”ื™ืขื“. ื ืžื“ื“ ื‘ื“ืจืš ื›ืœืœ ื‘ื‘ืชื™ื ืœืฉื ื™ื™ื” (bps)

ืžืฉืชืžืฉื™ื ื•ื™ืจื˜ื•ืืœื™ื™ื- ืžืกืคืจ ื”ืžืฉืชืžืฉื™ื ื”ื•ื•ื™ืจื˜ื•ืืœื™ื™ื,
ื™ื™ืฉื•ื ืชืจื—ื™ืฉื™ ืขื•ืžืก ื•
ื—ื™ืงื•ื™ ืคืขื•ืœื•ืช ืžืฉืชืžืฉ ืืžื™ืชื™ื•ืช
ืกื˜ื˜ื•ืก ืžืฉืชืžืฉื™ื ื•ื™ืจื˜ื•ืืœื™ื™ื, ืขื‘ืจ/ื ื›ืฉืœ/ืกื”"ื› - ืžืกืคืจ ืžื•ืฆืœื—ื™ื ื•
ืกื˜ื˜ื•ืกื™ื ืœื ืžื•ืฆืœื—ื™ื ืฉืœ ืžืฉืชืžืฉื™ื ื•ื™ืจื˜ื•ืืœื™ื™ื
ืขื‘ื•ืจ ืชืจื—ื™ืฉื™ ืขื•ืžืก, ื›ืžื• ื’ื ื”ืžืกืคืจ ื”ื›ื•ืœืœ ืฉืœื”ื.

ื‘ื“ืจืš ื›ืœืœ ืฆืคื•ื™ ืฉื›ืœ ื”ืžืฉืชืžืฉื™ื ื”ืฆืœื™ื—ื• ืœื”ืฉืœื™ื
ื›ืœ ื”ืžืฉื™ืžื•ืช ืฉืœืš ืฉืฆื•ื™ื ื• ื‘ืคืจื•ืคื™ืœ ื”ื˜ืขื™ื ื”.
ื›ืœ ืฉื’ื™ืื” ืชื’ืจื•ื ืœื›ืš ืฉืžืฉืชืžืฉ ืืžื™ืชื™ ืœื ื™ื•ื›ืœ
ืœืคืชื•ืจ ืืช ื”ื‘ืขื™ื” ืฉืœืš ื‘ื–ืžืŸ ื”ืขื‘ื•ื“ื” ืขื ื”ืžืขืจื›ืช

ื‘ืงืฉื•ืช ืœืฉื ื™ื™ื” (ื“ืงื”)- ืžืกืคืจ ื‘ืงืฉื•ืช ื”ืจืฉืช ื‘ืฉื ื™ื™ื” (ืื• ื“ืงื”).

ืžืืคื™ื™ืŸ ื—ืฉื•ื‘ ืฉืœ ืกื•ื›ืŸ ืขื•ืžืก ื”ื•ื ื›ืžื” ื‘ืงืฉื•ืช ื”ื•ื ื™ื›ื•ืœ ืœื™ืฆื•ืจ.
ืœืžืขืฉื”, ื–ื”ื• ื—ื™ืงื•ื™ ืฉืœ ื’ื™ืฉื” ืœืืคืœื™ืงืฆื™ื” ืขืœ ื™ื“ื™ ืžืฉืชืžืฉื™ื ื•ื™ืจื˜ื•ืืœื™ื™ื
ืชื’ื•ื‘ื•ืช ืœืฉื ื™ื™ื” (ื“ืงื”)
- ืžืกืคืจ ืชื’ื•ื‘ื•ืช ื”ืจืฉืช ื‘ืฉื ื™ื™ื” (ืื• ื“ืงื”).

ืžืืคื™ื™ืŸ ื—ืฉื•ื‘ ืฉืœ ืฉื™ืจื•ืช ื”ื™ืขื“: ื›ืžื”
ืœื™ืฆื•ืจ ื•ืœืฉืœื•ื— ืชื’ื•ื‘ื•ืช ืœืฉืื™ืœืชื•ืช ืขื
ืกื•ื›ืŸ ื”ื˜ืขื™ื ื”

ืกื˜ื˜ื•ืก ืชื’ื•ื‘ืช HTTP- ืžืกืคืจ ืงื•ื“ื™ ืชื’ื•ื‘ื” ืฉื•ื ื™ื
ืžืฉืจืช ื”ื™ื™ืฉื•ืžื™ื ืฉื”ืชืงื‘ืœ ืขืœ ื™ื“ื™ ืกื•ื›ืŸ ื”ื˜ืขื™ื ื”.
ืœื“ื•ื’ืžื”, 200 OK ืคื™ืจื•ืฉื• ืฉื™ื—ื” ืžื•ืฆืœื—ืช,
ื•-404 - ืฉื”ืžืฉืื‘ ืœื ื ืžืฆื

ื—ึถื‘ึดื™ื•ึนืŸ (ื–ืžืŸ ืชื’ื•ื‘ื”) - ื–ืžืŸ ืžื”ืกื•ืฃ
ืฉืœื™ื—ืช ื‘ืงืฉื” (ื‘ืงืฉื”) ืœืคื ื™ ืฉืžืชื—ื™ืœื™ื ืœืงื‘ืœ ืชื’ื•ื‘ื” (ืชื’ื•ื‘ื”).
ื ืžื“ื“ ื‘ื“ืจืš ื›ืœืœ ื‘ืืœืคื™ื•ืช ืฉื ื™ื•ืช (ms)

ื–ืžืŸ ืชื’ื•ื‘ื” ืœืขืกืงื”- ื–ืžืŸ ืขืกืงื” ืื—ืช ืฉืœืžื”,
ื”ืฉืœืžืช ืžื—ื–ื•ืจ ื”ื‘ืงืฉื”-ืชื’ื•ื‘ื”.
ื–ื” ื”ื–ืžืŸ ืžืชื—ื™ืœืช ืฉืœื™ื—ืช ื”ื‘ืงืฉื” (ื‘ืงืฉื”)
ืขื“ ืœืกื™ื•ื ืงื‘ืœืช ืชื’ื•ื‘ื” (ืชื’ื•ื‘ื”).

ื ื™ืชืŸ ืœืžื“ื•ื“ ืืช ื–ืžืŸ ื”ืขืกืงื” ื‘ืฉื ื™ื•ืช (ืื• ื“ืงื•ืช)
ื‘ื›ืžื” ื“ืจื›ื™ื: ืฉืงื•ืœ ืืช ื”ืžื™ื ื™ืžื•ื,
ืžืงืกื™ืžื•ื, ืžืžื•ืฆืข, ืœืžืฉืœ, ื”ืื—ื•ื–ื•ืŸ ื”-90.
ืงืจื™ืื•ืช ื”ืžื™ื ื™ืžื•ื ื•ื”ืžืงืกื™ืžื•ื ื”ืŸ ืงื™ืฆื•ื ื™ื•ืช
ืžืฆื‘ ื‘ื™ืฆื•ืขื™ ื”ืžืขืจื›ืช.
ื”ืื—ื•ื–ื•ืŸ ื”ืชืฉืขื™ื ื”ื•ื ื”ื ืคื•ืฅ ื‘ื™ื•ืชืจ,
ื›ืคื™ ืฉื”ื•ื ืžืจืื” ืœืจื•ื‘ ื”ืžืฉืชืžืฉื™ื,
ืคื•ืขืœ ื‘ื ื•ื—ื•ืช ื‘ืกืฃ ื‘ื™ืฆื•ืขื™ ื”ืžืขืจื›ืช

ืขืกืงืื•ืช ื‘ืฉื ื™ื™ื” (ื“ืงื”) - ืžืกืคืจ ื”ืฉืœืžื•ืช
ืขืกืงืื•ืช ื‘ืฉื ื™ื™ื” (ื“ืงื”),
ื›ืœื•ืžืจ, ื›ืžื” ื”ื‘ืงืฉื” ื”ืฆืœื™ื—ื” ืœืงื‘ืœ ื•
ืœืขื‘ื“ ื‘ืงืฉื•ืช ื•ืœื”ื’ื™ืฉ ืชื’ื•ื‘ื•ืช.
ืœืžืขืฉื”, ื–ื”ื• ื”ืชืคื•ืงื” ืฉืœ ื”ืžืขืจื›ืช

ืกื˜ื˜ื•ืก ืขืกืงื” , ืขื‘ืจ / ื ื›ืฉืœ / ืกื”"ื› - ืžืกืคืจ
ืžื•ืฆืœื—, ืœื ืžื•ืฆืœื— ื•ื”ืžืกืคืจ ื”ื›ื•ืœืœ ืฉืœ ื”ืขืกืงืื•ืช.

ืœืžืฉืชืžืฉื™ื ืืžื™ืชื™ื™ื ืœื ืžื•ืฆืœื—
ื”ืžืฉืžืขื•ืช ืฉืœ ื”ืขืกืงื” ืชื”ื™ื” ืœืžืขืฉื”
ื—ื•ืกืจ ื™ื›ื•ืœืช ืœืขื‘ื•ื“ ืขื ื”ืžืขืจื›ืช ืชื—ืช ืขื•ืžืก

ืชืจืฉื™ื ืกื›ืžื˜ื™ ืฉืœ ื‘ื“ื™ืงืช ืขื•ืžืก

ื”ืจืขื™ื•ืŸ ืฉืœ ื‘ื“ื™ืงืช ืขื•ืžืก ื”ื•ื ืคืฉื•ื˜ ืžืื•ื“ ื•ืžื•ืจื›ื‘ ืžืฉืœื•ืฉื” ืฉืœื‘ื™ื ืขื™ืงืจื™ื™ื, ืฉื›ื‘ืจ ื”ื–ื›ืจืชื™: ื”ื›ืŸ-ืžื‘ื—ืŸ-ื“ื•ื—ื›ืœื•ืžืจ, ื”ื›ื ืช ื™ืขื“ื™ ื‘ื“ื™ืงื” ื•ืงื‘ื™ืขืช ืคืจืžื˜ืจื™ื ืœืžืงื•ืจื•ืช ืขื•ืžืก, ืœืื—ืจ ืžื›ืŸ ื‘ื™ืฆื•ืข ื‘ื“ื™ืงื•ืช ืขื•ืžืก ื•ื‘ืกื•ืฃ ื”ืคืงื” ื•ืคืจืกื•ื ื“ื•ื— ื‘ื“ื™ืงื”.

ื‘ื“ื™ืงืช ืขื•ืžืกื™ื ื›ืฉื™ืจื•ืช CI ืœืžืคืชื—ื™ื

ื”ืขืจื•ืช ืกื›ืžื˜ื™ื•ืช:

  • QA.Tester ื”ื•ื ืžื•ืžื—ื” ื‘ื‘ื“ื™ืงืช ืขื•ืžืกื™ื,
  • Target ื”ื•ื ื™ื™ืฉื•ื ื”ื™ืขื“ ืฉืขื‘ื•ืจื• ืืชื” ืจื•ืฆื” ืœื“ืขืช ืืช ื”ื”ืชื ื”ื’ื•ืช ืฉืœื• ืชื—ืช ืขื•ืžืก.

ืžืกื•ื•ื’ ืฉืœ ื™ืฉื•ื™ื•ืช, ืฉืœื‘ื™ื ื•ืฉืœื‘ื™ื ื‘ืชืจืฉื™ื

ืฉืœื‘ื™ื ื•ืฉืœื‘ื™ื
ืžื” ืงื•ืจื”
ืžื” ื™ืฉ ื‘ื›ื ื™ืกื”
ืžื” ื”ืคืœื˜

ื”ื›ื ื”: ืฉืœื‘ ื”ื”ื›ื ื” ืœื‘ื“ื™ืงื”

LoadParameters
ื”ื’ื“ืจื” ื•ืืชื—ื•ืœ
ืขืœ ื™ื“ื™ ื”ืžืฉืชืžืฉ
ื˜ืขื™ื ืช ืคืจืžื˜ืจื™ื,
ื‘ื—ื™ืจืช ืžื“ื“ื™ื ื•
ื”ื›ื ืช ืชื•ื›ื ื™ืช ื‘ื“ื™ืงื”
(ื˜ืขืŸ ืคืจื•ืคื™ืœ)
ืืคืฉืจื•ื™ื•ืช ืžื•ืชืืžื•ืช ืื™ืฉื™ืช ืขื‘ื•ืจ
ืืชื—ื•ืœ ืกื•ื›ืŸ ืขื•ืžืก
ืชื•ื›ื ื™ืช ื‘ื“ื™ืงื”
ืžื˜ืจืช ื”ื‘ื“ื™ืงื”

VM
ืคืจื™ืกืช ืขื ืŸ
ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช ืขื
ืžืืคื™ื™ื ื™ื ื ื“ืจืฉื™ื
ื”ื’ื“ืจื•ืช VM ืขื‘ื•ืจ ืกื•ื›ืŸ ื”ื˜ืขื™ื ื”
ืกืงืจื™ืคื˜ื™ื ืื•ื˜ื•ืžืฆื™ื” ืขื‘ื•ืจ
ื™ืฆื™ืจืช VM
VM ืžื•ื’ื“ืจ ื‘
ื”ืขื ืŸ

ื‘ืขืจืš
ื”ืชืงื ื” ื•ื”ื›ื ื” ืฉืœ ืžืขืจื›ืช ื”ื”ืคืขืœื”
ืกื‘ื™ื‘ื” ืขื‘ื•ืจ
ืขื‘ื•ื“ืช ืกื•ื›ืŸ ืขื•ืžืก
ื”ื’ื“ืจื•ืช ืกื‘ื™ื‘ื” ืขื‘ื•ืจ
ืกื•ื›ืŸ ืขื•ืžืก
ืกืงืจื™ืคื˜ื™ื ืื•ื˜ื•ืžืฆื™ื” ืขื‘ื•ืจ
ื”ื’ื“ืจื•ืช ื”ืกื‘ื™ื‘ื”
ืกื‘ื™ื‘ื” ืžื•ื›ื ื”:
ืžืขืจื›ืช ื”ืคืขืœื”, ืฉื™ืจื•ืชื™ื ื•ื™ื™ืฉื•ืžื™ื,
ื”ื›ืจื—ื™ ืœืขื‘ื•ื“ื”
ืกื•ื›ืŸ ืขื•ืžืก

LoadAgents
ื”ืชืงื ื”, ืชืฆื•ืจื” ื•ืคืจืžื˜ืจื™ื–ืฆื™ื”
ืกื•ื›ืŸ ื”ื˜ืขื™ื ื”.
ืื• ื”ื•ืจื“ืช ืชืžื•ื ืช docker ืž
ืžืงื•ืจ ื˜ืขื™ื ื” ืžื•ื’ื“ืจ ืžืจืืฉ
ื˜ืขืŸ ืชืžื•ื ืช ื“ื•ืงืจ ืžืงื•ืจ
(YAT, JM ืื• ืžืกื’ืจืช ื‘ื›ืชื‘ ืขืฆืžื™)
ื”ื’ื“ืจื•ืช
ืกื•ื›ืŸ ืขื•ืžืก
ืžื•ื’ื“ืจ ื•ืžื•ื›ืŸ
ืœืกื•ื›ืŸ ืขื•ืžืก ืขื‘ื•ื“ื”

ื‘ื“ื™ืงื”: ืฉืœื‘ ื‘ื™ืฆื•ืข ื‘ื“ื™ืงื•ืช ืขื•ืžืก. ื”ืžืงื•ืจื•ืช ื”ื ืกื•ื›ื ื™ ืขื•ืžืก ื”ืคืจื•ืกื™ื ื‘ืžืื’ืจื™ ืกื•ื›ื ื™ื ื™ื™ืขื•ื“ื™ื™ื ืขื‘ื•ืจ GitLab CI

ืœึดื˜ืขื•ึนืŸ
ื”ืคืขืœืช ืกื•ื›ืŸ ื”ื˜ืขื™ื ื”
ืขื ืชื•ื›ื ื™ืช ื‘ื“ื™ืงื” ืฉื ื‘ื—ืจื”
ื•ื˜ืขื™ื ืช ืคืจืžื˜ืจื™ื
ืืคืฉืจื•ื™ื•ืช ืžืฉืชืžืฉ
ืœืืชื—ื•ืœ
ืกื•ื›ืŸ ืขื•ืžืก
ืชื•ื›ื ื™ืช ื‘ื“ื™ืงื”
ืžื˜ืจืช ื”ื‘ื“ื™ืงื”
ื™ื•ืžื ื™ ื‘ื™ืฆื•ืข
ื‘ื“ื™ืงื•ืช ืขื•ืžืก
ื™ื•ืžื ื™ ืžืขืจื›ืช
ื“ื™ื ืžื™ืงื” ืฉืœ ืฉื™ื ื•ื™ื™ื ื‘ืžื“ื“ื™ ื™ืขื“ื™ื ื•ืกื•ื›ืŸ ืขื•ืžืก

ื”ืคืขืœ ืกื•ื›ื ื™ื
ื”ื•ืฆืื” ืœื”ื•ืจื’ ืฉืœ ืกื•ื›ืŸ
ื”ืžื•ืŸ ืกืงืจื™ืคื˜ื™ื ืœื‘ื“ื™ืงื”
ื‘ื”ืชืื
ื˜ืขืŸ ืคืจื•ืคื™ืœ
ืื™ื ื˜ืจืืงืฆื™ื” ืฉืœ ืกื•ื›ืŸ ื˜ืขืŸ
ืœืฆื•ืจืš ื‘ื“ื™ืงื”
ืชื•ื›ื ื™ืช ื‘ื“ื™ืงื”
ืžื˜ืจืช ื”ื‘ื“ื™ืงื”

ื™ื•ืžื ื™ื
ืื•ืกืฃ ื™ื•ืžื ื™ื "ื’ื•ืœืžื™ื™ื".
ื‘ืžื”ืœืš ื‘ื“ื™ืงืช ืขื•ืžืก:
ืขื•ืžืก ืจืฉื•ืžื•ืช ืคืขื™ืœื•ืช ืฉืœ ืกื•ื›ืŸ,
ืžืฆื‘ ื™ืขื“ ื”ื‘ื“ื™ืงื”
ื•ื”-VM ืฉืžื ื”ืœ ืืช ื”ืกื•ื›ืŸ

ื™ื•ืžื ื™ ื‘ื™ืฆื•ืข
ื‘ื“ื™ืงื•ืช ืขื•ืžืก
ื™ื•ืžื ื™ ืžืขืจื›ืช

ืžื“ื“ื™ื
ืื™ืกื•ืฃ ืžื“ื“ื™ื "ื’ื•ืœืžื™ื™ื" ื‘ืžื”ืœืš ื”ื‘ื“ื™ืงื”

ื“ื™ื ืžื™ืงื” ืฉืœ ืฉื™ื ื•ื™ื™ื ื‘ืžื“ื“ื™ ื™ืขื“ื™ื
ื•ืกื•ื›ืŸ ืขื•ืžืก

ื“ื•ื—: ืฉืœื‘ ื”ื›ื ืช ื“ื•ื— ื”ื‘ื“ื™ืงื”

ื’ึตื ึตืจึธื˜ื•ึนืจ
ืขื™ื‘ื•ื“ ืฉื ืืกืฃ
ืžืขืจื›ืช ื˜ืขื™ื ื” ื•
ืžืขืจื›ืช ื ื™ื˜ื•ืจ "ื’ื•ืœืžื™ืช"
ืžื“ื“ื™ื ื•ื™ื•ืžื ื™ื
ื’ื™ื‘ื•ืฉ ื“ื•ื— ื‘
ืฆื•ืจื” ืงืจื™ื ืื ื•ืฉื™ืช
ืืคืฉืจื™ ืขื ืืœืžื ื˜ื™ื
ืื ืœื™ืกื˜ื™ื
ื™ื•ืžื ื™ ื‘ื™ืฆื•ืข
ื‘ื“ื™ืงื•ืช ืขื•ืžืก
ื™ื•ืžื ื™ ืžืขืจื›ืช
ื“ื™ื ืžื™ืงื” ืฉืœ ืฉื™ื ื•ื™ื™ื ื‘ืžื“ื“ื™ื
ืžื˜ืจื” ื•ืกื•ื›ืŸ ืขื•ืžืก
ื™ื•ืžื ื™ื "ื’ื•ืœืžื™ื™ื" ืžืขื•ื‘ื“ื™ื
ื‘ืคื•ืจืžื˜ ื”ืžืชืื™ื ืœ
ื”ืขืœืื•ืช ืœืื—ืกื•ืŸ ื—ื™ืฆื•ื ื™
ื“ื•ื— ืขื•ืžืก ืกื˜ื˜ื™,
ืงืจื™ื ืื“ื

ืœืคืจืกื
ืคืจืกื•ื ื”ื“ื•"ื—
ืœื’ื‘ื™ ืขื•ืžืก
ื‘ื“ื™ืงื” ื—ื™ืฆื•ื ื™ืช
ืฉืึตืจื•ึผืช
ืžืขื•ื‘ื“ "ื’ื•ืœืžื™"
ื™ื•ืžื ื™ื ื‘ืคื•ืจืžื˜ ืžืชืื™ื
ืœืคืจื™ืงื” ืœื—ื•ืฅ
ืงืžืจื•ื ื•ืช
ื ืฉืžืจ ื‘ื—ื•ืฅ
ื“ื•ื—ื•ืช ืื—ืกื•ืŸ ืขืœ
ืขื•ืžืก, ืžืชืื™ื
ืœื ื™ืชื•ื— ืื ื•ืฉื™

ื—ื™ื‘ื•ืจ ืžืงื•ืจื•ืช ืขื•ืžืก ื‘ืชื‘ื ื™ืช CI

ื ืขื‘ื•ืจ ืœื—ืœืง ื”ืžืขืฉื™. ืื ื™ ืจื•ืฆื” ืœื”ืจืื•ืช ืื™ืš ืขืœ ื›ืžื” ืคืจื•ื™ืงื˜ื™ื ื‘ื—ื‘ืจื” ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ื—ื™ื•ื‘ื™ื•ืช ื™ื™ืฉืžื ื• ืืช ื”ืจืขื™ื•ืŸ ืฉืœ ื‘ื“ื™ืงืช ืขื•ืžืก ื›ืฉื™ืจื•ืช.

ืจืืฉื™ืช, ื‘ืขื–ืจืช ืžื”ื ื“ืกื™ ื”-DevOps ืฉืœื ื•, ื™ืฆืจื ื• ืžืื’ืจ ื™ื™ืขื•ื“ื™ ืฉืœ ืกื•ื›ื ื™ื ื‘- GitLab CI ืœื”ืคืขืœืช ื‘ื“ื™ืงื•ืช ืขื•ืžืก. ื›ื“ื™ ืœื ืœื‘ืœื‘ืœ ืื•ืชื ื‘ืชื‘ื ื™ื•ืช ืขื ืื—ืจื™ื, ื›ืžื• ื‘ืจื™ื›ื•ืช ื”ืจื›ื‘ื”, ื”ื•ืกืคื ื• ืชื’ื™ื•ืช ืœืกื•ื›ื ื™ื ื”ืืœื”, ืชื™ื•ื’ื™ื: ืœื˜ืขื•ืŸ. ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ื›ืœ ืชื’ื™ื•ืช ืžื•ื‘ื ื•ืช ืื—ืจื•ืช. ื”ื ืฉืืœื• ื‘ืžื”ืœืš ื”ืจื™ืฉื•ื GitLab CI Runners.

ื›ื™ืฆื“ ืœื’ืœื•ืช ืืช ื”ื›ื•ื— ื”ื ื“ืจืฉ ืœืคื™ ื—ื•ืžืจื”? ื ื™ืชืŸ ืœื—ืฉื‘ ืืช ื”ืžืืคื™ื™ื ื™ื ืฉืœ ืกื•ื›ื ื™ ืขื•ืžืก - ืžืกืคืจ ืžืกืคื™ืง ืฉืœ vCPU, ื–ื™ื›ืจื•ืŸ RAM ื•ื“ื™ืกืง ืขืœ ืกืžืš ื”ืขื•ื‘ื“ื” ืฉ-Docker, Python (ืขื‘ื•ืจ Yandex.Tank), ืกื•ื›ืŸ GitLab CI, Java (ืขื‘ื•ืจ Apache JMeter) ืฆืจื™ื›ื™ื ืœืคืขื•ืœ ืขืœ ื”ืกื•ื›ืŸ . ืขื‘ื•ืจ Java ืชื—ืช JMeter, ืžื•ืžืœืฅ ื’ื ืœื”ืฉืชืžืฉ ื‘ืžื™ื ื™ืžื•ื ืฉืœ 512 MB ืฉืœ ื–ื™ื›ืจื•ืŸ RAM ื•ื›ื’ื‘ื•ืœ ืขืœื™ื•ืŸ, 80% ื–ื™ื›ืจื•ืŸ ื–ืžื™ืŸ.

ืœืคื™ื›ืš, ื‘ื”ืชื‘ืกืก ืขืœ ื”ื ื™ืกื™ื•ืŸ ืฉืœื ื•, ืื ื• ืžืžืœื™ืฆื™ื ืœื”ืฉืชืžืฉ ืœืคื—ื•ืช ื‘-4 vCPUs, 4 GB RAM, 60 GB SSD ืขื‘ื•ืจ ืกื•ื›ื ื™ ืขื•ืžืก. ื”ืชืคื•ืงื” ืฉืœ ื›ืจื˜ื™ืก ื”ืจืฉืช ื ืงื‘ืขืช ืขืœ ืกืžืš ื”ื“ืจื™ืฉื•ืช ืฉืœ ืคืจื•ืคื™ืœ ื”ืขื•ืžืก.

ืื ื• ืžืฉืชืžืฉื™ื ื‘ืขื™ืงืจ ื‘ืฉื ื™ ืžืงื•ืจื•ืช ื˜ืขื™ื ื” - Apache JMeter ื•-Yandex.Tank docker images.

Yandex.Tank ื”ื•ื ื›ืœื™ ืงื•ื“ ืคืชื•ื— ืžื‘ื™ืช Yandex ืœื‘ื“ื™ืงืช ืขื•ืžืกื™ื. ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ื”ืžื•ื“ื•ืœืจื™ืช ืฉืœื• ืžื‘ื•ืกืกืช ืขืœ ืžื—ื•ืœืœ ื‘ืงืฉื•ืช HTTP ืืกื™ื ื›ืจื•ื ื™ ื‘ืขืœ ื‘ื™ืฆื•ืขื™ื ื’ื‘ื•ื”ื™ื ืฉืœ Phantom. ื”ื˜ื ืง ื›ื•ืœืœ ื ื™ื˜ื•ืจ ืžื•ื‘ื ื” ืฉืœ ืžืฉืื‘ื™ ื”ืฉืจืช ื”ื ื‘ื“ืง ื‘ืืžืฆืขื•ืช ืคืจื•ื˜ื•ืงื•ืœ SSH, ื™ื›ื•ืœ ืœืขืฆื•ืจ ืืช ื”ื‘ื“ื™ืงื” ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™ ื‘ืชื ืื™ื ืžื•ื’ื“ืจื™ื, ื™ื›ื•ืœ ืœื”ืฆื™ื’ ืืช ื”ืชื•ืฆืื•ืช ื”ืŸ ื‘ืงื•ื ืกื•ืœื” ื•ื”ืŸ ื‘ืฆื•ืจื” ืฉืœ ื’ืจืคื™ื, ืืชื” ื™ื›ื•ืœ ืœื—ื‘ืจ ืืช ื”ืžื•ื“ื•ืœื™ื ืฉืœืš ืืœื™ื• ื›ื“ื™ ืœื”ืจื—ื™ื‘ ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช. ืื’ื‘, ื”ืฉืชืžืฉื ื• ื‘ื˜ื ืง ื›ืฉื”ื•ื ืขื“ื™ื™ืŸ ืœื ื”ื™ื” ืžื™ื™ื ืกื˜ืจื™ื. ื‘ืžืืžืจ "ืื•ื˜ื•ืžืฆื™ื” ืฉืœ Yandex.Tank ื•ืขื•ืžืกื™ืยป ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืืช ื”ืกื™ืคื•ืจ ืฉืœ ืื™ืš ื‘ื™ืฆืขื ื• ืื™ืชื• ื‘ื“ื™ืงื•ืช ืขื•ืžืก ื‘-2013 PT Application Firewall ื”ื•ื ืื—ื“ ืžืžื•ืฆืจื™ ื”ื—ื‘ืจื” ืฉืœื ื•.

ืืคืืฆ'ื™ Jeter ื”ื•ื ื›ืœื™ ืœื‘ื“ื™ืงืช ืขื•ืžืกื™ื ื‘ืงื•ื“ ืคืชื•ื— ืžื‘ื™ืช Apache. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ื• ื‘ืื•ืชื” ืžื™ื“ื” ืœื‘ื“ื™ืงืช ื™ื™ืฉื•ืžื™ ืื™ื ื˜ืจื ื˜ ืกื˜ื˜ื™ื™ื ื•ื“ื™ื ืืžื™ื™ื ื›ืื—ื“. JMeter ืชื•ืžืš ื‘ืžืกืคืจ ืขืฆื•ื ืฉืœ ืคืจื•ื˜ื•ืงื•ืœื™ื ื•ื“ืจื›ื™ื ืœืื™ื ื˜ืจืืงืฆื™ื” ืขื ื™ื™ืฉื•ืžื™ื: HTTP, HTTPS (Java, NodeJS, PHP, ASP.NET ื•ื›ื•'), SOAP / REST Webservices, FTP, TCP, LDAP, SMTP(S), POP3( S) ) ื•-IMAP(S), ืžืกื“ื™ ื ืชื•ื ื™ื ื“ืจืš JDBC, ื™ื›ื•ืœื™ื ืœื‘ืฆืข ืคืงื•ื“ื•ืช ืžืขื˜ืคืช ื•ืœืขื‘ื•ื“ ืขื ืื•ื‘ื™ื™ืงื˜ื™ Java. ืœ-JMeter ื™ืฉ IDE ืœื™ืฆื™ืจื”, ืื™ืชื•ืจ ื‘ืื’ื™ื ื•ื‘ื™ืฆื•ืข ืชื•ื›ื ื™ื•ืช ื‘ื“ื™ืงื”. ืงื™ื™ื ื’ื CLI ืœืคืขื•ืœืช ืฉื•ืจืช ื”ืคืงื•ื“ื” ื‘ื›ืœ ืžืขืจื›ืช ื”ืคืขืœื” ืชื•ืืžืช Java (Linux, Windows, Mac OS X). ื”ื›ืœื™ ื™ื›ื•ืœ ืœื™ืฆื•ืจ ื‘ืื•ืคืŸ ื“ื™ื ืžื™ ื“ื•ื— ื‘ื“ื™ืงืช HTML.

ืœื ื•ื—ื•ืช ื”ืฉื™ืžื•ืฉ ื‘ืชื•ืš ื”ื—ื‘ืจื” ืฉืœื ื•, ืœืžืขืŸ ื™ื›ื•ืœืชื ืฉืœ ื”ื‘ื•ื“ืงื™ื ืขืฆืžื ืœืฉื ื•ืช ื•ืœื”ื•ืกื™ืฃ ืืช ื”ืกื‘ื™ื‘ื”, ืขืฉื™ื ื• ื‘ื ื™ื™ืช ืชืžื•ื ื•ืช ื“ื•ืงืจ ืฉืœ ืžืงื•ืจื•ืช ืขื•ืžืก ื‘- GitLab CI ืขื ืคืจืกื•ื ืœืžืขืจื›ืช ื”ืคื ื™ืžื™ืช docker registry ื‘-Artifactory. ื–ื” ืขื•ืฉื” ืืช ื–ื” ืžื”ื™ืจ ื™ื•ืชืจ ื•ืงืœ ื™ื•ืชืจ ืœื—ื‘ืจ ืื•ืชื ื‘ืฆื™ื ื•ืจื•ืช ืœื‘ื“ื™ืงื•ืช ืขื•ืžืก. ื›ื™ืฆื“ ืœื‘ืฆืข ื“ื—ื™ืคื” ืฉืœ docker ืœืจื™ืฉื•ื ื‘ืืžืฆืขื•ืช GitLab CI - ืจืื” ื”ื•ืจืื•ืช.

ืœืงื—ื ื• ืืช ืงื•ื‘ืฅ ื”ื“ื•ืงืจ ื”ื‘ืกื™ืกื™ ื”ื–ื” ืขื‘ื•ืจ Yandex.Tank:

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

ื•ืขื‘ื•ืจ Apache JMeter ื–ื”:

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

ืชื•ื›ืœ ืœืงืจื•ื ื›ื™ืฆื“ ืคื•ืขืœืช ืžืขืจื›ืช ื”ืื™ื ื˜ื’ืจืฆื™ื” ื”ืจืฆื™ืคื” ืฉืœื ื• ื‘ืžืืžืจ "ืื•ื˜ื•ืžืฆื™ื” ืฉืœ ืชื”ืœื™ื›ื™ ืคื™ืชื•ื—: ืื™ืš ื”ื˜ืžืขื ื• ืจืขื™ื•ื ื•ืช DevOps ื‘-Positive Technologies".

ืชื‘ื ื™ืช ื•ืฆื™ื ื•ืจ

ื“ื•ื’ืžื” ืœืชื‘ื ื™ืช ืœื‘ื™ืฆื•ืข ื‘ื“ื™ืงื•ืช ืขื•ืžืก ื–ืžื™ื ื” ื‘ืคืจื•ื™ืงื˜ ื˜ืขื™ื ืช ื”ื“ื’ืžื”. ื‘ืชื•ืš ืงื•ื‘ืฅ readme ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืืช ื”ื”ื•ืจืื•ืช ืœืฉื™ืžื•ืฉ ื‘ืชื‘ื ื™ืช. ื‘ืชื‘ื ื™ืช ืขืฆืžื” (ืงื•ื‘ืฅ .gitlab-ci.yml) ื™ืฉ ื”ืขืจื•ืช ืœื’ื‘ื™ ืžื” ืื—ืจืื™ ื›ืœ ืฉืœื‘.

ื”ืชื‘ื ื™ืช ืคืฉื•ื˜ื” ืžืื•ื“ ื•ืžื“ื’ื™ืžื” ืืช ืฉืœื•ืฉืช ื”ืฉืœื‘ื™ื ืฉืœ ื‘ื“ื™ืงืช ืขื•ืžืก ื”ืžืชื•ืืจื™ื ื‘ืชืจืฉื™ื ืœืžืขืœื”: ื”ื›ื ื”, ื‘ื“ื™ืงื” ื•ืคืจืกื•ื ื“ื•ื—ื•ืช. ืื—ืจืื™ ืขืœ ื–ื” ืฉืœื‘ื™ื: ื”ื›ืŸ, ื‘ื“ื•ืง ื•ื“ื•ื•ื—.

  1. ืฉืœื‘ ืœื”ื›ื™ืŸ ื™ืฉ ืœื”ืฉืชืžืฉ ื›ื“ื™ ืœื”ื’ื“ื™ืจ ืžืจืืฉ ื™ืขื“ื™ ื‘ื“ื™ืงื” ืื• ืœื‘ื“ื•ืง ืืช ื–ืžื™ื ื•ืชื. ืื™ืŸ ืฆื•ืจืš ืœื”ื’ื“ื™ืจ ืืช ืกื‘ื™ื‘ืช ืžืงื•ืจื•ืช ื”ื˜ืขื™ื ื”, ื”ื ื‘ื ื•ื™ื™ื ืžืจืืฉ ื›ืชืžื•ื ื•ืช docker ื•ืžืคื•ืจืกืžื•ืช ื‘ืจื™ืฉื•ื docker: ืจืง ืฆื™ื™ืŸ ืืช ื”ื’ืจืกื” ื”ืจืฆื•ื™ื” ื‘ืฉืœื‘ ื”ื‘ื“ื™ืงื”. ืื‘ืœ ืืชื” ื™ื›ื•ืœ ืœื‘ื ื•ืช ืื•ืชื ืžื—ื“ืฉ ื•ืœื™ืฆื•ืจ ืชืžื•ื ื•ืช ืฉื”ืฉืชื ื• ืžืฉืœืš.
  2. ืฉืœื‘ ืžึดื‘ึฐื—ึธืŸ ืžืฉืžืฉ ืœืฆื™ื•ืŸ ืžืงื•ืจ ื”ื˜ืขื™ื ื”, ื”ืคืขืœืช ื‘ื“ื™ืงื•ืช ื•ืื—ืกื•ืŸ ื—ืคืฆื™ ื‘ื“ื™ืงื”. ืืชื” ื™ื›ื•ืœ ืœื‘ื—ื•ืจ ื›ืœ ืžืงื•ืจ ื˜ืขื™ื ื”: Yandex.Tank, Apache JMeter, ืฉืœืš ืื• ื›ื•ืœื ื‘ื™ื—ื“. ื›ื“ื™ ืœื”ืฉื‘ื™ืช ืžืงื•ืจื•ืช ืžื™ื•ืชืจื™ื, ืคืฉื•ื˜ ื”ื’ื™ื‘ื• ืื• ืžื—ืง ืืช ื”ืขื‘ื•ื“ื”. ื ืงื•ื“ื•ืช ื›ื ื™ืกื” ืœืžืงื•ืจื•ืช ืขื•ืžืก:
    • ืคืจืžื˜ืจื™ ื”ืฉืงื” ืขื‘ื•ืจ Yandex.Tank ืžืคื•ืจื˜ื™ื ื‘-./tests/yandextank.sh,
    • ืคืจืžื˜ืจื™ ื”ื”ืคืขืœื” ืฉืœ Apache JMeter ืžืฆื•ื™ื ื™ื ื‘ืงื•ื‘ืฅ ./tests/jmeter.sh.

    ื”ืขืจื”: ืชื‘ื ื™ืช ืชืฆื•ืจืช ื”ื”ืจื›ื‘ื” ืžืฉืžืฉืช ืœื”ื’ื“ืจืช ืื™ื ื˜ืจืืงืฆื™ื” ืขื ืžืขืจื›ืช ื”-CI ื•ืื™ื ื” ืžืจืžื–ืช ืขืœ ืžื™ืงื•ื ื”ื™ื’ื™ื•ืŸ ื‘ื“ื™ืงื” ื‘ื”. ืขื‘ื•ืจ ื‘ื“ื™ืงื•ืช, ื ืงื•ื“ืช ื”ื›ื ื™ืกื” ืžืฆื•ื™ื ืช, ืฉื‘ื” ื ืžืฆื ืกืงืจื™ืคื˜ ื”ื‘ืงืจื” ืฉืœ ื”ื‘ืงืจื”. ืฉื™ื˜ืช ื”ืคืขืœืช ื”ื‘ื“ื™ืงื•ืช, ื”ืคืงืช ื“ื•ื—ื•ืช ื•ืชืกืจื™ื˜ื™ ื”ื‘ื“ื™ืงื” ืขืฆืžื ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ืžื™ื•ืฉืžืช ืขืœ ื™ื“ื™ ืžื”ื ื“ืกื™ QA. ื‘ื”ื“ื’ืžื”, ืขื‘ื•ืจ ืฉื ื™ ืžืงื•ืจื•ืช ื”ื˜ืขื™ื ื”, ื‘ืงืฉืช ื”ื“ืฃ ื”ืจืืฉื™ ืฉืœ Yandex ืžืฉืžืฉืช ื›ืžื‘ื—ืŸ ื”ืคืฉื•ื˜ ื‘ื™ื•ืชืจ. ืกืงืจื™ืคื˜ื™ื ื•ืคืจืžื˜ืจื™ ื‘ื“ื™ืงื” ื ืžืฆืื™ื ื‘ืกืคืจื™ื™ื” ./ื‘ื“ื™ืงื•ืช.

  3. ื‘ืฉืœื‘ ืœื”ื’ื™ืฉ ืชืœื•ื ื” ืขืœื™ืš ืœืชืืจ ื›ื™ืฆื“ ืœืคืจืกื ืืช ืชื•ืฆืื•ืช ื”ื‘ื“ื™ืงื” ืฉื”ื•ืฉื’ื• ื‘ืฉืœื‘ ื”ื‘ื“ื™ืงื” ืœืื—ืกื•ืŸ ื—ื™ืฆื•ื ื™, ืœืžืฉืœ ืœื“ืคื™ GitLab ืื• ืœืžืขืจื›ื•ืช ื“ื™ื•ื•ื— ืžื™ื•ื—ื“ื•ืช. GitLab Pages ื“ื•ืจืฉ ืฉื”ืกืคืจื™ื™ื” ./public ืœื ืชื”ื™ื” ืจื™ืงื” ื•ืชื›ื™ืœ ืœืคื—ื•ืช ืงื•ื‘ืฅ index.html ืœืื—ืจ ืกื™ื•ื ื”ื‘ื“ื™ืงื•ืช. ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืขืœ ื”ื ื™ื•ืื ืกื™ื ืฉืœ ืฉื™ืจื•ืช GitLab Pages. ะฟะพ ััั‹ะปะบะต.

    ื“ื•ื’ืžืื•ืช ืœื™ื™ืฆื•ื ื ืชื•ื ื™ื:

    ืคืจืกื•ื ื”ื•ืจืื•ืช ื”ืชืงื ื”:

ื‘ื“ื•ื’ืžื” ื”ื”ื“ื’ืžื”, ื”ืฆื™ื ื•ืจ ืขื ื‘ื“ื™ืงื•ืช ืขื•ืžืก ื•ืฉื ื™ ืžืงื•ืจื•ืช ืขื•ืžืก (ืชื•ื›ืœ ืœื‘ื˜ืœ ืืช ื”ืžื™ื•ืชืจ) ื ืจืื” ื›ืš:

ื‘ื“ื™ืงืช ืขื•ืžืกื™ื ื›ืฉื™ืจื•ืช CI ืœืžืคืชื—ื™ื

Apache JMeter ื™ื›ื•ืœ ืœื”ืคื™ืง ื“ื•ื— HTML ื‘ืขืฆืžื•, ื›ืš ืฉื›ื“ืื™ ื™ื•ืชืจ ืœืฉืžื•ืจ ืื•ืชื• ื‘ื“ืคื™ GitLab ื‘ืืžืฆืขื•ืช ื›ืœื™ื ืกื˜ื ื“ืจื˜ื™ื™ื. ื›ืš ื ืจืื” ื“ื•ื— Apache JMeter:

ื‘ื“ื™ืงืช ืขื•ืžืกื™ื ื›ืฉื™ืจื•ืช CI ืœืžืคืชื—ื™ื

ื‘ื“ื•ื’ืžื” ื”ื”ื“ื’ืžื” ืฉืœ Yandex.Tank, ืชืจืื” ืจืง ื“ื•ื— ื˜ืงืกื˜ ืžื–ื•ื™ืฃ ื‘ืžื“ื•ืจ ืขื‘ื•ืจ ื“ืคื™ GitLab. ื‘ืžื”ืœืš ื”ื‘ื“ื™ืงื”, ื”ื˜ื ืง ื™ื›ื•ืœ ืœืฉืžื•ืจ ืืช ื”ืชื•ืฆืื•ืช ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœ InfluxDB, ื•ืžืฉื ื ื™ืชืŸ ืœื”ืฆื™ื’ ืื•ืชืŸ, ืœืžืฉืœ, ื‘-Grafana (ื”ื”ื’ื“ืจื” ืžืชื‘ืฆืขืช ื‘ืงื•ื‘ืฅ ./tests/example-yandextank-test.yml). ื›ืš ื ืจืื” ื”ื“ื•"ื— ืฉืœ ื˜ื ืง ื‘ื’ืจืคืื ื”:

ื‘ื“ื™ืงืช ืขื•ืžืกื™ื ื›ืฉื™ืจื•ืช CI ืœืžืคืชื—ื™ื

ืชืงืฆื™ืจ

ื‘ืžืืžืจ ื“ื™ื‘ืจืชื™ ืขืœ ื”ืžื•ืฉื’ "ื‘ื“ื™ืงืช ืขื•ืžืก ื›ืฉื™ืจื•ืช" (ื‘ื“ื™ืงืช ืขื•ืžืก ื›ืฉื™ืจื•ืช). ื”ืจืขื™ื•ืŸ ื”ืžืจื›ื–ื™ ื”ื•ื ืœื”ืฉืชืžืฉ ื‘ืชืฉืชื™ืช ืฉืœ ืžืื’ืจื™ื ืžื•ื’ื“ืจื™ื ืžืจืืฉ ืฉืœ ืกื•ื›ื ื™ ืขื•ืžืก, ืชืžื•ื ื•ืช docker ืฉืœ ืžืงื•ืจื•ืช ืขื•ืžืก, ืžืขืจื›ื•ืช ื“ื™ื•ื•ื— ื•ืฆื™ื ื•ืจ ื”ืžืฉืœื‘ ืื•ืชื ื‘- GitLab CI ื‘ื”ืชื‘ืกืก ืขืœ ืชื‘ื ื™ืช .gitlab-ci.yml ืคืฉื•ื˜ื” (ื“ื•ื’ืžื” ะฟะพ ััั‹ะปะบะต). ื›ืœ ื–ื” ื ืชืžืš ืขืœ ื™ื“ื™ ืฆื•ื•ืช ืงื˜ืŸ ืฉืœ ืžื”ื ื“ืกื™ ืื•ื˜ื•ืžืฆื™ื” ื•ืžืฉื•ื›ืคืœ ืœื‘ืงืฉืช ืฆื•ื•ืชื™ ืžื•ืฆืจ. ืื ื™ ืžืงื•ื•ื” ืฉื–ื” ื™ืขื–ื•ืจ ืœืš ื‘ื”ื›ื ื” ื•ื™ื™ืฉื•ื ืชื•ื›ื ื™ืช ื“ื•ืžื” ื‘ื—ื‘ืจื” ืฉืœืš. ืชื•ื“ื” ืขืœ ืชืฉื•ืžืช ื”ืœื‘!

ื .ื‘. ืื ื™ ืจื•ืฆื” ืœื•ืžืจ ืชื•ื“ื” ื’ื“ื•ืœื” ืœืขืžื™ืชื™ื™, ืกืจื’ื™ื™ ืงื•ืจื‘ื ื•ื‘ ื•ื ื™ืงื•ืœืื™ ื™ื•ืกื‘, ืขืœ ื”ืกื™ื•ืข ื”ื˜ื›ื ื™ ื‘ื™ื™ืฉื•ื ื”ืจืขื™ื•ืŸ ืฉืœ ื‘ื“ื™ืงืช ืขื•ืžืก ื›ืฉื™ืจื•ืช ื‘ื—ื‘ืจื” ืฉืœื ื•.

ืžื—ื‘ืจ: ื˜ื™ืžื•ืจ ื’ื™ืœืžื•ืœื™ืŸ - ืกื’ืŸ ืจืืฉ ืชื—ื•ื ื˜ื›ื ื•ืœื•ื’ื™ื” ื•ืชื”ืœื™ื›ื™ ืคื™ืชื•ื— (DevOps) ื‘ื—ื‘ืจืช Positive Technologies

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”