αž•αŸ’αž‘αž»αž€αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ CI αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ

αž•αŸ’αž‘αž»αž€αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ CI αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ

αž”αž‰αŸ’αž αžΆαž˜αž½αž™αž€αŸ’αž“αž»αž„αž…αŸ†αžŽαŸ„αž˜αž”αž‰αŸ’αž αžΆαžŠαŸ‚αž›αž’αŸ’αž“αž€αž›αž€αŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž–αž αž»αž•αž›αž·αžαž•αž›αžαŸ‚αž„αžαŸ‚αž‡αž½αž”αž”αŸ’αžšαž‘αŸ‡αž‚αžΊαž€αžΆαžšαž…αž˜αŸ’αž›αž„αž–αžΈαžŸαž˜αžαŸ’αžαž—αžΆαž–αžšαž”αžŸαŸ‹αžœαž·αžŸαŸ’αžœαž€αžš - αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž’αŸ’αž“αž€αžŸαžΆαž€αž›αŸ’αž”αž„ αž“αž·αž„αž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ - αžŸαŸ’αž‘αžΎαžšαžαŸ‚αž‚αŸ’αžšαž”αŸ‹αž€αŸ’αžšαž»αž˜αŸ” αž“αŸαŸ‡αž€αŸαž’αž“αž»αžœαžαŸ’αžαž…αŸ†αž–αŸ„αŸ‡αžœαž·αžŸαŸ’αžœαž€αžšαžŠαŸ‚αž›αž˜αžΆαž“αžαŸ†αž›αŸƒαžαŸ’αž›αŸƒαž•αž„αžŠαŸ‚αžš - αž’αŸ’αž“αž€αž―αž€αž‘αŸαžŸαž€αŸ’αž“αž»αž„αžœαž·αžŸαŸαž™αž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž”αž“αŸ’αž‘αž»αž€αŸ”

αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž€αžΆαžšαž”αŸ†αž–αŸαž‰αž—αžΆαžšαž€αž·αž…αŸ’αž…αž•αŸ’αž‘αžΆαž›αŸ‹αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ αž“αž·αž„αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαž–αž·αžŸαŸαžŸαžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαžαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€ αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž αžšαž„αŸ’αžœαžΆαžŸαŸ‹αžŠαŸαž›αŸ’αž’αž”αŸ’αžšαžŸαžΎαžš αž“αž·αž„αžŸαžšαžŸαŸαžšαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αžŠαŸ„αž™αž’αž“αž»αž›αŸ„αž˜αžαžΆαž˜αž‘αž˜αŸ’αžšαž„αŸ‹αž•αŸ’αž‘αž»αž€ αžœαž·αžŸαŸ’αžœαž€αžšαž‡αžΆαžšαžΏαž™αŸ—αžαŸ’αžšαžΌαžœαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžŸαžΆαž€αž›αŸ’αž”αž„αž–αžΈαž‘αž‘αŸ αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž§αž”αž€αžšαžŽαŸαž•αŸ’αž‘αž»αž€ αž“αž·αž„αž”αž„αŸ’αž€αž”αŸ‹αž–αž½αž€αžœαžΆαŸ” αžαŸ’αž›αž½αž“αž‚αŸαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’ CI αžšαŸ€αž”αž…αŸ†αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ αž“αž·αž„αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαŸ”

αž’αŸ’αž“αž€αž’αžΆαž…αžŸαŸ’αžœαŸ‚αž„αžšαž€αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž…αŸ†αž–αŸ„αŸ‡αž”αž‰αŸ’αž αžΆαžŸαŸ’αžαžΆαž”αŸαž“αž˜αž½αž™αž…αŸ†αž“αž½αž“αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŠαŸ‚αž›αž™αžΎαž„αž”αŸ’αžšαžΎαž“αŸ…αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαžœαž·αž‡αŸ’αž‡αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„ αž’αžαŸ’αžαž”αž‘αž˜αž½αž™αž‘αŸ€αž. αž αžΎαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αž½αž™αž“αŸαŸ‡ αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž›αž‘αŸ’αž’αž—αžΆαž–αž“αŸƒαž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αŸ†αž–αž„αŸ‹ CI αž‘αžΌαž‘αŸ… αžŠαŸ„αž™αž”αŸ’αžšαžΎαž‚αŸ†αž“αž·αžαž“αŸƒ "αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜" (αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜) αŸ” αž’αŸ’αž“αž€αž“αžΉαž„αžšαŸ€αž“αž–αžΈαžšαž”αŸ€αž” αž“αž·αž„αžšαžΌαž”αž—αžΆαž– docker αž“αŸƒαž”αŸ’αžšαž—αž–αž•αŸ’αž‘αž»αž€αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž“αŸ…αž€αŸ’αž“αž»αž„ CI pipeline; αžšαž”αŸ€αž”αž—αŸ’αž‡αžΆαž”αŸ‹αž”αŸ’αžšαž—αž–αž•αŸ’αž‘αž»αž€αž‘αŸ…αž‚αž˜αŸ’αžšαŸ„αž„ CI αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ„αž™αž”αŸ’αžšαžΎαž‚αŸ†αžšαžΌαžŸαžΆαž„αžŸαž„αŸ‹αŸ” αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž”αŸ†αž–αž„αŸ‹β€‹αžŸαžΆαž€αž›αŸ’αž”αž„β€‹αž˜αžΎαž›β€‹αž‘αŸ…β€‹αžŠαžΌαž…β€‹αž‡αžΆβ€‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹β€‹αž€αžΆαžšβ€‹αžšαžαŸ‹β€‹αž€αžΆαžšβ€‹αžŸαžΆαž€αž›αŸ’αž”αž„β€‹αž•αŸ’αž‘αž»αž€β€‹αž“αž·αž„β€‹αž€αžΆαžšβ€‹αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–β€‹αž•αŸ’αžŸαžΆαž™β€‹αž›αž‘αŸ’αž’αž•αž›β€‹αŸ” αž’αžαŸ’αžαž”αž‘αž’αžΆαž…αž˜αžΆαž“αž”αŸ’αžšαž™αŸ„αž‡αž“αŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαž·αžŸαŸ’αžœαž€αžšαžŸαžΆαž€αž›αŸ’αž”αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ αž“αž·αž„αžœαž·αžŸαŸ’αžœαž€αžšαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜αž“αŸ…αž€αŸ’αž“αž»αž„ CI αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αž‚αž·αžαž’αŸ†αž–αžΈαžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜αž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž•αŸ’αž‘αž»αž€αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαŸ”

αžαŸ’αž›αžΉαž˜αžŸαžΆαžšαž“αŸƒαž‚αŸ†αž“αž·αž

αž‚αŸ†αž“αž·αžαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž”αž„αŸ’αž€αž”αŸ‹αž“αŸαž™αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž§αž”αž€αžšαžŽαŸαž•αŸ’αž‘αž»αž€ Apache JMeter, Yandex.Tank αž“αž·αž„αž€αŸ’αžšαž”αžαŸαžŽαŸ’αžŒαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž‘αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αžαžΆαž˜αž’αŸ†αž–αžΎαž…αž·αžαŸ’αžαŸ” αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰αž“αžΉαž„αž˜αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ GitLab CI αž”αŸ‰αž»αž“αŸ’αžαŸ‚αž‚αŸ„αž›αž€αžΆαžšαžŽαŸαž‚αžΊαž‡αžΆαžšαžΏαž„αž’αž˜αŸ’αž˜αžαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž–αŸαž“αŸ’αž’ CI αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αŸ”

αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αž‡αžΆαžŸαŸαžœαžΆαž‚αžΊαž‡αžΆαžŸαŸαžœαžΆαž€αžŽαŸ’αžαžΆαž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αŸ” αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹ αž›αž‘αŸ’αž’αž•αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αŸ…αž€αŸ’αž“αž»αž„ GitLab Pages, Influx DB αž“αž·αž„ Grafana αž¬αž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαžΆαž™αž€αžΆαžšαžŽαŸαžŸαžΆαž€αž›αŸ’αž”αž„ (TestRail, ReportPortal αŸ”αž›αŸ”)αŸ” αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜ αž“αž·αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž˜αžΆαžαŸ’αžšαžŠαŸ’αž‹αžΆαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαžαžΆαž˜αžαŸ‚αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“ αžŠαŸ„αž™αž”αž“αŸ’αžαŸ‚αž˜ αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αž‚αŸ†αžšαžΌ gitlab-ci.yml αž’αž˜αŸ’αž˜αžαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž‚αž˜αŸ’αžšαŸ„αž„ GitLab CI αŸ”

