{"id":390120,"date":"2024-06-29T09:02:43","date_gmt":"2024-06-29T09:02:43","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=390120"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=390120","title":{"rendered":"<span>Allure. \u0412 \u043f\u043e\u0438\u0441\u043a\u0430\u0445 \u043f\u043e\u0447\u0442\u0438 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e\u0439 TMS<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/94b\/4d3\/7a0\/94b4d37a0f5ddfb8960c4396be50b7eb.png\" alt=\"\u041e\u0444\u0438\u0441 allure :)\" title=\"\u041e\u0444\u0438\u0441 allure :)\" width=\"720\" height=\"1214\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/94b\/4d3\/7a0\/94b4d37a0f5ddfb8960c4396be50b7eb.png\"\/><figcaption>\u041e\u0444\u0438\u0441 allure \ud83d\ude42<\/figcaption><\/figure>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u0442\u0435\u0431\u044f, \u043c\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0440\u0443\u0433! \u0415\u0441\u043b\u0438 \u0442\u044b \u0447\u0438\u0442\u0430\u0435\u0448\u044c \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0435\u0431\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d Allure, \u0438\u043b\u0438 \u0442\u044b \u0445\u043e\u0447\u0435\u0448\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0437\u0432\u0435\u0440\u044c \u0438 \u043a\u0430\u043a \u043e\u043d \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0437 \u043c\u043d\u043e\u0433\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043b\u044f\u0441\u043e\u043a \u0441 \u0431\u0443\u0431\u043d\u043e\u043c. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u0432\u043d\u0435\u0434\u0440\u044f\u043b\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 (\u0438\u043b\u0438 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f) \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0436\u0438\u0437\u043d\u044c \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430\u043c \u043f\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043d\u0435\u043c\u043d\u043e\u0436\u0435\u0447\u043a\u043e \u043b\u0435\u0433\u0447\u0435: \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u0434\u0435\u0442\u0430\u043b\u044f\u0445 \u0441 \u0447\u0435\u0433\u043e \u0432\u0441\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u043e\u0441\u044c, \u043a\u0430\u043a \u0448\u043b\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435, \u0447\u0435\u0440\u0435\u0437 \u0447\u0442\u043e \u043f\u0440\u043e\u0448\u043b\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u0447\u0442\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0438 \u043a\u0443\u0434\u0430 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435. \u0410 \u0432\u0438\u043d\u043e\u0432\u043d\u0438\u043a\u043e\u043c \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u043a\u0430\u043a \u043d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u0441\u0442\u0430\u043b \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u2014 \u0431\u044b\u0432\u0448\u0438\u0439 Allure EE, Allure Server \u0438 \u043d\u044b\u043d\u0435\u0448\u043d\u0438\u0439 <a href=\"https:\/\/qameta.io\/\" rel=\"noopener noreferrer nofollow\">Allure Testops<\/a>.<\/p>\n<h2>\u0410 \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0434\u043e?<\/h2>\n<p>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434 \u044f \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043b\u0441\u044f \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u043c\u0443 \u0438 \u0430\u043c\u0431\u0438\u0446\u0438\u043e\u0437\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0443. \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0431\u044b\u043b\u043e \u0448\u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0438 \u0434\u0432\u0430 QA-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043c\u0435\u043d\u044f. \u041d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u043c \u0441\u0442\u0435\u043a\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0436\u0435 \u0431\u044b\u043b \u0432\u043d\u0435\u0434\u0440\u0435\u043d \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u044f\u0432\u043b\u044f\u043b\u0441\u044f: <\/p>\n<ul>\n<li>\n<p>PHP 7.4 \u0438 framework <a href=\"https:\/\/codeception.com\/\" rel=\"noopener noreferrer nofollow\">Codeception<\/a><\/p>\n<\/li>\n<li>\n<p>Framework <a href=\"https:\/\/aerokube.com\/selenoid\/latest\/\" rel=\"noopener noreferrer nofollow\">Selenoid<\/a> <\/p>\n<\/li>\n<li>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 CI\/CD \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 <a href=\"https:\/\/about.gitlab.com\/\" rel=\"noopener noreferrer nofollow\">Gitlab<\/a><\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u0442\u0447\u0435\u0442\u043e\u0432 \u043a\u0430\u043a \u0442\u0430\u043a\u043e\u0439 \u043d\u0435 \u0431\u044b\u043b\u043e: \u0434\u043b\u044f \u0430\u0432\u0442\u043e \u0442\u0435\u0441\u0442\u043e\u0432 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0432 codeception \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043e\u0442\u0447\u0435\u0442\u043e\u0432 (\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0444\u043b\u0430\u0433\u0430 <a href=\"https:\/\/codeception.com\/docs\/12-ContinuousIntegration#HTML-Reports\" rel=\"noopener noreferrer nofollow\">&#8212;html<\/a> \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0441\u0430\u043c\u0438\u0445 \u0442\u0435\u0441\u0442\u043e\u0432), \u0430 \u0434\u043b\u044f \u0440\u0443\u0447\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u043c\u044b   \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 <a href=\"https:\/\/marketplace.atlassian.com\/apps\/1014681\/zephyr-squad-test-management-for-jira?hosting=cloud&amp;tab=overview\" rel=\"noopener noreferrer nofollow\">TMS Zephyr<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u0432\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u0442\u0447\u0435\u0442\u0430 \u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0440\u0443\u0447\u043d\u044b\u043c\u0438 \u0438 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u0430\u043c\u0438, \u0447\u0442\u043e, \u0441\u0430\u043c\u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u043d\u0435 \u043e\u0447\u0435\u043d\u044c-\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u043e. \u041a\u0440\u043e\u043c\u0435 \u043d\u0435\u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0432 \u0440\u0435\u043f\u043e\u0440\u0442\u0438\u043d\u0433\u0435, \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0432\u0440\u043e\u0434\u0435 &#171;\u0410 \u043a\u0430\u043a \u0436\u0435 \u0441\u043a\u0440\u0435\u0441\u0442\u0438\u0442\u044c \u0435\u0436\u0430 \u0441 \u043f\u043e\u043f\u0443\u0433\u0430\u0435\u043c?&#187; \u041b\u0430\u0434\u043d\u043e, \u0448\u0443\u0447\u0443! &#171;\u0410 \u043a\u0430\u043a \u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442\u0447\u0435\u0442 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0438 \u0440\u0443\u0447\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432?&#187; \u0438\u043b\u0438 &#171;\u043a\u0430\u043a \u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442\u0447\u0435\u0442 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0447\u0435\u0442\u043a\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442 \u0443\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u044b?&#187; \u041e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u044d\u0442\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043e\u0447\u0435\u043d\u044c \u0437\u0430\u0442\u044f\u0433\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0441\u0430\u043c \u0441\u0442\u0435\u043a \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 \u0442\u043e\u0442 \u043f\u0435\u0440\u0438\u043e\u0434 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u0442\u044c \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u043f\u043b\u043e\u0442\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0431\u0430\u0437\u044b \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u043e\u0432, \u043d\u043e \u0432\u043e\u0442 \u043a\u0430\u0441\u0430\u0435\u043c\u043e \u043e\u0442\u0447\u0435\u0442\u043e\u0432 \u0438 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 report-\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438, \u0447\u0442\u043e \u043f\u0440\u0438\u0448\u043b\u0430 \u043f\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u0430\u043c.<\/p>\n<h2>\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u043d\u043e\u043c\u0435\u0440 \u0440\u0430\u0437<\/h2>\n<p>\u0413\u043b\u0430\u0432\u043d\u044b\u043c \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u043b\u0430 \u0443 \u043d\u0430\u0441 \u0432 \u0441\u0442\u0435\u043a\u0435, \u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u044d\u0442\u043e \u0431\u044b\u043b Zephyr, \u0431\u044b\u043b\u0430 \u0433\u043b\u0443\u0431\u043e\u043a\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f\u0441 JIRA. \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b\u0430 \u0432\u0435\u0441\u0442\u0438 \u0432\u0441\u044e \u0442\u0435\u0441\u0442\u043e\u0432\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043f\u0440\u044f\u043c\u043e \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u044f \u0438\u0437 \u043d\u0435\u0435, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0434\u044d\u0448\u0431\u043e\u0440\u0434\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f JQL, \u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0435\u0441\u0442 \u043a\u0435\u0439\u0441\u044b \u043f\u0440\u044f\u043c\u043e \u0432 \u0442\u0430\u0441\u043a\u0435 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 &#171;\u0431\u043e\u0440\u0434\u0443&#187;. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0431\u044b\u043b\u0438 \u0438 \u043c\u0438\u043d\u0443\u0441\u044b. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e \u0438 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u044b \u0432 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u043c \u043e\u043a\u043e\u0448\u043a\u0435 (\u0434\u0430-\u0434\u0430, \u043e\u043d\u043e \u0443\u043c\u0435\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443, \u043d\u043e \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438). \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043c\u044b \u043d\u0435 \u0441\u043c\u043e\u0433\u043b\u0438 \u043d\u0430\u0439\u0442\u0438 \u043e\u0442\u0432\u0435\u0442, \u043a\u0430\u043a \u0441\u043b\u0438\u043d\u043a\u043e\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u044b c \u0440\u0443\u0447\u043d\u044b\u043c\u0438 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u043a\u0432\u043e\u0437\u043d\u044b\u0435 \u043e\u0442\u0447\u0435\u0442\u044b \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043b\u043e\u0445\u043e \u0438\u0441\u043a\u0430\u043b\u0438). \u042d\u0442\u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043d\u0430\u0441 \u0432 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0435 \u0432 \u043d\u0430\u0434\u0435\u0436\u0434\u0435 \u043d\u0430\u0439\u0442\u0438 \u0442\u0438\u0445\u0443\u044e \u0433\u0430\u0432\u0430\u043d\u044c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430, \u0430 \u043d\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0440\u0443\u0442\u0438\u043d\u043e\u0439 \u043f\u043e \u0441\u0431\u043e\u0440\u043a\u0435 \u0438 \u0434\u043e\u043f\u0438\u043b\u0438\u0432\u0430\u043d\u0438\u044e \u043e\u0442\u0447\u0435\u0442\u043e\u0432. \u041c\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0438\u0441\u043a\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442.<\/p>\n<h2>\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u043d\u043e\u043c\u0435\u0440 \u0434\u0432\u0430<\/h2>\n<p>\u0412\u0442\u043e\u0440\u044b\u043c \u0437\u0430\u0445\u043e\u0434\u043e\u043c \u0432 \u0431\u0443\u0445\u0442\u0443 \u0441\u0442\u0430\u043b \u0432\u0441\u0435\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 <a href=\"https:\/\/www.gurock.com\/testrail\/\" rel=\"noopener noreferrer nofollow\">TestRail<\/a>. \u041f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u0435 \u0441 \u043d\u0438\u043c \u044f \u0431\u044b\u043b \u0432 \u0432\u043e\u0441\u0442\u043e\u0440\u0433\u0435! \u0412 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0442\u0435\u0441\u0442\u044b, \u0442\u0435\u0441\u0442 \u043f\u043b\u0430\u043d\u044b, \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u043e\u043d\u044b \u0432\u0430\u0448\u0438\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0435 \u043e\u0442\u0447\u0435\u0442\u044b: \u0442\u0443\u0442 \u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u043e\u0432 \u0435\u0441\u0442\u044c, \u0438 \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0435 \u043f\u043e\u043b\u0435 \u0434\u043b\u044f \u0448\u0430\u0433\u043e\u0432 \u0432 \u0441\u0430\u043c\u043e\u043c \u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u0435. \u041d\u043e \u0438 \u0431\u0435\u0437 \u043b\u043e\u0436\u043a\u0438 \u0434\u0435\u0433\u0442\u044f \u043d\u0435 \u043e\u0431\u043e\u0448\u043b\u043e\u0441\u044c &#8212; \u043a\u0430\u043a \u0441 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u043f\u043e\u0434\u0440\u0443\u0436\u0438\u0442\u044c \u043e\u0442\u0447\u0435\u0442\u044b \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0434\u0438\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u043e\u043d\u044b? \u0414\u0430, \u0443 TestRail \u0435\u0441\u0442\u044c <a href=\"https:\/\/www.gurock.com\/testrail\/docs\/api\/getting-started\/binding-php\" rel=\"noopener noreferrer nofollow\">API-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438, \u0438 \u0434\u0430\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0441\u0432\u043e\u044e <a href=\"https:\/\/github.com\/fr05t1k\/testrail\" rel=\"noopener noreferrer nofollow\">\u0432\u0435\u0440\u0441\u0438\u044e<\/a> (\u0437\u0430 \u0447\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432,\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0433\u0430\u043b\u0430 \u0432 \u044d\u0442\u043e\u043c) \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u0438 \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u0432 \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430. \u041f\u0440\u043e\u0441\u0442\u043e \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u0438\u0448\u043b\u043e \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043c\u044b \u0443\u0434\u0435\u043b\u044f\u0435\u043c \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0438 \u0435\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0443\u0439\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043d\u0430 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0435 \u0432\u0441\u0435 \u0435\u0449\u0435 \u043d\u0435\u0442. &#171;\u0422\u0438\u0445\u043e\u0439 \u0433\u0430\u0432\u0430\u043d\u0438&#187; \u043d\u0435 \u0431\u044b\u043b\u043e \u0432\u0438\u0434\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0435\u0435\u0437\u0434 \u043d\u043e\u043c\u0435\u0440 \u0442\u0440\u0438 \u0431\u044b\u043b \u043d\u0435 \u0437\u0430\u0433\u043e\u0440\u0430\u043c\u0438.<\/p>\n<h2>\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u043d\u043e\u043c\u0435\u0440 \u0442\u0440\u0438<\/h2>\n<p>\u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0443 \u043d\u0430\u0441 \u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0443 \u0438 \u043c\u044b \u0437\u0430\u043d\u044f\u043b\u0438\u0441\u044c \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0439 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u043e\u0439 \u043a \u0432\u044b\u0431\u043e\u0440\u0443 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430: \u0434\u043e\u043b\u0433\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435, \u0441\u043e\u0432\u0435\u0442\u044b \u0441 \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c\u0438, \u0436\u0430\u0440\u043a\u0438\u0435 \u0434\u0438\u0441\u043a\u0443\u0441\u0441\u0438\u0438 \u0438 \u0447\u0442\u0435\u043d\u0438\u0435 \u043a\u043d\u0438\u0433, &#8212; \u0432\u0441\u0435 \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u043b\u043e \u043d\u0430\u0448\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043d\u0430 \u043e\u0434\u043d\u0443 \u0438\u0437 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0439 \u043f\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u043b \u0410\u0440\u0442\u0435\u043c \u0415\u0440\u043e\u0448\u0435\u043d\u043a\u043e. \u0414\u043e\u043a\u043b\u0430\u0434 \u0431\u044b\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d \u0442\u043e\u043c\u0443 \u0441\u0430\u043c\u043e\u043c\u0443 Allure Testops, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0447\u0442\u043e \u043e\u043d \u0443\u043c\u0435\u0435\u0442 \u0438 \u043a\u0430\u043a \u044d\u0442\u043e \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c. \u0412\u043f\u0435\u0447\u0430\u0442\u043b\u0438\u0432\u0448\u0438\u0441\u044c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435\u043c, \u044f \u043f\u043e\u0448\u0435\u043b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f, \u0431\u0443\u0434\u0435\u0442 \u043b\u0438 \u0432\u0441\u0435 \u044d\u0442\u043e <s>\u0431\u0435\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0435<\/s> \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e \u0441\u0442\u0435\u043a\u043e\u043c \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435.<\/p>\n<p><code>\u0417\u0434\u0435\u0441\u044c \u0441\u0442\u043e\u0438\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0443\u0436\u0435 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u043f\u0435\u0440\u0435\u0435\u0437\u0434 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0441\u0442\u0435\u043a \u0438 \u043c\u044b \u043f\u043b\u043e\u0442\u043d\u043e \u043d\u0430\u0434 \u044d\u0442\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c, \u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0440\u0430\u0437.<\/code><\/p>\n<p>\u041a\u0430\u043a \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u0438 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0438 &#8212; \u044d\u0442\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u0448\u0435\u0433\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u0430 \u0441 Allure Testops \u0431\u044b\u043b\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0430 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u0434\u043b\u044f PHP \u0431\u044b\u043b \u0441\u044b\u0440\u043e\u0432\u0430\u0442. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u044d\u0442\u0438 \u043d\u0435\u0434\u043e\u0447\u0435\u0442\u044b, \u0443\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0447\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u043b\u0430 \u043d\u0430\u0448\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f, \u0438, \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b\u0438, \u044d\u0442\u043e \u0431\u044b\u043b \u0433\u043b\u043e\u0442\u043e\u043a \u0441\u0432\u0435\u0436\u0435\u0433\u043e \u0432\u043e\u0437\u0434\u0443\u0445\u0430 \u0438 \u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043d\u0435\u0437\u0430\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0441\u0435\u0431\u044f \u0434\u043e\u043b\u0433\u043e \u0436\u0434\u0430\u0442\u044c.<\/p>\n<h2>\u041f\u0435\u0440\u0432\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0438 \u043f\u0435\u0440\u0432\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b<\/h2>\n<p>\u041f\u044f\u0442\u043d\u0438\u0446\u0430, \u043f\u043e\u0437\u0434\u043d\u0438\u0439 \u0432\u0435\u0447\u0435\u0440\u2026 \u0412\u0441\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0441\u0438\u0434\u0438\u043c \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435? \u041a\u0430\u043a\u043e\u0433\u043e ***?<\/p>\n<p>\u041e\u0442\u0432\u0435\u0442 \u043f\u0440\u043e\u0441\u0442 &#8212; \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0442\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u044e\u0447\u0438\u043a Allure TestOps! \u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0432 \u0441\u0430\u043c\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0447\u0435\u0440\u0435\u0437 <a href=\"https:\/\/docs.qameta.io\/allure-testops\/getstarted\/docker-compose\/\" rel=\"noopener noreferrer nofollow\">docker-compose<\/a>, \u043c\u044b \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u0444\u043e\u0440\u043c\u0443 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u0432\u0448\u0438\u0441\u044c \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0443\u0441\u0442\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u043f\u043e\u043b\u043d\u043e\u0435 \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432\u043f\u0435\u0440\u0435\u0434\u0438 \u0435\u0449\u0435 \u0434\u043e\u043b\u0433\u0438\u0439 \u043f\u0443\u0442\u044c. \u0412\u0435\u0434\u044c \u0412\u0441\u044e \u0442\u0435\u0441\u0442\u043e\u0432\u0443\u044e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0442\u044c \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0447\u0442\u0438 \u0447\u0442\u043e \u0441 \u043d\u0443\u043b\u044f, \u0430 \u043f\u043e\u0442\u043e\u043c \u0435\u0449\u0435 \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041f\u043e\u043d\u0435\u0441\u043b\u0430\u0441\u044c!<\/p>\n<figure class=\"float full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b59\/1b0\/477\/b591b0477a02a2620c6deafc723d7cc0.png\" alt=\"allure Signup form\" title=\"allure Signup form\" width=\"840\" height=\"930\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b59\/1b0\/477\/b591b0477a02a2620c6deafc723d7cc0.png\"\/><figcaption>allure Signup form<\/figcaption><\/figure>\n<p>\u0421\u043e\u0437\u0434\u0430\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 \u0432 UI Allure TestOps, \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432 composer \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u043e\u0432\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c, \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0432\u0435\u0442\u043a\u0443, \u043f\u0443\u0448\u043d\u0443\u043b\u0438, \u0438\u0438\u0438&#8230; \u043c\u0430\u0433\u0438\u0438 \u043d\u0435\u0442 \ud83d\ude42 \u0427\u0442\u043e \u0436, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0439 \u0444\u0430\u043a\u0442 &#8212; \u043e\u0442\u0447\u0435\u0442 \u043d\u0430\u0434\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 <a href=\"https:\/\/docs.qameta.io\/allure-testops\/ecosystem\/allurectl\/\" rel=\"noopener noreferrer nofollow\">allurectl<\/a>. \u0421 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 composer \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c yaml-\u0444\u0430\u0439\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u043e, \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0435\u0441\u0442\u044c <a href=\"https:\/\/github.com\/allure-framework\/allure-codeception\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0438\u043c\u0435\u0440<\/a>, \u0430 \u0432\u043e\u0442 \u043a\u0430\u043a \u043e\u0442\u0447\u0435\u0442 \u0433\u0440\u0443\u0437\u0438\u0442\u044c, \u044d\u0442\u043e \u043f\u0440\u044f\u043c \u0432\u043e\u043f\u0440\u043e\u0441? \u041a\u0430\u043a \u044f \u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435, \u0443 \u043d\u0430\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f gilLab \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 CI\/CD \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u043f\u0430\u0447\u043a\u0430 \u0442\u0435\u0441\u0442\u043e\u0432 \u0431\u0435\u0433\u0430\u0435\u0442 \u0432 docker \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445, \u0430 \u0447\u0430\u0441\u0442\u044c \u0442\u0435\u0441\u0442\u043e\u0432 &#8212; \u043d\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0441\u0442\u0435\u043d\u0434\u0430\u0445. \u0425\u043e\u0440\u043e\u0448\u043e&#8230; \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c allurectl \u0432 docker \u0438 \u043f\u043e\u0434\u0440\u0443\u0436\u0438\u0442\u044c \u0435\u0433\u043e \u0441 gitlab-\u043e\u043c.<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c dockerfile, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u0443\u0442\u044c \u043a \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044e <a href=\"https:\/\/github.com\/allure-framework\/allurectl\" rel=\"noopener noreferrer nofollow\">allurectl<\/a> \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u043c.  \u041f\u0440\u0438\u043c\u0435\u0440 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 allurectl (\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b \u0434\u043b\u044f <u>x86 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b<\/u>): <\/p>\n<pre><code class=\"yaml\">FROM docker\/compose:alpine-1.25.5  RUN apk add \\    bash \\    git \\    gettext  ADD https:\/\/github.com\/allure-framework\/allurectl\/releases\/latest\/download\/allurectl_linux_386 \/bin\/allurectl  RUN chmod +x \/bin\/allurectl<\/code><\/pre>\n<p>\u0423\u0436\u0435 \u043b\u0443\u0447\u0448\u0435, \u0434\u0430\u043b\u044c\u0448\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043b\u043e\u0433\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u043e\u043c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 (allurectl) \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 CI. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b Allure Testops \u0443\u0437\u043d\u0430\u043b \u043f\u0440\u043e \u043d\u0430\u0448\u0438 \u0442\u0435\u0441\u0442\u044b, \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0434\u0432\u0443\u0445 \u0434\u0436\u043e\u0431: <code>allure-start<\/code> \u0438 <code>allure-stop<\/code>.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0436\u043e\u0431\u044b <code>allure-start<\/code>:<\/p>\n<pre><code class=\"yaml\">allure-start:   stage: build   image: image \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430   interruptible: true   variables:     GIT_STRATEGY: none   tags:     - \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f   script:     - allurectl job-run start --launch-name \"${CI_PROJECT_NAME} \/ ${CI_COMMIT_REF_NAME} \/ ${CI_COMMIT_SHORT_SHA} \/ ${CI_PIPELINE_ID}\" || true     - echo \"${CI_PROJECT_NAME} \/ ${CI_COMMIT_REF_NAME} \/ ${CI_COMMIT_SHORT_SHA} \/ ${CI_PIPELINE_ID} \/ ${CI_JOB_NAME}\"    rules:    - if: \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u044b \u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438 \u043d\u0438\u0436\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f      when: never    - when: always  needs: []<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/63b\/d32\/56d\/63bd3256dd43edaba807e0ca55f62350.png\" alt=\"\u0412\u043e\u0442 \u0442\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 gitLab. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0442\u0430\u043a \u0436\u0435 \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u0430\u043b\u0438 \u044d\u0442\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\" title=\"\u0412\u043e\u0442 \u0442\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 gitLab. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0442\u0430\u043a \u0436\u0435 \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u0430\u043b\u0438 \u044d\u0442\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\" width=\"2004\" height=\"134\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/63b\/d32\/56d\/63bd3256dd43edaba807e0ca55f62350.png\"\/><figcaption>\u0412\u043e\u0442 \u0442\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 gitLab. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0442\u0430\u043a \u0436\u0435 \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u0430\u043b\u0438 \u044d\u0442\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/figcaption><\/figure>\n<p>\u0410 <code>allure-stop<\/code> &#8212; \u0442\u0430\u043a:<\/p>\n<pre><code class=\"yaml\">allure-stop:  stage: test-success-notification  image: \u0432\u0430\u0448 \u043e\u0431\u0440\u0430\u0437  interruptible: true  variables:    GIT_STRATEGY: none  tags:    - \u0432\u0430\u0448\u0438 \u0442\u0435\u0433\u0438  script:    - ALLURE_JOB_RUN_ID=$(allurectl launch list -p \"${ALLURE_PROJECT_ID}\" --no-header | grep \"${CI_PIPELINE_ID}\" | cut -d' ' -f1 || true)    - echo \"ALLURE_JOB_RUN_ID=${ALLURE_JOB_RUN_ID}\"    - allurectl job-run stop --project-id ${ALLURE_PROJECT_ID} ${ALLURE_JOB_RUN_ID} || true  needs:    - job: allure-start      artifacts: false    - job: acceptance      artifacts: false  rules:    - if: $CI_COMMIT_REF_NAME == \"master\"      when: never<\/code><\/pre>\n<p>\u0422\u0443\u0442 \u0441\u0442\u043e\u0438\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \u0447\u0442\u043e Allure TestOps \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043f\u0430\u043f\u043a\u0443 allure-results \u0432 \u043f\u0430\u043f\u043a\u0435 <code>{\u0438\u043c\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430}\/tests\/_output<\/code> \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0441\u0430\u043c framework (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 codeception). \u0418 \u0432\u0441\u0435 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c &#8212; \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b, \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u0442\u0435\u0441\u0442\u043e\u0432 \u0432 Allure \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <code>allurectl<\/code>.<\/p>\n<pre><code class=\"yaml\">.after_script: &amp;after_script  - echo -e \"\\e[41mShow Artifacts:\\e[0m\"  - ls -1 ${CI_PROJECT_DIR}\/docker\/output\/  - allurectl upload ${CI_PROJECT_DIR}\/docker\/output\/allure-results || true<\/code><\/pre>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0a4\/c89\/058\/0a4c890588fa77c52890620cec3d3d20.png\" alt=\"\u0412\u043e\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0430\u0440\u0442\u0438\u0444\u0430\u043a\u0442\u043e\u0432 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 Gitlab. \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u044b\u0437\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0442\u0435\u0441\u0442\u043e\u0432\" title=\"\u0412\u043e\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0430\u0440\u0442\u0438\u0444\u0430\u043a\u0442\u043e\u0432 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 Gitlab. \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u044b\u0437\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0442\u0435\u0441\u0442\u043e\u0432\" width=\"1064\" height=\"296\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0a4\/c89\/058\/0a4c890588fa77c52890620cec3d3d20.png\"\/><figcaption>\u0412\u043e\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0430\u0440\u0442\u0438\u0444\u0430\u043a\u0442\u043e\u0432 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 Gitlab. \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u044b\u0437\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0442\u0435\u0441\u0442\u043e\u0432<\/figcaption><\/figure>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u043e\u0431 \u0443\u043f\u0430\u0432\u0448\u0438\u0445 \u0442\u0435\u0441\u0442\u0430\u0445 \u0432 slack, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c launch id. Grep-\u043d\u0443\u0442\u044c \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"yaml\">if [[ ${exit_code} -ne 0 ]]; then  # Get Allure launch id for message link  ALLURE_JOB_RUN_ID=$(allurectl launch list -p \"${ALLURE_PROJECT_ID}\" --no-header | grep \"${CI_PIPELINE_ID}\" | cut -d' ' -f1 || true)  export ALLURE_JOB_RUN_ID<\/code><\/pre>\n<figure class=\"float full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ccb\/05b\/763\/ccb05b7639ae45dcea6f3dc7b9f414f2.png\" alt=\"\u0418 \u0432\u043e\u0442 \u0442\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432 slack\" title=\"\u0418 \u0432\u043e\u0442 \u0442\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432 slack\" width=\"530\" height=\"312\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ccb\/05b\/763\/ccb05b7639ae45dcea6f3dc7b9f414f2.png\"\/><figcaption>\u0418 \u0432\u043e\u0442 \u0442\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432 slack<\/figcaption><\/figure>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 &#8212; \u0442\u0435\u0441\u0442\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0431\u0435\u0433\u0430\u0442\u044c \u0432 docker, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0434\u0436\u043e\u0431\u0430allure-start. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e allure-start \u043f\u0440\u043e\u0431\u0435\u0436\u0430\u043b\u0430 \u0432 \u0441\u0430\u043c\u043e\u043c Allure, \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0433\u043b\u0443\u0448\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0442\u0435\u0441\u0442\u044b \u043f\u043e\u0441\u043b\u0435 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. <\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a  \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0ff\/8fc\/922\/0ff8fc92261d9752a8d4a116f54973ee.png\" width=\"1912\" height=\"684\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0ff\/8fc\/922\/0ff8fc92261d9752a8d4a116f54973ee.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041c\u044b \u043f\u043e\u0448\u043b\u0438 \u0435\u0449\u0435 \u0447\u0443\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435 \u0438 \u0441\u043c\u043e\u0433\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u043f\u043e\u043b\u0435\u0437\u043d\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e &#8212; \u044d\u0442\u043e <a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/pipelines\/parent_child_pipelines.html\" rel=\"noopener noreferrer nofollow\">Parent-child pipelines<\/a>. \u0410 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u043e\u0441\u044c \u043d\u0430\u043c \u044d\u0442\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0431\u0440\u0430\u043d\u0447 \u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0442\u043d\u0435\u0434 \u0438 \u0443\u0436\u0435 \u043d\u0430 \u043d\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0440\u044f\u0434 \u0442\u0435\u0441\u0442\u043e\u0432. \u041f\u0440\u043e\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438 \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0433\u0440\u0443\u0437\u044f\u0442\u0441\u044f \u0432 \u043e\u0434\u0438\u043d launch \u0432 Allure Testops. <code>${CI_PIPELINE_ID}<\/code> \u0438 <code>${PARENT_PIPELINE_ID}<\/code><\/p>\n<pre><code class=\"yaml\">.run-integration: &amp;run-integration   image:    services:     - name: \u0432\u0430\u0448 \u043e\u0431\u0440\u0430\u0437       alias: docker   stage: test   variables:     &lt;&lt;: *allure-variables   tags:     - \u0432\u0430\u0448\u0438 \u0442\u0435\u0433\u0438   script:     - echo \"petya ${CI_PROJECT_NAME} \/ ${CI_COMMIT_REF_NAME} \/ ${CI_COMMIT_SHORT_SHA} \/ ${CI_PIPELINE_ID} \/ ${PARENT_PIPELINE_ID} \/ ${CI_JOB_NAME} \/ {$SUITE}\"     - cd ${CI_PROJECT_DIR}\/gitlab     - .\/gitlab.sh run ${SUITE}   after_script: *after_script   artifacts:     paths:       - docker\/output     when: always     reports:       junit: docker\/output\/${SUITE}.xml   interruptible: true<\/code><\/pre>\n<p>\u041f\u0435\u0440\u0432\u044b\u0439 \u0448\u0430\u0433 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0433\u043e\u0442\u043e\u0432. \u0421\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0435\u0440\u0432\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u043e\u0441\u044c \u0432 Allure ? \u0415\u0441\u0442\u044c \u0442\u0435\u0441\u0442\u044b \u0441 \u0448\u0430\u0433\u0430\u043c\u0438 \u0438 \u0431\u0443\u0431\u043b\u0438\u043a \u0441 \u0440\u0430\u0437\u043d\u044b\u043c\u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u043c\u0438. \u0417\u043d\u0430\u0447\u0438\u0442, \u0437\u0430\u043f\u0443\u0441\u043a \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0432\u0435\u0442\u043a\u0435 \u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c sha-ref (\u043a\u043e\u043c\u043c\u0438\u0442\u0435) \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u0430 \u0435\u0449\u0435 \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043a\u043e\u043c\u043c\u0438\u0442 \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0435\u0442\u043a\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043d\u0430\u0431\u043e\u0440 \u0442\u0435\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e \u0438\u0442\u043e\u0433\u0430\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432 Allure. Allure \u0432 \u0441\u0432\u043e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0440\u0438\u0441\u0443\u0435\u0442 \u0431\u0443\u0431\u043b\u0438\u043a \u0441\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u043c\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432. \u0423\u0441\u043f\u0435\u0445 \u0438 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0430\u044f \u043f\u043e\u0431\u0435\u0434\u0430! <\/p>\n<p>\u041d\u0430 \u044d\u0442\u043e\u043c \u0432\u0435\u0447\u0435\u0440\u043d\u0438\u0435 \u043f\u043e\u0441\u0438\u0434\u0435\u043b\u043a\u0438 \u0432 \u043f\u044f\u0442\u043d\u0438\u0446\u0443 \u0431\u044b\u043b\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u044b, \u0438 \u043c\u044b \u0441 \u0440\u0430\u0434\u043e\u0441\u0442\u043d\u044b\u043c\u0438 \u043c\u044b\u0441\u043b\u044f\u043c\u0438 \u0443\u0434\u0430\u043b\u0438\u043b\u0438\u0441\u044c \u0432 <s>\u0431\u0430\u0440<\/s> \u043f\u043e \u0434\u043e\u043c\u0430\u043c :).<\/p>\n<h2>\u0420\u0430\u0437\u043e\u0447\u0430\u0440\u043e\u0432\u0430\u043d\u0438\u0435<\/h2>\n<p>\u0418\u0442\u0430\u043a, \u0442\u0435\u0441\u0442\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0431\u0435\u0433\u0430\u044e\u0442 \u043d\u0430 \u0431\u0440\u0430\u043d\u0447\u0430\u0445 \u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e sha-ref (\u043a\u043e\u043c\u043c\u0438\u0442\u0430) &#8212; \u0432\u043e\u0441\u0442\u043e\u0440\u0433\u0443 \u043d\u0435\u0442 \u043f\u0440\u0435\u0434\u0435\u043b\u0430. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u043a\u0430\u043a \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e,\u044d\u0439\u0444\u043e\u0440\u0438\u044f \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u0442 \u0431\u044b\u0441\u0442\u0440\u043e. \u0418\u043c\u0435\u043d\u043d\u043e \u0442\u0430\u043a \u0438 \u0441\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c. \u041c\u044b \u043f\u043e\u043b\u0435\u0437\u043b\u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0434\u0435\u0440\u0435\u0432\u043e \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u043e\u0432 (\u043a \u0442\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u044b \u043e\u043d\u0438 \u0443\u0436\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0431\u0435\u0433\u0430\u043b\u0438 \u0432 Gitlab) \u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0438 \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u043d\u0435\u0447\u0438\u0442\u0430\u0435\u043c\u0443\u044e \u0438\u0441\u0442\u043e\u0440\u0438\u044e, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0438\u043a\u0430\u043a \u043d\u0435\u043b\u044c\u0437\u044f \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0432 \u043d\u0435\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f. \u0412 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u0438\u0448\u043b\u043e \u0433\u043e\u0440\u044c\u043a\u043e\u0435 \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0448\u0430\u0433 \u0432\u043f\u0435\u0440\u0435\u0434 \u0438 \u0434\u0432\u0430 \u043d\u0430\u0437\u0430\u0434. \u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 xml-\u043e\u0442\u0447\u0435\u0442\u0430 \u0432 Allure Testops:<\/p>\n<figure class=\"float bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/2bc\/cc8\/9f5\/2bccc89f50b9b2994bbbeec048eccc6e.png\" alt=\"\u041a\u0441\u0442\u0430\u0442\u0438, \u044d\u0442\u043e \u0442\u0435\u043c\u043d\u0430\u044f \u0442\u0435\u043c\u0430, \u043f\u043e \u043c\u043d\u0435 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0443\u0442\u043e!\" title=\"\u041a\u0441\u0442\u0430\u0442\u0438, \u044d\u0442\u043e \u0442\u0435\u043c\u043d\u0430\u044f \u0442\u0435\u043c\u0430, \u043f\u043e \u043c\u043d\u0435 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0443\u0442\u043e!\" width=\"3360\" height=\"1594\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/2bc\/cc8\/9f5\/2bccc89f50b9b2994bbbeec048eccc6e.png\"\/><figcaption>\u041a\u0441\u0442\u0430\u0442\u0438, \u044d\u0442\u043e \u0442\u0435\u043c\u043d\u0430\u044f \u0442\u0435\u043c\u0430, \u043f\u043e \u043c\u043d\u0435 \u0442\u0430\u043a \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043e\u0447\u0435\u043d\u044c \u043a\u0440\u0443\u0442\u043e!<\/figcaption><\/figure>\n<p>\u0421\u0430\u043c\u043e \u0434\u0435\u0440\u0435\u0432\u043e \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u043f\u043e \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0443 <code>\u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 + data set #1 (\u0435\u0441\u043b\u0438 \u043e\u043d \u0435\u0441\u0442\u044c \u0432 \u0442\u0435\u0441\u0442\u0435)<\/code>.<\/p>\n<p>\u0428\u0430\u0433\u0438 \u0432 \u0442\u0435\u0441\u0442\u0430\u0445 \u0432\u044b\u0433\u043b\u044f\u0434\u044f\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<figure class=\"float bordered full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b94\/6a4\/251\/b946a42516d74c87161330b1317671fa.png\" width=\"1168\" height=\"1392\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/b94\/6a4\/251\/b946a42516d74c87161330b1317671fa.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0418\u0437 \u044d\u0442\u0438\u0445 \u0448\u0430\u0433\u043e\u0432, \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e: \u0447\u0442\u043e \u0437\u0430 <code>get web driver<\/code>, \u0447\u0442\u043e \u0437\u0430 <code>get helper<\/code>, \u0437\u0430\u0447\u0435\u043c \u043c\u044b \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0438\u043b\u0438 \u0437\u0430\u0447\u0435\u043c \u043c\u044b \u0436\u0434\u0435\u043c \u0442\u043e\u0442 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440  \u0438 \u0442.\u0434., &#8212; \u0435\u0441\u043b\u0438 \u0442\u0430\u043a\u0438\u0435 \u043e\u0442\u0447\u0435\u0442\u044b \u0443\u0432\u0438\u0434\u0438\u0442 \u043a\u0442\u043e-\u0442\u043e \u0438\u0437 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u0430, \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432 \u0431\u0443\u0434\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435, \u0447\u0435\u043c \u0448\u0430\u0433\u043e\u0432 \u0432 \u0442\u0435\u0441\u0442\u0435. \u0418 \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u044b \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0434\u0443\u043c\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u0432 \u0434\u0432\u0430 \u043a\u043b\u0438\u043a\u0430 \u043c\u044b \u043f\u043e\u0431\u0435\u0434\u0438\u043b\u0438 \u044d\u0442\u0443 &#171;\u043d\u0435\u0443\u0432\u044f\u0437\u043e\u0447\u043a\u0443&#187; ? \u041d\u0435\u0442!<\/p>\n<p>\u0422\u0443\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u2026 \u0411\u043e\u043b\u044c \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430 \u043f\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430. \u0420\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 <a href=\"https:\/\/qameta.io\/\" rel=\"noopener noreferrer nofollow\">Qameta<\/a> \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0440\u0435\u0448\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439 \u043a \u0442\u0435\u0441\u0442\u0430\u043c: \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0433\u0434\u0435 \u0443 \u043d\u0430\u0441 features, \u0433\u0434\u0435 story, \u0430 \u0433\u0434\u0435 component \u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u043d\u0430\u0434 \u043c\u0435\u0442\u043e\u0434\u043e\u043c. \u0422\u0430\u043a\u0430\u044f \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e.<\/p>\n<p>\u0410 \u0447\u0442\u043e \u043d\u0430\u0441\u0447\u0435\u0442 \u0448\u0430\u0433\u043e\u0432? \u0410\u043d\u043d\u043e\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0436\u0434\u044b\u0439? \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0442\u043e\u0436\u0435 \u0435\u0441\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043e\u0431\u0435\u0440\u0442\u043a\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430. \u042d\u0442\u0430 \u043e\u0431\u0435\u0440\u0442\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043b\u0443\u0436\u0438\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u043c \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u043c \u0438\u043c\u0435\u043d\u0435\u043c \u0434\u043b\u044f \u043c\u0435\u0442\u043e\u0434\u0430 \u0438 \u0448\u0430\u0433\u0430. \u0412 \u0446\u0435\u043b\u043e\u043c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u043f\u043e\u0434\u0445\u043e\u0434 \u0437\u0434\u0440\u0430\u0432\u044b\u0435, \u043d\u043e\u043a\u043e\u0433\u0434\u0430 \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 n^8-\u0442\u0435\u0441\u0442\u043e\u0432, \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043c\u043e\u0436\u0435\u0442 \u0441\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u0442\u044f\u043d\u0443\u0442\u044c\u0441\u044f. \u041f\u043e \u0441\u0443\u0442\u0438, \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0430 \u0442\u0435\u0441\u0442\u043e\u0432 \u0434\u043b\u044f Allure \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0430 \u0432\u0441\u0435\u0433\u043e, \u0447\u0442\u043e \u0435\u0441\u0442\u044c \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435! \u041e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438&#8230;<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043a \u043c\u0438\u043d\u0443\u0441\u0430\u043c \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043d\u0435\u0441\u0442\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u044d\u0442\u0438\u0445 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439. \u0415\u0441\u043b\u0438 \u0432\u043f\u043e\u043b\u043d\u0435 \u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u0440\u043e\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0443\u0432 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u044f\u0445, \u0437\u0430\u0431\u044b\u0442\u044c \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u043a\u0430\u0432\u044b\u0447\u043a\u0438 \u0438\u043b\u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0444\u0438\u0433\u0443\u0440\u043d\u044b\u0435 \u0441\u043a\u043e\u0431\u043a\u0438, \u0442\u0435\u0441\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043f\u0430\u0434\u0435\u0442 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0432\u044b\u0442\u0435\u043a\u0430\u044e\u0449\u0438\u043c\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u044f\u043c\u0438. \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0431\u043e\u043b\u0435\u0437\u043d\u0435\u043d\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u0442\u0435\u043c, \u043a\u0442\u043e \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u043d\u0435\u0434\u0430\u0432\u043d\u043e \u0438 \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u0445\u043e\u0440\u043e\u0448\u043e \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0435\u0431\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430, \u0438 \u0442\u0435\u043c, \u043a\u0442\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u0440\u0443\u0447\u043d\u044b\u043c \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u0441\u0438\u043b\u044c\u043d\u043e \u0434\u0430\u043b\u0435\u043a \u043e\u0442 \u043c\u0438\u0440\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<details class=\"spoiler\">\n<summary>\u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439<\/summary>\n<div class=\"spoiler__content\">\n<p>P\/s. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043e\u0432\u0435\u0442\u043e\u0432\u0430\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d \u0434\u043b\u044f phpStoprm: <a href=\"https:\/\/plugins.jetbrains.com\/plugin\/7320-php-annotations\" rel=\"noopener noreferrer nofollow\">PHP Annotations<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043d\u0430\u0439\u0442\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043e\u0448\u0438\u0431\u043a\u0438, \u043d\u043e \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0436\u0435 \u043d\u0435 \u0432\u0441\u0435.<\/p>\n<\/div>\n<\/details>\n<h2>\u0414\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430\u043f\u0438\u043b\u044c\u043d\u0438\u043a\u043e\u043c<\/h2>\n<p>\u041d\u0443 \u0447\u0442\u043e, \u0434\u043e\u0440\u043e\u0433\u0438\u0435 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u0438, \u043d\u0430\u043f\u0438\u043b\u044c\u043d\u0438\u043a \u0432 \u0440\u0443\u043a\u0438 \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u043f\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u043a\u0443! \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438 \u043a \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u0430\u043c, \u043f\u043e \u043f\u0443\u0442\u0438 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043c \u043a\u043e\u0434 \u0442\u0435\u0441\u0442\u043e\u0432, \u0430 \u0442\u0430\u043a \u0436\u0435 \u0441\u043e\u0433\u043b\u0430\u0441\u0443\u0435\u043c \u0441 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430\u043c\u0438 \u0438 \u0412\u0421\u0415\u041c\u0418 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c\u0438 \u0432\u0430\u0448\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0431\u0443\u0434\u0443\u0449\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432\u0430\u0448\u0435\u0433\u043e \u0434\u0435\u0440\u0435\u0432\u0430. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0442\u043e \u043a\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432 \u043a\u043e\u0434\u0435 \u043d\u0430 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u0430:<\/p>\n<pre><code class=\"php\">\/**      * @Title(\"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0432\u0430\u0448\u0435\u0433\u043e \u0442\u0435\u0441\u0442\u0430 - \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435\")      * @Description(\"\u041f\u0438\u0448\u0435\u043c \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\")      * @Features({\"\u0410 \u0447\u0442\u043e \u0437\u0430 \u0444\u0438\u0447\u0430 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e?\"})      * @Stories({\"\u041d\u0443 \u043f\u0440\u043e \u0441\u0442\u043e\u0440\u044e \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0435\u043c!\"})      * @Issue({\u0410 \u0433\u0434\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u041a\u0430\u0440\u043b?})      * @Labels({      *     @Label(name = \"Jira\", values = \"SA-1111\"),      *     @Label(name = \"component\", values = \"\u041d\u0430\u0448 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u0442\"),      *     @Label(name = \"layer\", values = \"the layer of testing architecture\"),      * }) *\/ <\/code><\/pre>\n<p>\u0422\u043e, \u0447\u0442\u043e \u0432\u044b \u0432\u0438\u0434\u0438\u0442\u0435 \u043d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435, \u044d\u0442\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 <a href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%93%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_%D0%B4%D0%BE%D0%BA%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%D1%86%D0%B8%D0%B8\" rel=\"noopener noreferrer nofollow\">\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/a> Javadoc \u0434\u043b\u044f PHP. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432 Allure TestOps:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/914\/e87\/64e\/914e8764e39b8dd4ba084942eb3f3f00.png\" width=\"3354\" height=\"1710\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/914\/e87\/64e\/914e8764e39b8dd4ba084942eb3f3f00.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041d\u0430 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0435 \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0442\u0435\u0441\u0442\u044b \u0432\u044b\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e: Component -> Feature -> Story. \u042d\u0442\u043e \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u0430\u043c\u043e\u043c Allure TestOps.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f70\/a9b\/114\/f70a9b114fcd83b142725269268a802d.png\" alt=\"\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u0430: Component->Feature->Story&#187; title=&#187;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u0430: Component->Feature->Story&#187; width=&#187;1600&#8243; height=&#187;338&#8243; data-src=&#187;https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/f70\/a9b\/114\/f70a9b114fcd83b142725269268a802d.png&#187;\/><figcaption>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0434\u0435\u0440\u0435\u0432\u0430: Component->Feature->Story<\/figcaption><\/figure>\n<p>\u0412 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0434\u0435\u0440\u0435\u0432\u043e \u043f\u0435\u0440\u0435\u0441\u043e\u0431\u0435\u0440\u0435\u0442\u0441\u044f \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0440\u0430 \u043d\u0430\u0432\u0435\u0441\u0442\u0438 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0441 \u0448\u0430\u0433\u0430\u043c\u0438 \u0432 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u0430\u0445. \u041c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0442\u043e\u0434 <a href=\"https:\/\/github.com\/allure-framework\/allure-php-commons\/blob\/master\/src\/Yandex\/Allure\/Adapter\/Support\/StepSupport.php\" rel=\"noopener noreferrer nofollow\">executeStep<\/a> \u043a\u0430\u043a \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0438 \u043a\u0440\u0430\u0441\u0438\u0432\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430. \u0412 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0432 \u0441\u0438\u0433\u043d\u0430\u0442\u0443\u0440\u0443 \u043c\u0435\u0442\u043e\u0434\u0430 \u043f\u0435\u0440\u0432\u044b\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u043c \u0442\u0435\u043a\u0441\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a <code>human readable step<\/code> \u0432 UI Allure TestOps \u0434\u043b\u044f \u043c\u0435\u0442\u043e\u0434\u0430 <code>addInvite<\/code> (\u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438):<\/p>\n<pre><code class=\"php\">public function createInviteCode(User $user, string $scheme): Invite {    return $this->executeStep(        'Create invite code for ' . $user->username . ' with ' . $scheme,        function () use ($user, $scheme) {            return $this->getHelper()->addInvite(['user' => $user, 'schemeType' => $scheme]);        }    ); }<\/code><\/pre>\n<p>\u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0432\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044f\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c, \u0430 \u0448\u0430\u0433\u0438 \u0432 \u0442\u0435\u0441\u0442\u0430\u0445 &#171;\u0435\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c&#187; \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442\u0441\u044f \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0435 \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0432 Allure TestOps \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a66\/c33\/805\/a66c33805d31cbf1ac16d20dfcd34095.png\" width=\"1042\" height=\"718\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a66\/c33\/805\/a66c33805d31cbf1ac16d20dfcd34095.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0412\u0430\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0439 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433 \u0437\u0430\u043d\u044f\u043b \u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043c\u0435\u0441\u044f\u0446 \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0439 \u0438 \u0443\u043f\u043e\u0440\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b: \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0434\u0430\u0436\u0435 \u0437\u0430\u0441\u0438\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043e\u043f\u043e\u0437\u0434\u043d\u0430 \u0432 \u043d\u0430\u0434\u0435\u0436\u0434\u0435, \u0447\u0442\u043e \u0435\u0449\u0435 \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u0438 \u0444\u0438\u043d\u0438\u0448\u043d\u0430\u044f \u043f\u0440\u044f\u043c\u0430\u044f&#8230;<\/p>\n<h2>\u0424\u0438\u043d\u0438\u0448\u043d\u0430\u044f \u043f\u0440\u044f\u043c\u0430\u044f<\/h2>\n<p>\u041f\u043e\u0434\u0432\u0435\u0434\u0435\u043c \u043d\u0435\u043a\u0438\u0439 \u0438\u0442\u043e\u0433, \u0447\u0442\u043e \u0436\u0435 \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c? \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u043e\u0432 \u043f\u043e\u0440\u044f\u0434\u043e\u043a, \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e \u0447\u0438\u0442\u0430\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c, \u043d\u0435 \u0437\u0430\u0431\u044b\u0432 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u043e \u0440\u0443\u0447\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c pull-request \u0432 Gitlab \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0432\u0435\u0442\u043a\u0430 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0438 sha-ref \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u0438 \u0437\u0430\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0442\u0435\u0441\u0442\u044b. \u0422\u0430\u043a \u0432\u043e\u0442, \u043c\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0442\u0435\u0441\u0442\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0438\u0441\u044c \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0438\u0437 \u0432\u0435\u0442\u043e\u043a \u0438\u043b\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432.<\/p>\n<p>\u041d\u0430\u0441\u0442\u0440\u043e\u0438\u0432 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e, \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043c\u0438 (Launches) \u0432 Allure TestOps. \u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 Launches \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u043c \u0432\u0438\u0434\u0435, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0435 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u044b\u0439 \u0441\u0440\u0435\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b, \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043d\u044b\u0445 \u0438 \u0443\u043f\u0430\u0432\u0448\u0438\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u0438 \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0445\u043e\u0436\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e) \u043f\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0435.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/44a\/2d2\/a78\/44a2d2a7868b545595d911ed68733637.png\" width=\"3360\" height=\"1716\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/44a\/2d2\/a78\/44a2d2a7868b545595d911ed68733637.png\"\/><figcaption><\/figcaption><\/figure>\n<figure class=\"float full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/1a7\/e76\/628\/1a7e76628f1e1eed73f5cd1ca2de6624.png\" width=\"3360\" height=\"1708\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/1a7\/e76\/628\/1a7e76628f1e1eed73f5cd1ca2de6624.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0415\u0441\u043b\u0438\u00a0\u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0442\u044c\u0441\u044f\u00a0\u0432\u00a0\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439\u00a0Launch,\u00a0\u043c\u043e\u0436\u043d\u043e\u00a0\u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c\u00a0\u043d\u0430\u00a0\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443\u00a0\u043d\u0430\u0448\u0435\u0433\u043e\u00a0\u043f\u0440\u043e\u0435\u043a\u0442\u0430:\u00a0\u043a\u0430\u043a\u0438\u0435\u00a0\u0435\u0441\u0442\u044c\u00a0\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b,\u00a0\u043a\u0430\u043a\u0438\u0435\u00a0\u0444\u0438\u0447\u0438,\u00a0\u0441\u043a\u043e\u043b\u044c\u043a\u043e\u00a0\u0431\u044b\u043b\u043e\u00a0\u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u043e\u0432, \u043a\u0430\u043a\u0438\u0435\u00a0\u0438\u043c\u0435\u043d\u043d\u043e\u00a0\u0442\u0435\u0441\u0442\u044b\u00a0\u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u0438\u0441\u044c,\u00a0\u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e\u00a0\u043e\u00a0\u0434\u0435\u0440\u0435\u0432\u0435\u00a0\u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u043e\u0432,\u00a0\u0433\u0440\u0430\u0444\u0438\u043a,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439\u00a0\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u00a0\u0441\u043a\u043e\u043b\u044c\u043a\u043e\u00a0\u0432\u0440\u0435\u043c\u0435\u043d\u0438\u00a0\u0431\u0435\u0436\u0430\u043b\u00a0\u0441\u0430\u043c\u044b\u0439\u00a0\u0434\u043e\u043b\u0433\u0438\u0439\u00a0\u0442\u0435\u0441\u0442, \u0433\u0440\u0430\u0444\u0438\u043a \u0441 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u0442\u0435\u0441\u0442\u043e\u0432, &#8212; \u0438 \u0432 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0433\u043e\u043d \u0432 JIRA-\u0442\u0438\u043a\u0435\u0442. \u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u00a0\u0445\u043e\u0447\u0435\u0442\u0441\u044f\u00a0\u0443\u043f\u043e\u043c\u044f\u043d\u0443\u0442\u044c\u00a0\u043f\u0440\u043e\u00a0\u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438\u00a0\u0434\u043b\u044f\u00a0Live documentation,\u00a0\u043a\u043e\u0442\u043e\u0440\u0430\u044f\u00a0\u0432\u00a0\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u043c\u00a0\u0440\u0435\u0436\u0438\u043c\u0435\u00a0\u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u00a0\u0434\u0435\u0440\u0435\u0432\u043e\u00a0\u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u043e\u0432\u00a0\u043f\u043e\u00a0\u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u00a0\u0438\u00a0\u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0430\u043c,\u00a0\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0\u0442\u043e\u043b\u044c\u043a\u043e\u00a0\u0438\u0437\u00a0\u0432\u0435\u0442\u043a\u0438\u00a0\u043c\u0430\u0441\u0442\u0435\u0440.<\/p>\n<p>\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u044d\u0442\u043e \u0442\u0430\u043a: \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u043b\u0438 \u043f\u0430\u0440\u0443 \u0448\u0430\u0433\u043e\u0432 \u0438 \u043f\u043e\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438. \u0414\u0430\u043b\u0435\u0435 \u044d\u0442\u043e\u0442 \u0442\u0435\u0441\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0441 \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 \u043c\u0430\u0441\u0442\u0435\u0440\u0435 (\u043d\u0430 \u043f\u0443\u043b\u043b-\u0440\u0435\u043a\u0432\u0435\u0441\u0442 \u0432 \u043c\u0430\u0441\u0442\u0435\u0440), \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043b\u0438\u0431\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0437\u0430\u043a\u0440\u044b\u0442\u044c launch, \u043b\u0438\u0431\u043e \u0434\u043e\u0436\u0434\u0430\u0442\u044c\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 launch \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043a\u0440\u044b\u0442 \u043f\u043e cron\u2019\u0443, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 Allure. \u041f\u0440\u0438 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u0442\u0430\u0440\u044b\u0439 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f &#8212; \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0437\u0430\u0431\u044b\u0442\u044c \u043f\u0440\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435. \u0411\u0435\u0437\u0443\u043c\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u043e!<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/205\/f4d\/8bc\/205f4d8bc09b69f58a6544b49ecd73b5.png\" width=\"1464\" height=\"1322\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/205\/f4d\/8bc\/205f4d8bc09b69f58a6544b49ecd73b5.png\"\/><figcaption><\/figcaption><\/figure>\n<h2>\u0413\u0434\u0435 \u0440\u0443\u0447\u043d\u044b\u0435 \u043a\u0435\u0439\u0441\u044b, \u041a\u0430\u0440\u043b?<\/h2>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/64b\/d24\/261\/64bd242616a58a35505f97bb8968aedb.png\" alt=\"\u041f\u0440\u043e \u0440\u0443\u0447\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u043c\u044b \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0437\u0430\u0431\u044b\u043b\u0438 :)\" title=\"\u041f\u0440\u043e \u0440\u0443\u0447\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u043c\u044b \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0437\u0430\u0431\u044b\u043b\u0438 :)\" width=\"498\" height=\"544\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/64b\/d24\/261\/64bd242616a58a35505f97bb8968aedb.png\"\/><figcaption>\u041f\u0440\u043e \u0440\u0443\u0447\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u043c\u044b \u043a\u043e\u043d\u0435\u0447\u043d\u043e \u0437\u0430\u0431\u044b\u043b\u0438 \ud83d\ude42<\/figcaption><\/figure>\n<p>\u0418\u0442\u0430\u043a, \u0441\u0442\u0430\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u0438 \u0433\u0434\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u043a\u0430\u043a\u0438\u0435 \u0442\u0435\u0441\u0442\u044b \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f, \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0438 \u043a\u0430\u043a\u0438\u0435 \u0434\u0430\u044e\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e \u0438\u0442\u043e\u0433\u0430\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u043e\u0432. \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0432\u0441\u0435! \u0438\u043b\u0438 \u043d\u0435\u0442? \u0410\u0445 \u0434\u0430! \u041c\u044b \u0437\u0430\u0431\u044b\u043b\u0438 \u043f\u0440\u043e \u0440\u0443\u0447\u043d\u044b\u0435 \u043a\u0435\u0439\u0441\u044b. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0447\u0443\u0442\u044c \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c\u0441\u044f \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430\u043c \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c Allure TestOps &#8212; \u043e\u043d\u0430 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442, \u0447\u0442\u043e \u0442\u0435\u0441\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u043d\u044b\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439, \u0430 expected result \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0431\u044b \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u043c \u0442\u0435\u0441\u0442\u0430. \u0410 \u0442\u0430\u043c, \u0433\u0434\u0435 \u044d\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e, \u043c\u043e\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u201cexpected result\u201d \u0432 \u0432\u0438\u0434\u0435 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0448\u0430\u0433\u043e\u0432. \u041d\u0430\u043f\u0438\u0441\u0430\u0432 \u043f\u0430\u0440\u0443-\u0442\u0440\u043e\u0439\u043a\u0443 \u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u043e\u0432 \u0432 \u0442\u0430\u043a\u043e\u043c \u0441\u0442\u0438\u043b\u0435, \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u044f\u0441\u043d\u043e, \u0447\u0442\u043e \u044d\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0438 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u043d\u043e. \u041f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430 \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0442\u0430\u043a:<\/p>\n<figure class=\"float full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9bb\/df9\/f52\/9bbdf9f52515e38b0b5384724086ed41.png\" width=\"1600\" height=\"754\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9bb\/df9\/f52\/9bbdf9f52515e38b0b5384724086ed41.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0415\u0441\u043b\u0438 \u0442\u0430\u043a\u043e\u0439 \u0441\u0442\u0438\u043b\u044c \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u043a\u0435\u0439\u0441\u043e\u0432 \u043d\u0435 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442 \u043f\u043e \u043a\u0430\u043a\u043e\u0439-\u043b\u0438\u0431\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0435, \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c <code>\u0434\u0440\u0443\u0433\u0443\u044e<\/code> \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0441 \u043f\u0440\u0435\u0434\u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c\u0438.<\/p>\n<figure class=\"float full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/53d\/228\/a6f\/53d228a6fcd53aed2b396c518fe08473.png\" width=\"1058\" height=\"422\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/53d\/228\/a6f\/53d228a6fcd53aed2b396c518fe08473.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0440\u0443\u0447\u043d\u044b\u0435 \u0442\u0435\u0441\u0442 \u043a\u0435\u0439\u0441\u044b \u0438\u0437 TestRail \u0432 Allure TestOps. \u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0438\u043c\u043f\u043e\u0440\u0442\u0430 \u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u043e\u0432 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0433\u0438\u0431\u043a\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c, \u0447\u0442\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0430 \u0447\u0442\u043e \u043d\u0435\u0442, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0431\u044b\u043b\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0441\u0430\u043c\u0438\u043c\u0438 \u0442\u0435\u0441\u0442\u0430\u043c\u0438 &#8212; \u043c\u043d\u043e\u0433\u043e \u0440\u0443\u0447\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u0441\u043d\u043e\u0432\u0430 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u043e\u0434 \u043d\u043e\u0432\u0443\u044e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443. <\/p>\n<p>\u0414\u0443\u043c\u0430\u0435\u0442\u0435, \u0432\u0441\u0435? \u041a\u0430\u043a \u0431\u044b \u043d\u0435 \u0442\u0430\u043a!  \u0412 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0431\u0430\u0437\u0443 \u0441 \u0440\u0443\u0447\u043d\u044b\u043c\u0438 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u0432 \u0435\u0434\u0438\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0438 \u0431\u044b\u043b\u0438 \u0433\u043e\u0442\u043e\u0432\u044b \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0440\u0430\u0431\u043e\u0442\u044b \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c, \u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a \u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b\u0430\u0441\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u0430 \u043d\u0435\u043f\u0440\u0438\u044f\u0442\u043d\u0430\u044f \u0438\u0441\u0442\u043e\u0440\u0438\u044f. <\/p>\n<figure class=\"float bordered\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3e9\/864\/8e0\/3e98648e0512ef0fa65e5e74eb9856df.png\" alt=\"\u0412\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a ^\" title=\"\u0412\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a ^\" width=\"516\" height=\"694\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3e9\/864\/8e0\/3e98648e0512ef0fa65e5e74eb9856df.png\"\/><figcaption>\u0412\u044b\u0433\u043b\u044f\u0434\u0435\u043b\u043e \u044d\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432\u043e\u0442 \u0442\u0430\u043a ^<\/figcaption><\/figure>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0442\u043e\u0439 \u0441\u0430\u043c\u043e\u0439 \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u0441\u0435 \u043e\u0442\u0447\u0435\u0442\u044b, \u0444\u0438\u043b\u044c\u0442\u0440\u044b, \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0440\u0443\u0447\u043d\u044b\u0435 \u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u044b, \u043a\u0430\u043a\u0438\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435, \u043a\u0430\u043a \u0432\u0441\u0435 \u044d\u0442\u043e \u043f\u0440\u0435\u043a\u0440\u0430\u0441\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e, \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u043c\u0443\u0434\u0440\u0438\u0432 \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 Allure TestOps, \u043c\u044b \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0443\u0442\u0430\u043b\u0438\u0441\u044c \u0432 \u043d\u0430\u0448\u0435\u043c \u0434\u0435\u0440\u0435\u0432\u0435 \u0438 \u0441 \u0442\u0440\u0443\u0434\u043e\u043c \u0441\u0442\u0430\u043b\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0442\u044c, \u0433\u0434\u0435 \u0440\u0443\u0447\u043d\u043e\u0439, \u0430 \u0433\u0434\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0442\u0435\u0441\u0442. \u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e?  \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0438\u0441\u044c \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0443\u0447\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u0432 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u0435\u0441\u0442\u043e\u0432. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043e\u043a\u0430\u0437\u0430\u043b\u0430\u0441\u044c \u043d\u0435 \u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439, \u0430 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439: \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u0431\u044b\u043b\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439 \u0432 \u043a\u043e\u0434\u0435, \u0430 \u0440\u0443\u0447\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u0438\u0441\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043f\u0440\u044f\u043c\u043e \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 Allure, \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u0441 <code>\u043c\u0430\u0441\u0442\u0435\u0440<\/code> \u0432\u0435\u0442\u043a\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u0430\u0441\u044c \u043f\u0443\u0442\u0430\u043d\u0438\u0446\u0430 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u0445 \u0432\u0441\u0435\u0445 \u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u043e\u0432.  \u041e\u0441\u043e\u0437\u043d\u0430\u0432, \u0433\u0434\u0435 \u0441\u0432\u0435\u0440\u043d\u0443\u043b\u0438 \u043d\u0435 \u0442\u0443\u0434\u0430, \u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u0438 \u0432\u0441\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0437\u0430\u043d\u043e\u0432\u043e. \u0421 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u043e, \u043e\u043d\u0438 \u043e\u0447\u0435\u043d\u044c \u0431\u044b\u0441\u0442\u0440\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u0432\u044b\u0441\u0442\u0440\u043e\u0438\u043b\u0438\u0441\u044c \u0432 \u043d\u043e\u0432\u043e\u0435 \u0434\u0435\u0440\u0435\u0432\u043e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439. \u041d\u043e \u043e\u0434\u0438\u043d \u0432\u0430\u0436\u043d\u044b\u0439 \u0432\u043e\u043f\u0440\u043e\u0441 \u043e\u0441\u0442\u0430\u043b\u0441\u044f \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c: \u0447\u0442\u043e \u0436\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u0440\u0443\u0447\u043d\u044b\u043c\u0438 \u0442\u0435\u0441\u0442\u0430\u043c\u0438? \u0415\u0441\u043b\u0438 \u043f\u043e\u0439\u0442\u0438 \u0442\u0435\u043c \u0436\u0435 \u043f\u0443\u0442\u0435\u043c, \u0447\u0442\u043e \u0438 \u0432 \u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u0440\u0430\u0437, \u043f\u043e\u043b\u0443\u0447\u0438\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u0447\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0435\u0439, \u043e\u0441\u0442\u0430\u0432\u0438\u043c TestRail \u0434\u043b\u044f \u0440\u0443\u0447\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0434\u0432\u0430 \u0440\u0430\u0437\u0440\u043e\u0437\u043d\u0435\u043d\u043d\u044b\u0445 \u043e\u0442\u0447\u0435\u0442\u0430, \u043a\u0430\u043a \u0432 \u0441\u0442\u0430\u0440\u044b\u0435 \u0434\u043e\u0431\u0440\u044b\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430.<\/p>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430\u0448\u043b\u043e\u0441\u044c \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u043e: \u043a\u0430\u043a-\u0442\u043e \u0432\u0435\u0447\u0435\u0440\u043e\u043c \u043f\u0435\u0440\u0435\u0434 <a href=\"https:\/\/heisenbug.ru\" rel=\"noopener noreferrer nofollow\">\u0413\u0435\u0439\u0437\u0435\u043d\u0431\u0430\u0433\u043e\u043c<\/a>, \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0439 \u043f\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e, \u044f \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u043b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u043f\u0440\u043e\u0448\u043b\u044b\u0445 \u0434\u043e\u043a\u043b\u0430\u0434\u043e\u0432 \u0438 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0438\u043b \u0434\u043e\u043a\u043b\u0430\u0434 \u043d\u0430 \u0442\u0435\u043c\u0443 <a href=\"https:\/\/www.youtube.com\/watch?v=Prm2-c_5mYs\" rel=\"noopener noreferrer nofollow\">\u0422\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u044b \u043a\u0430\u043a \u043a\u043e\u0434<\/a>. \u0414\u0430, \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430 \u043d\u0435 \u043d\u043e\u0432\u0430\u044f, \u0438 \u043f\u0440\u043e \u043d\u0435\u0435 \u043c\u043d\u043e\u0433\u0438\u0435 \u0441\u043b\u044b\u0448\u0430\u043b\u0438. \u0415\u0435 \u0441\u0443\u0442\u044c \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0440\u0443\u0447\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043f\u0438\u0441\u0430\u0442\u044c \u043a\u0430\u043a \u043c\u0435\u0442\u043e\u0434 \u043f\u043e\u0434 \u0431\u0443\u0434\u0443\u0449\u0443\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e: \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u043c\u0435\u0442\u043e\u0434, \u0432 \u043d\u0435\u043c \u043e\u043f\u0438\u0441\u0430\u043b\u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439, \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0432\u0435\u0442\u043a\u0443, \u0441\u0434\u0435\u043b\u0430\u043b\u0438 merge request, \u043f\u0440\u0438\u0441\u043b\u0430\u043b\u0438 \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c \u043d\u0430 \u0440\u0435\u0432\u044c\u044e. \u0415\u0441\u043b\u0438 \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c \u0447\u0442\u043e-\u0442\u043e \u043d\u0435 \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u043e\u0441\u044c \u0432 mr, \u043e\u043d\u0438 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439, \u0432\u044b \u043f\u0440\u0430\u0432\u0438\u0442\u0435, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0432\u0435\u0442\u043a\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043c\u0435\u0440\u0436\u0438\u0442\u0441\u044f \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u0443\u044e. \u0427\u0442\u043e \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440\u043d\u043e, \u0432\u0441\u0435 \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u044f\u043c\u043e \u0432 \u0432\u0430\u0448\u0435\u0439 CI (\u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u0447\u0442\u043e \u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u044d\u0442\u043e gitlab). <\/p>\n<p>\u041e\u0442\u043b\u0438\u0447\u043d\u0430\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430, \u043d\u043e \u043a\u0430\u043a \u0435\u0435 \u043f\u043e\u0434\u0440\u0443\u0436\u0438\u0442\u044c c Allure TestOps \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0432\u043c\u0435\u043d\u044f\u0435\u043c\u044b\u0435 \u043e\u0442\u0447\u0435\u0442\u044b? \u041d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u0441\u043d\u043e\u0432\u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0438. \u041f\u0438\u0448\u0435\u043c \u0440\u0443\u0447\u043d\u043e\u0439 \u0442\u0435\u0441\u0442 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438, \u0440\u0430\u0437\u043c\u0435\u0447\u0430\u0435\u043c \u0435\u0433\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u043d\u043d\u043e\u0442\u0430\u0446\u0438\u0439, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u043e\u0432, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c, \u0447\u0442\u043e \u0442\u0435\u0441\u0442 &#8212; \u0440\u0443\u0447\u043d\u043e\u0439. \u041f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"php\">   \/*     * @Title(\"\u041a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\")     * @Description(\"\u0427\u0443\u0442\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u0442\u044c\")     * @Features({\"\u041d\u0430\u0448\u0430 \u0444\u0438\u0447\u0430 \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u0442\u0435\u0441\u0442 \u043a\u0435\u0439\u0441\"})     * @Stories({\"\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u0430\"})     * @Issues({\"\u0421\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 conf\"})     * @Labels({     *     @Label(name = \"Jira\", values = \"\u041d\u043e\u043c\u0435\u0440 jira \u0442\u0438\u043a\u0435\u0442\u0430\"),     *     @Label(name = \"component\", values = \"\u041a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\"),     *     @Label(name = \"createdBy\", values = \"\u0430\u0432\u0442\u043e\u0440 \u0442\u0435\u0441\u0442 \u043a\u0435\u0439\u0441\u0430\"),     *     @Label(name = \"ALLURE_MANUAL\", values = \"true\"),     * })     *\/<\/code><\/pre>\n<figure class=\"float full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0a5\/bc6\/673\/0a5bc667379dd3fa5fe75559312bc148.png\" alt=\"Test case as code\" title=\"Test case as code\" width=\"1516\" height=\"1114\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0a5\/bc6\/673\/0a5bc667379dd3fa5fe75559312bc148.png\"\/><figcaption>Test case as code<\/figcaption><\/figure>\n<p>\u041c\u0435\u0442\u043e\u0434 <code>step<\/code> \u0432 \u0434\u0430\u043d\u043d\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0442\u0430\u043a \u0436\u0435 \u043a\u0430\u043a \u0438 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0431\u0435\u0440\u0442\u043a\u043e\u0439 \u043d\u0430\u0434 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u043c\u0435\u0442\u043e\u0434\u043e\u043c Allure TestOps <code>executeStep<\/code>. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0434\u043b\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f <code>Label = ALLURE_MANUAL<\/code>. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/a5f\/c7a\/81c\/a5fc7a81cd320def63786b063dde1667.png\" alt=\"\u0410 \u0442\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432 Allure TestOps\" title=\"\u0410 \u0442\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432 Allure TestOps\" width=\"1600\" height=\"742\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/a5f\/c7a\/81c\/a5fc7a81cd320def63786b063dde1667.png\"\/><figcaption>\u0410 \u0442\u0430\u043a \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432 Allure TestOps<\/figcaption><\/figure>\n<p>\u041c\u043e\u0436\u043d\u043e \u043f\u043e\u0439\u0442\u0438 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0430\u043b\u044c\u0448\u0435 \u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0430\u043a\u0442\u0435\u0440\u0430 \u0434\u043b\u044f \u0440\u0443\u0447\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0431\u0449\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b \u0434\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0448\u0430\u0433\u043e\u0432 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 \u0440\u0443\u0447\u043d\u044b\u0445 \u043a\u0435\u0439\u0441\u0430\u0445. \u0412 \u043a\u043e\u0434\u0435 \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"php\"> \/**      * @param string $elementName      * @param string $elementType      * @return $this      *\/     public function click(string $elementName, string $elementType = 'button'): self     {         $this->tester->step('Click on \"' . $elementName . '\" ' . $elementType);          return $this;     }<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u043d\u0435\u043a\u0443\u044e \u0437\u0430\u0433\u043b\u0443\u0448\u043a\u0443 \u0434\u043b\u044f \u043e\u0431\u0449\u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 <code>click<\/code>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u043c \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0448\u0430\u0433\u0430\u0445 \u043d\u0430\u0448\u0438\u0445 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u043e\u0432 \u0438 \u043d\u0430 \u0442\u0435\u0445 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0445 \u0433\u0434\u0435 \u044d\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e.<\/p>\n<pre><code class=\"php\">\/**      * @return $this      *\/     public function clickCreateFreeAccountButton(): SignupModal     {         $this->click('Create Free Account');          return new SignupModal($this->tester);     }<\/code><\/pre>\n<p>\u041d\u0443 \u0438 \u0441\u0430\u043c \u0442\u0435\u0441\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0443\u0436\u0435 \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<\/p>\n<pre><code class=\"php\"> \/**      * @Title(\"Successful signup without email\")      * @Features({\"Signup\"})      * @Stories({\"Signup without email\"})      * @Labels({      *     @Label(name=\"layer\", values=\"manual\"),      *     @Label(name=\"ALLURE_MANUAL\", values=\"true\")      * })      *      * @param ManualTester $I      * @param Header $header      *\/     public function successfulSignupWithoutEmail(ManualTester $I, Header $header): void     {         $I             ->amOnPage(IndexPage::URL)             ->amAuthenticatedAsGuest();          $header             ->clickCreateFreeAccountButton()             ->clickSignupWithoutEmailButton()             ->fillUsername($I->generateRandomCredentials()['username'])             ->fillPassword(AcceptanceTester::STRONG_PASSWORD)             ->clickCreateFreeAccountButton();          $I->expectUserAccountCreated();     }<\/code><\/pre>\n<p>\u0417\u0434\u0435\u0441\u044c, \u043c\u044b \u043e\u0431\u0440\u0430\u0449\u0430\u0435\u043c\u0441\u044f \u043a \u0430\u0442\u0435\u043a\u0443 &#8212; <code>ManualTester<\/code> \u0438 \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c. \u041f\u0440\u0438\u043c\u0435\u0440:<\/p>\n<pre><code class=\"php\">&lt;?php \/**  * @SuppressWarnings(PHPMD)  *\/ class ManualTester extends Actor {     use StepSupport;      \/**      * @param string $url      * @return \\Tests\\_support\\ManualTester      *\/     public function amOnPage(string $url): self     {         return $this->step('Am on page ' . $url);     }      \/**      * @return $this      *\/     public function amAuthenticatedAsGuest(): self     {         return $this->step('Am authenticate as guest');     } }<\/code><\/pre>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043b\u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043e\u043d \u0438\u0437\u0431\u044b\u0442\u043e\u0447\u043d\u044b\u043c &#8212; \u0432\u043e\u043f\u0440\u043e\u0441 \u0445\u043e\u0440\u043e\u0448\u0438\u0439! \u041e\u0434\u043d\u043e \u043c\u043e\u0433\u0443 \u0442\u043e\u0447\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0432\u043c\u0435\u0449\u0430\u0442\u044c \u044d\u0442\u0438 \u0434\u0432\u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0430 \u0432 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0440\u0443\u0447\u043d\u044b\u0445 \u0442\u0435\u0441\u0442 \u043a\u0435\u0439\u0441\u043e\u0432. \u041f\u0435\u0440\u0432\u044b\u0439 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f <code>\u0431\u044b\u0441\u0442\u0440\u044b\u0445 \u043c\u044b\u0441\u043b\u0435\u0439<\/code> \u0438 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0439 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0430 \u0432\u0442\u043e\u0440\u043e\u0439 \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u044f \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0438 \u0432\u0434\u0443\u043c\u0447\u0438\u0432\u044b\u0445 \u0442\u0435\u0441\u0442 \u043a\u0435\u0439\u0441\u043e\u0432. \u0414\u0430, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0443\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0447\u0430\u0449\u0435, \u0430 \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442\u044c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u043e\u0432 \u043d\u0443\u0436\u043d\u043e \u0431\u043e\u043b\u0435\u0435 \u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041b\u0438\u0447\u043d\u043e \u043c\u043d\u0435 \u043f\u043e\u0447\u0435\u043c\u0443-\u0442\u043e \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0431\u043b\u0438\u0436\u0435. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043e\u043d \u0438\u0437\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0430\u0441 \u043e\u0442 \u0431\u0435\u0437\u0434\u0443\u043c\u043d\u044b\u0445 \u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u043e\u0432 \u0432 \u0441\u0442\u0438\u043b\u0435 &#171;\u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e \u0442\u043e, \u0441\u0430\u043c \u043d\u0435 \u0437\u043d\u0430\u044e \u0447\u0442\u043e&#187;, \u043d\u043e \u044d\u0442\u043e \u043c\u043e\u0435 \u043b\u0438\u0447\u043d\u043e\u0435 \u043c\u043d\u0435\u043d\u0438\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u043e \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u044b\u0445 \u043c\u0438\u043d\u0443\u0441\u0430\u0445. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u0438\u0442\u044c (\u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0438\u043b\u0438 \u0444\u0430\u0439\u043b) \u043a \u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u0443, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0441\u043b\u043e\u0436\u043d\u043e, \u0442\u0430\u043a \u043a\u0430\u043a \u0432 Allure TestOps \u044d\u0442\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u043d\u0435 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u044f\u0437\u044b\u043a\u043e\u0432. \u0414\u043b\u044f PHP, \u044d\u0442\u043e \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u0432 \u0441\u0442\u0430\u0434\u0438\u0438 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438. \u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u043c\u0438\u043d\u0443\u0441 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0442\u0430\u043a\u0438\u0435 \u0440\u0443\u0447\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442\u0441\u044f \u0441 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u044f\u044e\u0442 \u0434\u0440\u0430\u0433\u043e\u0446\u0435\u043d\u043d\u043e \u0435\u0432\u0440\u0435\u043c\u044f \u043f\u0440\u0438 \u043f\u0440\u043e\u0433\u043e\u043d\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u0442\u0435\u0441\u0442\u043e\u0432. \u041a\u043e\u043d\u0435\u0447\u043d\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0442\u0430\u043a\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430 \u043e\u0447\u0435\u043d\u044c \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u0435, \u043d\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u043e\u0442\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c \u043e\u0442 \u0438\u0434\u0435\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434.<\/p>\n<p>\u0421\u0442\u043e\u0438\u0442 \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0441\u0430\u043c\u0438 \u0442\u0435\u0441\u0442\u044b \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u043d\u0430 \u0432\u0435\u0442\u043a\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u0441\u0442\u0430\u0442\u0443\u0441: <code>in_progress<\/code>, \u0447\u0442\u043e \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u043e, \u043a\u043e\u0433\u0434\u0430 \u0432 \u043e\u0442\u0447\u0435\u0442\u0435 \u0435\u0441\u0442\u044c \u0440\u0443\u0447\u043d\u044b\u0435 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0435\u0441\u0442\u044b. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u0438\u0445 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u0412\u043e\u043e\u0431\u0449\u0435, Allure TestOps \u0443\u043c\u0435\u0435\u0442 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u044b \u043d\u0430 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432, \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0440\u043e\u043f\u0438\u0448\u0435\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u0430. \u0422\u0430\u043a \u0436\u0435 \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0442\u0430\u043a\u0438\u043c\u0438\u0442\u0435\u0441\u0442\u0430\u043c\u0438, \u0435\u0441\u0442\u044c \u043f\u043b\u0430\u0433\u0438\u043d <a href=\"https:\/\/plugins.jetbrains.com\/plugin\/12513-allure-testops-support\" rel=\"noopener noreferrer nofollow\">Allure TestOps Support<\/a> , \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u043e \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u0440\u043e\u0433\u043e\u043d\u043e\u0432 \u043a\u0430\u043a \u0440\u0443\u0447\u043d\u044b\u0445 \u0442\u0430\u043a \u0438 \u0430\u0432\u0442\u043e \u0442\u0435\u0441\u0442\u043e\u0432 \u0432 Allure Testops \u043f\u0440\u044f\u043c\u043e \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u044f \u0438\u0437 IDE.<\/p>\n<p>\u041e\u0434\u043d\u043e \u043c\u043e\u0433\u0443 \u0442\u043e\u0447\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c: \u0440\u0435\u0431\u044f\u0442\u0430 \u0438\u0437 Qameta \u0441\u0435\u0439\u0447\u0430\u0441 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432 \u044d\u0442\u043e\u043c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0438 \u044f \u0434\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0430\u0442 \u0431\u043e\u043b\u0435\u0435 \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0432\u043e\u043f\u0440\u043e\u0441\u0430. \u041a\u0430\u043a \u043d\u0435\u0441\u043b\u043e\u0436\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430 \u0442\u043e, \u0447\u0435\u0433\u043e \u0436\u0435\u043b\u0430\u043b\u0430, \u0438 \u043f\u043e\u043a\u0430 \u0447\u0442\u043e \u043e\u0441\u0442\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u044d\u0442\u043e\u043c \u043f\u0443\u0442\u0438. <\/p>\n<h2>Dashboards and reports <\/h2>\n<p>\u0427\u0442\u043e \u0436, \u0441 \u0440\u0443\u0447\u043d\u044b\u043c\u0438 \u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u0432\u0440\u043e\u0434\u0435 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c, \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u043b\u0438 \u0447\u0430\u0441\u0442\u044c \u0442\u0435\u0441\u0442\u043e\u0432 \u0432 \u043a\u043e\u0434, \u0447\u0430\u0441\u0442\u044c \u0443\u0434\u0430\u043b\u0438\u043b\u0438, \u0447\u0430\u0441\u0442\u044c \u043f\u043e \u043f\u0443\u0442\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438, \u0430 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u0432\u043e\u043e\u0431\u0449\u0435 \u0440\u0430\u0441\u043f\u0438\u0441\u0430\u043b\u0438 \u043a\u0430\u043a \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0432 Confluence, \u043f\u043e\u043b\u0443\u0447\u0438\u0432 \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u0431\u0430\u0437\u0443 \u0437\u043d\u0430\u043d\u0438\u0439. \u041e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043e\u0442\u0447\u0435\u0442\u0430\u043c\u0438. \u0412 Allure TestOps \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u0430\u043a \u0438 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f &#8212; dashboards. \u041e\u043d\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u0437 \u0441\u0435\u0431\u044f \u043d\u0430\u0431\u043e\u0440 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u0434\u044d\u0448\u0431\u043e\u0440\u0434\u043e\u0432 \u0438 \u0432\u0438\u0434\u0436\u0435\u0442\u043e\u0432, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e\u043d\u0430\u0439\u0442\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431\u043e \u0432\u0441\u0435\u0445 \u0442\u0435\u0441\u0442\u0430\u0445, \u0438\u0445 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0445 (launches) \u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ae0\/6e1\/e4c\/ae06e1e4c5d00e934e7985d60a244082.png\" alt=\"\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 Dashboards\" title=\"\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 Dashboards\" width=\"3360\" height=\"1722\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ae0\/6e1\/e4c\/ae06e1e4c5d00e934e7985d60a244082.png\"\/><figcaption>\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 Dashboards<\/figcaption><\/figure>\n<p>\u041d\u0430 \u0432\u0438\u0434\u0436\u0435\u0442\u0435 \u201ctest cases\u201d \u0432\u0438\u0434\u043d\u043e \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0430\u0448\u0438\u0445 \u0442\u0435\u0441\u0442\u043e\u0432, \u043a\u0430\u043a \u0440\u0443\u0447\u043d\u044b\u0445, \u0442\u0430\u043a \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445. \u041d\u0430 \u0432\u0438\u0434\u0436\u0435\u0442\u0435 <code>launches<\/code> \u0432\u0438\u0434\u043d\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0438 \u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0435\u0441\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u044b \u0432 \u043a\u0430\u0436\u0434\u043e\u043c \u0438\u0437 \u043d\u0438\u0445. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043f\u043e\u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u0432\u0438\u0434\u0436\u0435\u0442\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e query language (\u0430\u043d\u0430\u043b\u043e\u0433 \u044f\u0437\u044b\u043a\u0430 \u0432 JIRA) \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043b\u044e\u0431\u043e\u0439 \u043e\u0442\u0447\u0435\u0442. \u041a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u043c\u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043d\u0440\u0430\u0432\u0438\u043b\u0430\u0441\u044c \u0438\u0434\u0435\u044f \u0441 \u043e\u0442\u0447\u0435\u0442\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f <code>Test Case Tree Map Chart<\/code>, \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u043c\u0430\u0442\u0440\u0438\u0446\u0443 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044f. <\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/972\/3c7\/bc6\/9723c7bc6613a755f7002399f7db2d34.png\" width=\"1600\" height=\"769\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/972\/3c7\/bc6\/9723c7bc6613a755f7002399f7db2d34.png\"\/><figcaption><\/figcaption><\/figure>\n<p>\u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0435\u0431\u0435 \u0435\u0434\u0438\u043d\u044b\u0439 \u0433\u0440\u0430\u0444\u0438\u043a, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0447\u0442\u043e \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0439 \u0444\u0438\u0447\u0438 \u0443 \u043d\u0430\u0441 3 \u0440\u0443\u0447\u043d\u044b\u0445 \u0438 1 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442, \u0430 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u043e\u0439 \u2014 \u0442\u043e\u043b\u044c\u043a\u043e 5 \u0440\u0443\u0447\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432. \u0422\u0430\u043a\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u044c, \u0433\u0434\u0435 \u0445\u0440\u043e\u043c\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0438\u043b\u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435.<\/p>\n<h2>\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438 \u043f\u043b\u0430\u043d\u044b \u043d\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0435<\/h2>\n<p>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043d\u0430 \u044d\u0442\u043e\u043c \u044d\u0442\u0430\u043f\u0435 \u0431\u044b\u043b\u0430 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0430 \u0438 \u0442\u043e, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043e \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435, \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0435\u0442 \u043d\u0430\u0448\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0438. \u0412 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0445 \u043f\u043b\u0430\u043d\u0430\u0445 \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0442\u0435\u0441\u0442\u043e\u0432 \u0438\u0437 Allure TestOps, \u0442.\u0435 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u043d\u0430\u0431\u043e\u0440\u0430 \u0448\u0430\u0431\u043b\u043e\u043d\u043e\u0432 \u0441 \u0442\u0435\u0441\u0442\u0430\u043c\u0438, \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0438\u0445 \u0432 \u0442\u0435\u0441\u0442-\u043f\u043b\u0430\u043d\u044b \u0438 \u0437\u0430\u043f\u0443\u0441\u043a \u0438\u0445 \u043f\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438\u0437 Allure TestOps \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445\/\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430\u0445\/\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445. \u0415\u0449\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0430\u043f\u0438\u043b\u044c\u043d\u0438\u043a\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0443\u0447\u043d\u044b\u043c\u0438 \u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u0430\u043c\u0438, \u0430 \u0442\u0430\u043a \u0436\u0435 \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 \u043d\u043e\u0432\u044b\u0439 \u0441\u0442\u0435\u043a. \u0421\u0430\u043c\u043e\u0435 \u043f\u0440\u0438\u044f\u0442\u043d\u043e \u0437\u0434\u0435\u0441\u044c \u0442\u043e, \u0447\u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043d\u043e\u0432\u043e\u0433\u043e \u0441\u0442\u0435\u043a\u0430, \u043d\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c TMS! Allure TestOps \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u043e\u0447\u0442\u0438 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u043c\u0438 \u0444\u0440\u044d\u0439\u043c\u0432\u043e\u0440\u043a\u0430\u043c\u0438 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438, \u0440\u0430\u0437\u0432\u0435 \u0447\u0442\u043e \u0441 \u0442\u043e\u0441\u0442\u0435\u0440\u043e\u043c \u043d\u0435 \u0437\u0430\u0432\u0435\u0434\u0442\u0441\u044f \ud83d\ude42<\/p>\n<p>\u0421\u0430\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433\u0430, \u043a\u0430\u043a \u044f \u043f\u0438\u0441\u0430\u043b \u0440\u0430\u043d\u0435\u0435, \u0437\u0430\u043d\u044f\u043b \u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0434\u043e\u043b\u0433\u0438\u0439 \u0438 \u0442\u044f\u0436\u0435\u043b\u044b\u0439 \u043c\u0435\u0441\u044f\u0446, \u0437\u0430\u0442\u043e \u043c\u044b \u043f\u043e\u043d\u044f\u043b\u0438, \u0447\u0442\u043e \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043e, \u0430 \u0447\u0442\u043e \u043d\u0435\u0442. \u0417\u0430\u043e\u0434\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u043b\u0438 \u0432 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0440\u0443\u0447\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b. \u0421\u0442\u043e\u0438\u043b\u043e \u043b\u0438 \u044d\u0442\u043e \u0442\u043e\u0433\u043e? \u0414\u043b\u044f \u043d\u0430\u0441 &#8212; \u0442\u043e\u0447\u043d\u043e \u0434\u0430. \u0412 \u0438\u0442\u043e\u0433\u0435 \u0432\u0441\u0435 \u0441\u0442\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435 \u0438 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0435\u0435.<\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e Allure TestOps, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u043d\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0435\u0440\u0435\u0431\u0440\u044f\u043d\u043d\u043e\u0439 \u043f\u0443\u043b\u0435\u0439 \u0438\u043b\u0438 \u0432\u043e\u043b\u0448\u0435\u0431\u043d\u044b\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432 \u043e\u0434\u043d\u043e\u0447\u0430\u0441\u044c\u0435 \u0440\u0435\u0448\u0438\u0442 \u0432\u0441\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043d\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0435. \u041d\u043e \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u043c\u043e\u0433\u0443 \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u044d\u0442\u043e\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043e\u0447\u0435\u043d\u044c \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u0435\u0442 \u0436\u0438\u0437\u043d\u044c \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432 \u043f\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430, \u043f\u0440\u0438\u0432\u0438\u0432\u0430\u044f \u0438 \u043a\u0430\u043a \u0431\u044b \u043d\u0435\u0432\u0437\u043d\u0430\u0447\u0430\u0439 \u043d\u0430\u0432\u044f\u0437\u044b\u0432\u0430\u044f \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u0434\u0445\u043e\u0434\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u043e\u0449\u0443\u0442\u0438\u0442\u044c \u0430\u0442\u043c\u043e\u0441\u0444\u0435\u0440\u0443 \u0431\u0435\u0437\u043c\u044f\u0442\u0435\u0436\u043d\u043e\u0439 \u0433\u0430\u0432\u0430\u043d\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0438 \u043f\u0440\u0438\u043d\u043e\u0441\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u0443, \u0430 \u043d\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0442\u0443\u0448\u0438\u0442\u044c \u043f\u043e\u0436\u0430\u0440\u044b. \ud83d\ude42<\/p>\n<p>\u0412\u0441\u0435\u043c \u0441\u043f\u0430\u0441\u0438\u0431\u043e, \u0447\u0442\u043e \u0443\u0434\u0435\u043b\u0438\u043b\u0438 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435, \u0431\u0443\u0434\u0443 \u0440\u0430\u0434 \u043b\u044e\u0431\u044b\u043c \u0432\u043e\u043f\u0440\u043e\u0441\u0430\u043c \u0438 \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u043d\u0430 \u043d\u0438\u0445 \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/571476\/\"> https:\/\/habr.com\/ru\/articles\/571476\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><figcaption>\u041e\u0444\u0438\u0441 allure \ud83d\ude42<\/figcaption><\/figure>\n<h2>\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435<\/h2>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e \u0442\u0435\u0431\u044f, \u043c\u043e\u0439 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0440\u0443\u0433! \u0415\u0441\u043b\u0438 \u0442\u044b \u0447\u0438\u0442\u0430\u0435\u0448\u044c \u044d\u0442\u0443 \u0441\u0442\u0430\u0442\u044c\u044e, \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u0442\u0435\u0431\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u0435\u043d Allure, \u0438\u043b\u0438 \u0442\u044b \u0445\u043e\u0447\u0435\u0448\u044c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u0442\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0437\u0432\u0435\u0440\u044c \u0438 \u043a\u0430\u043a \u043e\u043d \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0437 \u043c\u043d\u043e\u0433\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u043b\u044f\u0441\u043e\u043a \u0441 \u0431\u0443\u0431\u043d\u043e\u043c. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0445\u043e\u0447\u0443 \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u0432\u043d\u0435\u0434\u0440\u044f\u043b\u0438 \u043e\u0434\u0438\u043d \u0438\u0437 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 (\u0438\u043b\u0438 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f) \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0436\u0438\u0437\u043d\u044c \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430\u043c \u043f\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044e \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u043d\u0435\u043c\u043d\u043e\u0436\u0435\u0447\u043a\u043e \u043b\u0435\u0433\u0447\u0435: \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u044e\u0441\u044c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0432 \u0434\u0435\u0442\u0430\u043b\u044f\u0445 \u0441 \u0447\u0435\u0433\u043e \u0432\u0441\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u043b\u043e\u0441\u044c, \u043a\u0430\u043a \u0448\u043b\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435, \u0447\u0435\u0440\u0435\u0437 \u0447\u0442\u043e \u043f\u0440\u043e\u0448\u043b\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u0447\u0442\u043e \u0432 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0438 \u043a\u0443\u0434\u0430 \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0434\u0430\u043b\u044c\u0448\u0435. \u0410 \u0432\u0438\u043d\u043e\u0432\u043d\u0438\u043a\u043e\u043c \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438, \u043a\u0430\u043a \u043d\u0435\u0442\u0440\u0443\u0434\u043d\u043e \u0434\u043e\u0433\u0430\u0434\u0430\u0442\u044c\u0441\u044f, \u0441\u0442\u0430\u043b \u0442\u043e\u0442 \u0441\u0430\u043c\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u2014 \u0431\u044b\u0432\u0448\u0438\u0439 Allure EE, Allure Server \u0438 \u043d\u044b\u043d\u0435\u0448\u043d\u0438\u0439 <a href=\"https:\/\/qameta.io\/\" rel=\"noopener noreferrer nofollow\">Allure Testops<\/a>.<\/p>\n<h2>\u0410 \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0434\u043e?<\/h2>\n<p>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434 \u044f \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u0438\u043b\u0441\u044f \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u043e\u0447\u0435\u043d\u044c \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u043c\u0443 \u0438 \u0430\u043c\u0431\u0438\u0446\u0438\u043e\u0437\u043d\u043e\u043c\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0443. \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0431\u044b\u043b\u043e \u0448\u0435\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0438 \u0434\u0432\u0430 QA-\u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043c\u0435\u043d\u044f. \u041d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u043c \u0441\u0442\u0435\u043a\u043e\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u0436\u0435 \u0431\u044b\u043b \u0432\u043d\u0435\u0434\u0440\u0435\u043d \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0441\u044f \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u044f\u0432\u043b\u044f\u043b\u0441\u044f: <\/p>\n<ul>\n<li>\n<p>PHP 7.4 \u0438 framework <a href=\"https:\/\/codeception.com\/\" rel=\"noopener noreferrer nofollow\">Codeception<\/a><\/p>\n<\/li>\n<li>\n<p>Framework <a href=\"https:\/\/aerokube.com\/selenoid\/latest\/\" rel=\"noopener noreferrer nofollow\">Selenoid<\/a> <\/p>\n<\/li>\n<li>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 CI\/CD \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 <a href=\"https:\/\/about.gitlab.com\/\" rel=\"noopener noreferrer nofollow\">Gitlab<\/a><\/p>\n<\/li>\n<li>\n<p>\u041e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u0442\u0447\u0435\u0442\u043e\u0432 \u043a\u0430\u043a \u0442\u0430\u043a\u043e\u0439 \u043d\u0435 \u0431\u044b\u043b\u043e: \u0434\u043b\u044f \u0430\u0432\u0442\u043e \u0442\u0435\u0441\u0442\u043e\u0432 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0432 codeception \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u043e\u0442\u0447\u0435\u0442\u043e\u0432 (\u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0444\u043b\u0430\u0433\u0430 <a href=\"https:\/\/codeception.com\/docs\/12-ContinuousIntegration#HTML-Reports\" rel=\"noopener noreferrer nofollow\">&#8212;html<\/a> \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0441\u0430\u043c\u0438\u0445 \u0442\u0435\u0441\u0442\u043e\u0432), \u0430 \u0434\u043b\u044f \u0440\u0443\u0447\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u043c\u044b   \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 <a href=\"https:\/\/marketplace.atlassian.com\/apps\/1014681\/zephyr-squad-test-management-for-jira?hosting=cloud&amp;tab=overview\" rel=\"noopener noreferrer nofollow\">TMS Zephyr<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0434\u0432\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 \u043e\u0442\u0447\u0435\u0442\u0430 \u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u0440\u0443\u0447\u043d\u044b\u043c\u0438 \u0438 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u0430\u043c\u0438, \u0447\u0442\u043e, \u0441\u0430\u043c\u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u043d\u0435 \u043e\u0447\u0435\u043d\u044c-\u0442\u043e \u0443\u0434\u043e\u0431\u043d\u043e. \u041a\u0440\u043e\u043c\u0435 \u043d\u0435\u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0432 \u0440\u0435\u043f\u043e\u0440\u0442\u0438\u043d\u0433\u0435, \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u0432\u0440\u043e\u0434\u0435 &#171;\u0410 \u043a\u0430\u043a \u0436\u0435 \u0441\u043a\u0440\u0435\u0441\u0442\u0438\u0442\u044c \u0435\u0436\u0430 \u0441 \u043f\u043e\u043f\u0443\u0433\u0430\u0435\u043c?&#187; \u041b\u0430\u0434\u043d\u043e, \u0448\u0443\u0447\u0443! &#171;\u0410 \u043a\u0430\u043a \u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442\u0447\u0435\u0442 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u0433\u043b\u044f\u0434\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0438 \u0440\u0443\u0447\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432?&#187; \u0438\u043b\u0438 &#171;\u043a\u0430\u043a \u0436\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442\u0447\u0435\u0442 \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0435\u0442 \u0447\u0435\u0442\u043a\u043e \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442 \u0443\u0436\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u044b?&#187; \u041e\u0442\u0432\u0435\u0442\u044b \u043d\u0430 \u044d\u0442\u0438 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043e\u0447\u0435\u043d\u044c \u0437\u0430\u0442\u044f\u0433\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0441\u0430\u043c \u0441\u0442\u0435\u043a \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 \u0442\u043e\u0442 \u043f\u0435\u0440\u0438\u043e\u0434 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0431\u044b\u043b\u043e \u043f\u0440\u0438\u043d\u044f\u0442\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u0442\u044c \u043f\u043e \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u043c \u043f\u043b\u043e\u0442\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0431\u0430\u0437\u044b \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u043e\u0432, \u043d\u043e \u0432\u043e\u0442 \u043a\u0430\u0441\u0430\u0435\u043c\u043e \u043e\u0442\u0447\u0435\u0442\u043e\u0432 \u0438 \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u043e\u0439 report-\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0440\u0435\u0448\u0438\u043b\u0438, \u0447\u0442\u043e \u043f\u0440\u0438\u0448\u043b\u0430 \u043f\u043e\u0440\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u0430\u043c.<\/p>\n<h2>\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u043d\u043e\u043c\u0435\u0440 \u0440\u0430\u0437<\/h2>\n<p>\u0413\u043b\u0430\u0432\u043d\u044b\u043c \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0438\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u043b\u0430 \u0443 \u043d\u0430\u0441 \u0432 \u0441\u0442\u0435\u043a\u0435, \u043d\u0430\u043f\u043e\u043c\u043d\u044e, \u044d\u0442\u043e \u0431\u044b\u043b Zephyr, \u0431\u044b\u043b\u0430 \u0433\u043b\u0443\u0431\u043e\u043a\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f\u0441 JIRA. \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b\u0430 \u0432\u0435\u0441\u0442\u0438 \u0432\u0441\u044e \u0442\u0435\u0441\u0442\u043e\u0432\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043f\u0440\u044f\u043c\u043e \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u044f \u0438\u0437 \u043d\u0435\u0435, \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0434\u044d\u0448\u0431\u043e\u0440\u0434\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f JQL, \u043f\u0438\u0441\u0430\u0442\u044c \u0442\u0435\u0441\u0442 \u043a\u0435\u0439\u0441\u044b \u043f\u0440\u044f\u043c\u043e \u0432 \u0442\u0430\u0441\u043a\u0435 \u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 &#171;\u0431\u043e\u0440\u0434\u0443&#187;. \u0412\u043f\u0440\u043e\u0447\u0435\u043c, \u0431\u044b\u043b\u0438 \u0438 \u043c\u0438\u043d\u0443\u0441\u044b. \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043e\u0447\u0435\u043d\u044c \u0441\u043b\u043e\u0436\u043d\u043e \u0438 \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e \u043f\u0438\u0441\u0430\u0442\u044c\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u044b \u0432 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u043e\u043c \u043e\u043a\u043e\u0448\u043a\u0435 (\u0434\u0430-\u0434\u0430, \u043e\u043d\u043e \u0443\u043c\u0435\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443, \u043d\u043e \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043f\u0440\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u043c \u043e\u0431\u044a\u0435\u043c\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438). \u0412\u043e-\u0432\u0442\u043e\u0440\u044b\u0445, \u043c\u044b \u043d\u0435 \u0441\u043c\u043e\u0433\u043b\u0438 \u043d\u0430\u0439\u0442\u0438 \u043e\u0442\u0432\u0435\u0442, \u043a\u0430\u043a \u0441\u043b\u0438\u043d\u043a\u043e\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u044b c \u0440\u0443\u0447\u043d\u044b\u043c\u0438 \u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u043a\u0432\u043e\u0437\u043d\u044b\u0435 \u043e\u0442\u0447\u0435\u0442\u044b \u0434\u043b\u044f \u043d\u0430\u0448\u0435\u0439 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b (\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u043b\u043e\u0445\u043e \u0438\u0441\u043a\u0430\u043b\u0438). \u042d\u0442\u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043d\u0430\u0441 \u0432 \u043f\u0443\u0442\u0435\u0448\u0435\u0441\u0442\u0432\u0438\u0435 \u0432 \u043d\u0430\u0434\u0435\u0436\u0434\u0435 \u043d\u0430\u0439\u0442\u0438 \u0442\u0438\u0445\u0443\u044e \u0433\u0430\u0432\u0430\u043d\u044c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c\u0441\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430, \u0430 \u043d\u0435 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u0440\u0443\u0442\u0438\u043d\u043e\u0439 \u043f\u043e \u0441\u0431\u043e\u0440\u043a\u0435 \u0438 \u0434\u043e\u043f\u0438\u043b\u0438\u0432\u0430\u043d\u0438\u044e \u043e\u0442\u0447\u0435\u0442\u043e\u0432. \u041c\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438\u0441\u044c \u0438\u0441\u043a\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442.<\/p>\n<h2>\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u043d\u043e\u043c\u0435\u0440 \u0434\u0432\u0430<\/h2>\n<p>\u0412\u0442\u043e\u0440\u044b\u043c \u0437\u0430\u0445\u043e\u0434\u043e\u043c \u0432 \u0431\u0443\u0445\u0442\u0443 \u0441\u0442\u0430\u043b \u0432\u0441\u0435\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 <a href=\"https:\/\/www.gurock.com\/testrail\/\" rel=\"noopener noreferrer nofollow\">TestRail<\/a>. \u041f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u0435 \u0441 \u043d\u0438\u043c \u044f \u0431\u044b\u043b \u0432 \u0432\u043e\u0441\u0442\u043e\u0440\u0433\u0435! \u0412 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0442\u0435\u0441\u0442\u044b, \u0442\u0435\u0441\u0442 \u043f\u043b\u0430\u043d\u044b, \u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0440\u043e\u0433\u043e\u043d\u044b \u0432\u0430\u0448\u0438\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u0440\u0430\u0441\u0438\u0432\u044b\u0435 \u043e\u0442\u0447\u0435\u0442\u044b: \u0442\u0443\u0442 \u0438 \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u043e\u0432 \u0435\u0441\u0442\u044c, \u0438 \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0435 \u043f\u043e\u043b\u0435 \u0434\u043b\u044f \u0448\u0430\u0433\u043e\u0432 \u0432 \u0441\u0430\u043c\u043e\u043c \u0442\u0435\u0441\u0442-\u043a\u0435\u0439\u0441\u0435. \u041d\u043e \u0438 \u0431\u0435\u0437 \u043b\u043e\u0436\u043a\u0438 \u0434\u0435\u0433\u0442\u044f \u043d\u0435 \u043e\u0431\u043e\u0448\u043b\u043e\u0441\u044c &#8212; \u043a\u0430\u043a \u0441 \u0430\u0432\u0442\u043e\u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u043f\u043e\u0434\u0440\u0443\u0436\u0438\u0442\u044c \u043e\u0442\u0447\u0435\u0442\u044b \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0435\u0434\u0438\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u043e\u043d\u044b? \u0414\u0430, \u0443 TestRail \u0435\u0441\u0442\u044c <a href=\"https:\/\/www.gurock.com\/testrail\/docs\/api\/getting-started\/binding-php\" rel=\"noopener noreferrer nofollow\">API-\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f<\/a>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438, \u0438 \u0434\u0430\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0441\u0432\u043e\u044e <a href=\"https:\/\/github.com\/fr05t1k\/testrail\" rel=\"noopener noreferrer nofollow\">\u0432\u0435\u0440\u0441\u0438\u044e<\/a> (\u0437\u0430 \u0447\u0442\u043e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432,\u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u043c \u043f\u043e\u043c\u043e\u0433\u0430\u043b\u0430 \u0432 \u044d\u0442\u043e\u043c) \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u0438 \u043f\u0440\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u0432 \u0443 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0430. \u041f\u0440\u043e\u0441\u0442\u043e \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u0440\u0438\u0448\u043b\u043e \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435, \u0447\u0442\u043e \u043c\u044b \u0443\u0434\u0435\u043b\u044f\u0435\u043c \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0438 \u0435\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0443\u0439\u043c\u0443 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0430 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043d\u0430 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0435 \u0432\u0441\u0435 \u0435\u0449\u0435 \u043d\u0435\u0442. &#171;\u0422\u0438\u0445\u043e\u0439 \u0433\u0430\u0432\u0430\u043d\u0438&#187; \u043d\u0435 \u0431\u044b\u043b\u043e \u0432\u0438\u0434\u043d\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0435\u0440\u0435\u0435\u0437\u0434 \u043d\u043e\u043c\u0435\u0440 \u0442\u0440\u0438 \u0431\u044b\u043b \u043d\u0435 \u0437\u0430\u0433\u043e\u0440\u0430\u043c\u0438.<\/p>\n<h2>\u041f\u043e\u043f\u044b\u0442\u043a\u0430 \u043d\u043e\u043c\u0435\u0440 \u0442\u0440\u0438<\/h2>\n<p>\u0412 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437 \u0443 \u043d\u0430\u0441 \u043d\u0435 \u0431\u044b\u043b\u043e \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u043e\u0448\u0438\u0431\u043a\u0443 \u0438 \u043c\u044b \u0437\u0430\u043d\u044f\u043b\u0438\u0441\u044c \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0439 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u043e\u0439 \u043a \u0432\u044b\u0431\u043e\u0440\u0443 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430: \u0434\u043e\u043b\u0433\u0438\u0439 \u043f\u043e\u0438\u0441\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435, \u0441\u043e\u0432\u0435\u0442\u044b \u0441 \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c\u0438, \u0436\u0430\u0440\u043a\u0438\u0435 \u0434\u0438\u0441\u043a\u0443\u0441\u0441\u0438\u0438 \u0438 \u0447\u0442\u0435\u043d\u0438\u0435 \u043a\u043d\u0438\u0433, &#8212; \u0432\u0441\u0435 \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u043b\u043e \u043d\u0430\u0448\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 \u043d\u0430 \u043e\u0434\u043d\u0443 \u0438\u0437 \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u0439 \u043f\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u044b\u0441\u0442\u0443\u043f\u0430\u043b \u0410\u0440\u0442\u0435\u043c \u0415\u0440\u043e\u0448\u0435\u043d\u043a\u043e. \u0414\u043e\u043a\u043b\u0430\u0434 \u0431\u044b\u043b \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d \u0442\u043e\u043c\u0443 \u0441\u0430\u043c\u043e\u043c\u0443 Allure Testops, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0447\u0442\u043e \u043e\u043d \u0443\u043c\u0435\u0435\u0442 \u0438 \u043a\u0430\u043a \u044d\u0442\u043e \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c. \u0412\u043f\u0435\u0447\u0430\u0442\u043b\u0438\u0432\u0448\u0438\u0441\u044c \u0432\u044b\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435\u043c, \u044f \u043f\u043e\u0448\u0435\u043b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c\u0441\u044f, \u0431\u0443\u0434\u0435\u0442 \u043b\u0438 \u0432\u0441\u0435 \u044d\u0442\u043e <s>\u0431\u0435\u0437\u043e\u0431\u0440\u0430\u0437\u0438\u0435<\/s> \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441\u043e \u0441\u0442\u0435\u043a\u043e\u043c \u043d\u0430 \u043d\u0430\u0448\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435.<\/p>\n<p><code>\u0417\u0434\u0435\u0441\u044c \u0441\u0442\u043e\u0438\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0442\u0441\u0442\u0443\u043f\u043b\u0435\u043d\u0438\u0435, \u0447\u0442\u043e \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0443\u0436\u0435 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u043f\u0435\u0440\u0435\u0435\u0437\u0434 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0441\u0442\u0435\u043a \u0438 \u043c\u044b \u043f\u043b\u043e\u0442\u043d\u043e \u043d\u0430\u0434 \u044d\u0442\u0438\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c, \u043d\u043e \u043e\u0431 \u044d\u0442\u043e\u043c \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u0440\u0430\u0437.<\/code><\/p>\n<p>\u041a\u0430\u043a \u0432\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c \u043f\u0440\u0438 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0438 &#8212; \u044d\u0442\u043e \u043e\u043a\u0430\u0437\u0430\u043b\u043e\u0441\u044c \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043f\u0440\u0438\u0448\u043b\u043e\u0441\u044c \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f. \u041d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u0448\u0435\u0433\u043e \u0437\u043d\u0430\u043a\u043e\u043c\u0441\u0442\u0432\u0430 \u0441 Allure Testops \u0431\u044b\u043b\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0430 \u0430\u0434\u0430\u043f\u0442\u0435\u0440 \u0434\u043b\u044f PHP \u0431\u044b\u043b \u0441\u044b\u0440\u043e\u0432\u0430\u0442. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u044d\u0442\u0438 \u043d\u0435\u0434\u043e\u0447\u0435\u0442\u044b, \u0443\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u0447\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043f\u043e\u043a\u0440\u044b\u0432\u0430\u043b\u0430 \u043d\u0430\u0448\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f, \u0438, \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b\u0438, \u044d\u0442\u043e \u0431\u044b\u043b \u0433\u043b\u043e\u0442\u043e\u043a \u0441\u0432\u0435\u0436\u0435\u0433\u043e \u0432\u043e\u0437\u0434\u0443\u0445\u0430 \u0438 \u043f\u0435\u0440\u0432\u044b\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043d\u0435\u0437\u0430\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0441\u0435\u0431\u044f \u0434\u043e\u043b\u0433\u043e \u0436\u0434\u0430\u0442\u044c.<\/p>\n<h2>\u041f\u0435\u0440\u0432\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0438 \u043f\u0435\u0440\u0432\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b<\/h2>\n<p>\u041f\u044f\u0442\u043d\u0438\u0446\u0430, \u043f\u043e\u0437\u0434\u043d\u0438\u0439 \u0432\u0435\u0447\u0435\u0440\u2026 \u0412\u0441\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 \u0441\u0438\u0434\u0438\u043c \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435? \u041a\u0430\u043a\u043e\u0433\u043e ***?<\/p>\n<p>\u041e\u0442\u0432\u0435\u0442 \u043f\u0440\u043e\u0441\u0442 &#8212; \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0442\u0440\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u044e\u0447\u0438\u043a Allure TestOps! \u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0432 \u0441\u0430\u043c\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0447\u0435\u0440\u0435\u0437 <a href=\"https:\/\/docs.qameta.io\/allure-testops\/getstarted\/docker-compose\/\" rel=\"noopener noreferrer nofollow\">docker-compose<\/a>, \u043c\u044b \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u0444\u043e\u0440\u043c\u0443 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0438\u0432\u0448\u0438\u0441\u044c \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u0443\u0441\u0442\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u043f\u043e\u043b\u043d\u043e\u0435 \u043e\u0441\u043e\u0437\u043d\u0430\u043d\u0438\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432\u043f\u0435\u0440\u0435\u0434\u0438 \u0435\u0449\u0435 \u0434\u043e\u043b\u0433\u0438\u0439 \u043f\u0443\u0442\u044c. \u0412\u0435\u0434\u044c \u0412\u0441\u044e \u0442\u0435\u0441\u0442\u043e\u0432\u0443\u044e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043d\u0430\u0434\u043e \u043f\u043e\u0434\u043d\u0438\u043c\u0430\u0442\u044c \u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0447\u0442\u0438 \u0447\u0442\u043e \u0441 \u043d\u0443\u043b\u044f, \u0430 \u043f\u043e\u0442\u043e\u043c \u0435\u0449\u0435 \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c, \u043a\u0430\u043a \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041f\u043e\u043d\u0435\u0441\u043b\u0430\u0441\u044c!<\/p>\n<figure class=\"float full-width\"><figcaption>allure Signup form<\/figcaption><\/figure>\n<p>\u0421\u043e\u0437\u0434\u0430\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 \u0432 UI Allure TestOps, \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432 composer \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043d\u043e\u0432\u0443\u044e \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c, \u0441\u043e\u0437\u0434\u0430\u043b\u0438 \u0432\u0435\u0442\u043a\u0443, \u043f\u0443\u0448\u043d\u0443\u043b\u0438, \u0438\u0438\u0438&#8230; \u043c\u0430\u0433\u0438\u0438 \u043d\u0435\u0442 \ud83d\ude42 \u0427\u0442\u043e \u0436, \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u043d\u0435\u043e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0439 \u0444\u0430\u043a\u0442 &#8212; \u043e\u0442\u0447\u0435\u0442 \u043d\u0430\u0434\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 <a href=\"https:\/\/docs.qameta.io\/allure-testops\/ecosystem\/allurectl\/\" rel=\"noopener noreferrer nofollow\">allurectl<\/a>. \u0421 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 composer \u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c yaml-\u0444\u0430\u0439\u043b\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043d\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u043b\u043e, \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0435\u0441\u0442\u044c <a href=\"https:\/\/github.com\/allure-framework\/allure-codeception\" rel=\"noopener noreferrer nofollow\">\u043f\u0440\u0438\u043c\u0435\u0440<\/a>, \u0430 \u0432\u043e\u0442 \u043a\u0430\u043a \u043e\u0442\u0447\u0435\u0442 \u0433\u0440\u0443\u0437\u0438\u0442\u044c, \u044d\u0442\u043e \u043f\u0440\u044f\u043c \u0432\u043e\u043f\u0440\u043e\u0441? \u041a\u0430\u043a \u044f \u043f\u0438\u0441\u0430\u043b \u0432\u044b\u0448\u0435, \u0443 \u043d\u0430\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f gilLab \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 CI\/CD \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u0430\u044f \u043f\u0430\u0447\u043a\u0430 \u0442\u0435\u0441\u0442\u043e\u0432 \u0431\u0435\u0433\u0430\u0435\u0442 \u0432 docker \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0430\u0445, \u0430 \u0447\u0430\u0441\u0442\u044c \u0442\u0435\u0441\u0442\u043e\u0432 &#8212; \u043d\u0430 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0441\u0442\u0435\u043d\u0434\u0430\u0445. \u0425\u043e\u0440\u043e\u0448\u043e&#8230; \u0414\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c allurectl \u0432 docker \u0438 \u043f\u043e\u0434\u0440\u0443\u0436\u0438\u0442\u044c \u0435\u0433\u043e \u0441 gitlab-\u043e\u043c.<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0435\u043c dockerfile, \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u043c \u043f\u0443\u0442\u044c \u043a \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044e <a href=\"https:\/\/github.com\/allure-framework\/allurectl\" rel=\"noopener noreferrer nofollow\">allurectl<\/a> \u0438 \u0434\u0435\u043b\u0430\u0435\u043c \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0438\u0441\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u043c.  \u041f\u0440\u0438\u043c\u0435\u0440 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 allurectl (\u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b \u0434\u043b\u044f <u>x86 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b<\/u>): <\/p>\n<pre><code class=\"yaml\">FROM docker\/compose:alpine-1.25.5  RUN apk add \\    bash \\    git \\    gettext  ADD https:\/\/github.com\/allure-framework\/allurectl\/releases\/latest\/download\/allurectl_linux_386 \/bin\/allurectl  RUN chmod +x \/bin\/allurectl<\/code><\/pre>\n<p>\u0423\u0436\u0435 \u043b\u0443\u0447\u0448\u0435, \u0434\u0430\u043b\u044c\u0448\u0435 \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043b\u043e\u0433\u0438\u043a\u0443 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u043e\u043c \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442 (allurectl) \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 CI. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b Allure Testops \u0443\u0437\u043d\u0430\u043b \u043f\u0440\u043e \u043d\u0430\u0448\u0438 \u0442\u0435\u0441\u0442\u044b, \u043d\u0443\u0436\u043d\u043e \u043e\u043f\u0438\u0441\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0434\u0432\u0443\u0445 \u0434\u0436\u043e\u0431: <code>allure-start<\/code> \u0438 <code>allure-stop<\/code>.<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0436\u043e\u0431\u044b <code>allure-start<\/code>:<\/p>\n<pre><code class=\"yaml\">allure-start:   stage: build   image: image \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430   interruptible: true   variables:     GIT_STRATEGY: none   tags:     - \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f   script:     - allurectl job-run start --launch-name \"${CI_PROJECT_NAME} \/ ${CI_COMMIT_REF_NAME} \/ ${CI_COMMIT_SHORT_SHA} \/ ${CI_PIPELINE_ID}\" || true     - echo \"${CI_PROJECT_NAME} \/ ${CI_COMMIT_REF_NAME} \/ ${CI_COMMIT_SHORT_SHA} \/ ${CI_PIPELINE_ID} \/ ${CI_JOB_NAME}\"    rules:    - if: \u0435\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u044b \u043a\u0430\u043a\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438 \u043d\u0438\u0436\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f      when: never    - when: always  needs: []<\/code><\/pre>\n<figure class=\"full-width\"><figcaption>\u0412\u043e\u0442 \u0442\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432 \u043b\u043e\u0433\u0430\u0445 gitLab. \u0417\u0434\u0435\u0441\u044c \u043c\u044b \u0442\u0430\u043a \u0436\u0435 \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u0430\u043b\u0438 \u044d\u0442\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0434\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0435\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/figcaption><\/figure>\n<p>\u0410 <code>allure-stop<\/code> &#8212; \u0442\u0430\u043a:<\/p>\n<pre><code class=\"yaml\">allure-stop:  stage: test-success-notification  image: \u0432\u0430\u0448 \u043e\u0431\u0440\u0430\u0437  interruptible: true  variables:    GIT_STRATEGY: none  tags:    - \u0432\u0430\u0448\u0438 \u0442\u0435\u0433\u0438  script:    - ALLURE_JOB_RUN_ID=$(allurectl launch list -p \"${ALLURE_PROJECT_ID}\" --no-header | grep \"${CI_PIPELINE_ID}\" | cut -d' ' -f1 || true)    - echo \"ALLURE_JOB_RUN_ID=${ALLURE_JOB_RUN_ID}\"    - allurectl job-run stop --project-id ${ALLURE_PROJECT_ID} ${ALLURE_JOB_RUN_ID} || true  needs:    - job: allure-start      artifacts: false    - job: acceptance      artifacts: false  rules:    - if: $CI_COMMIT_REF_NAME == \"master\"      when: never<\/code><\/pre>\n<p>\u0422\u0443\u0442 \u0441\u0442\u043e\u0438\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c, \u0447\u0442\u043e Allure TestOps \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u043f\u0430\u043f\u043a\u0443 allure-results \u0432 \u043f\u0430\u043f\u043a\u0435 <code>{\u0438\u043c\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430}\/tests\/_output<\/code> \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u0441\u0430\u043c framework (\u0432 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 codeception). \u0418 \u0432\u0441\u0435 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c &#8212; \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b, \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0433\u043e\u043d\u0430 \u0442\u0435\u0441\u0442\u043e\u0432 \u0432 Allure \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443 <code>allurectl<\/code>.<\/p>\n<pre><code class=\"yaml\">.after_script: &amp;after_script  - echo -e \"\\e[41mShow Artifacts:\\e[0m\"  - ls -1 ${CI_PROJECT_DIR}\/docker\/output\/  - allurectl upload ${CI_PROJECT_DIR}\/docker\/output\/allure-results || true<\/code><\/pre>\n<figure class=\"full-width\"><figcaption>\u0412\u043e\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0430\u0440\u0442\u0438\u0444\u0430\u043a\u0442\u043e\u0432 \u0432 \u043a\u043e\u043d\u0441\u043e\u043b\u0438 Gitlab. \u041d\u0430\u043f\u043e\u043c\u043d\u044e, \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u044b\u0437\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0442\u0435\u0441\u0442\u043e\u0432<\/figcaption><\/figure>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u043e\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443 \u043e\u0431 \u0443\u043f\u0430\u0432\u0448\u0438\u0445 \u0442\u0435\u0441\u0442\u0430\u0445 \u0432 slack, \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c launch id. Grep-\u043d\u0443\u0442\u044c \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<pre><code class=\"yaml\">if [[ ${exit_code} -ne 0 ]]; then  # Get Allure launch id for message link  ALLURE_JOB_RUN_ID=$(allurectl launch list -p \"${ALLURE_PROJECT_ID}\" --no-header | grep \"${CI_PIPELINE_ID}\" | cut -d' ' -f1 || true)  export ALLURE_JOB_RUN_ID<\/code><\/pre>\n<figure class=\"float full-width\"><figcaption>\u0418 \u0432\u043e\u0442 \u0442\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u0432 slack<\/figcaption><\/figure>\n<p>\u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 &#8212; \u0442\u0435\u0441\u0442\u044b \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u0431\u0435\u0433\u0430\u0442\u044c \u0432 docker, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0434\u0436\u043e\u0431\u0430allure-start. \u041a\u0430\u043a \u0442\u043e\u043b\u044c\u043a\u043e allure-start \u043f\u0440\u043e\u0431\u0435\u0436\u0430\u043b\u0430 \u0432 \u0441\u0430\u043c\u043e\u043c Allure, \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0437\u0430\u0433\u043b\u0443\u0448\u043a\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0442\u0435\u0441\u0442\u044b \u043f\u043e\u0441\u043b\u0435 \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. <\/p>\n<p>\u0412\u043e\u0442 \u0442\u0430\u043a  \u043c\u043e\u0436\u0435\u0442 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>\u041c\u044b \u043f\u043e\u0448\u043b\u0438 \u0435\u0449\u0435 \u0447\u0443\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435 \u0438 \u0441\u043c\u043e\u0433\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0435\u0449\u0435 \u043e\u0434\u043d\u0443 \u043f\u043e\u043b\u0435\u0437\u043d\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e &#8212; \u044d\u0442\u043e <a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/pipelines\/parent_child_pipelines.html\" rel=\"noopener noreferrer nofollow\">Parent-child pipelines<\/a>. \u0410 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u0438\u043b\u043e\u0441\u044c \u043d\u0430\u043c \u044d\u0442\u043e \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u044b \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0431\u0440\u0430\u043d\u0447 \u043d\u0430 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0442\u043d\u0435\u0434 \u0438 \u0443\u0436\u0435 \u043d\u0430 \u043d\u0435\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0440\u044f\u0434 \u0442\u0435\u0441\u0442\u043e\u0432. \u041f\u0440\u043e\u043a\u0438\u0434\u044b\u0432\u0430\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438 \u0443\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0433\u0440\u0443\u0437\u044f\u0442\u0441\u044f \u0432 \u043e\u0434\u0438\u043d launch \u0432 Allure Testops. <code>${CI_PIPELINE_ID}<\/code> \u0438 <code>${PARENT_PIPELINE_ID}<\/code><\/p>\n<pre><code class=\"yaml\">.run-integration: &amp;run-integration   image:    services:     - name: \u0432\u0430\u0448 \u043e\u0431\u0440\u0430\u0437       alias: docker   stage: test   variables:     &lt;&lt;: *allure-variables   tags:     - \u0432\u0430\u0448\u0438<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-390120","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/390120","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=390120"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/390120\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=390120"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=390120"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=390120"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}