---
title: "Эталоны"
id: "2058"
type: "page"
slug: "baselines"
published_at: "2026-09-28T14:12:06+00:00"
modified_at: "2026-09-28T15:14:39+00:00"
url: "https://pastukhov.com/agents/test/docs/baselines"
markdown_url: "https://pastukhov.com/agents/test/docs/baselines.md"
excerpt: "Всё визуальное сравнение держится на одном образце — эталоне. Это то, с чем сверяют новые…"
---

# Эталоны

[https://pastukhov.com/agents/test/docs/baselines.md](https://pastukhov.com/agents/test/docs/baselines.md)

Всё визуальное сравнение держится на одном образце — эталоне. Это то, с чем сверяют новые снимки. Ниже — как эталон устроен, как живёт во времени и что с ним происходит, когда тесты и ветки меняются.

## Что такое эталон

**Эталон** — одобренный образец, с которым сравнивают новые снимки. Это не просто картинка: у эталона есть история версий и память о том, кто и когда его одобрил. Смотреть и разбирать эталоны удобно в обозревателе эталонов: там дерево сигнатур, лента версий и список вариаций.

## Сигнатура

Эталон привязан не к странице вообще, а к точному набору условий — **сигнатуре**. В неё входят: тест, шаг, вид снимка, среда, браузер, операционная система, размер окна, ветка и вариация.

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

## Ветки

Новые снимки сравнивают с последним одобренным эталоном своей ветки. Если в этой ветке эталона ещё нет, берётся эталон ветки по умолчанию — обычно основной.

Честная оговорка: продукт не вычисляет общий предок веток, потому что история кода проверяемого приложения ему недоступна. Ветка для него — просто метка. Поэтому эталон ветки не «сливается» с другой веткой автоматически: перенос делают вручную — продвижением или ответвлением.

## Версии

Первая сборка создаёт эталон автоматически — это версия номер один. Дальше каждое одобрение человека добавляет новую версию, и в ней сохраняется имя того, кто одобрил. Поэтому в ленте версий всегда видно происхождение: создано автоматически при первом прогоне, одобрено человеком, предложено ИИ и подтверждено человеком, перенесено по отпечатку.

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

## Вариации

Одну и ту же проверку иногда нужно снять по-разному: светлая и тёмная тема, русский и английский язык, телефон и компьютер. Для этого у шага есть именованные дорожки — **вариации**. Каждая вариация хранит свой эталон и сравнивается только сама с собой.

Предел — 20 вариаций на шаг, и у каждой есть срок. Просроченные вариации не удаляются сами: продукт показывает их списком с вопросом «Удалить все», «Выбрать какие» или «Оставить — продлить срок». Удаление мягкое — есть окно отката, отменить можно сочетанием клавиш Ctrl+Z.

## Продвинуть и ветвить

Текущую версию эталона можно **продвинуть** на другую ветку как её новый эталон или **ответвить** в отдельную линейку. Так заводят эталон для новой ветки, не переснимая страницы заново.

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

## Осиротевшие и хранение

Эталон переживает удаление ветки и переименование теста — так задумано. Он перестаёт совпадать только тогда, когда объявление снимка исчезло из файлов тестов; тогда он становится **осиротевшим**. Осиротевшие эталоны видны отдельным списком, и убрать их можно только вручную и с обязательной причиной — вместе с историей версий, больше ничего не затрагивается.

Проход хранения тоже ничего не удаляет: он только **помечает** старые версии, которые давно не одобрялись. Что с ними делать, решает человек. Так эталоны не исчезают тихо и незаметно.

## Безопасность снимков

Один раз на проект нужно подтвердить, что снимать безопасно. Чек-лист простой:

- в снимки не попадают пароли, ключи и куки;
- на снимках нет реальных данных клиентов;
- токены и идентификаторы сессий не остаются на снимках;
- внутренние имена и адреса хранить допустимо.

Кто и когда подтвердил, сохраняется, и подтверждение остаётся в силе, пока его не пересмотрят. Если снимаемая поверхность сильно изменилась, подтверждение запрашивают заново.

Дальше: как решения по отличиям превращаются в работу команды — в разделе [Доска проверки и задачи](/agents/test/docs/review)
.

[← Оглавление документации](/agents/test/docs)