αž’αžαŸ’αžαž”αŸ’αžšαž™αŸ„αž‡αž“αŸαž“αŸƒαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸαŸ‡αž‚αžΊαžαžΆαž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ CI αž‘αžΆαŸ†αž„αž˜αžΌαž› αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€ αžšαžΌαž”αž—αžΆαž– docker αž“αŸƒαž”αŸ’αžšαž—αž–αž•αŸ’αž‘αž»αž€ αž”αŸ†αž–αž„αŸ‹αž”αž„αŸ’αž αžΌαžšαžŸαžΆαž€αž›αŸ’αž”αž„ αž“αž·αž„αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžŠαŸ„αž™αž“αžΆαž™αž€αžŠαŸ’αž‹αžΆαž“αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜αž€αžŽαŸ’αžαžΆαž› (αžœαž·αžŸαŸ’αžœαž€αžš DevOps) αžαžŽαŸˆαž–αŸαž›αžŠαŸ‚αž›αžœαž·αžŸαŸ’αžœαž€αžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αž’αžΆαž…αž•αŸ’αžαŸ„αžαž›αžΎαž€αžΆαžšαžαž·αžαžαŸ†αž”αŸ’αžšαžΉαž„αž”αŸ’αžšαŸ‚αž„αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸαž›αžΎαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαŸ” αž“αž·αž„αž€αžΆαžšαžœαž·αž—αžΆαž‚αž›αžΎαž›αž‘αŸ’αž’αž•αž›αžšαž”αžŸαŸ‹αž–αž½αž€αž‚αŸ αžŠαŸ„αž™αž˜αž·αž“αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αŸ”

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αžΆαž–αžŸαžΆαž˜αž‰αŸ’αž‰αž“αŸƒαž€αžΆαžšαž–αž·αž–αžŽαŸŒαž“αžΆ αž™αžΎαž„αž“αžΉαž„αžŸαž“αŸ’αž˜αžαŸ‹αžαžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ„αž›αžŠαŸ… αž¬αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™ αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‡αžΆαž˜αž»αž“αžšαž½αž…αž αžΎαž™ (αžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž“αŸ…αž€αŸ’αž“αž»αž„ Python, SaltStack, Ansible αŸ”αž›αŸ” αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž“αŸαŸ‡)αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€ αž‚αŸ„αž›αž‚αŸ†αž“αž·αžαž‘αžΆαŸ†αž„αž˜αžΌαž›αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αž‡αžΆαžŸαŸαžœαžΆαž˜αž½αž™ αžŸαž˜αž“αžΉαž„αž”αžΈαžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αŸ– αž€αžΆαžšαžšαŸ€αž”αž…αŸ† αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸ. αž–αŸαžαŸŒαž˜αžΆαž“αž›αž˜αŸ’αž’αž·αžαž”αž“αŸ’αžαŸ‚αž˜αž›αžΎαžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜ (αžšαžΌαž”αž—αžΆαž–αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž’αžΆαž…αž…αž»αž…αž”αžΆαž“)αŸ–

αž•αŸ’αž‘αž»αž€αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ CI αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ

αž‚αŸ„αž›αž‚αŸ†αž“αž·αž αž“αž·αž„αž“αž·αž™αž˜αž“αŸαž™αž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€

αž“αŸ…αž–αŸαž›αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž”αž“αŸ’αž‘αž»αž€αž™αžΎαž„αž–αŸ’αž™αžΆαž™αžΆαž˜αž”αŸ’αžšαž€αžΆαž“αŸ‹αžαŸ’αž‡αžΆαž”αŸ‹ αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžš ISTQB αž“αž·αž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž”αŸ’αžšαžΎαžœαžΆαž€αŸ’αž™αžŸαŸαž–αŸ’αž‘αžŸαž˜αžŸαŸ’αžšαž” αž“αž·αž„αžšαž„αŸ’αžœαžΆαžŸαŸ‹αžŠαŸ‚αž›αž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αŸ” αžαŸ’αž‰αž»αŸ†αž“αžΉαž„αž•αŸ’αžαž›αŸ‹αž”αž‰αŸ’αž‡αžΈαžαŸ’αž›αžΈαž“αŸƒαž‚αŸ„αž›αž‚αŸ†αž“αž·αž αž“αž·αž„αž“αž·αž™αž˜αž“αŸαž™αžŸαŸ†αžαžΆαž“αŸ‹αŸ—αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αŸ”

αž•αŸ’αž‘αž»αž€αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš - αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαžŠαŸ‚αž›αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαžΆαž€αŸ‹αž±αŸ’αž™αžŠαŸ†αžŽαžΎαžšαž€αžΆαžš - αž”αŸ’αžšαž—αž–αž•αŸ’αž‘αž»αž€ (Apache JMeter, Yandex.Tank αž¬αž˜αŸ‰αžΌαžŒαž»αž›αž•αŸ’αž‘αž»αž€αžŠαŸ‚αž›αžŸαžšαžŸαŸαžšαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„) αŸ”

αž‚αŸ„αž›αžŠαŸ…αžŸαžΆαž€αž›αŸ’αž”αž„ (αž‚αŸ„αž›αžŠαŸ…) - αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž¬αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αžΆαž“αžŠαŸ†αž‘αžΎαž„αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž›αž“αžΉαž„αžαŸ’αžšαžΌαžœαž•αŸ’αž‘αž»αž€αŸ”

αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαžŸαžΆαž€αž›αŸ’αž”αž„ (αž€αžšαžŽαžΈαžŸαžΆαž€αž›αŸ’αž”αž„) - αžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž‡αŸ†αž αžΆαž“αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαŸ– αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎ αž“αž·αž„αž”αŸ’αžšαžαž·αž€αž˜αŸ’αž˜αžŠαŸ‚αž›αžšαŸ†αž–αžΉαž„αž‘αž»αž€αž…αŸ†αž–αŸ„αŸ‡αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžŸαŸ†αžŽαžΎαž”αžŽαŸ’αžαžΆαž‰αžαŸαžš αž“αž·αž„αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž” αž’αžΆαžŸαŸ’αžšαŸαž™αž›αžΎαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αŸ”

αž€αž˜αŸ’αžšαž„αž–αŸαžαŸŒαž˜αžΆαž“ αž¬αž•αŸ‚αž“αž€αžΆαžšαž•αŸ’αž‘αž»αž€ (αž‘αž˜αŸ’αžšαž„αŸ‹) - αž€αŸ’αž“αž»αž„ αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž ISTQB (αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 4.2.4 αž‘αŸ†αž–αŸαžš 43) αž‘αž˜αŸ’αžšαž„αŸ‹αž•αŸ’αž‘αž»αž€αž€αŸ†αžŽαžαŸ‹αž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αž˜αžΆαž“αžŸαžΆαžšαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αž˜αž½αž™ αž“αž·αž„αž‡αž˜αŸ’αžšαžΎαžŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž•αŸ’αž‘αž»αž€αž’αŸ†αž‘αž»αž„αž–αŸαž›αž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαŸ” αž’αŸ’αž“αž€αž’αžΆαž…αžƒαžΎαž‰αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž‘αž˜αŸ’αžšαž„αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžšαžΌαž”αŸ”

αž•αŸ’αž‘αž»αž€αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ CI αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ

αžŸαžΆαž€αž›αŸ’αž”αž„ - αžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŠαŸ‚αž›αž˜αžΆαž“αžŸαŸ†αžŽαž»αŸ†αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αž»αž€αž‡αžΆαž˜αž»αž“αŸ”

αž•αŸ‚αž“αž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„ (αž•αŸ‚αž“αž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„) - αžŸαŸ†αžŽαž»αŸ†αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž“αž·αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž•αŸ’αž‘αž»αž€αŸ”

αžαŸαžŸαžšαŸ‰αžΆαž“αŸ‹ (testrun) - αž€αžΆαžšαž’αŸ’αžœαžΎαž˜αŸ’αžαž„αž‘αŸ€αžαž“αŸƒαž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž˜αž½αž™αž‡αžΆαž˜αž½αž™αž“αžΉαž„αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαž€αžΆαžšαž•αŸ’αž‘αž»αž€αžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž–αŸαž‰αž›αŸαž‰ αž“αž·αž„αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“αŸ”

αžŸαŸ†αžŽαžΎαž”αžŽαŸ’αžαžΆαž‰ (αžŸαŸ†αžŽαžΎ) - αžŸαŸ†αžŽαžΎ HTTP αž•αŸ’αž‰αžΎαž–αžΈαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž‘αŸ…αž‚αŸ„αž›αžŠαŸ…αŸ”

αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αž”αžŽαŸ’αžαžΆαž‰ (αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”) - αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž” HTTP αž•αŸ’αž‰αžΎαž–αžΈαž‚αŸ„αž›αžŠαŸ…αž‘αŸ…αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαŸ”
αž€αžΌαžŠαž†αŸ’αž›αžΎαž™αžαž” HTTP (αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž” HTTP) - αž€αžΌαžŠαž†αŸ’αž›αžΎαž™αžαž”αžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”
αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‚αžΊαž‡αžΆαžœαžŠαŸ’αžαž“αŸƒαž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αžŸαŸ†αžŽαžΎαž–αŸαž‰αž›αŸαž‰αŸ” αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαžΆαž”αŸ‹αž…αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸƒαž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαŸ†αžŽαžΎ (αžŸαŸ†αžŽαžΎ) αžšαž αžΌαžαžŠαž›αŸ‹αž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαž€αžΆαžšαž‘αž‘αž½αž›αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž” (αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”)αŸ”

αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš - αžαžΆαžαžΎαžœαžΆαž’αžΆαž…αž‘αŸ…αžšαž½αž…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αžœαžŠαŸ’αžαž“αŸƒαž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αžŸαŸ†αžŽαžΎαžŠαŸ„αž™αž‡αŸ„αž‚αž‡αŸαž™αžŠαŸ‚αžšαž¬αž‘αŸαŸ” αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž˜αžΆαž“αž€αŸ†αž αž»αžŸαžŽαžΆαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžŠαŸ’αžαž“αŸαŸ‡ αž“αŸ„αŸ‡αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž‘αžΆαŸ†αž„αž˜αžΌαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž…αžΆαžαŸ‹αž‘αž»αž€αžαžΆαž˜αž·αž“αž‡αŸ„αž‚αž‡αŸαž™αŸ”

αž–αŸαž›αžœαŸαž›αžΆαž†αŸ’αž›αžΎαž™αžαž” (αž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœ) - αž–αŸαž›αžœαŸαž›αžΆαž…αžΆαž”αŸ‹αž–αžΈαž…αž»αž„αž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαŸ†αžŽαžΎ (αžŸαŸ†αžŽαžΎ) αžŠαž›αŸ‹αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸƒαž€αžΆαžšαž‘αž‘αž½αž›αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž” (αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”) αŸ”

