From 341ff63a839c30e191029edd17d9a7087fcf9d21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=98=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2?= Date: Fri, 10 Jul 2026 17:19:59 +0300 Subject: [PATCH 1/4] docs: add Allure Report interview questions --- src/pages/allure-report/index.md | 335 +++++++++++++++++++++++++++++++ 1 file changed, 335 insertions(+) create mode 100644 src/pages/allure-report/index.md diff --git a/src/pages/allure-report/index.md b/src/pages/allure-report/index.md new file mode 100644 index 0000000..dfb4c68 --- /dev/null +++ b/src/pages/allure-report/index.md @@ -0,0 +1,335 @@ +--- +layout: ../../layouts/Layout.astro +title: Allure Report +description: + Вопросы и ответы про Allure Report, результаты автотестов, attachments, history, retries и публикацию отчетов в CI +category: Engineering +kind: questions +order: 136 +icon: /logos/testing.svg +--- + +## Allure Report + +### Junior + +
+Что такое Allure Report?
+
+ +Allure Report — open-source инструмент для визуализации результатов автотестов. Он получает структурированные данные о +прогоне и преобразует их в интерактивный HTML-отчет с тестами, шагами, длительностью, ошибками, attachments, labels, +историей и аналитикой. + +Allure не запускает тесты и не заменяет Playwright, Cypress, Jest, Vitest или другой test runner. Между test runner и +Allure обычно работает специальный adapter или reporter, который записывает результаты тестов в понятном Allure формате. + +
+ +
+ +
+Как Allure Report работает от запуска тестов до готового отчета?
+
+ +Упрощенный процесс выглядит так: + +1. Test runner запускает автотесты. +2. Allure adapter получает события test runner: начало и завершение тестов, ошибки, steps, labels и attachments. +3. Adapter записывает структурированные файлы в каталог результатов, обычно `allure-results`. +4. Allure CLI читает результаты и генерирует HTML-отчет, обычно в каталоге `allure-report`. +5. Отчет открывают локально или публикуют как CI artifact либо статический сайт. + +Таким образом, сбор результатов и генерация HTML-отчета — два отдельных этапа. + +
+ +
+ +
+Чем allure-results отличается от allure-report?
+
+ +`allure-results` содержит исходные структурированные данные, созданные adapter во время выполнения тестов: test result +files, containers, attachments, environment и другие metadata. + +`allure-report` — готовый HTML-сайт, сгенерированный из этих результатов. Его можно открыть в браузере, сохранить как +artifact или опубликовать на web server. + +Если удалить `allure-results` до генерации, отчет построить не получится. Если удалить `allure-report`, его обычно можно +сгенерировать заново из сохраненных результатов. + +
+ +
+ +
+Какие данные можно увидеть в Allure Report?
+
+ +В отчете обычно доступны: + +- suites и test cases; +- statuses и сообщения об ошибках; +- stack trace; +- длительность тестов и отдельных steps; +- retries и история запусков; +- attachments: screenshots, video, trace, logs, request и response; +- labels: epic, feature, story, owner, severity и tag; +- environment и информация о CI-запуске; +- графики, trends и категории падений. + +Набор данных зависит от test adapter и от того, какие metadata добавляет команда. + +
+ +
+ +
+Зачем нужны steps в Allure?
+
+ +Steps разбивают тест на понятные действия: открыть страницу, заполнить форму, отправить запрос, проверить результат. +Они помогают увидеть, на каком этапе произошла ошибка и сколько времени занял каждый этап. + +Steps должны описывать бизнес-действия или значимые технические операции. Слишком мелкие steps создают шум, а один step +на весь тест не помогает локализовать проблему. + +
+ +
+ +
+Что такое attachments в Allure и что стоит прикладывать к падению?
+
+ +Attachment — файл или данные, связанные с тестом либо step. Для E2E-теста полезно сохранять screenshot, video, +Playwright trace, browser console logs, network logs, request и response. Для API-теста — request, response, headers и +server logs. Для visual regression — actual, expected и diff images. + +Attachments должны помогать расследовать падение без повторного запуска теста. При этом нельзя публиковать access tokens, +пароли, cookies, персональные данные и другие секреты: их нужно удалять или маскировать. + +
+ +
+ +
+Какие статусы тестов используются в Allure?
+
+ +Частые статусы: + +- `passed` — тест успешно завершен; +- `failed` — assertion не прошел или проверяемое поведение не соответствует ожиданию; +- `broken` — тест не смог корректно выполниться из-за exception, setup, fixture или инфраструктуры; +- `skipped` — тест не запускался или был пропущен; +- `unknown` — adapter не смог корректно определить статус. + +Точное преобразование ошибок в `failed` и `broken` зависит от конкретной интеграции. + +
+ +
+ +### Middle + +
+Как подключить Allure к Playwright, Cypress, Jest или Vitest?
+
+ +Общий принцип одинаковый: + +1. Установить совместимый с test runner Allure adapter или reporter. +2. Подключить его в конфигурации test runner. +3. Указать каталог для результатов. +4. Запустить тесты и проверить, что появились result files и attachments. +5. Сгенерировать или открыть отчет через Allure CLI. +6. В CI сохранить результаты и готовый отчет как artifacts либо опубликовать отчет. + +Конкретные package names и options зависят от test runner и версии интеграции, поэтому их нужно сверять с документацией +adapter. + +
+ +
+ +
+Для чего нужны labels epic, feature, story, owner и severity?
+
+ +Labels позволяют искать, фильтровать и группировать тесты: + +- `epic`, `feature`, `story` описывают продуктовую иерархию; +- `owner` показывает ответственную команду или человека; +- `severity` отражает критичность сценария; +- `tag` добавляет произвольную классификацию, например `smoke`, `regression` или `payments`. + +Labels полезны, когда они стабильны и связаны с реальной структурой продукта. Если каждый тест размечен по-разному, +фильтры и аналитика быстро теряют ценность. + +
+ +
+ +
+Как сохранить history и trends между CI-запусками?
+
+ +Для trends Allure должен получить history data предыдущего отчета при генерации следующего. Поэтому CI pipeline обычно: + +1. Загружает history предыдущего успешного отчета или artifact. +2. Добавляет эти данные к результатам нового запуска способом, который поддерживает используемая версия Allure. +3. Генерирует новый отчет. +4. Сохраняет новый отчет и его history для следующего запуска. + +Если каждый CI job начинается с полностью чистого workspace и предыдущая history не восстанавливается, отчет покажет +только текущий запуск без нормального trend. + +
+ +
+ +
+Как Allure связывает retries и историю одного теста?
+
+ +Allure должен стабильно идентифицировать один и тот же test case между попытками и запусками. Обычно идентификатор зависит +от framework, полного имени теста, параметров и metadata. + +Если постоянно менять title, suite или параметры теста, Allure может воспринимать его как новый тест, и история +разорвется. Поэтому названия и параметры должны быть детерминированными, а retry не должен маскировать реальную +нестабильность. + +
+ +
+ +
+Как собрать единый Allure Report при parallel execution и sharding?
+
+ +Каждый worker или CI job генерирует свою часть Allure results. После выполнения shards результаты собирают в один каталог, +а отчет генерируют один раз уже из объединенного набора. + +В CI это обычно означает upload artifacts из каждого shard, отдельный aggregate job, download всех artifacts, объединение +result files и запуск генератора. Важно не потерять attachments и не перезаписывать файлы результатами другого worker. + +
+ +
+ +
+Как использовать categories для группировки падений?
+
+ +Categories группируют падения по известным причинам, например product defect, assertion failure, timeout, environment +problem, network error или test data issue. Правила могут анализировать status, message и stack trace. + +Категории ускоряют triage, но требуют поддержки. Слишком широкое правило может скрыть разные проблемы под одной меткой, +поэтому категории нужно регулярно проверять и уточнять. + +
+ +
+ +
+Как расследовать падение теста по Allure Report?
+
+ +Полезный порядок: + +1. Проверить status, error message и stack trace. +2. Найти последний успешный step. +3. Открыть screenshot, trace, video и logs. +4. Сравнить environment, параметры и test data. +5. Посмотреть retries и историю теста. +6. Проверить, падают ли соседние тесты по той же причине. +7. Определить класс проблемы: product, test, data, environment или infrastructure. + +Allure помогает собрать признаки в одном месте, но инженер все равно должен проверить гипотезу и локализовать причину. + +
+ +
+ +### Middle+ or Senior + +
+Чего Allure Report не заменяет?
+
+ +Allure Report не заменяет: + +- test runner и сами автотесты; +- корректные assertions и test design; +- CI/CD pipeline; +- code coverage; +- логи приложения и observability; +- issue tracker и процесс triage; +- полноценную test management систему, если команде нужны test plans, manual cases и централизованная аналитика. + +Красивый отчет не исправляет flaky tests, слабые проверки или отсутствие важных сценариев. + +
+ +
+ +
+Можно ли использовать Allure как quality gate?
+
+ +Да, метрики отчета можно использовать как один из сигналов: количество failed и broken tests, pass rate, критичные +сценарии, длительность или рост нестабильности. Но merge или release gate должен опираться на надежные machine-readable +результаты, а не только на HTML-страницу. + +Нельзя автоматически блокировать релиз по любой нестабильной метрике без понимания причин. Иначе flaky tests и ошибки +инфраструктуры остановят разработку, а команда начнет обходить gate. + +
+ +
+ +
+Как сделать Allure Report полезным для большой команды?
+
+ +Нужны единые правила: + +- стабильные названия tests, suites и labels; +- понятные business-level steps; +- обязательные attachments для критичных падений; +- owners и severity для triage; +- единая классификация product, test и infrastructure failures; +- сохранение history; +- ограниченная retention policy; +- быстрые ссылки из CI, pull request и issue tracker; +- регулярная работа с flaky и медленными тестами. + +Цель отчета — сократить время от падения до понимания причины, а не увеличить количество metadata. + +
+ +
+ +
+Какие риски безопасности есть при публикации Allure Report?
+
+ +Отчет и attachments могут содержать URL, headers, cookies, tokens, персональные данные, содержимое форм, screenshots +внутренних систем и stack traces. Поэтому перед публикацией нужно маскировать секреты, ограничивать доступ, задавать срок +хранения artifacts и не размещать внутренние отчеты в публичном хостинге. + +Особенно внимательно нужно проверять automatic request/response attachments: они часто сохраняют больше данных, чем +ожидает автор теста. + +
+ +
+ +### Полезные материалы + +- [Allure Report Documentation](https://allurereport.org/docs/) +- [How Allure Report works](https://allurereport.org/docs/how-it-works/) +- [Attachments](https://allurereport.org/docs/attachments/) +- [History and retries](https://allurereport.org/docs/history-and-retries/) From 79b635c8b94357fd9444442e4548647d26ee4879 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=98=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2?= Date: Fri, 10 Jul 2026 18:26:47 +0300 Subject: [PATCH 2/4] docs(qa): expand Allure Report questions --- src/pages/qa/index.md | 242 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 229 insertions(+), 13 deletions(-) diff --git a/src/pages/qa/index.md b/src/pages/qa/index.md index a889c98..fd50ab0 100644 --- a/src/pages/qa/index.md +++ b/src/pages/qa/index.md @@ -317,9 +317,44 @@ database query duration, queue depth и timeout rate. Среднее время Что такое Allure Report?
-Allure Report — инструмент для красивой и структурированной отчетности по автотестам. Он показывает test suites, test -cases, steps, attachments, history, duration, labels, severity, owners и trend по запускам. Allure не делает тесты -качественными сам по себе, но помогает быстрее понять, что сломалось и где искать причину. +Allure Report — open-source инструмент для визуализации результатов автотестов. Он преобразует структурированные данные +о прогоне в интерактивный HTML-отчет с тестами, шагами, длительностью, ошибками, attachments, labels, историей и +аналитикой. + +Allure не запускает тесты и не заменяет Playwright, Cypress, Jest, Vitest или другой test runner. Между test runner и +Allure обычно работает adapter или reporter, который записывает результаты в понятном Allure формате. + +
+ + + +
+Как Allure Report работает от запуска тестов до готового отчета?
+
+ +Упрощенный процесс: + +1. Test runner запускает автотесты. +2. Allure adapter получает события test runner: начало и завершение тестов, ошибки, steps, labels и attachments. +3. Adapter записывает структурированные файлы в каталог `allure-results`. +4. Allure CLI читает результаты и генерирует HTML-отчет, обычно в каталоге `allure-report`. +5. Отчет открывают локально или публикуют как CI artifact либо статический сайт. + +Сбор результатов и генерация HTML-отчета — два отдельных этапа. + +
+ +
+ +
+Чем allure-results отличается от allure-report?
+
+ +`allure-results` содержит исходные данные, созданные adapter во время выполнения тестов: test result files, containers, +attachments, environment и другие metadata. + +`allure-report` — готовый HTML-сайт, сгенерированный из этих результатов. Его можно открыть в браузере, сохранить как +artifact или опубликовать на web server. Удаленный отчет можно сгенерировать заново, если сохранен `allure-results`.
@@ -335,7 +370,7 @@ cases, steps, attachments, history, duration, labels, severity, owners и trend - suite — группа тестов; - step — шаг внутри теста; - attachment — screenshot, trace, video, log, request или response; -- label — feature, story, owner, severity, tag; +- label — epic, feature, story, owner, severity, tag; - status — passed, failed, broken, skipped; - history — информация о предыдущих запусках. @@ -345,13 +380,44 @@ cases, steps, attachments, history, duration, labels, severity, owners и trend
+
+Зачем нужны steps в Allure?
+
+ +Steps разбивают тест на понятные действия: открыть страницу, заполнить форму, отправить запрос, проверить результат. +Они помогают увидеть, на каком этапе произошла ошибка и сколько времени занял каждый этап. + +Steps должны описывать бизнес-действия или значимые технические операции. Слишком мелкие steps создают шум, а один step +на весь тест не помогает локализовать проблему. + +
+ +
+ +
+Что такое attachments в Allure и что стоит прикладывать к падению?
+
+ +Attachment — файл или данные, связанные с тестом либо step. Для E2E-теста полезно сохранять screenshot, video, +Playwright trace, browser console logs и network logs. Для API-теста — request, response, headers и server logs. Для +visual regression — actual, expected и diff images. + +Attachments должны помогать расследовать падение без повторного запуска. Нельзя публиковать access tokens, пароли, +cookies, персональные данные и другие секреты: их нужно удалять или маскировать. + +
+ +
+
Чем статус failed отличается от broken в Allure?
-Failed обычно означает, что проверка поведения не прошла: ожидали одно, получили другое. Broken чаще означает ошибку -самого теста или инфраструктуры: exception в setup, некорректный selector, timeout окружения, ошибка fixture или -неподнятый backend. Разделение помогает понять, это дефект продукта или проблема тестового слоя. +`failed` обычно означает, что assertion не прошел или проверяемое поведение не соответствует ожиданию. `broken` чаще +означает ошибку самого теста или инфраструктуры: exception в setup, ошибка fixture, timeout окружения или неподнятый +backend. + +Точное преобразование ошибок в `failed` и `broken` зависит от конкретного adapter.
@@ -359,6 +425,25 @@ Failed обычно означает, что проверка поведения #### Middle +
+Как подключить Allure к Playwright, Cypress, Jest или Vitest?
+
+ +Общий принцип одинаковый: + +1. Установить совместимый с test runner Allure adapter или reporter. +2. Подключить его в конфигурации test runner. +3. Указать каталог для результатов. +4. Запустить тесты и проверить, что появились result files и attachments. +5. Сгенерировать или открыть отчет через Allure CLI. +6. В CI сохранить результаты и готовый отчет как artifacts либо опубликовать отчет. + +Конкретные package names и options зависят от test runner и версии интеграции. + +
+ +
+
Какие метрики смотреть в Allure?
@@ -372,11 +457,71 @@ Failed обычно означает, что проверка поведения - flaky tests и нестабильные suites; - самые медленные тесты; - падения по feature, story, owner, severity и tag; -- история конкретного теста; -- attachments: screenshots, videos, traces, logs, request и response. +- история конкретного теста. + +Метрики нужны для решений: что чинить первым, где замедление и какие тесты перестали защищать продукт. + +
+ +
+ +
+Для чего нужны labels epic, feature, story, owner и severity?
+
+ +Labels позволяют искать, фильтровать и группировать тесты: -Метрики нужны не для красивого dashboard, а для решений: что чинить первым, где замедление и какие тесты перестали -защищать продукт. +- `epic`, `feature`, `story` описывают продуктовую иерархию; +- `owner` показывает ответственную команду или человека; +- `severity` отражает критичность сценария; +- `tag` добавляет классификацию, например `smoke`, `regression` или `payments`. + +Labels полезны, когда они стабильны и связаны с реальной структурой продукта. + +
+ +
+ +
+Как сохранить history и trends между CI-запусками?
+
+ +Для trends Allure должен получить history data предыдущего отчета при генерации следующего. Поэтому CI pipeline обычно: + +1. Загружает history предыдущего отчета или artifact. +2. Добавляет эти данные к результатам нового запуска способом, который поддерживает используемая версия Allure. +3. Генерирует новый отчет. +4. Сохраняет новый отчет и его history для следующего запуска. + +Если CI job всегда начинается с чистого workspace и history не восстанавливается, отчет покажет только текущий запуск. + +
+ +
+ +
+Как Allure связывает retries и историю одного теста?
+
+ +Allure должен стабильно идентифицировать один и тот же test case между попытками и запусками. Обычно идентификатор зависит +от framework, полного имени теста, параметров и metadata. + +Если постоянно менять title, suite или параметры, Allure может воспринимать тест как новый, и история разорвется. +Retry может быть временным safety net, но не должен маскировать нестабильность теста. + +
+ +
+ +
+Как собрать единый Allure Report при parallel execution и sharding?
+
+ +Каждый worker или CI job генерирует свою часть Allure results. После выполнения shards результаты собирают в один каталог, +а отчет генерируют один раз из объединенного набора. + +Обычно отдельный aggregate job скачивает artifacts всех shards, объединяет result files и запускает генератор. Важно не +потерять attachments и не перезаписать файлы результатами другого worker.
@@ -400,8 +545,27 @@ Flaky test иногда проходит, а иногда падает без и Нужно воспроизвести падение, изучить trace, video, screenshot и logs, затем убрать недетерминизм. Помогают стабильные locators, явные ожидания состояния, изоляция данных, независимые тесты, test fixtures, mock network, отключение -анимаций, контролируемые часы и отказ от произвольных sleep. Retry может быть временным safety net, но не заменой -исправления. +анимаций, контролируемые часы и отказ от произвольных sleep. Retry не заменяет исправление причины. + + + +
+ +
+Как расследовать падение теста по Allure Report?
+
+ +Полезный порядок: + +1. Проверить status, error message и stack trace. +2. Найти последний успешный step. +3. Открыть screenshot, trace, video и logs. +4. Сравнить environment, параметры и test data. +5. Посмотреть retries и историю теста. +6. Проверить, падают ли соседние тесты по той же причине. +7. Определить класс проблемы: product, test, data, environment или infrastructure. + +Allure собирает признаки в одном месте, но инженер все равно должен проверить гипотезу и локализовать причину.
@@ -419,6 +583,58 @@ thresholds, raw metrics и сравнение с baseline. Артефакты д
+#### Middle+ or Senior + +
+Чего Allure Report не заменяет?
+
+ +Allure Report не заменяет: + +- test runner и сами автотесты; +- корректные assertions и test design; +- CI/CD pipeline; +- code coverage; +- логи приложения и observability; +- issue tracker и процесс triage; +- test management систему, если команде нужны test plans и manual cases. + +Красивый отчет не исправляет flaky tests, слабые проверки или отсутствие важных сценариев. + +
+ +
+ +
+Можно ли использовать Allure как quality gate?
+
+ +Метрики отчета можно использовать как один из сигналов: количество failed и broken tests, pass rate, критичные сценарии, +длительность или рост нестабильности. Но merge или release gate должен опираться на надежные machine-readable результаты, +а не только на HTML-страницу. + +Нельзя автоматически блокировать релиз по любой нестабильной метрике без анализа причин: flaky tests и ошибки +инфраструктуры могут остановить разработку. + +
+ +
+ +
+Какие риски безопасности есть при публикации Allure Report?
+
+ +Отчет и attachments могут содержать URL, headers, cookies, tokens, персональные данные, содержимое форм, screenshots +внутренних систем и stack traces. Перед публикацией нужно маскировать секреты, ограничивать доступ и задавать срок хранения +artifacts. + +Особенно внимательно нужно проверять automatic request/response attachments: они часто сохраняют больше данных, чем +ожидает автор теста. + +
+ +
+ ### CI/CD and quality gates #### Middle From 3eb1c7b5a9b48d1e42f16672e923d29f3df271c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=98=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2?= Date: Fri, 10 Jul 2026 18:26:53 +0300 Subject: [PATCH 3/4] docs: keep Allure questions in QA section --- src/pages/allure-report/index.md | 335 ------------------------------- 1 file changed, 335 deletions(-) delete mode 100644 src/pages/allure-report/index.md diff --git a/src/pages/allure-report/index.md b/src/pages/allure-report/index.md deleted file mode 100644 index dfb4c68..0000000 --- a/src/pages/allure-report/index.md +++ /dev/null @@ -1,335 +0,0 @@ ---- -layout: ../../layouts/Layout.astro -title: Allure Report -description: - Вопросы и ответы про Allure Report, результаты автотестов, attachments, history, retries и публикацию отчетов в CI -category: Engineering -kind: questions -order: 136 -icon: /logos/testing.svg ---- - -## Allure Report - -### Junior - -
-Что такое Allure Report?
-
- -Allure Report — open-source инструмент для визуализации результатов автотестов. Он получает структурированные данные о -прогоне и преобразует их в интерактивный HTML-отчет с тестами, шагами, длительностью, ошибками, attachments, labels, -историей и аналитикой. - -Allure не запускает тесты и не заменяет Playwright, Cypress, Jest, Vitest или другой test runner. Между test runner и -Allure обычно работает специальный adapter или reporter, который записывает результаты тестов в понятном Allure формате. - -
- -
- -
-Как Allure Report работает от запуска тестов до готового отчета?
-
- -Упрощенный процесс выглядит так: - -1. Test runner запускает автотесты. -2. Allure adapter получает события test runner: начало и завершение тестов, ошибки, steps, labels и attachments. -3. Adapter записывает структурированные файлы в каталог результатов, обычно `allure-results`. -4. Allure CLI читает результаты и генерирует HTML-отчет, обычно в каталоге `allure-report`. -5. Отчет открывают локально или публикуют как CI artifact либо статический сайт. - -Таким образом, сбор результатов и генерация HTML-отчета — два отдельных этапа. - -
- -
- -
-Чем allure-results отличается от allure-report?
-
- -`allure-results` содержит исходные структурированные данные, созданные adapter во время выполнения тестов: test result -files, containers, attachments, environment и другие metadata. - -`allure-report` — готовый HTML-сайт, сгенерированный из этих результатов. Его можно открыть в браузере, сохранить как -artifact или опубликовать на web server. - -Если удалить `allure-results` до генерации, отчет построить не получится. Если удалить `allure-report`, его обычно можно -сгенерировать заново из сохраненных результатов. - -
- -
- -
-Какие данные можно увидеть в Allure Report?
-
- -В отчете обычно доступны: - -- suites и test cases; -- statuses и сообщения об ошибках; -- stack trace; -- длительность тестов и отдельных steps; -- retries и история запусков; -- attachments: screenshots, video, trace, logs, request и response; -- labels: epic, feature, story, owner, severity и tag; -- environment и информация о CI-запуске; -- графики, trends и категории падений. - -Набор данных зависит от test adapter и от того, какие metadata добавляет команда. - -
- -
- -
-Зачем нужны steps в Allure?
-
- -Steps разбивают тест на понятные действия: открыть страницу, заполнить форму, отправить запрос, проверить результат. -Они помогают увидеть, на каком этапе произошла ошибка и сколько времени занял каждый этап. - -Steps должны описывать бизнес-действия или значимые технические операции. Слишком мелкие steps создают шум, а один step -на весь тест не помогает локализовать проблему. - -
- -
- -
-Что такое attachments в Allure и что стоит прикладывать к падению?
-
- -Attachment — файл или данные, связанные с тестом либо step. Для E2E-теста полезно сохранять screenshot, video, -Playwright trace, browser console logs, network logs, request и response. Для API-теста — request, response, headers и -server logs. Для visual regression — actual, expected и diff images. - -Attachments должны помогать расследовать падение без повторного запуска теста. При этом нельзя публиковать access tokens, -пароли, cookies, персональные данные и другие секреты: их нужно удалять или маскировать. - -
- -
- -
-Какие статусы тестов используются в Allure?
-
- -Частые статусы: - -- `passed` — тест успешно завершен; -- `failed` — assertion не прошел или проверяемое поведение не соответствует ожиданию; -- `broken` — тест не смог корректно выполниться из-за exception, setup, fixture или инфраструктуры; -- `skipped` — тест не запускался или был пропущен; -- `unknown` — adapter не смог корректно определить статус. - -Точное преобразование ошибок в `failed` и `broken` зависит от конкретной интеграции. - -
- -
- -### Middle - -
-Как подключить Allure к Playwright, Cypress, Jest или Vitest?
-
- -Общий принцип одинаковый: - -1. Установить совместимый с test runner Allure adapter или reporter. -2. Подключить его в конфигурации test runner. -3. Указать каталог для результатов. -4. Запустить тесты и проверить, что появились result files и attachments. -5. Сгенерировать или открыть отчет через Allure CLI. -6. В CI сохранить результаты и готовый отчет как artifacts либо опубликовать отчет. - -Конкретные package names и options зависят от test runner и версии интеграции, поэтому их нужно сверять с документацией -adapter. - -
- -
- -
-Для чего нужны labels epic, feature, story, owner и severity?
-
- -Labels позволяют искать, фильтровать и группировать тесты: - -- `epic`, `feature`, `story` описывают продуктовую иерархию; -- `owner` показывает ответственную команду или человека; -- `severity` отражает критичность сценария; -- `tag` добавляет произвольную классификацию, например `smoke`, `regression` или `payments`. - -Labels полезны, когда они стабильны и связаны с реальной структурой продукта. Если каждый тест размечен по-разному, -фильтры и аналитика быстро теряют ценность. - -
- -
- -
-Как сохранить history и trends между CI-запусками?
-
- -Для trends Allure должен получить history data предыдущего отчета при генерации следующего. Поэтому CI pipeline обычно: - -1. Загружает history предыдущего успешного отчета или artifact. -2. Добавляет эти данные к результатам нового запуска способом, который поддерживает используемая версия Allure. -3. Генерирует новый отчет. -4. Сохраняет новый отчет и его history для следующего запуска. - -Если каждый CI job начинается с полностью чистого workspace и предыдущая history не восстанавливается, отчет покажет -только текущий запуск без нормального trend. - -
- -
- -
-Как Allure связывает retries и историю одного теста?
-
- -Allure должен стабильно идентифицировать один и тот же test case между попытками и запусками. Обычно идентификатор зависит -от framework, полного имени теста, параметров и metadata. - -Если постоянно менять title, suite или параметры теста, Allure может воспринимать его как новый тест, и история -разорвется. Поэтому названия и параметры должны быть детерминированными, а retry не должен маскировать реальную -нестабильность. - -
- -
- -
-Как собрать единый Allure Report при parallel execution и sharding?
-
- -Каждый worker или CI job генерирует свою часть Allure results. После выполнения shards результаты собирают в один каталог, -а отчет генерируют один раз уже из объединенного набора. - -В CI это обычно означает upload artifacts из каждого shard, отдельный aggregate job, download всех artifacts, объединение -result files и запуск генератора. Важно не потерять attachments и не перезаписывать файлы результатами другого worker. - -
- -
- -
-Как использовать categories для группировки падений?
-
- -Categories группируют падения по известным причинам, например product defect, assertion failure, timeout, environment -problem, network error или test data issue. Правила могут анализировать status, message и stack trace. - -Категории ускоряют triage, но требуют поддержки. Слишком широкое правило может скрыть разные проблемы под одной меткой, -поэтому категории нужно регулярно проверять и уточнять. - -
- -
- -
-Как расследовать падение теста по Allure Report?
-
- -Полезный порядок: - -1. Проверить status, error message и stack trace. -2. Найти последний успешный step. -3. Открыть screenshot, trace, video и logs. -4. Сравнить environment, параметры и test data. -5. Посмотреть retries и историю теста. -6. Проверить, падают ли соседние тесты по той же причине. -7. Определить класс проблемы: product, test, data, environment или infrastructure. - -Allure помогает собрать признаки в одном месте, но инженер все равно должен проверить гипотезу и локализовать причину. - -
- -
- -### Middle+ or Senior - -
-Чего Allure Report не заменяет?
-
- -Allure Report не заменяет: - -- test runner и сами автотесты; -- корректные assertions и test design; -- CI/CD pipeline; -- code coverage; -- логи приложения и observability; -- issue tracker и процесс triage; -- полноценную test management систему, если команде нужны test plans, manual cases и централизованная аналитика. - -Красивый отчет не исправляет flaky tests, слабые проверки или отсутствие важных сценариев. - -
- -
- -
-Можно ли использовать Allure как quality gate?
-
- -Да, метрики отчета можно использовать как один из сигналов: количество failed и broken tests, pass rate, критичные -сценарии, длительность или рост нестабильности. Но merge или release gate должен опираться на надежные machine-readable -результаты, а не только на HTML-страницу. - -Нельзя автоматически блокировать релиз по любой нестабильной метрике без понимания причин. Иначе flaky tests и ошибки -инфраструктуры остановят разработку, а команда начнет обходить gate. - -
- -
- -
-Как сделать Allure Report полезным для большой команды?
-
- -Нужны единые правила: - -- стабильные названия tests, suites и labels; -- понятные business-level steps; -- обязательные attachments для критичных падений; -- owners и severity для triage; -- единая классификация product, test и infrastructure failures; -- сохранение history; -- ограниченная retention policy; -- быстрые ссылки из CI, pull request и issue tracker; -- регулярная работа с flaky и медленными тестами. - -Цель отчета — сократить время от падения до понимания причины, а не увеличить количество metadata. - -
- -
- -
-Какие риски безопасности есть при публикации Allure Report?
-
- -Отчет и attachments могут содержать URL, headers, cookies, tokens, персональные данные, содержимое форм, screenshots -внутренних систем и stack traces. Поэтому перед публикацией нужно маскировать секреты, ограничивать доступ, задавать срок -хранения artifacts и не размещать внутренние отчеты в публичном хостинге. - -Особенно внимательно нужно проверять automatic request/response attachments: они часто сохраняют больше данных, чем -ожидает автор теста. - -
- -
- -### Полезные материалы - -- [Allure Report Documentation](https://allurereport.org/docs/) -- [How Allure Report works](https://allurereport.org/docs/how-it-works/) -- [Attachments](https://allurereport.org/docs/attachments/) -- [History and retries](https://allurereport.org/docs/history-and-retries/) From 6a2fb3461e49abe8e527fd5313de04516cb5a0ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=98=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2?= Date: Fri, 10 Jul 2026 18:52:39 +0300 Subject: [PATCH 4/4] docs: format QA questions --- src/pages/qa/index.md | 24 ++++++++++++------------ src/pages/react/index.md | 3 ++- 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/pages/qa/index.md b/src/pages/qa/index.md index fd50ab0..7596849 100644 --- a/src/pages/qa/index.md +++ b/src/pages/qa/index.md @@ -384,8 +384,8 @@ artifact или опубликовать на web server. Удаленный о Зачем нужны steps в Allure?
-Steps разбивают тест на понятные действия: открыть страницу, заполнить форму, отправить запрос, проверить результат. -Они помогают увидеть, на каком этапе произошла ошибка и сколько времени занял каждый этап. +Steps разбивают тест на понятные действия: открыть страницу, заполнить форму, отправить запрос, проверить результат. Они +помогают увидеть, на каком этапе произошла ошибка и сколько времени занял каждый этап. Steps должны описывать бизнес-действия или значимые технические операции. Слишком мелкие steps создают шум, а один step на весь тест не помогает локализовать проблему. @@ -503,11 +503,11 @@ Labels полезны, когда они стабильны и связаны с Как Allure связывает retries и историю одного теста?
-Allure должен стабильно идентифицировать один и тот же test case между попытками и запусками. Обычно идентификатор зависит -от framework, полного имени теста, параметров и metadata. +Allure должен стабильно идентифицировать один и тот же test case между попытками и запусками. Обычно идентификатор +зависит от framework, полного имени теста, параметров и metadata. -Если постоянно менять title, suite или параметры, Allure может воспринимать тест как новый, и история разорвется. -Retry может быть временным safety net, но не должен маскировать нестабильность теста. +Если постоянно менять title, suite или параметры, Allure может воспринимать тест как новый, и история разорвется. Retry +может быть временным safety net, но не должен маскировать нестабильность теста.
@@ -517,8 +517,8 @@ Retry может быть временным safety net, но не должен Как собрать единый Allure Report при parallel execution и sharding?
-Каждый worker или CI job генерирует свою часть Allure results. После выполнения shards результаты собирают в один каталог, -а отчет генерируют один раз из объединенного набора. +Каждый worker или CI job генерирует свою часть Allure results. После выполнения shards результаты собирают в один +каталог, а отчет генерируют один раз из объединенного набора. Обычно отдельный aggregate job скачивает artifacts всех shards, объединяет result files и запускает генератор. Важно не потерять attachments и не перезаписать файлы результатами другого worker. @@ -610,8 +610,8 @@ Allure Report не заменяет:
Метрики отчета можно использовать как один из сигналов: количество failed и broken tests, pass rate, критичные сценарии, -длительность или рост нестабильности. Но merge или release gate должен опираться на надежные machine-readable результаты, -а не только на HTML-страницу. +длительность или рост нестабильности. Но merge или release gate должен опираться на надежные machine-readable +результаты, а не только на HTML-страницу. Нельзя автоматически блокировать релиз по любой нестабильной метрике без анализа причин: flaky tests и ошибки инфраструктуры могут остановить разработку. @@ -625,8 +625,8 @@ Allure Report не заменяет:
Отчет и attachments могут содержать URL, headers, cookies, tokens, персональные данные, содержимое форм, screenshots -внутренних систем и stack traces. Перед публикацией нужно маскировать секреты, ограничивать доступ и задавать срок хранения -artifacts. +внутренних систем и stack traces. Перед публикацией нужно маскировать секреты, ограничивать доступ и задавать срок +хранения artifacts. Особенно внимательно нужно проверять automatic request/response attachments: они часто сохраняют больше данных, чем ожидает автор теста. diff --git a/src/pages/react/index.md b/src/pages/react/index.md index b266595..ea86a29 100644 --- a/src/pages/react/index.md +++ b/src/pages/react/index.md @@ -1,7 +1,8 @@ --- layout: ../../layouts/Layout.astro title: React -description: React core, hooks, state, forms, data fetching, routing, ecosystem, отличия от Angular и практические задачи +description: + React core, hooks, state, forms, data fetching, routing, ecosystem, отличия от Angular и практические задачи category: Frontend kind: questions order: 130