Skip to content

Очистка данных

Каждый запуск теста генерирует значительное количество данных, включая следующие артефакты:

  • тестовые сценарии;
  • вложения фикстур (общие блоки для тестов, такие как SetUp и TearDown);
  • вложения.

В ТестОпс можно настроить автоматическое удаление таких артефактов. Это полезно для успешно пройденных тестов, данные которых занимают много места и не предоставляют полезной информации, а также для неуспешных результатов тестов, которые были получены давно.

Правила очистки

В ТестОпс существует два типа правил очистки:

  • глобальное правило — применяется ко всем проектам в инстансе ТестОпс;
  • проектное правило — применяется к указанному проекту и действует дополнительно к глобальным правилам, не заменяя их.

Рекомендуется настроить одновременно как глобальные, так и проектные правила очистки для всех типов артефактов и каждого статуса результата теста. Если на уровне проекта не настроены правила очистки, глобальные правила применяются в качестве резервных и удаление артефактов выполняется на их основе.

Глобальные правила рекомендуется задавать с более длительным сроком (например, месяц), проектные — с более коротким. Приблизительные сроки для проектных правил очистки см. в Рекомендуемые сроки хранения артефактов на уровне проекта.

Важно

Правила очистки работают только для закрытых запусков. В частности, если у вас настроена политика автоматического закрытия запусков, артефакты будут удаляться только после закрытия этих запусков. Например, если вы настроили очистку артефактов через 24 часа, а запуск закрывается автоматически через 72 часа после создания, артефакты удалятся спустя 72 часа, когда запуск будет закрыт.

Принцип работы очистки

ТестОпс запускает очистку в разное время для разных типов правил:

  • Глобальные правила начинают обрабатываться в 02:00 (по часовому поясу JVM на инстансе).
  • Проектные правила начинают обрабатываться в 02:30 (по часовому поясу JVM на инстансе).

Очистка происходит в два этапа:

  1. Сбор файлов, подлежащих удалению.
  2. Удаление файлов, отмеченных для очистки.

Сбор файлов, подлежащих удалению

Составление списка файлов, подлежащих удалению, — тяжелый запрос для базы данных, поэтому эта операция выполняется ночью.

Запрос к базе данных ищет файлы, время создания которых соответствует правилу очистки, и перемещает записи в специальную таблицу для последующей очистки.

Примечание

В некоторых случаях файлы из одного результата теста могут попадать под разные правила очистки и удаляться в разное время. Подробнее см. Устранение неполадок → Артефакты удаляются не по правилам очистки.

Удаление файлов, отмеченных для очистки

Когда список очистки сформирован, ТестОпс удаляет файлы группами из этого списка:

  1. Каждые 5 минут запускается цикл удаления. За цикл ТестОпс может несколько раз отправить в хранилище запрос на удаление заданного числа файлов (по умолчанию не больше 1 000), пока очередь не опустеет.
  2. Если хранилище удаляет файл или сообщает об ошибке, запись удаляется из списка очистки и планировщик считает файл удаленным.

Совет

Максимальное число файлов в одном запросе к хранилищу зависит от конфигурации инстанса ТестОпс. 1 000 файлов — значение по умолчанию для большинства конфигураций.

Глобальные правила очистки

Примечание

Чтобы управлять глобальными правилами очистки, необходима глобальная роль «Администратор».

Глобальные правила очистки по умолчанию

Новые инстансы ТестОпс содержат предустановленный набор глобальных правил очистки. Это применимо для всех инстансов облачной версии ТестОпс, а также для инстансов серверной версии ТестОпс, развернутых впервые (без созданных проектов).

По умолчанию удаляются:

  • вложения в успешных результатах тестов — через 1 неделю (168 часов);
  • вложения в неуспешных результатах тестов и результатах с другими статусами — через 1 месяц (720 часов);
  • вложения фикстур и сценарии результатов тестов — через 1 месяц (720 часов) вне зависимости от результата теста.

Создание глобального правила очистки