αž•αŸ’αž‘αž»αž€αž˜αŸ‰αŸ‚αžαŸ’αžš - αž›αž€αŸ’αžαžŽαŸˆαž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαŸ‚αž›αž”αžΆαž“αž•αŸ’αž‘αž»αž€ αž“αž·αž„αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αŸ”

αž˜αŸ‰αŸ‚αžαŸ’αžšαž‡αžΆαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαžŸαŸ‹αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž•αŸ’αž‘αž»αž€

αž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹ αž“αž·αž„αžŽαŸ‚αž“αžΆαŸ†αž‡αžΆαž‘αžΌαž‘αŸ…αž”αŸ†αž•αž»αžαž“αŸ…αž€αŸ’αž“αž»αž„αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αž ISTQB (αž‘αŸ†. ៣៦, αŸ₯្) αžšαž„αŸ’αžœαžΆαžŸαŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž€αŸ’αž“αž»αž„αžαžΆαžšαžΆαž„αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αŸ” αžšαž„αŸ’αžœαžΆαžŸαŸ‹αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš αž“αž·αž„αž‚αŸ„αž›αžŠαŸ…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαžΆαž™αž”αž‰αŸ’αž‡αžΈαž“αŸ…αž›αžΎαž”αž“αŸ’αž‘αžΆαžαŸ‹αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ”

αž˜αŸ‰αŸ‚αžαŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€
αž˜αŸ‰αŸ‚αžαŸ’αžšαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’αž‚αŸ„αž›αžŠαŸ… αž¬αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžΆαž€αž›αŸ’αž”αž„αž“αŸ…αž€αŸ’αžšαŸ„αž˜αž€αžΆαžšαž•αŸ’αž‘αž»αž€

αž…αŸ†αž“αž½αž“  vCPU αž“αž·αž„αž€αžΆαžšαž…αž„αž…αžΆαŸ† αž’αž„αŸ’αž‚β€‹αž…αž„αž…αžΆαŸ†,
ថអស - αž›αž€αŸ’αžαžŽαŸˆ "αž‡αžΆαžαž·αžŠαŸ‚αž€" αž“αŸƒαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€
αžŸαŸŠαžΈαž—αžΈαž™αžΌ, αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αžαžΆαžŸ - αžαžΆαž˜αžœαž“αŸ’αžαž“αŸƒαžŸαŸŠαžΈαž—αžΈαž™αžΌ αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ† αž“αž·αž„αž€αžΆαžšαž•αŸ’αž‘αž»αž€αžαžΆαžŸ
αž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαŸ” αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαžœαžΆαžŸαŸ‹αžœαŸ‚αž„αž‡αžΆαž—αžΆαž‚αžšαž™
αžαž˜αŸ’αž›αŸƒαž’αžαž·αž”αžšαž˜αžΆαžŠαŸ‚αž›αž˜αžΆαž“

αž”αžŽαŸ’αžαžΆαž‰αž†αŸ’αž›αž„αž€αžΆαžαŸ‹ (αž“αŸ…αž›αžΎαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€) - αž†αŸ’αž›αž„αž€αžΆαžαŸ‹
αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžαžΆαž‰αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ,
αž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ†αž‘αžΎαž„αŸ”
αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαžœαžΆαžŸαŸ‹αž‡αžΆαž”αŸƒαž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž“αžΆαž‘αžΈ (bps)
αž”αžŽαŸ’αžαžΆαž‰αž†αŸ’αž›αž„αž€αžΆαžαŸ‹(αž“αŸ…αž›αžΎαž‚αŸ„αž›αžŠαŸ…) - αž€αž˜αŸ’αžšαž·αžαž”αž‰αŸ’αž‡αžΌαž“αž…αŸ†αžŽαž»αž…αž”αŸ’αžšαž‘αžΆαž€αŸ‹αž”αžŽαŸ’αžαžΆαž‰
αž“αŸ…αž›αžΎαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž‚αŸ„αž›αžŠαŸ…αŸ” αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαžœαžΆαžŸαŸ‹αž‡αžΆαž”αŸƒαž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž“αžΆαž‘αžΈ (bps)

αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž“αž·αž˜αŸ’αž˜αž·αž- αž…αŸ†αž“αž½αž“αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž“αž·αž˜αŸ’αž˜αž·αž,
αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαž€αžΆαžšαž•αŸ’αž‘αž»αž€αž“αž·αž„
αž’αŸ’αžœαžΎαžαŸ’αžšαžΆαž”αŸ‹αžαžΆαž˜αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠ
αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž“αž·αž˜αŸ’αž˜αž·αžαž†αŸ’αž›αž„αž€αžΆαžαŸ‹/αž”αžšαžΆαž‡αŸαž™/αžŸαžšαž»αž” β€” αž…αŸ†αž“αž½αž“αž‡αŸ„αž‚αž‡αŸαž™ αž“αž·αž„
αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž˜αž·αž“αž‡αŸ„αž‚αž‡αŸαž™αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž“αž·αž˜αŸ’αž˜αž·αž
αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžŸαŸαžŽαžΆαžšαžΈαž™αŸ‰αžΌαž“αŸƒαž€αžΆαžšαž•αŸ’αž‘αž»αž€ αž€αŸαžŠαžΌαž…αž‡αžΆαž…αŸ†αž“αž½αž“αžŸαžšαž»αž”αžšαž”αžŸαŸ‹αžœαžΆαŸ”

αž‡αžΆαž‘αžΌαž‘αŸ…αž‚αŸαžšαŸ†αž–αžΉαž„αžαžΆαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž’αžΆαž…αž”αŸ†αž–αŸαž‰αž”αžΆαž“αŸ”
αžšαžΆαž›αŸ‹αž€αž·αž…αŸ’αž…αž€αžΆαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž•αŸ’αž‘αž»αž€αŸ”
αž€αŸ†αž αž»αžŸαžŽαžΆαž˜αž½αž™αž“αžΉαž„αž˜αžΆαž“αž“αŸαž™αžαžΆαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž“αžΉαž„αž˜αž·αž“αž’αžΆαž…
αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’

αžŸαŸ†αžŽαžΎαž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž“αžΆαž‘αžΈ (αž“αžΆαž‘αžΈ)- αž…αŸ†αž“αž½αž“αžŸαŸ†αžŽαžΎαž”αžŽαŸ’αžαžΆαž‰αž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž“αžΆαž‘αžΈ (αž¬αž“αžΆαž‘αžΈ) αŸ”

αž›αž€αŸ’αžαžŽαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€αž‚αžΊαž…αŸ†αž“αž½αž“αžŸαŸ†αžŽαžΎαžŠαŸ‚αž›αžœαžΆαž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαž”αžΆαž“αŸ”
αžαžΆαž˜αž–αž·αžαž“αŸαŸ‡αž‚αžΊαž‡αžΆαž€αžΆαžšαž€αŸ’αž›αŸ‚αž„αž”αž“αŸ’αž›αŸ†αž“αŸƒαž€αžΆαžšαž…αžΌαž›αž”αŸ’αžšαžΎαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ„αž™αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž“αž·αž˜αŸ’αž˜αž·αž
αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž“αžΆαž‘αžΈ (αž“αžΆαž‘αžΈ)
- αž…αŸ†αž“αž½αž“αž“αŸƒαž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αž”αžŽαŸ’αžαžΆαž‰αž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž“αžΆαž‘αžΈ (αž¬αž“αžΆαž‘αžΈ) αŸ”

αž›αž€αŸ’αžαžŽαŸˆαžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž‚αŸ„αž›αžŠαŸ…αŸ– αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“
αž”αž„αŸ’αž€αžΎαž αž“αž·αž„αž•αŸ’αž‰αžΎαž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αž‘αŸ…αž“αžΉαž„αžŸαŸ†αžŽαž½αžšαž‡αžΆαž˜αž½αž™
αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€

αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž†αŸ’αž›αžΎαž™αžαž” HTTP- αž…αŸ†αž“αž½αž“β€‹αž“αŸƒβ€‹αž€αžΌαžŠβ€‹αž†αŸ’αž›αžΎαž™β€‹αžαž”β€‹αž•αŸ’αžŸαŸαž„β€‹αž‚αŸ’αž“αžΆβ€‹
αž–αžΈαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžŠαŸ‚αž›αž”αžΆαž“αž‘αž‘αž½αž›αžŠαŸ„αž™αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€αŸ”
αž§αž‘αžΆαž αžšαžŽαŸ 200 OK αž˜αžΆαž“αž“αŸαž™αžαžΆαž€αžΆαžšαž αŸ…αž‡αŸ„αž‚αž‡αŸαž™αŸ”
αž“αž·αž„ 404 - αžαžΆαž’αž“αž’αžΆαž“αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αžƒαžΎαž‰

αž—αžΆαž–αž™αžΊαžαž™αŸ‰αžΆαžœ (αž–αŸαž›αžœαŸαž›αžΆαž†αŸ’αž›αžΎαž™αžαž”) - αž–αŸαž›αžœαŸαž›αžΆαž–αžΈαž‘αžΈαž”αž‰αŸ’αž…αž”αŸ‹
αž•αŸ’αž‰αžΎαžŸαŸ†αžŽαžΎ (αžŸαŸ†αžŽαžΎ) αž˜αž»αž“αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž‘αž‘αž½αž›αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž” (αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”) αŸ”
αž‡αžΆαž’αž˜αŸ’αž˜αžαžΆαžœαžΆαžŸαŸ‹αž‡αžΆαž˜αžΈαž›αžΈαžœαž·αž“αžΆαž‘αžΈ (ms)

