Очистка тестовых данных
Страница «Очистка» удаляет сущности, которые были созданы DataGenerator и зарегистрированы во внутреннем журнале модуля.
Это важное отличие от «массового удаления по признакам»: модуль не ищет записи по названию, e-mail или дате. Он работает с точным списком ID, сохранённым при генерации.
[Скриншот 1: общая страница Очистка со статистикой и командами]
Всего записей в логе
Показывает, сколько зарегистрированных сущностей сейчас остаётся в журнале DataGenerator. Это не всегда равно количеству сессий: одна сессия может содержать сотни записей.
Сессий генерации
В верхней статистике отображается количество последних сессий, загруженных на страницу. Таблица показывает до 20 последних запусков.
Удалить по хешу сессии
Используйте эту команду, если нужно удалить данные только одного запуска.
- Скопируйте хеш из результата генерации или из таблицы сессий.
- Вставьте его в поле.
- Нажмите «Удалить по сессии».
- Проверьте количество удалённых сущностей и ошибок.
После обработки данные этой сессии удаляются из журнала сессий.
Таблица «Сессии генерации»
Для каждого запуска показываются:
- хеш;
- статус;
- название операции;
- время начала;
- время окончания;
- кнопка удаления.
Кнопка с корзиной удаляет данные только выбранной сессии после подтверждения.
[Скриншот 2: таблица сессий и кнопка удаления отдельного запуска]
Удалить все тестовые данные
Команда «Удалить все тестовые данные» проходит по всему журналу DataGenerator и удаляет все зарегистрированные сущности из всех сессий.
Перед запуском отображается подтверждение. Используйте эту команду, когда тестовый стенд нужно полностью очистить от данных, созданных модулем.
В каком порядке удаляются данные
Записи обрабатываются в обратном порядке создания. Это важно для зависимых сущностей: сначала удаляются более поздние элементы и заказы, а затем структуры, на которых они основаны.
DataGenerator умеет удалять зарегистрированные:
- заказы;
- элементы инфоблоков;
- разделы;
- свойства;
- инфоблоки;
- типы инфоблоков;
- пользователей.
Что очистка не делает
- не удаляет произвольные записи, созданные вручную;
- не удаляет существующий инфоблок только потому, что в него добавлялись тестовые элементы;
- не откатывает ручные изменения, сделанные после генерации;
- не восстанавливает данные, удалённые пользователем до запуска очистки;
- не очищает сущности, которые были созданы вне DataGenerator и не зарегистрированы в его журнале.
Почему очистка называется безопасной
При работе с существующим инфоблоком DataGenerator регистрирует созданные разделы и элементы, но не сам инфоблок. Поэтому удаление сессии убирает тестовое наполнение, сохраняя исходную структуру.
При создании нового инфоблока регистрируются также сам инфоблок, его свойства и, если был создан, тип. Очистка может удалить всю созданную тестовую структуру.
Когда безопасная очистка всё же может удалить нужное
Безопасность основана на происхождении записи, а не на её текущем назначении. Если DataGenerator создал товар, а затем вы вручную отредактировали его и решили оставить как рабочий, он по-прежнему числится в журнале. Удаление исходной сессии удалит его.
Поэтому не превращайте тестовые записи в постоянные либо сохраняйте такую сессию и очищайте данные вручную.
Ошибки при очистке
Если отдельную сущность не удалось удалить, она попадает в список ошибок, а обработка остальных записей продолжается.
Возможные причины:
- сущность уже удалена вручную;
- другой модуль запрещает удаление обработчиком события;
- нарушены связи данных;
- не загружен необходимый штатный модуль;
- у объекта есть нестандартные зависимости.
Перед удалением DataGenerator
Всегда сначала откройте эту страницу. При удалении самого модуля его служебные таблицы удаляются. Если в них оставались связи с тестовыми сущностями, штатная возможность удалить их по сессиям будет потеряна.
[Скриншот 3: подтверждение команды Удалить все тестовые данные]
Рекомендуемый рабочий цикл
- Создать тестовые данные.
- Провести проверку.
- Если набор больше не нужен — удалить его по сессии.
- Если нужен новый вариант — изменить профиль и создать новую сессию.
- Перед закрытием тестового проекта выполнить полную очистку.