Чтобы создать глобальное правило очистки:

  1. Перейдите в раздел АдминистрированиеПолитики очистки.

  2. Нажмите + Создать.

  3. Заполните поля:

    • Артефакт для удаления — нажмите на выпадающий список и выберите тип артефактов, который нужно удалять.
    • Статус результата теста — нажмите на выпадающий список и выберите статус результата теста, для которого будет применяться правило очистки.
    • Удалять артефакт через (в часах) — введите количество часов после запуска теста, по истечении которых артефакты будут удалены.
  4. Нажмите Отправить.

Также в ТестОпс можно создать полный набор глобальных правил очистки с помощью скрипта. Подробнее см. Создание правил очистки с помощью скрипта.

Изменение глобального правила очистки

Чтобы изменить глобальное правило очистки:

  1. Перейдите в раздел АдминистрированиеПолитики очистки.
  2. Справа от нужного правила нажмите иконку карандаша.
  3. Внесите нужные изменения в соответствующее поле правила очистки.
  4. Нажмите Отправить.

Удаление глобального правила очистки

Чтобы удалить глобальное правило очистки:

  1. Перейдите в раздел АдминистрированиеПолитики очистки.
  2. Справа от нужного правила нажмите иконку Удалить.

Проектные правила очистки

Все проектные правила очистки находятся в разделе НастройкиПолитики очистки, который состоит из двух секций:

  • Глобальная политика очистки данных — список глобальных правил очистки, активных для текущего проекта.
  • Настройки очистки ненужных артефактов для текущего проекта — список проектных правил очистки, активных для текущего проекта.

Примечание

Чтобы управлять проектными правилами очистки, необходима проектная роль «Владелец проекта» или глобальная роль «Администратор».

Создание проектного правила очистки

Чтобы создать проектное правило очистки:

  1. Перейдите в ваш проект ТестОпс.

  2. Перейдите в раздел НастройкиПолитики очистки.

  3. В секции Настройки очистки ненужных артефактов для текущего проекта нажмите + Создать.

  4. Заполните поля:

    • Артефакт для удаления — нажмите на выпадающий список и выберите тип артефактов, который нужно удалять.
    • Статус результата теста — нажмите на выпадающий список и выберите статус результата теста, для которого будет применяться правило очистки.
    • Удалять артефакт через (в часах) — введите количество часов после запуска теста, по истечении которых артефакты будут удалены.
  5. Нажмите Отправить.

В ТестОпс можно создать полный набор проектных правил очистки с помощью скрипта. Подробнее см. Создание правил очистки с помощью скрипта.

Изменение проектного правила очистки

Чтобы изменить проектное правило очистки:

  1. Откройте ваш проект ТестОпс.
  2. Перейдите в раздел НастройкиПолитики очистки.
  3. В секции Настройки очистки ненужных артефактов для текущего проекта справа от нужного правила нажмите иконку карандаша.
  4. Внесите нужные изменения в соответствующее поле правила очистки.
  5. Нажмите Отправить.

Удаление проектного правила очистки

Чтобы удалить проектное правило очистки:

  1. Откройте ваш проект ТестОпс.
  2. Перейдите в раздел НастройкиПолитики очистки.
  3. В секции Настройки очистки ненужных артефактов для текущего проекта справа от нужного правила нажмите иконку Удалить.

При выборе сроков хранения артефактов на уровне проекта следует учитывать их ценность с течением времени. Указанные в таблице значения являются рекомендательными и должны адаптироваться под процессы команды, требования к аудиту и доступный объем хранилища.

Статус результата тестаПример срока храненияОбоснование
Неуспешный~7 днейТребуется время для анализа причин сбоя, воспроизведения проблемы и проверки исправлений
СломанныйМинимально возможный срокСломанный тест, как правило, не несет диагностической ценности: причина сбоя не связана с прохождением теста, сломано окружение
Успешный~36 часов после создания запускаУспешный результат тест для анализа запуска, как правило, не нужен. Ориентируйтесь на частоту тестовых прогонов (при запуске раз в сутки обычно достаточно ~36 часов) и расписание очистки. При необходимости оставляйте 1–2 последних набора артефактов
Пропущенный~7 днейТест не был выполнен по условиям сценария (например, из-за недоступности тестовой среды). Длительное хранение имеет смысл, только если вы систематически разбираете причины пропущенных тестов
НеизвестныйМинимально возможный срокРезультат теста с неизвестным статусом не позволяет сделать выводы о состоянии системы и не имеет практической ценности для последующего анализа. Как правило, такой статус назначается результату теста при преждевременном закрытии запуска