αž–αŸαž›αžœαŸαž›αžΆαž†αŸ’αž›αžΎαž™αžαž”αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš- αž–αŸαž›αžœαŸαž›αžΆαž“αŸƒαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž–αŸαž‰αž›αŸαž‰αž˜αž½αž™
αž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αžœαžŠαŸ’αžαž“αŸƒαž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αžŸαŸ†αžŽαžΎαŸ”
αž“αŸαŸ‡αž‚αžΊαž‡αžΆαž–αŸαž›αžœαŸαž›αžΆαž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž“αŸƒαž€αžΆαžšαž•αŸ’αž‰αžΎαžŸαŸ†αžŽαžΎ (αžŸαŸ†αžŽαžΎ)
αžšαž αžΌαžαžŠαž›αŸ‹αž€αžΆαžšαž”αž‰αŸ’αž…αž”αŸ‹αž“αŸƒαž€αžΆαžšαž‘αž‘αž½αž›αž”αžΆαž“αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž” (αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”) αŸ”

αž–αŸαž›αžœαŸαž›αžΆαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αžœαžΆαžŸαŸ‹αž‡αžΆαžœαž·αž“αžΆαž‘αžΈ (αž¬αž“αžΆαž‘αžΈ)
αž“αŸ…αž€αŸ’αž“αž»αž„αžœαž·αž’αžΈαž‡αžΆαž…αŸ’αžšαžΎαž“: αž–αž·αž…αžΆαžšαžŽαžΆαž’αž”αŸ’αž”αž”αžšαž˜αžΆ,
αž’αžαž·αž”αžšαž˜αžΆ αž˜αž’αŸ’αž™αž˜ αž“αž·αž„αž§αž‘αžΆαž αžšαžŽαŸ 90 αž—αžΆαž‚αžšαž™αŸ”
αž€αžΆαžšαž’αžΆαž“αž’αž”αŸ’αž”αž”αžšαž˜αžΆ αž“αž·αž„αž’αžαž·αž”αžšαž˜αžΆαž‚αžΊαžαŸ’αž›αžΆαŸ†αž„αž”αŸ†αž•αž»αžαŸ”
αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαž–αŸαž“αŸ’αž’αŸ”
αž—αžΆαž‚αžšαž™αž‘αžΈαž€αŸ…αžŸαž·αž”αž‚αžΊαžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž”αŸ’αžšαžΎαž‰αžΉαž€αž‰αžΆαž”αŸ‹αž”αŸ†αž•αž»αž,
αžŠαžΌαž…αžŠαŸ‚αž›αžœαžΆαž”αž„αŸ’αž αžΆαž‰αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž—αžΆαž‚αž…αŸ’αžšαžΎαž“
αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαž€αž”αžŠαŸ„αž™αž•αžΆαžŸαž»αž€αž—αžΆαž–αž“αŸ…αž€αž˜αŸ’αžšαž·αžαž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž”αŸ’αžšαž–αŸαž“αŸ’αž’

αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž“αžΆαž‘αžΈ (αž“αžΆαž‘αžΈ) - αž…αŸ†αž“αž½αž“αž–αŸαž‰αž›αŸαž‰
αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž€αŸ’αž“αž»αž„αž˜αž½αž™αžœαž·αž“αžΆαž‘αžΈ (αž“αžΆαž‘αžΈ),
αž“αŸ„αŸ‡αž‚αžΊαžαžΆαžαžΎαž–αžΆαž€αŸ’αž™αžŸαž»αŸ†αž’αžΆαž…αž‘αž‘αž½αž›αž™αž€αž”αžΆαž“αž”αŸ‰αž»αž“αŸ’αž˜αžΆαž“ αž“αž·αž„
αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŸαŸ†αžŽαžΎ αž“αž·αž„αž…αŸαž‰αž€αžΆαžšαž†αŸ’αž›αžΎαž™αžαž”αŸ”
αžαžΆαž˜αž–αž·αžαž“αŸαŸ‡αž‚αžΊαž‡αžΆαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸƒαž”αŸ’αžšαž–αŸαž“αŸ’αž’

αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš , αž†αŸ’αž›αž„αž€αžΆαžαŸ‹ / αž”αžšαžΆαž‡αŸαž™ / αžŸαžšαž»αž” - αž›αŸαž
αž‡αŸ„αž‚αž‡αŸαž™ αž˜αž·αž“αž‡αŸ„αž‚αž‡αŸαž™ αž“αž·αž„αž…αŸ†αž“αž½αž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαžŸαžšαž»αž”αŸ”

αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž–αž·αžαž˜αž·αž“αž‡αŸ„αž‚αž‡αŸαž™
αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž–αž·αžαž‡αžΆαž˜αžΆαž“αž“αŸαž™
αž’αžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αž•αŸ’αž‘αž»αž€

αž•αŸ’αž‘αž»αž€αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž

αž‚αŸ„αž›αž‚αŸ†αž“αž·αžαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹ αž αžΎαž™αž˜αžΆαž“αž”αžΈαžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŸαŸ†αžαžΆαž“αŸ‹αŸ— αžŠαŸ‚αž›αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž›αžΎαž€αž‘αžΎαž„αžšαž½αž…αž αžΎαž™αŸ– αžšαŸ€αž”αž…αŸ†-αžŸαžΆαž€αž›αŸ’αž”αž„-αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž“αŸ„αŸ‡αž‚αžΊαž€αžΆαžšαžšαŸ€αž”αž…αŸ†αž‚αŸ„αž›αžŠαŸ…αžŸαžΆαž€αž›αŸ’αž”αž„ αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž—αž–αž•αŸ’αž‘αž»αž€ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž’αž“αž»αžœαžαŸ’αžαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€ αž αžΎαž™αž“αŸ…αž…αž»αž„αž”αž‰αŸ’αž…αž”αŸ‹ αž”αž„αŸ’αž€αžΎαž αž“αž·αž„αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαžŸαžΆαž€αž›αŸ’αž”αž„αŸ”

αž•αŸ’αž‘αž»αž€αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ CI αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ

αž€αŸ†αžŽαžαŸ‹αž…αŸ†αžŽαžΆαŸ†αžαžΆαž˜αž‚αŸ’αžšαŸ„αž„αž€αžΆαžšαžŽαŸαŸ–

  • QA.Tester αž‚αžΊαž‡αžΆαž’αŸ’αž“αž€αž‡αŸ†αž“αžΆαž‰αž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž”αž“αŸ’αž‘αž»αž€
  • αž‚αŸ„αž›αžŠαŸ…αž‚αžΊαž‡αžΆαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž‚αŸ„αž›αžŠαŸ…αžŠαŸ‚αž›αž’αŸ’αž“αž€αž…αž„αŸ‹αžŠαžΉαž„αž–αžΈαž’αžΆαž€αž”αŸ’αž”αž€αž·αžšαž·αž™αžΆαžšαž”αžŸαŸ‹αžœαžΆαž“αŸ…αž€αŸ’αžšαŸ„αž˜αž€αžΆαžšαž•αŸ’αž‘αž»αž€αŸ”

αž€αžΆαžšαž…αžΆαžαŸ‹αžαŸ’αž“αžΆαž€αŸ‹αž“αŸƒαž’αž„αŸ’αž‚αž—αžΆαž– αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž› αž“αž·αž„αž‡αŸ†αž αžΆαž“αž€αŸ’αž“αž»αž„αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜

αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž“αž·αž„αž‡αŸ†αž αžΆαž“
αžαžΎβ€‹αž˜αžΆαž“β€‹αžšαžΏαž„β€‹αž’αŸ’αžœαžΈβ€‹αž€αžΎαžαž‘αžΎαž„
αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž“αŸ…αž…αŸ’αžšαž€αž…αžΌαž›
αžαžΎαž’αŸ’αžœαžΈαž‡αžΆαž‘αž·αž“αŸ’αž“αž•αž›

αž€αžΆαžšαžšαŸ€αž”αž…αŸ†αŸ– αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžαŸ’αžšαŸ€αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž

αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž•αŸ’αž‘αž»αž€
αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž“αž·αž„αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜
αž’αŸ’αž“αž€β€‹αž”αŸ’αžšαžΎ
αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž•αŸ’αž‘αž»αž€,
αž‡αž˜αŸ’αžšαžΎαžŸαž“αŸƒαž˜αŸ‰αŸ‚αžαŸ’αžšαž“αž·αž„
αž€αžΆαžšαžšαŸ€αž”αž…αŸ†αž•αŸ‚αž“αž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„
(αž•αŸ’αž‘αž»αž€αž‘αž˜αŸ’αžšαž„αŸ‹)
αž‡αž˜αŸ’αžšαžΎαžŸαž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹
αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž•αŸ’αž‘αž»αž€αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš
αž•αŸ‚αž“αž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„
αž‚αŸ„αž›αž”αŸ†αžŽαž„αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž

VM
αž€αžΆαžšαžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž›αžΎαž–αž–αž€
αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž“αž·αž˜αŸ’αž˜αž·αžαž‡αžΆαž˜αž½αž™
αž›αž€αŸ’αžαžŽαŸˆαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžš
αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ VM αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€
αžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹
αž€αžΆαžšαž”αž„αŸ’αž€αžΎαž VM
VM αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„
αž–αž–αž€

αž’αŸαž“
αž€αžΆαžšαžšαŸ€αž”αž…αŸ† αž“αž·αž„αžšαŸ€αž”αž…αŸ†αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš
αž”αžšαž·αžŸαŸ’αžαžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹
αž•αŸ’αž‘αž»αž€αž€αžΆαžšαž„αžΆαžšαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš
αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž”αžšαž·αžŸαŸ’αžαžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹
αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€
αžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹
αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž”αžšαž·αžŸαŸ’αžαžΆαž“
αž”αžšαž·αžŸαŸ’αžαžΆαž“αž”αžΆαž“αžšαŸ€αž”αž…αŸ†αŸ–
αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžš αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ αž“αž·αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ
αž…αžΆαŸ†αž”αžΆαž…αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž„αžΆαžš
αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€

αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€
αž€αžΆαžšαžŠαŸ†αž‘αžΎαž„ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ αž“αž·αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹
αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€αŸ”
αž¬αž‘αžΆαž‰αž™αž€αžšαžΌαž”αž—αžΆαž– docker αž–αžΈ
αž”αŸ’αžšαž—αž–αž•αŸ’αž‘αž»αž€αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‘αž»αž€αž‡αžΆαž˜αž»αž“
αž•αŸ’αž‘αž»αž€αžšαžΌαž”αž—αžΆαž– docker αž”αŸ’αžšαž—αž–
(YAT, JM αž¬αž€αŸ’αžšαž”αžαžŽαŸ’αžŒαžŸαžšαžŸαŸαžšαžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„)
αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹
αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€
αžšαŸ€αž”αž…αŸ† αž“αž·αž„αžšαŸ€αž”αž…αŸ†
αžŠαžΎαž˜αŸ’αž”αžΈαž’αŸ’αžœαžΎαž€αžΆαžšαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€

αžαŸαžŸαŸ’αžαŸˆ αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž“αŸƒαž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αŸ” αž”αŸ’αžšαž—αž–αž‚αžΊαž‡αžΆαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€αžŠαŸ‚αž›αž”αžΆαž“αžŠαžΆαž€αŸ‹αž–αž„αŸ’αžšαžΆαž™αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž‡αžΆαž€αŸ‹αž›αžΆαž€αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ GitLab CI

αž•αŸ’αž‘αž»αž€
αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€
αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž•αŸ‚αž“αž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„αžŠαŸ‚αž›αž”αžΆαž“αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸ
αž“αž·αž„αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž•αŸ’αž‘αž»αž€
αž‡αž˜αŸ’αžšαžΎαžŸαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹
αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜
αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€
αž•αŸ‚αž“αž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„
αž‚αŸ„αž›αž”αŸ†αžŽαž„αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž
αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·
αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€
αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž”αŸ’αžšαž–αŸαž“αŸ’αž’
αžαžΆαž˜αžœαž“αŸ’αžαž“αŸƒαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž€αŸ’αž“αž»αž„αžšαž„αŸ’αžœαžΆαžŸαŸ‹αž‚αŸ„αž›αžŠαŸ… αž“αž·αž„αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€

αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš
αž€αžΆαžšαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš
αž•αŸ’αž‘αž»αž€αžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŸαžΆαž€αž›αŸ’αž”αž„
αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αž’αž“αž»αž›αŸ„αž˜β€‹αžαžΆαž˜
αž•αŸ’αž‘αž»αž€αž‘αž˜αŸ’αžšαž„αŸ‹
αž•αŸ’αž‘αž»αž€αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš
αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‚αŸ„αž›αž”αŸ†αžŽαž„αžŸαžΆαž€αž›αŸ’αž”αž„
αž•αŸ‚αž“αž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„
αž‚αŸ„αž›αž”αŸ†αžŽαž„αž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž

αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»
αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αž€αŸ†αžŽαžαŸ‹αž αŸαžαž» "αž†αŸ…"
αž€αŸ†αž‘αž»αž„αž–αŸαž›αž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αŸ–
αž•αŸ’αž‘αž»αž€αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš,
αžŸαŸ’αžαžΆαž“αž—αžΆαž–αž“αŸƒαž‚αŸ„αž›αžŠαŸ…αžŸαžΆαž€αž›αŸ’αž”αž„
αž“αž·αž„ VM αžŠαŸ‚αž›αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš

αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·
αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€
αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž”αŸ’αžšαž–αŸαž“αŸ’αž’

αž˜αŸ‰αŸ‚αžαŸ’αžš
αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›αžšαž„αŸ’αžœαžΆαžŸαŸ‹ "αž†αŸ…" αž€αŸ†αž‘αž»αž„αž–αŸαž›αž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž

αžαžΆαž˜αžœαž“αŸ’αžαž“αŸƒαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž“αŸ…αž€αŸ’αž“αž»αž„αžšαž„αŸ’αžœαžΆαžŸαŸ‹αž‚αŸ„αž›αžŠαŸ…
αž“αž·αž„αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€

αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαŸ– αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžšαŸ€αž”αž…αŸ†αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαžŸαžΆαž€αž›αŸ’αž”αž„

αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž—αŸ’αž›αžΎαž„
αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαž˜αžΌαž›
αž”αŸ’αžšαž–αŸαž“αŸ’αž’αž•αŸ’αž‘αž»αž€αž“αž·αž„
αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™ "αž†αŸ…"
αž˜αŸ‰αŸ‚αžαŸ’αžšαž“αž·αž„αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»
αž€αžΆαžšαž”αž„αŸ’αž€αžΎαžαžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž“αŸ…αž€αŸ’αž“αž»αž„
αž‘αž˜αŸ’αžšαž„αŸ‹αžŠαŸ‚αž›αž’αžΆαž…αž’αžΆαž“αž”αžΆαž“αžšαž”αžŸαŸ‹αž˜αž“αž»αžŸαŸ’αžŸ
αž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αž‡αžΆαž˜αž½αž™αž’αžΆαžαž»
αž’αŸ’αž“αž€αžœαž·αž—αžΆαž‚
αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·
αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€
αž€αŸ†αžŽαžαŸ‹αž αŸαžαž»αž”αŸ’αžšαž–αŸαž“αŸ’αž’
αžαžΆαž˜αžœαž“αŸ’αžαž“αŸƒαž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ‰αŸ‚αžαŸ’αžš
αž‚αŸ„αž›αžŠαŸ…αž“αž·αž„αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€
αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž αŸαžαž» "αž†αŸ…"
αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αžŸαž˜αžšαž˜αŸ’αž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹
αž•αŸ’αž‘αž»αž€αž‘αžΎαž„αž‘αŸ…αž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€αžαžΆαž„αž€αŸ’αžšαŸ…
αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž•αŸ’αž‘αž»αž€αž‹αž·αžαž·αžœαž“αŸ’αž,
αž˜αž“αž»αžŸαŸ’αžŸαž’αžΆαž…αž’αžΆαž“αž”αžΆαž“αŸ”

αž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž•αŸ’αžŸαžΆαž™
αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸ
αž’αŸ†αž–αžΈαž”αž“αŸ’αž‘αž»αž€
αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžαžΆαž„αž€αŸ’αžšαŸ…
αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αŸ”
αž€αŸ‚αž…αŸ’αž“αŸƒ "αž†αŸ…"
αž€αžαŸ‹αžαŸ’αžšαžΆαž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αžŸαž˜αžšαž˜αŸ’αž™
αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž•αŸ’αž‘αž»αž€αž‘αŸ…αžαžΆαž„αž€αŸ’αžšαŸ…
αžƒαŸ’αž›αžΆαŸ†αž„
αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αžšαŸ…
αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž•αŸ’αž‘αž»αž€αž“αŸ…αž›αžΎ
αž•αŸ’αž‘αž»αž€, αžŸαž˜αžšαž˜αŸ’αž™
αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžœαž·αž—αžΆαž‚αžšαž”αžŸαŸ‹αž˜αž“αž»αžŸαŸ’αžŸ

αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž”αŸ’αžšαž—αž–αž•αŸ’αž‘αž»αž€αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αŸ†αžšαžΌ CI

αž…αžΌαžšαž”αž“αŸ’αžαž‘αŸ…αž•αŸ’αž“αŸ‚αž€αž‡αžΆαž€αŸ‹αžŸαŸ’αžαŸ‚αž„αŸ” αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž”αž„αŸ’αž αžΆαž‰αž–αžΈαžšαž”αŸ€αž”αž›αžΎαž‚αž˜αŸ’αžšαŸ„αž„αž˜αž½αž™αž…αŸ†αž“αž½αž“αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“ αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαžœαž·αž‡αŸ’αž‡αž˜αžΆαž“ αž™αžΎαž„αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž‚αŸ†αž“αž·αžαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž˜αž½αž™αŸ”

αž‡αžΆαžŠαŸ†αž”αžΌαž„ αžŠαŸ„αž™αž˜αžΆαž“αž‡αŸ†αž“αž½αž™αž–αžΈαžœαž·αžŸαŸ’αžœαž€αžš DevOps αžšαž”αžŸαŸ‹αž™αžΎαž„ αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž€αŸ’αžšαž»αž˜αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž–αž·αžŸαŸαžŸαž˜αž½αž™αž“αŸ…αž€αŸ’αž“αž»αž„ GitLab CI αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž€αž»αŸ†αž±αŸ’αž™αž…αŸ’αžšαž‘αŸ†αž–αž½αž€αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž‚αŸ†αžšαžΌαž‡αžΆαž˜αž½αž™αž’αŸ’αž“αž€αžŠαž‘αŸƒ αžŠαžΌαž…αž‡αžΆαž’αžΆαž„αž”αŸ’αžšαž˜αžΌαž›αž•αŸ’αžαž»αŸ† αž™αžΎαž„αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŸαŸ’αž›αžΆαž€αž‘αŸ…αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž‘αžΆαŸ†αž„αž“αŸαŸ‡αŸ” αžŸαŸ’αž›αžΆαž€: αž•αŸ’αž‘αž»αž€αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž”αŸ’αžšαžΎαžŸαŸ’αž›αžΆαž€αžŠαŸ‚αž›αž’αžΆαž…αž™αž›αŸ‹αž”αžΆαž“αž•αŸ’αžŸαŸαž„αž‘αŸ€αžαŸ” αž–αž½αž€αž‚αŸαžŸαž½αžš αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž…αž»αŸ‡αžˆαŸ’αž˜αŸ„αŸ‡ αž’αŸ’αž“αž€αžšαžαŸ‹ GitLab CI αŸ”