Ручной запуск очистки

В интерфейсе ТестОпс нет элементов для запуска очистки вне расписания, но вы можете использовать для этого методы API:

  1. Перейдите на страницу Swagger в ТестОпс. Подробнее см. API ТестОпс.

  2. В секции cleanup-controller запустите один из API-методов:

    • /cleanup/scheduler/cleaner_schema_global — для запуска глобальных правил очистки;
    • /cleanup/scheduler/cleaner_schema_project — для запуска проектных правил очистки.

Создание правил очистки с помощью скрипта

Примечание

Чтобы создать:

Чтобы создать полный набор проектных правил очистки без использования интерфейса ТестОпс:

  1. Создайте API-токен в ТестОпс. Сохраните его в безопасном месте, он понадобится для скрипта.
  2. Запустите скрипт:
shell
ALLURE_TOKEN=<ваш токен ТестОпс>
ALLURE_ENDPOINT=<URL-адрес вашего инстанса ТестОпс>
ALLURE_PROJECT_ID=<ID вашего проекта>

TARGET_ARTEFACT="attachment scenario fixture"
TEST_STATUS="passed failed broken unknown skipped"

DELETE_DELAY=48

for ARTEFACT in $TARGET_ARTEFACT
    do
        for STATUS in $TEST_STATUS
        do
            echo "Marking ${ARTEFACT} for ${STATUS} tests for deletion after ${DELETE_DELAY} after creation \n"
            curl -X POST "${ALLURE_ENDPOINT}/api/rs/cleanerschema" --header "accept: */*" --header "Content-Type: application/json" --header "Authorization: Api-Token ${ALLURE_TOKEN}" -d "{\"projectId\": ${ALLURE_PROJECT_ID},\"status\": \"${STATUS}\",\"target\": \"${ARTEFACT}\",\"delay\": ${DELETE_DELAY}}"
            echo "\n"
        done
    done

где:

  • ALLURE_TOKEN — API-токен ТестОпс, который вы сохранили на шаге 1;
  • ALLURE_ENDPOINT — URL-адрес инстанса, например https://testops.example.com;
  • ALLURE_PROJECT_ID — ID проекта.

Скрипт последовательно обрабатывает все пары «тип артефакта — статус результата теста». Для каждой пары в проекте создается правило очистки с указанной задержкой. Вывод скрипта содержит эхо-строки и ответы сервера.

Вы также можете использовать этот скрипт для создания глобальных правил очистки. Для этого в скрипте удалите параметр \"projectId\": ${ALLURE_PROJECT_ID},.

Устранение неполадок

Размер хранилища не уменьшается

Если вы создали все нужные правила очистки, но размер хранилища все равно увеличивается или не меняется со временем, вам нужно изменить значение параметра ALLURE_SCHEDULER_CLEANER_BLOB_BATCHSIZE. Для этого обратитесь в службу поддержки ТестОпс с вашей корпоративной электронной почты.

Артефакты удаляются не по правилам очистки

Автоматизированные тесты, запускаемые с использованием одного из адаптеров Allure, могут иметь этапы подготовки и очистки (SetUp и TearDown). Так как эти этапы могут иметь результат, отличающийся от результата самого теста, ТестОпс может применять к ним разные правила очистки.

В качестве примера предположим, что вы создали два правила очистки для вложений:

  • Удалять вложения в успешных результатах тестов через 1 час.
  • Удалять вложения в неуспешных результатах тестов через 24 часа.

В этом случае, если вы загрузили результат теста, в котором основная часть была пройдена успешно, а этап очистки завершился с ошибкой, такой результат попадет под оба этих правила. Если в основной части теста есть вложения, они будут удалены через час. Если вложения есть в этапе очистки, они будут удалены через 24 часа.

Logo © 2026 Все права защищены. Сайт принадлежит компании ООО «Инструменты тестирования»