αžαžΎαž’αŸ’αžœαžΎαžŠαžΌαž…αž˜αŸ’αžαŸαž…αžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αžœαŸ‚αž„αžšαž€αžαžΆαž˜αž–αž›αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž€αžΆαžšαžŠαŸ„αž™αž•αŸ’αž“αŸ‚αž€αžšαžΉαž„? αž›αž€αŸ’αžαžŽαŸˆαž“αŸƒαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€ - αž…αŸ†αž“αž½αž“αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαžΆαž“αŸ‹αž“αŸƒ vCPU, RAM αž“αž·αž„ Disk - αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžŽαž“αžΆαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž€αžΆαžšαž–αž·αžαžŠαŸ‚αž›αžαžΆ Docker, Python (αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Yandex.Tank), αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš GitLab CI, Java (αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Apache JMeter) αž‚αž½αžšαžαŸ‚αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž›αžΎαž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžš . αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Java αž€αŸ’αžšαŸ„αž˜ JMeter αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž•αž„αžŠαŸ‚αžšαž±αŸ’αž™αž”αŸ’αžšαžΎ RAM αž’αž”αŸ’αž”αž”αžšαž˜αžΆ 512 MB αž αžΎαž™αž‡αžΆαžŠαŸ‚αž“αž€αŸ†αžŽαžαŸ‹αžαžΆαž„αž›αžΎαŸ” 80% αž’αž„αŸ’αž‚αž…αž„αž…αžΆαŸ†αžŠαŸ‚αž›αž’αžΆαž…αž”αŸ’αžšαžΎαž”αžΆαž“.

αžŠαžΌαž…αŸ’αž“αŸαŸ‡ αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž”αž‘αž–αž·αžŸαŸ„αž’αž“αŸαžšαž”αžŸαŸ‹αž™αžΎαž„ αž™αžΎαž„αžŸαžΌαž˜αžŽαŸ‚αž“αžΆαŸ†αž±αŸ’αž™αž”αŸ’αžšαžΎ vCPU αž™αŸ‰αžΆαž„αž αŸ„αž…αžŽαžΆαžŸαŸ‹ 4, RAM 4 GB, 60 GB SSD αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€αŸ” αž›αŸ†αž αžΌαžšαž“αŸƒαž€αžΆαžαž”αžŽαŸ’αžαžΆαž‰αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαžαž˜αŸ’αžšαžΌαžœαž€αžΆαžšαž“αŸƒαž‘αž˜αŸ’αžšαž„αŸ‹αž•αŸ’αž‘αž»αž€αŸ”

αž™αžΎαž„αž”αŸ’αžšαžΎαž”αŸ’αžšαž—αž–αž•αŸ’αž‘αž»αž€αž–αžΈαžšαž‡αžΆαž…αž˜αŸ’αž”αž„ - Apache JMeter αž“αž·αž„ Yandex.Tank docker αžšαžΌαž”αž—αžΆαž–αŸ”

αž’αž»αž„ Yandex αž‚αžΊαž‡αžΆαž§αž”αž€αžšαžŽαŸαž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž αž–αžΈ Yandex αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αŸ” αžŸαŸ’αžαžΆαž”αžαŸ’αž™αž€αž˜αŸ’αž˜β€‹αž˜αŸ‰αžΌαžŒαž»αž›β€‹αžšαž”αžŸαŸ‹β€‹αžœαžΆβ€‹αž‚αžΊβ€‹αž•αŸ’αž’αŸ‚αž€β€‹αž›αžΎβ€‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αžŸαŸ†αžŽαžΎ HTTP αžŠαŸ‚αž›β€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšβ€‹αžŠαŸ„αž™β€‹αž’αžŸαž˜αž€αžΆαž›β€‹αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αž”αŸ’αžšαžŸαž·αž‘αŸ’αž’αž—αžΆαž–β€‹αžαŸ’αž–αžŸαŸ‹β€‹αžšαž”αžŸαŸ‹ PhantomαŸ” αž’αž»αž„αž˜αžΆαž“αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž’αž“αž’αžΆαž“αžšαž”αžŸαŸ‹αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžαžΆαž˜αžšαž™αŸˆαž–αž·αž’αžΈαž€αžΆαžš SSH αž’αžΆαž…αž”αž‰αŸ’αžˆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αŸ’αžšαŸ„αž˜αž›αž€αŸ’αžαžαžŽαŸ’αžŒαžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ αž’αžΆαž…αž”αž„αŸ’αž αžΆαž‰αž›αž‘αŸ’αž’αž•αž›αž‘αžΆαŸ†αž„αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž»αž„αžŸαžΌαž› αž“αž·αž„αž€αŸ’αž“αž»αž„αž‘αž˜αŸ’αžšαž„αŸ‹αž€αŸ’αžšαžΆαž αŸ’αžœ αž’αŸ’αž“αž€αž’αžΆαž…αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αŸ‰αžΌαžŒαž»αž›αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž‘αŸ…αžœαžΆαžŠαžΎαž˜αŸ’αž”αžΈαž–αž„αŸ’αžšαžΈαž€αž˜αž»αžαž„αžΆαžšαŸ” αžŠαŸ„αž™αžœαž·αž’αžΈαž“αŸαŸ‡ αž™αžΎαž„αž”αžΆαž“αž”αŸ’αžšαžΎαž’αž»αž„ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αžœαžΆαž˜αž·αž“αž‘αžΆαž“αŸ‹αž‡αžΆαž…αžšαž“αŸ’αžαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘ "αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜αžŸαžΆαž€αž›αŸ’αž”αž„ Yandex.Tank αž“αž·αž„αž•αŸ’αž‘αž»αž€Β» αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αž’αžΆαž“β€‹αžšαžΏαž„β€‹αž“αŸƒβ€‹αžšαž”αŸ€αž”β€‹αžŠαŸ‚αž›β€‹αž™αžΎαž„β€‹αž”αžΆαž“β€‹αž’αŸ’αžœαžΎβ€‹αžαŸαžŸαŸ’αžβ€‹αž•αŸ’αž‘αž»αž€β€‹αž‡αžΆαž˜αž½αž™β€‹αžœαžΆβ€‹αž€αŸ’αž“αž»αž„β€‹αž†αŸ’αž“αžΆαŸ† 2013 αž‡αž‰αŸ’αž‡αžΆαŸ†αž„αž—αŸ’αž›αžΎαž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ PT αž‚αžΊαž‡αžΆαž•αž›αž·αžαž•αž›αž˜αž½αž™αžšαž”αžŸαŸ‹αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αž™αžΎαž„αžαŸ’αž‰αž»αŸ†αŸ”

αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Apache JMeter αž‚αžΊαž‡αžΆαž§αž”αž€αžšαžŽαŸαžŸαžΆαž€αž›αŸ’αž”αž„αž•αŸ’αž‘αž»αž€αž”αŸ’αžšαž—αž–αž”αžΎαž€αž…αŸ†αž αž–αžΈ 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 αž™αŸ‰αžΆαž„αžŸαž€αž˜αŸ’αž˜αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž—αžΆαž–αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž“αŸƒαž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžšαž”αžŸαŸ‹αž™αžΎαž„ αžŠαžΎαž˜αŸ’αž”αžΈαžŸαž˜αžαŸ’αžαž—αžΆαž–αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αžŸαžΆαž€αž›αŸ’αž”αž„αžαŸ’αž›αž½αž“αž―αž„αž€αŸ’αž“αž»αž„αž€αžΆαžšαž•αŸ’αž›αžΆαžŸαŸ‹αž”αŸ’αžαžΌαžš αž“αž·αž„αž”αž“αŸ’αžαŸ‚αž˜αž”αžšαž·αž™αžΆαž€αžΆαžŸ αž™αžΎαž„αž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαžšαžΌαž”αž—αžΆαž– docker αž“αŸƒαž”αŸ’αžšαž—αž–αž•αŸ’αž‘αž»αž€αž“αŸ…αž›αžΎ GitLab CI αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αž‘αŸ…αž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž€αŸ’αž“αž»αž„αŸ” αž€αžΆαžšαž…αž»αŸ‡αž”αž‰αŸ’αž‡αžΈ docker αž“αŸ… Artifactory. αž“αŸαŸ‡αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž›αžΏαž“ αž“αž·αž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αž€αŸ’αž“αž»αž„αž€αžΆαžšαž—αŸ’αž‡αžΆαž”αŸ‹αž–αž½αž€αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž”αŸ†αž–αž„αŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αŸ” αžšαž”αŸ€αž”αž’αŸ’αžœαžΎ Docker αžšαž»αž‰αž‘αŸ…αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡αžαžΆαž˜αžšαž™αŸˆ GitLab CI - αžŸαžΌαž˜αž˜αžΎαž› αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†.

αž™αžΎαž„αž”αžΆαž“αž™αž€αž―αž€αžŸαžΆαžš docker αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž“αŸαŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Yandex.TankαŸ–

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

αž αžΎαž™αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Apache JMeter αž˜αž½αž™αž“αŸαŸ‡αŸ–

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

αž’αŸ’αž“αž€αž’αžΆαž…αž’αžΆαž“αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‡αžΆαž”αž“αŸ’αžαž”αž“αŸ’αž‘αžΆαž”αŸ‹αžšαž”αžŸαŸ‹αž™αžΎαž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘ "αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜αž“αŸƒαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαŸ– αžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž’αž“αž»αžœαžαŸ’αžαž‚αŸ†αž“αž·αž DevOps αž“αŸ…αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαžœαž·αž‡αŸ’αž‡αž˜αžΆαž“"αŸ”

αž‚αŸ†αžšαžΌαž“αž·αž„αž”αŸ†αž–αž„αŸ‹

αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαž‚αŸ†αžšαžΌαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αž˜αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αž˜αŸ’αžšαŸ„αž„ αž”αž“αŸ’αž‘αž»αž€αžŸαžΆαž€αž›αŸ’αž”αž„αŸ” αž“αŸαŸ‡ αž―αž€αžŸαžΆαžš readme αž’αŸ’αž“αž€αž’αžΆαž…αž’αžΆαž“αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž‚αŸ†αžšαžΌαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž‚αŸ†αžšαžΌαžαŸ’αž›αž½αž“αžœαžΆ (αž―αž€αžŸαžΆαžš .gitlab-ci.yml) αž˜αžΆαž“αž€αŸ†αžŽαžαŸ‹αž…αŸ†αžŽαžΆαŸ†αž’αŸ†αž–αžΈαž’αŸ’αžœαžΈαžŠαŸ‚αž›αž‡αŸ†αž αžΆαž“αž“αžΈαž˜αž½αž™αŸ—αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαŸ”

αž‚αŸ†αžšαžΌαž“αŸαŸ‡αž‚αžΊαžŸαžΆαž˜αž‰αŸ’αž‰αžŽαžΆαžŸαŸ‹ αž αžΎαž™αž”αž„αŸ’αž αžΆαž‰αž–αžΈαžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž‘αžΆαŸ†αž„αž”αžΈαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž”αž“αŸ’αž‘αž»αž€αžŠαŸ‚αž›αž”αžΆαž“αž–αž·αž–αžŽαŸŒαž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αžŠαŸ’αž™αžΆαž€αŸ’αžšαžΆαž˜αžαžΆαž„αž›αžΎαŸ– αž€αžΆαžšαžšαŸ€αž”αž…αŸ† αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž αž“αž·αž„αž€αžΆαžšαž”αŸ„αŸ‡αž–αž»αž˜αŸ’αž–αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαŸ” αž‘αž‘αž½αž›αžαž»αžŸαžαŸ’αžšαžΌαžœαž…αŸ†αž–αŸ„αŸ‡αžšαžΏαž„αž“αŸαŸ‡ αž€αž˜αŸ’αž˜αžŸαž·αž€αŸ’αžŸαžΆ: αžšαŸ€αž”αž…αŸ† αžŸαžΆαž€αž›αŸ’αž”αž„ αž“αž·αž„αžšαžΆαž™αž€αžΆαžšαžŽαŸ.

  1. αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž› αžšαŸ€αž”αž…αŸ† αž‚αž½αžšαžαŸ‚αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž‚αŸ„αž›αžŠαŸ…αžŸαžΆαž€αž›αŸ’αž”αž„αž‡αžΆαž˜αž»αž“ αž¬αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αž—αžΆαž–αž’αžΆαž…αžšαž€αž”αžΆαž“αžšαž”αžŸαŸ‹αžœαžΆαŸ” αž”αžšαž·αžŸαŸ’αžαžΆαž“αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž—αž–αž•αŸ’αž‘αž»αž€αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž‘αŸ αž–αž½αž€αž‚αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‡αžΆαž˜αž»αž“αž‡αžΆαžšαžΌαž”αž—αžΆαž– docker αž αžΎαž™αž”αž„αŸ’αž αŸ„αŸ‡αž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈαžˆαŸ’αž˜αŸ„αŸ‡ dockerαŸ– αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž€αŸ†αžŽαŸ‚αžŠαŸ‚αž›αž…αž„αŸ‹αž”αžΆαž“αž“αŸ…αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŸαžΆαž€αž›αŸ’αž”αž„αŸ” αž”αŸ‰αž»αž“αŸ’αžαŸ‚β€‹αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αžœαžΆβ€‹αž‘αžΎαž„β€‹αžœαž·αž‰ αž“αž·αž„β€‹αž”αž„αŸ’αž€αžΎαžβ€‹αžšαžΌαž”αž—αžΆαž–β€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αž€αŸ‚αž”αŸ’αžšαŸ‚β€‹αžŠαŸ„αž™β€‹αžαŸ’αž›αž½αž“αž―αž„αŸ”
  2. αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž› αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž”αŸ’αžšαž—αž–αž•αŸ’αž‘αž»αž€ αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžαŸαžŸαŸ’αž αž“αž·αž„αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžœαžαŸ’αžαž»αž”αž»αžšαžΆαžŽαžŸαžΆαž€αž›αŸ’αž”αž„αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž”αŸ’αžšαž—αž–αž•αŸ’αž‘αž»αž€αžŽαžΆαž˜αž½αž™αŸ– Yandex.Tank, Apache JMeter, αž•αŸ’αž‘αžΆαž›αŸ‹αžαŸ’αž›αž½αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€ αž¬αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž‚αŸ’αž“αžΆαŸ” αžŠαžΎαž˜αŸ’αž”αžΈαž”αž·αž‘αž”αŸ’αžšαž—αž–αžŠαŸ‚αž›αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹ αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž”αž‰αŸ’αž…αŸαž‰αž˜αžαž· αž¬αž›αž»αž”αž€αžΆαžšαž„αžΆαžšαž“αŸ„αŸ‡αŸ” αž…αŸ†αžŽαž»αž…αž…αžΌαž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž—αž–αž•αŸ’αž‘αž»αž€αŸ–
    • αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Yandex.Tank αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ ./tests/yandextank.sh,
    • αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ Apache JMeter αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš ./tests/jmeter.sh.

    αž…αŸ†αžŽαžΆαŸ†αŸ– αž‚αŸ†αžšαžΌαž“αŸƒαž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž€αžΆαžšαž‡αž½αž”αž”αŸ’αžšαž‡αž»αŸ†αž‚αŸ’αž“αžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžŠαžΎαž˜αŸ’αž”αžΈαžšαŸ€αž”αž…αŸ†αž’αž“αŸ’αžαžšαž€αž˜αŸ’αž˜αž‡αžΆαž˜αž½αž™αž”αŸ’αžšαž–αŸαž“αŸ’αž’ CI αž“αž·αž„αž˜αž·αž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž–αžΈαž€αžΆαžšαžŠαžΆαž€αŸ‹αžαž€αŸ’αž€αžœαž·αž‡αŸ’αž‡αžΆαžŸαžΆαž€αž›αŸ’αž”αž„αž“αŸ…αž€αŸ’αž“αž»αž„αžœαžΆαž‘αŸαŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž αž…αŸ†αžŽαž»αž…αž…αžΌαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ αž‡αžΆαž€αž“αŸ’αž›αŸ‚αž„αžŠαŸ‚αž›αžŸαŸ’αž‚αŸ’αžšαžΈαž” bash αž”αž‰αŸ’αž‡αžΆαžŸαŸ’αžαž·αžαž“αŸ…αŸ” αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαž“αŸƒαž€αžΆαžšαžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αž αž”αž„αŸ’αž€αžΎαžαžšαž”αžΆαž™αž€αžΆαžšαžŽαŸ αž“αž·αž„αžŸαŸ’αž‚αŸ’αžšαžΈαž”αžŸαžΆαž€αž›αŸ’αž”αž„αžαŸ’αž›αž½αž“αž―αž„αžαŸ’αžšαžΌαžœαžαŸ‚αž’αž“αž»αžœαžαŸ’αžαžŠαŸ„αž™αžœαž·αžŸαŸ’αžœαž€αžš QA αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž„αŸ’αž αžΆαž‰ αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αŸ’αžšαž—αž–αž•αŸ’αž‘αž»αž€αž‘αžΆαŸ†αž„αž–αžΈαžš αžŸαŸ†αžŽαžΎαž‘αŸ†αž–αŸαžšαž˜αŸ Yandex αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαž‡αžΆαž€αžΆαžšαžŸαžΆαž€αž›αŸ’αž”αž„αžŸαžΆαž˜αž‰αŸ’αž‰αž”αŸ†αž•αž»αžαŸ” αžŸαŸ’αž‚αŸ’αžšαžΈαž” αž“αž·αž„β€‹αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšβ€‹αžŸαžΆαž€αž›αŸ’αž”αž„β€‹αž˜αžΆαž“β€‹αž“αŸ…β€‹αž€αŸ’αž“αž»αž„β€‹αžαž ./tests.

  3. αž“αŸ…αž†αžΆαž€ αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸ αž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž–αžŽαŸŒαž“αžΆαž’αŸ†αž–αžΈαžšαž”αŸ€αž”αž”αŸ„αŸ‡αž•αŸ’αžŸαžΆαž™αž›αž‘αŸ’αž’αž•αž›αžαŸαžŸαŸ’αžαžŠαŸ‚αž›αž‘αž‘αž½αž›αž”αžΆαž“αž“αŸ…αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŸαžΆαž€αž›αŸ’αž”αž„αž‘αŸ…αž€αžΆαž“αŸ‹αž€αž“αŸ’αž›αŸ‚αž„αž•αŸ’αž‘αž»αž€αžαžΆαž„αž€αŸ’αžšαŸ… αž§αž‘αžΆαž αžšαžŽαŸαž‘αŸ…αž€αžΆαž“αŸ‹ GitLab Pages αž¬αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαžΆαž™αž€αžΆαžšαžŽαŸαž–αž·αžŸαŸαžŸαŸ” αž‘αŸ†αž–αŸαžš GitLab αžαž˜αŸ’αžšαžΌαžœαž±αŸ’αž™αžαžαž―αž€αžŸαžΆαžš ./public αž˜αž·αž“αž‘αž‘αŸ αž“αž·αž„αž˜αžΆαž“αž―αž€αžŸαžΆαžš index.html αž™αŸ‰αžΆαž„αžαž·αž…αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž”αžΆαž“αž”αž‰αŸ’αž…αž”αŸ‹αŸ” αž’αŸ’αž“αž€αž’αžΆαž…αž’αžΆαž“αž’αŸ†αž–αžΈαž—αžΆαž–αžαž»αžŸαž‚αŸ’αž“αžΆαž“αŸƒαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ GitLab Pages αŸ” αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹.

    αž§αž‘αžΆαž αžšαžŽαŸαž“αŸƒαžšαž”αŸ€αž”αž“αžΆαŸ†αž…αŸαž‰αž‘αž·αž“αŸ’αž“αž“αŸαž™αŸ–

    αž€αžΆαžšαž”αž„αŸ’αž αŸ„αŸ‡αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αž’αŸ†αž–αžΈαž€αžΆαžšαžŠαŸ†αž‘αžΎαž„αŸ–

αž“αŸ…αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαžŸαžΆαž€αž›αŸ’αž”αž„ αž”αŸ†αž–αž„αŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€ αž“αž·αž„αž”αŸ’αžšαž—αž–αž•αŸ’αž‘αž»αž€αž–αžΈαžš (αž’αŸ’αž“αž€αž’αžΆαž…αž”αž·αž‘αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžŠαŸ‚αž›αž˜αž·αž“αž…αžΆαŸ†αž”αžΆαž…αŸ‹) αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡αŸ–

αž•αŸ’αž‘αž»αž€αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ CI αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ

Apache JMeter αž’αžΆαž…αž”αž„αŸ’αž€αžΎαžαžšαž”αžΆαž™αž€αžΆαžšαžŽαŸ HTML αžŠαŸ„αž™αžαŸ’αž›αž½αž“αž―αž„ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαž€αžΆαž“αŸ‹αžαŸ‚αž…αŸ†αžŽαŸαž‰αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž‘αž»αž€αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ GitLab Pages αžŠαŸ„αž™αž”αŸ’αžšαžΎαž§αž”αž€αžšαžŽαŸαžŸαŸ’αžαž„αŸ‹αžŠαžΆαžšαŸ” αž“αŸαŸ‡αž‡αžΆαžšαž”αŸ€αž”αžŠαŸ‚αž›αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸ Apache JMeter αž˜αžΎαž›αž‘αŸ…αžŠαžΌαž…αž“αŸαŸ‡αŸ–

αž•αŸ’αž‘αž»αž€αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ CI αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ

αž“αŸ…αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαžŸαžΆαž€αž›αŸ’αž”αž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ Yandex.Tank αž’αŸ’αž“αž€αž“αžΉαž„αžƒαžΎαž‰αžαŸ‚αž”αŸ‰αž»αžŽαŸ’αžŽαŸ„αŸ‡ αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž’αžαŸ’αžαž”αž‘αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™ αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž“αŸ‚αž€αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‘αŸ†αž–αŸαžš GitLab αŸ” αž€αŸ†αž‘αž»αž„αž–αŸαž›αžŸαžΆαž€αž›αŸ’αž”αž„ αž’αž»αž„αž’αžΆαž…αžšαž€αŸ’αžŸαžΆαž‘αž»αž€αž›αž‘αŸ’αž’αž•αž›αž‘αŸ…αž€αŸ’αž“αž»αž„αž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž‘αž·αž“αŸ’αž“αž“αŸαž™ InfluxDB αž αžΎαž™αž–αžΈαž‘αžΈαž“αŸ„αŸ‡αž–αž½αž€αžœαžΆαž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸαž€αŸ’αž“αž»αž„ Grafana (αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαžšαž½αž…αž“αŸ…αž€αŸ’αž“αž»αž„αž―αž€αžŸαžΆαžš ./tests/example-yandextank-test.yml) αž“αŸαŸ‡αž‡αžΆαžšαž”αŸ€αž”αžŠαŸ‚αž›αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαžšαž”αžŸαŸ‹ Tank αž˜αžΎαž›αž‘αŸ…αž€αŸ’αž“αž»αž„ GrafanaαŸ–

αž•αŸ’αž‘αž»αž€αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜ CI αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž’αŸ’αž“αž€αž’αž—αž·αžœαžŒαŸ’αžαž“αŸ

αžŸαž„αŸ’αžαŸαž”

αž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αžαŸ’αž‰αž»αŸ†αž”αžΆαž“αž“αž·αž™αžΆαž™αž’αŸ†αž–αžΈαž‚αŸ†αž“αž·αžαž“αŸƒ "αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜" (αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž•αŸ’αž‘αž»αž€αž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜) αŸ” αž‚αŸ†αž“αž·αžαžŸαŸ†αžαžΆαž“αŸ‹αž‚αžΊαžαŸ’αžšαžΌαžœαž”αŸ’αžšαžΎαž αŸαžŠαŸ’αž‹αžΆαžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸƒαž€αŸ’αžšαž»αž˜αž—αŸ’αž“αžΆαž€αŸ‹αž„αžΆαžšαž•αŸ’αž‘αž»αž€αžŠαŸ‚αž›αž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž‡αžΆαž˜αž»αž“ αžšαžΌαž”αž—αžΆαž– docker αž“αŸƒαž”αŸ’αžšαž—αž–αž•αŸ’αž‘αž»αž€ αž”αŸ’αžšαž–αŸαž“αŸ’αž’αžšαžΆαž™αž€αžΆαžšαžŽαŸ αž“αž·αž„αž”αŸ†αž–αž„αŸ‹αžŠαŸ‚αž›αžšαž½αž˜αž”αž‰αŸ’αž…αžΌαž›αž‚αŸ’αž“αžΆαž–αž½αž€αžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„ GitLab CI αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž‚αŸ†αžšαžΌ .gitlab-ci.yml αžŸαžΆαž˜αž‰αŸ’αž‰ (αž§αž‘αžΆαž αžšαžŽαŸ αžαŸ†αžŽαž—αŸ’αž‡αžΆαž”αŸ‹) αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαžŠαŸ„αž™αž€αŸ’αžšαž»αž˜αžœαž·αžŸαŸ’αžœαž€αžšαžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž·αž€αž˜αŸ’αž˜αžαžΌαž…αž˜αž½αž™ αž αžΎαž™αž…αž˜αŸ’αž›αž„αžαžΆαž˜αžŸαŸ†αžŽαžΎαžšαž”αžŸαŸ‹αž€αŸ’αžšαž»αž˜αž•αž›αž·αžαž•αž›αŸ” αžαŸ’αž‰αž»αŸ†αžŸαž„αŸ’αžƒαžΉαž˜αžαžΆαžœαžΆαž“αžΉαž„αž‡αž½αž™αž’αŸ’αž“αž€αž€αŸ’αž“αž»αž„αž€αžΆαžšαžšαŸ€αž”αž…αŸ† αž“αž·αž„αž’αž“αž»αžœαžαŸ’αžαž‚αž˜αŸ’αžšαŸ„αž„αžŸαŸ’αžšαžŠαŸ€αž„αž‚αŸ’αž“αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ” αžŸαžΌαž˜αž’αžšαž‚αž»αžŽαž…αŸ†αž–αŸ„αŸ‡αž€αžΆαžšαž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹!

PS αžαŸ’αž‰αž»αŸ†αž…αž„αŸ‹αž“αž·αž™αžΆαž™αž€αžΆαžšαžαŸ’αž›αŸ‚αž„αž’αŸ†αžŽαžšαž‚αž»αžŽαž™αŸ‰αžΆαž„αž‡αŸ’αžšαžΆαž›αž‡αŸ’αžšαŸ…αž…αŸ†αž–αŸ„αŸ‡αžŸαž αžŸαŸαžœαž·αž€αžšαž”αžŸαŸ‹αžαŸ’αž‰αž»αŸ†αž‚αžΊαž›αŸ„αž€ Sergey Kurbanov αž“αž·αž„ Nikolai Yusev αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž‡αŸ†αž“αž½αž™αž”αž…αŸ’αž…αŸαž€αž‘αŸαžŸαž€αŸ’αž“αž»αž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž‚αŸ†αž“αž·αžαž“αŸƒαž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž”αž“αŸ’αž‘αž»αž€αž‡αžΆαžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αž αŸŠαž»αž“αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”

αž’αŸ’αž“αž€αž“αž·αž–αž“αŸ’αž’: Timur Gillmullin - αž’αž“αž»αž”αŸ’αžšαž’αžΆαž“ αž”αŸ’αžšαž’αžΆαž“αž•αŸ’αž“αŸ‚αž€αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆ αž“αž·αž„αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ (DevOps) αž“αŸ…αž”αž…αŸ’αž…αŸαž€αžœαž·αž‘αŸ’αž™αžΆαžœαž·αž‡αŸ’αž‡αž˜αžΆαž“

αž”αŸ’αžšαž—αž–: www.habr.com

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