Руководство по веб-интерфейсу Mockarty
Если вы впервые в Mockarty, начните с обучения в интерфейсе и соберите первый HTTP-мок. К этому руководству удобно возвращаться, когда нужен определённый экран.
Добро пожаловать в руководство по веб-интерфейсу Mockarty. Независимо от того, являетесь ли вы QA-инженером, создающим свой первый мок, разработчиком, интегрирующим Mockarty в CI/CD пайплайн, или архитектором, проектирующим мультипротокольные тестовые среды, это руководство шаг за шагом проведёт вас через каждую страницу и функцию веб-интерфейса.
Здесь описаны основные страницы навигации, чат с AI-ассистентом, API-токены и роли доступа. Набор видимых страниц зависит от вашей роли и включённых функций.
Ключевые термины
Прежде чем начать, вот несколько терминов, используемых в этом руководстве:
- Мок (Mock) – Имитированный API-эндпоинт, который возвращает заранее определённые ответы вместо вызова реального сервиса. Моки позволяют тестировать приложение без зависимости от внешних систем.
- Стаб (Stub) – В Mockarty термины «стаб» и «мок» используются как синонимы. Оба обозначают настроенный эндпоинт, возвращающий контролируемый ответ.
- Условие (Condition) – Правило, определяющее, когда мок должен совпасть с входящим запросом. Например, «совпадать только когда тело запроса содержит
status: active». - Пространство имён (Namespace) – Изолированное рабочее пространство, которое разделяет моки, хранилища и тестовые коллекции между командами или проектами.
- Хранилище (Store) – Механизм хранения ключ-значение, позволяющий мокам запоминать состояние между запросами. Mockarty предоставляет три типа хранилищ: Global, Chain и Mock.
- Faker – Встроенная библиотека функций для генерации реалистичных случайных данных (имена, email, UUID и др.) для ответов моков.
Содержание
- Начало работы
- Обзор интерфейса
- Панель мониторинга
- Моки
- Конструктор
- Неопределённые запросы
- Хранилища
- Генератор
- API Tester
- Запуски тестов
- Тест-кейсы
- Тест-планы
- Рекордер
- Анализ страницы
- Безопасность: фаззинг
- Контрактное тестирование
- Хаос-инженерия
- Утилиты
- Шаблоны
- Настройки
- Панель администратора
- Панель поддержки
- ИИ-функции
- Чат с ассистентом
- API-токены
- Роли и разрешения
- Советы и лучшие практики
Начало работы
Доступ к интерфейсу
После запуска экземпляра Mockarty откройте веб-браузер и перейдите по адресу:
http://localhost:5770/ui/
Замените localhost:5770 на ваш реальный хост и порт, если вы настроили пользовательский HTTP-порт через переменную окружения HTTP_PORT или обращаетесь к удалённому развёртыванию. Инструкции по установке и развёртыванию см. в Руководстве по развёртыванию. Полная таблица URL-адресов для разных типов развёртывания — в разделе Полезные функции и советы.
Интерфейс работает в современных десктопных браузерах (Chrome, Firefox, Safari, Edge). Основные страницы помещаются и на узком экране телефона; сложное редактирование удобнее на планшете или компьютере.
Клавиши Tab и Shift+Tab переводят фокус между элементами управления. Кнопка
под фокусом клавиатуры имеет видимую обводку в светлой и тёмной теме;
нажмите Enter или пробел для её активации.
В диалоге Tab и Shift+Tab перемещают фокус внутри верхнего диалога. Escape
закрывает его и возвращает фокус к открывшему его элементу, если тот ещё на
странице. При переходе на другую страницу её диалоги закрываются: закрытие
подтверждения не разрешает действие, а закрытие диалога ввода не отправляет значение.

Аутентификация
Используйте способ входа, который показан на странице вашей установки Mockarty. Доступные способы выбирает администратор.
Локальная аутентификация
Войдите с именем пользователя или почтой и паролем. Если администратор включил почтовые уведомления, забытый пароль можно сбросить.
Если учётная запись заблокирована после неудачных попыток, обратитесь к администратору.
OAuth 2.0
Если администратор включил Google, Yandex, VK или другого провайдера OAuth/OIDC, нажмите соответствующую кнопку «Войти через…». После первого успешного входа учётная запись Mockarty может создаться автоматически. Если кнопок несколько, уточните нужный способ у администратора.
LDAP / Active Directory
Если ваша организация использует LDAP или Active Directory, войдите с рабочей учётной записью. Доступ и роли настраивает администратор.
SAML SSO
Если организация использует единый вход SAML, Mockarty перенаправит вас на корпоративную страницу входа и вернёт в приложение после аутентификации.
Двухфакторная аутентификация (2FA)
Независимо от основного метода аутентификации, пользователи могут включить двухфакторную аутентификацию для дополнительной безопасности. Mockarty поддерживает:
- Одноразовые пароли на основе времени (TOTP) через приложения-аутентификаторы (Google Authenticator, Authy и др.).
- Одноразовые коды по электронной почте (при включённых email-уведомлениях).
2FA может быть принудительно включена администратором для всех пользователей или определённых ролей.
Первый вход и начальная настройка
При первом входе в Mockarty:
-
Учётные данные по умолчанию: Если используется локальная аутентификация, учётная запись администратора по умолчанию обычно имеет логин
admin/ парольadmin. Измените этот пароль сразу после первого входа. -
Выбор пространства имён: Mockarty организует все ресурсы (моки, хранилища, тестовые коллекции) в пространства имён. После входа вы окажетесь в пространстве имён по умолчанию. Вы можете создать дополнительные пространства имён на странице настроек.
-
Создание первого мока: Перейдите на страницу конструктора, чтобы создать свой первый мок, или используйте страницу генератора для импорта моков из существующей OpenAPI спецификации, WSDL файла или другого поддерживаемого формата. Пошаговое руководство см. в Быстром старте.
-
Изучение панели мониторинга: Страница панели мониторинга предоставляет обзор вашего экземпляра Mockarty, включая статистику разрешения моков и метрики состояния системы.
Обзор интерфейса
Веб-интерфейс Mockarty имеет единообразную компоновку на всех страницах: сворачиваемая боковая панель слева, верхняя панель с глобальными элементами управления и основная область контента.

Боковая панель навигации
Боковая панель группирует страницы по задачам. В таблице показаны основные пункты; их видимость зависит от вашей роли и доступных функций. Анализ страницы находится в UI Testing → Аудит страницы, а шаблоны — во вкладке страницы Хранилища.
| Страница | Путь | Что здесь можно сделать |
|---|---|---|
| Дашборды | /ui/dashboards |
Системная аналитика и статистика разрешения моков |
| Моки | /ui/mocks |
Просмотр, поиск и управление всеми моками |
| Конструктор | /ui/constructor |
Визуальное создание и редактирование моков |
| Неопределенные | /ui/undefined |
Просмотр несопоставленных запросов (404) |
| Хранилища | /ui/stores |
Управлять данными Global и Chain, просматривать настройки Mock Store и открывать другие вкладки хранилищ |
| СпекГенератор | /ui/generator |
Импорт моков из спецификаций (OpenAPI, WSDL и др.) |
| Тестер API (Preview) | /ui/api-tester |
Полнофункциональная среда тестирования API |
| Запуски тестов (Preview) | /ui/test-runs |
Просмотр результатов и отчётов тестирования |
| Тест-кейсы | /ui/test-cases |
Организовать тест-кейсы и их шаги |
| Тест-планы | /ui/test-plans |
Запустить несколько типов тестов в одном плане |
| Рекордер | /ui/recorder |
Захват и воспроизведение реального трафика |
| Безопасность | /ui/security |
Запустить фаззинг во вкладке Сканеры и использовать другие доступные инструменты безопасности |
| UI-тестирование | /ui/ui-testing |
Запустить браузерные тесты и открыть аудит страницы |
| Контракты (Preview) | /ui/contract-testing |
Валидация моков на соответствие API-спецификациям |
| Хаос-инженерия (Preview) | /ui/chaos |
Хаос-эксперименты для Kubernetes |
| Утилиты | /ui/utils |
Утилиты разработчика (JSON, Base64, UUID и др.) |
| Настройки | /ui/settings |
Настройки пространства имён и интеграций для администраторов, поддержки и владельцев пространств |
| Администрирование | /ui/admin |
Системное администрирование (только для администраторов) |
| Поддержка | /ui/support |
Панель поддержки для пользователей с ролью support |
Метки Preview: Страницы, отмеченные «Preview», отображают бейдж Preview в боковой панели. Эти функции полностью работоспособны, но находятся в состоянии preview/beta и могут существенно измениться в будущих версиях.
Видимость функций: Разделы «Безопасность», «Контракты», «Хаос» и другие появляются, когда у аккаунта есть доступ к соответствующей функции. Вкладка Сканеры раздела «Безопасность» также может быть доступна вместе с API Tester.
Ссылка на документацию: Ссылка на документацию (
/ui/docs) расположена в отдельной секции в самом низу боковой панели, под основным списком навигации. Она предоставляет доступ к встроенному браузеру документации.
Боковую панель можно свернуть до режима отображения только иконок, нажав кнопку переключения внизу, что даёт больше пространства для основной области контента.
Активная страница подсвечивается в боковой панели характерным акцентным цветом. В нижней части боковой панели отображается номер текущей версии Mockarty.
Верхняя панель
Верхняя панель присутствует на каждой странице и содержит:
-
Селектор пространства имён: Выпадающее меню, показывающее текущее активное пространство имён. Переключайтесь между пространствами имён для просмотра и управления ресурсами, принадлежащими каждому из них. Все операции создания моков, работы с хранилищами и тестовыми коллекциями привязаны к пространству имён.
-
Название страницы и ссылка на документацию: В шапке показано название текущей страницы; для страниц с руководством рядом может быть ссылка на документацию, если такие ссылки включены в настройках.
-
Тема и учётная запись: Здесь можно переключить светлую и тёмную темы или открыть меню пользователя. В Mockarty Desktop здесь также находятся обновление, масштаб и лимиты использования.
Меню пользователя
Нажатие на имя пользователя или аватар в правом верхнем углу открывает выпадающее меню с пунктами:
- Профиль: Просмотр и редактирование профиля пользователя, включая отображаемое имя и адрес электронной почты.
- API-токены: Управление персональными API-токенами для программного доступа к REST API Mockarty.
- Язык: Переключение языка интерфейса. Mockarty поставляется с переводами на английский и русский языки. Дополнительные языки могут быть добавлены через систему i18n.
- Тема: Переключение между светлой и тёмной темами. Ваш выбор сохраняется в браузере и сохраняется между сессиями.
- Настройки 2FA: Включение или отключение двухфакторной аутентификации для вашей учётной записи.
- Выход: Завершение текущей сессии.
Аватар (фото профиля)
Каждый пользователь может установить фото профиля. Оно отображается рядом с именем по всему продукту — в шапке, в выборе пользователей, в списках участников пространства и в подписях авторов комментариев, — так коллеги видят живого человека, а не только логин.
Чтобы загрузить аватар:
- Откройте меню пользователя (правый верхний угол) и выберите Настройки.
- Перейдите на вкладку Профиль.
- Нажмите Загрузить аватар и выберите файл PNG, JPEG или WebP размером до 5 МБ.
Сервер автоматически уменьшает изображение до 256×256 пикселей, поэтому обрезка не требуется. Кнопка Удалить убирает фото — интерфейс вернётся к инициалам на цвете, сгенерированном из вашего логина.
Если вы входите через OAuth-провайдера или корпоративный каталог (LDAP/Active Directory), Mockarty автоматически подтягивает фото профиля, опубликованное провайдером (клейм picture в OAuth или атрибут jpegPhoto/thumbnailPhoto в LDAP). Загруженное вручную фото всегда имеет приоритет и никогда не перезаписывается провайдером.
Переключатель темы
Mockarty поддерживает две визуальные темы:
- Светлая тема: Чистый, яркий интерфейс, оптимизированный для хорошо освещённых помещений.
- Тёмная тема: Пониженная яркость с тёмным фоном, оптимизированная для слабого освещения и снижения нагрузки на глаза.
Тема применяется ко всему интерфейсу, включая боковую панель, область контента, модальные окна и встроенные редакторы кода. Выбранная тема сохраняется в этом браузере и синхронизируется с вашей учётной записью Mockarty, когда сервер доступен. Явный выбор темы или языка сохраняется, пока загружаются начальные настройки.
Переключатель языка
Переключатель языка (доступный из меню пользователя) позволяет изменить язык интерфейса. Все надписи, кнопки, подсказки, сообщения об ошибках и справочные тексты переведены. Текущие поддерживаемые языки:
- English (en) – по умолчанию
- Русский (ru)
Предпочтение языка сохраняется для вашей учётной записи Mockarty и в этом браузере. Подтверждённые настройки можно восстановить в другом браузере при входе в ту же учётную запись.
Если вы ещё раз сменили язык, пока загружаются переводы, действует последний выбор. Более ранний ответ не заменит новые переводы.
Безопасное сохранение изменений
В редакторах с предупреждением о несохранённых изменениях защита действует,
пока текущая работа не сохранена. Новые правки после сохранения снова становятся
несохранёнными, даже если вы остались на том же экране. Если редактор не может
проверить своё состояние, защита сохраняется: приложение не считает работу
сохранённой автоматически. Не закрывайте редактор и повторите сохранение перед
выходом из Desktop или установкой обновления.
Панель мониторинга
Путь: /ui/dashboards
Панель мониторинга – это ваш домашний экран в Mockarty. Здесь вы можете с первого взгляда увидеть, как используются ваши моки: какие протоколы получают больше всего трафика, сколько запросов совпало (или не совпало) с моком, и общее состояние системы. Страница предоставляет карточки аналитики в реальном времени, графики и сводные таблицы, чтобы вы могли понять, что происходит в вашей тестовой среде, с первого взгляда.



Карточки системной аналитики
В верхней части панели мониторинга ряд сводных карточек показывает ключевые метрики с первого взгляда:
- Всего моков: Количество активных моков в текущем пространстве имён.
- Всего запросов: Совокупное количество запросов, разрешённых моками с момента последнего сброса.
- Активные пространства имён: Количество пространств имён, содержащих хотя бы один мок.
- Активные пользователи: Количество пользователей, которые входили в систему за последние 30 дней.
- Неопределённые запросы: Количество недавних запросов, не совпавших ни с одним моком (404).
- Записи хранилищ: Общее количество пар ключ-значение во всех хранилищах пространства имён.
Каждая карточка показывает текущее значение и индикатор тренда (стрелка вверх/вниз с процентным изменением по сравнению с предыдущим периодом).
График статистики разрешения моков
Временной график показывает активность разрешения моков за выбранный временной диапазон (последний час, 24 часа, 7 дней или 30 дней). На графике отображаются:
- Разрешённые запросы (совпали с моком и вернули ответ).
- Неразрешённые запросы (не найден подходящий мок, возвращён 404).
- Проксированные запросы (перенаправлены на реальный бэкенд-сервис).
- Ошибочные ответы (моки, которые по замыслу вернули коды ошибок).
Вы можете навести курсор на любую точку графика, чтобы увидеть точное количество и временную метку. Нажмите на серию в легенде, чтобы переключить её видимость.
Тренды объёма запросов
Столбчатая или линейная диаграмма (настраиваемая), показывающая объём запросов, агрегированный по часам или дням. Это помогает выявить шаблоны трафика, пиковые периоды использования и аномалии.
Распределение по протоколам
Кольцевая диаграмма разбивает разрешение моков по типу протокола:
- HTTP / REST
- gRPC
- MCP
- GraphQL
- SOAP
- SSE
- WebSocket
- Kafka
- RabbitMQ
- SMTP
Эта визуализация помогает понять, какие протоколы наиболее активно используются в вашей тестовой среде.
Самые используемые моки
Таблица, перечисляющая наиболее часто разрешаемые моки, отсортированные по количеству запросов. Каждая строка показывает:
- Имя и идентификатор мока.
- Тип протокола.
- Маршрут или метод.
- Общее количество запросов.
- Временная метка последнего разрешения.
Нажмите на любую строку, чтобы перейти на страницу деталей мока.
Моки
Путь: /ui/mocks
Страница моков является центральным узлом для просмотра, поиска, фильтрации и управления всеми моками в текущем пространстве имён.



Просмотр всех моков
Основное представление отображает моки в виде списка (или карточек). Каждая запись мока показывает:
- Имя: Человекочитаемое имя мока.
- Идентификатор: Уникальный идентификатор мока.
- Протокол: Тип протокола (HTTP, gRPC, MCP и др.), обозначенный иконкой и подписью.
- Маршрут / Метод: Шаблон маршрута для сопоставления (например,
/api/users/list) и HTTP-метод (GET, POST и т.д.) или эквивалент для других протоколов. - Статус: Активен, отключён или истёк (превышен TTL или достигнут лимит использования).
- Теги: Цветные теги для категоризации.
- Создан / Обновлён: Временные метки создания и последнего изменения мока.
- Количество запросов: Сколько раз этот мок был разрешён.
Поиск и фильтрация
Страница моков предоставляет мощные возможности поиска и фильтрации:
- Текстовый поиск: Введите текст в поле поиска для фильтрации моков по идентификатору, маршруту, адресу протокола (например, топику или бакету) или тегу. Поиск нечувствителен к регистру и поддерживает частичное совпадение строк.
- Фильтр по протоколу: Фильтрация по одному или нескольким типам протоколов с помощью выпадающего списка или чипов фильтра.
- Фильтр по статусу: Показ только активных, отключённых или истёкших моков.
- Фильтр по тегам: Фильтрация по одному или нескольким тегам. Теги можно комбинировать с логикой И или ИЛИ.
- Опции сортировки: Сортировка по имени, дате создания, дате обновления или количеству запросов (по возрастанию или убыванию).
Организация по папкам
Моки можно организовывать в папки для лучшей структуры:
- Создание папки: Нажмите кнопку «Новая папка» для создания папки. Папки могут быть вложены на любую глубину.
- Перемещение моков: Перетаскивайте моки в папки или используйте контекстное меню для перемещения моков между папками.
- Переименование папки: Дважды щёлкните по имени папки или используйте контекстное меню для переименования.
- Удаление папки: Удаление папки перемещает её содержимое в родительскую папку (моки не удаляются).
Папки привязаны к пространству имён и видимы всем пользователям в нём.
Рабочая область моков
Создавайте, редактируйте и клонируйте моки, не покидая дерево моков. Используйте
Новый мок, Создать мок в папке или действия редактирования и клонирования
в строке мока. Mockarty откроет ту же форму Конструктора в большой рабочей
области поверх дерева; текущий поиск, раскрытые папки, выбранный элемент и
позиция прокрутки сохранятся.
- Кнопки Предыдущий и Следующий перемещают между моками, видимыми в
отфильтрованном дереве. - Кнопка Тест открывает предпросмотр запроса Конструктора для текущей формы.
- Несохранённая форма хранится как локальный черновик для соответствующего
пространства имён и мока. При закрытии рабочей области или переходе к
другому моку Mockarty запрашивает подтверждение, не удаляя черновик. - Если другой сеанс изменит тот же мок, пока черновик содержит изменения,
рабочая область сохранит локальный черновик и сообщит о новой серверной
версии. Чистая форма обновится автоматически. - После сохранения обновляется только изменённая строка дерева. Фокус
возвращается к сохранённому моку, остальная часть дерева не перемонтируется.
На небольшом экране рабочая область занимает всё окно. С клавиатуры можно
переходить между элементами клавишей Tab; Escape и щелчок по фону используют ту
же защиту несохранённых изменений. Действие Открыть на отдельной странице
остаётся доступным, а прямые ссылки вида /ui/constructor?edit=MOCK_ID
продолжают работать.
Детальный просмотр мока
Нажмите на любой мок, чтобы открыть его страницу деталей. Детальное представление показывает полную конфигурацию мока, организованную по вкладкам:

- Вкладка конфигурации: Настройки, специфичные для протокола (маршрут, метод, имя сервиса и др.), приоритет, TTL, лимиты использования и конфигурация прокси.
- Вкладка условий: Все условия сопоставления (условия по телу, заголовкам, параметрам запроса с действиями проверки).
- Вкладка ответа: Тело ответа, код состояния, заголовки и любые конфигурации OneOf-ответов.
- Вкладка экстракторов: Экстракторы хранилищ, захватывающие данные из запросов в Global, Chain или Mock хранилища.
- Вкладка логов: Недавние логи запросов с временными метками, деталями запроса и совпавшими условиями.
- Вкладка истории: История версий с просмотром различий и возможностью отката.
Со страницы деталей вы можете:
- Редактировать: Открывает мок в конструкторе для редактирования.
- Клонировать: Создаёт копию мока с новым идентификатором.
- Отключить / Включить: Временно отключить мок без его удаления.
- Удалить: Мягкое удаление мока (можно восстановить).
- Экспортировать: Скачать конфигурацию мока в формате JSON.
История версий и откат
Каждое изменение мока создаёт новую версию. Вкладка истории показывает:
- Номер версии и временную метку.
- Пользователя, внёсшего изменение.
- Представление различий, выделяющее что изменилось между версиями.
- Кнопку «Откат» для восстановления мока до любой предыдущей версии.
Откат создаёт новую версию (промежуточные версии не удаляются), поэтому вы всегда можете отменить откат.
Логи запросов по моку
Вкладка логов на странице деталей мока показывает недавние запросы, разрешённые этим моком:
- Временная метка и длительность.
- Метод запроса, путь, заголовки и тело.
- Совпавшие условия и результаты их проверки.
- Возвращённый ответ.
- Значения хранилищ, прочитанные или записанные во время разрешения.
Логи можно фильтровать по временному диапазону и экспортировать в формате JSON или CSV.
Массовые операции
Выберите несколько моков с помощью чекбоксов для выполнения массовых операций:
- Удалить: Мягкое удаление всех выбранных моков.
- Восстановить: Восстановление ранее удалённых моков.
- Теги: Добавление или удаление тегов у всех выбранных моков.
- Переместить: Перемещение выбранных моков в папку.
- Отключить / Включить: Переключение активного статуса выбранных моков.
Конструктор
Подробное описание полей и протоколов перенесено в «Конструктор моков». Для первого упражнения откройте обучение.
Неопределённые запросы
Путь: /ui/undefined
Страница неопределённых запросов показывает все входящие запросы, которые не совпали ни с одним моком и получили ответ 404. Это бесценно для обнаружения недостающих моков и понимания ожиданий ваших потребителей.

Список запросов
Основное представление показывает неопределённые запросы в таблице:
- Временная метка: Когда запрос был получен.
- Метод: HTTP-метод (или эквивалент для протокола).
- Путь / Маршрут: Запрошенный URL-путь.
- IP-адрес источника: IP-адрес клиента.
- Заголовки: Ключевые заголовки запроса (Content-Type, Authorization и др.).
- Количество: Сколько раз этот точный шаблон запроса был замечен.
Запросы группируются по методу + пути для уменьшения шума. Счётчик показывает, как часто встречается каждый шаблон.
Детали запроса
Нажмите на любой неопределённый запрос, чтобы увидеть полные детали:
- Полные заголовки запроса.
- Полное тело запроса (форматированное для JSON/XML).
- Параметры запроса.
- Параметры пути (если URL совпадает с известным шаблоном).
- Метаданные (для gRPC/MCP запросов).
Создание мока из неопределённого запроса
Самая мощная функция страницы неопределённых запросов: нажмите кнопку «Создать мок» на любом неопределённом запросе, чтобы открыть конструктор, предварительно заполненный:
- Шаблоном маршрута запроса (с обнаруженными параметрами пути).
- HTTP-методом.
- Предложенным телом ответа на основе структуры запроса.
- Обнаруженными условиями из тела запроса.
Этот рабочий процесс значительно ускоряет процесс устранения пробелов в покрытии.
Игнорирование запросов
Для запросов, которые вы не хотите имитировать (проверки здоровья от балансировщиков нагрузки, мониторинговые пробы и т.д.), нажмите «Игнорировать», чтобы скрыть их из списка. Игнорируемые шаблоны можно управлять на странице настроек.
Массовая очистка
Используйте кнопку «Очистить всё», чтобы удалить все неопределённые запросы из списка. Это полезно после массового импорта или когда вы устранили все пробелы в покрытии. Очистка необратима.
Хранилища
Путь: /ui/stores
Хранилища позволяют мокам запоминать данные между запросами. Например, мок «создание заказа» может сохранить ID нового заказа, а мок «получение заказа» – вернуть его позже. Именно это делает Mockarty способным имитировать реалистичные многошаговые сценарии, а не просто возвращать статические ответы.
На странице Хранилища есть вкладки для всех трёх типов. Данные Global и Chain можно менять. Вкладка Mock Store доступна только для чтения: она показывает значения, настроенные у выбранного мока, а не состояние выполняющегося запроса. Больше примеров — в руководстве по Store.



Global Store (gS)
Global Store предоставляет постоянное хранилище ключ-значение в рамках пространства имён:
- Область: Значения доступны всем мокам в пространстве имён.
- Сохранение: Значения сохраняются до явного удаления или очистки пространства имён.
- Варианты использования: Счётчики (например, порядковые номера заказов), флаги функций, общая конфигурация, состояние между моками.
Из интерфейса вы можете:
- Просмотреть все записи: Увидеть все пары ключ-значение в Global Store для текущего пространства имён.
- Создать запись: Добавить новую пару ключ-значение вручную.
- Редактировать запись: Изменить значение существующего ключа.
- Удалить запись: Удалить пару ключ-значение.
- Поиск: Фильтровать записи по имени ключа.
Ссылка в моках: Используйте $.gS.keyName в телах ответов для вставки значения ключа Global Store.
Chain Store (cS)
Chain Store предоставляет состояние в рамках цепочки запросов для многошаговых рабочих процессов:
- Область: Значения доступны мокам, принадлежащим одной цепочке (связанным идентификатором цепочки, передаваемым в заголовках или теле запроса).
- Сохранение: Значения сохраняются на протяжении цепочки.
- Варианты использования: Многошаговые рабочие процессы (создание заказа -> получение заказа -> обновление заказа -> удаление заказа), состояние сессии, контекст диалога.
Интерфейс показывает записи цепочек, сгруппированные по идентификатору цепочки. Вы можете просматривать, редактировать и удалять отдельные записи или целые цепочки.
Ссылка в моках: Используйте $.cS.keyName в телах ответов для вставки значения ключа Chain Store для текущей цепочки.
Mock Store (mS)
Mock Store предоставляет эфемерное состояние на один запрос:
- Область: Значения существуют только во время обработки одного разрешения мока.
- Сохранение: Значения удаляются после отправки ответа.
- Варианты использования: Промежуточные вычисления, временные переменные для сложной генерации ответов.
Откройте Хранилища → Хранилище мока, нажмите Выбрать мок, а затем Загрузить, чтобы просмотреть настроенные записи. Вкладка доступна только для чтения. Временные значения завершённого запроса здесь не сохраняются как история.
Ссылка в моках: Используйте $.mS.keyName в телах ответов для вставки значений, установленных экстракторами во время обработки текущего запроса.
Использование хранилищ в ответах моков
Все три типа хранилищ можно ссылать в телах ответов моков, используя синтаксис $.gS.*, $.cS.* и $.mS.*. Например:
{
"orderId": "$.gS.lastOrderId",
"status": "$.cS.orderStatus",
"processedBy": "$.mS.handlerName",
"sequenceNumber": "$.increment($.gS.orderCounter || 0)"
}
Хранилища также можно использовать в условиях для создания логики сопоставления с сохранением состояния.
См. также: Системы хранилищ | Руководство по JsonPath
Генератор
Путь: /ui/generator
Страница генератора позволяет массово создавать моки, импортируя из различных форматов спецификаций. Вместо создания моков по одному в конструкторе импортируйте существующую API-спецификацию для генерации десятков или сотен моков за считанные секунды.

Выбор источника импорта
Генератор предоставляет навигацию по вкладкам для различных источников импорта:
OpenAPI / Swagger
Импорт моков из спецификаций OpenAPI 2.0 (Swagger) или OpenAPI 3.0/3.1:
- Загрузка файла: Загрузите файл спецификации в формате JSON или YAML с локальной машины.
- Импорт по URL: Укажите URL для загрузки спецификации (например,
https://api.example.com/swagger.json). - Возможности: Автоматическая генерация моков для всех определённых эндпоинтов с:
- Шаблонами маршрутов с параметрами пути.
- Сопоставлением HTTP-методов.
- Телами ответов на основе определений схемы (со значениями Faker для реалистичных данных).
- Маппингом кодов состояния из определённых ответов.
- Условиями валидации тела запроса.
WSDL
Импорт SOAP-моков из WSDL файлов:
- Загрузите WSDL-файл или укажите URL.
- Генерирует моки для всех определённых операций.
- Создаёт XML-шаблоны ответов, соответствующие схеме.
- Устанавливает условия по заголовку SOAPAction.
Proto (gRPC)
Импорт gRPC-моков из файлов определений Protocol Buffer:
- Загрузите один или несколько
.protoфайлов. - Генерирует моки для всех определённых сервисов и методов.
- Создаёт JSON-тела ответов, соответствующие определениям сообщений.
- Обрабатывает вложенные сообщения, перечисления и повторяющиеся поля.
- Загружайте proto-файлы как есть —
option go_packageнеобязательна, любой формат принимается, а языковые опции удаляются автоматически. Подробности в документации Генератор серверов.
GraphQL
Импорт GraphQL-моков из определений схемы:
- Загрузка файла: Загрузите файл схемы
.graphqlили.gql. - Интроспекция по URL: Укажите URL GraphQL-эндпоинта, и Mockarty выполнит запрос интроспекции для обнаружения схемы.
- Генерирует моки для запросов и мутаций.
- Создаёт тела ответов, соответствующие определениям типов.
HAR (HTTP Archive)
Импорт моков из HAR-файлов, захваченных инструментами разработчика браузера или прокси-программами:
- Загрузите
.harфайл, экспортированный из Chrome DevTools, Firefox, Charles Proxy, Fiddler или любого HAR-совместимого инструмента. - Каждая захваченная пара запрос/ответ становится моком.
- Сохраняет оригинальные заголовки, коды состояния и тела ответов.
- Автоматически дедуплицирует идентичные запросы.
MCP
Импорт MCP-моков из JSON-файлов конфигурации:
- Загрузите JSON-файл, описывающий MCP-инструменты, ресурсы и промпты.
- Генерирует моки со схемами входных данных и шаблонами ответов.
Socket
Импорт WebSocket или сырых сокет-моков из файлов конфигурации:
- Загрузите JSON-конфигурацию, описывающую события и форматы сообщений.
- Генерирует моки на основе событий с телами ответов.
Предварительный просмотр перед генерацией
После выбора источника и загрузки/указания спецификации генератор показывает предварительный просмотр всех моков, которые будут созданы:
- HTTP-метод (или тип операции) и маршрут каждого мока, а также его статус-код и идентификатор.
- Эндпоинты сгруппированы по тегам/контроллерам OpenAPI (для gRPC и SOAP — по сервисам, для GraphQL — по типам операций, а если тегов в спецификации нет — по первому сегменту пути).
- Компактные итоги по эндпоинтам и мокам в верхней части панели.
Вы можете:
- Выбрать/снять выбор отдельных моков для включения или исключения их из генерации.
- Выбрать/снять целую группу чекбоксом группы (частично выбранная группа показывает промежуточное состояние).
- Сворачивать/разворачивать группы кликом по заголовку группы.
См. также: Генератор серверов | Справочник API
Стратегия слияния
При генерации моков, которые могут конфликтовать с существующими (тот же маршрут и метод), выберите стратегию слияния:
- Пропустить существующие: Не создавать моки, которые конфликтуют с существующими. Существующие моки остаются без изменений.
- Принудительная перезапись: Заменить существующие моки новыми сгенерированными. Старые моки мягко удаляются.
Назначение пространства имён и тегов
Перед генерацией вы можете:
- Выбрать пространство имён: Выбрать, в каком пространстве имён создавать моки (по умолчанию — текущее пространство имён).
- Назначить теги: Добавить один или несколько тегов ко всем сгенерированным мокам для лёгкой идентификации (например, «imported», «openapi», «v2.1»).
API Tester
Для HTML-ответов в теле ответа доступны Исходный текст и HTML-превью.
Превью — статический изолированный просмотр: скрипты, переходы и внешние ресурсы
отключены. Приложения, которым нужен JavaScript, могут выглядеть пустыми. Большие
HTML-ответы доступны как исходный текст без превью. Копирование тела сохраняет
исходный HTML, а не видимый текст превью.
Заголовки ответа и метаданные gRPC отображаются таблицей «Название / Значение».
Кнопка Копировать как JSON сохраняет структуру данных, включая повторяющиеся значения.
Путь: /ui/api-tester
API Tester – это встроенная в Mockarty альтернатива инструментам вроде Postman. Вы можете отправлять запросы на любые эндпоинты (ваши моки или реальные сервисы), организовывать их в коллекции, писать автоматизированные тестовые скрипты и переключаться между окружениями – всё это не покидая Mockarty.




AI-функция: Нажмите кнопки AI для автоматической генерации тестовых скриптов, создания целых коллекций из API-спецификаций или генерации скриптов нагрузочного тестирования. Подробнее в разделе AI-функции.
Трёхпанельная компоновка
API Tester использует трёхпанельную компоновку:
-
Левая панель (боковая панель коллекций): Иерархическое дерево коллекций и запросов. Создавайте папки внутри коллекций для логической организации запросов.
-
Центральная панель (редактор запроса): Настройка и отправка отдельных запросов. Содержит вкладки для различных аспектов запроса.
-
Панель ответа: Просмотр ответа после отправки запроса, включая тело, заголовки, тайминги и результаты тестов.
По умолчанию панель ответа находится справа. Кнопка панели в строке с именем запроса переносит её под запрос — тогда статус, время и размер ответа стоят в одной строке со вкладками ответа. Выбор действует для всех протоколов (у Kafka, RabbitMQ и SMTP переносится их консоль логов) и сохраняется за вами в других браузерах после входа. Размер панели меняется перетаскиванием её края.
Вкладки и несохранённые правки
Каждый открытый запрос появляется вкладкой над редактором. Переключайтесь между вкладками свободно: запрос из коллекции сохраняется, когда вы уходите с него, а запрос, ещё не сохранённый в коллекцию, сохраняет правки и показывает точку на вкладке, пока вы его не сохраните. На каждой вкладке виден её собственный последний ответ.
Пока вы не ввели имя сами, запрос называется по тому, что он делает, — по gRPC-методу, пути URL, операции GraphQL, — и Сохранить сохраняет его под этим именем. Очистите поле имени, чтобы снова доверить название Mockarty.
Последний ответ остаётся у своего запроса при смене вкладки и следующем посещении, даже без нажатия «Сохранить». Для сохранённого запроса Mockarty загружает ваше последнее выполнение из истории; новый черновик хранит локальную копию в этом браузере. Пометка Последний ответ показывает время получения. Большие ответы сокращаются в локальной копии и получают соответствующую пометку. Сохранение запроса также записывает пример ответа вместе с коллекцией.
Компактная кнопка копирования рядом с вкладками ответа копирует весь обмен — параметры запроса, ответ и вывод скриптов — для переписки или отчёта об ошибке. У тела и заголовков есть свои кнопки в существующей строке инструментов. В SMTP ответ и консоль показаны вкладками одной панели; консоли брокеров используют те же элементы управления. Дополнительные инструменты собраны в меню «Действия».
Выберите Действия → Создать проверки по ответу, чтобы добавить проверки статуса и структуры JSON в тестовый скрипт. Проверка точного совпадения ответа также сравнивает полученные значения JSON. Проверка структуры подходит для ответов с меняющимися ID и временем; точное совпадение — для стабильных данных. Отправьте запрос ещё раз, чтобы выполнить проверки, затем сохраните его для запуска того же скрипта вместе с коллекцией. Ваш код сохраняется; повторный выбор действия обновляет только созданные автоматически проверки.
Действие Faker (иконка кубика) находится рядом с инструментами редактора тела. Для HTTP выберите JSON. Для None, XML, обычного текста и форм оно недоступно и не превращает эти форматы в JSON. Без контракта сначала введите пример JSON: генерация сохраняет его структуру и типы значений, включая скалярные false, 0 и null. Пустое тело без контракта остаётся пустым; при некорректном JSON действие отключено до исправления.
При наличии привязанного контракта OpenAPI Faker генерирует тело по схеме, даже если редактор JSON пуст, используя допустимые значения энамов и поддерживаемые ограничения массивов. Если выполнить контракт автоматически невозможно, ваше тело сохраняется, а редактор объясняет проблему. Переменные GraphQL используют загруженную схему и объявления переменных. Если входной тип неизвестен или содержит пользовательский скаляр с неопределённым представлением JSON, Faker использует уже введённый пример JSON; пустой редактор остаётся пустым. Параметры MCP используют контракт выбранного инструмента. JSON-сообщения Kafka, RabbitMQ, NATS и WebSocket поддерживают то же действие. В gRPC используется существующая кнопка примера сообщения с кубиком после загрузки схемы метода.
Коллекции
Коллекции – это контейнеры для организации связанных запросов:
- Создание: Нажмите «Новая коллекция» для создания новой коллекции. Дайте ей описательное имя (например, «Сервис пользователей», «Процесс оплаты»).
- Переименование: Дважды щёлкните по имени коллекции для редактирования.
- Удаление: Щёлкните правой кнопкой мыши и выберите «Удалить». Коллекции можно восстановить из корзины.
- Дублирование: Создание копии всей коллекции со всеми запросами.
- Поделиться: Выберите действующих участников Пространства коллекции или доступное вам Пространство. Сначала пригласите коллегу в Пространство или Team: доступ к коллекции не создаёт членство и не добавляет место Team. Получатели открывают коллекцию, выбрав своё Пространство; доступ и редактирование зависят от текущего членства и роли. Исключение из Пространства закрывает и прежние права. Пока коллекция находится в корзине, настройки доступа изменить нельзя — сначала восстановите её.
- Папки: Создание папок внутри коллекций для группировки связанных запросов (например, «Аутентификация», «CRUD-операции», «Ошибочные случаи»).
Запросы
API Tester поддерживает все протоколы, которые Mockarty может имитировать:
HTTP-запросы
- URL: Введите полный URL или путь (относительно базового URL окружения).
- Метод: Выберите HTTP-метод (GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS).
- Заголовки: Добавьте заголовки запроса в виде пар ключ-значение. Распространённые заголовки можно выбрать из выпадающего списка.
- Тело: Введите тело запроса в формате JSON, XML, form-data или необработанного текста. Предоставляется редактор кода с подсветкой синтаксиса.
- Аутентификация: Настройка аутентификации (None, Bearer Token, Basic Auth, API Key, OAuth 2.0).
- Параметры запроса: Добавьте параметры запроса в виде пар ключ-значение. Параметры могут включать переменные окружения.
gRPC-запросы
- Введите адрес сервера и нажмите Обнаружить (server reflection) или загрузите
.proto-файлы. Первый сервис и метод выбираются сами, а тело заполняется примером по сообщению: повторяющиеся поля — массивами, enum — настоящим значением. - Кнопка с кубиком над телом генерирует новый пример с фейковыми данными, валидными для сообщения, — при каждом нажатии значения и размеры массивов разные.
- При наборе тела редактор подсказывает имена полей сообщения, а внутри поля-enum — его допустимые значения (список открывается по
Ctrl+Space). Значение также можно выбрать в списке для поля под курсором. Значение, которого нет в enum, подсвечивается над редактором ещё до отправки. JSON-тела из OpenAPI также предлагают подсказки полей и выбор энамов. - Добавьте пары ключ-значение метаданных.
- В блоке Дополнительно можно указать другой целевой адрес, если запрос должен уйти не на тот сервер, с которого получена схема.
- Просмотрите ответ в отформатированном JSON.
GraphQL-запросы
- Введите URL GraphQL-эндпоинта.
- Напишите запрос или мутацию в редакторе GraphQL (с подсветкой синтаксиса и автодополнением).
- Добавьте переменные в формате JSON.
- Просмотрите ответ с секциями
dataиerrors.
SOAP-запросы
- Введите URL SOAP-эндпоинта.
- Напишите SOAP-конверт в XML-редакторе.
- Установите заголовок SOAPAction.
- Просмотрите XML-ответ.
WebSocket-запросы
- Введите URL WebSocket (
ws://илиwss://). - Подключитесь к серверу и отправляйте/получайте сообщения интерактивно.
- Просматривайте историю сообщений с временными метками и индикаторами направления.
SSE-запросы
- Введите URL SSE-эндпоинта.
- Подключитесь и просматривайте входящие события в реальном времени.
- События отображаются с их типом, данными и идентификатором.
Kafka-запросы
- Настройте адрес брокера и топик.
- Публикуйте сообщения с ключом, значением и заголовками.
- Потребляйте сообщения из топика с управлением смещением.
- Просматривайте потреблённые сообщения в прокручиваемом списке.
RabbitMQ-запросы
- Настройте URL подключения, обменник и ключ маршрутизации.
- Публикуйте сообщения с заголовками и свойствами.
- Потребляйте сообщения из очереди.
- Просматривайте потреблённые сообщения с метаданными.
MCP-запросы
- Введите URL MCP-сервера.
- URL с учётными данными, параметрами запроса или фрагментом работает для текущего подключения, но не сохраняется. После повторного открытия Mockarty введите его заново.
- Выберите имя инструмента и укажите входные параметры.
- Просмотрите ответ инструмента.
При ошибке подключения в API Tester (HTTP, SOAP, GraphQL, SSE, WebSocket и MCP) показывается безопасная причина: например, ошибка DNS, таймаут или отказ соединения. Полный URL цели не повторяется, так как он может содержать токен.
Загрузка схемы сервиса
Можно использовать {{service_url}} в адресе gRPC reflection, URL SOAP WSDL,
GraphQL-эндпоинте или URL для импорта OpenAPI/WSDL и gRPC-сервисов. Сначала
выберите окружение. Переменные импортированного Bruno-запроса имеют приоритет
над переменными окружения, а те — над переменными коллекции. Если переменная
не найдена, исправьте её до загрузки схемы или импорта.
После смены источника схемы или окружения загрузите методы заново. Если загрузка
не удалась или методы не найдены, варианты предыдущего сервиса очищаются, а не
показываются как результат для нового. Введённое тело, запрос GraphQL, шаблон
переменной и явно выбранная цель выполнения сохраняются. Смена выбора во время
загрузки не позволяет старому ответу переключить коллекцию. Импорт, уже
завершённый на сервере, остаётся сохранённым.
Переменные окружения
Окружения позволяют определять наборы переменных, которые могут подставляться в запросы:
- Создание окружений: Определите окружения, такие как «Local», «Staging», «Production», с различными значениями переменных.
- Синтаксис переменных: Используйте
{{variableName}}в URL, заголовках, теле и параметрах запроса. Переменные заменяются значениями активного окружения в момент отправки. - Распространённые переменные:
{{baseUrl}},{{apiKey}},{{authToken}},{{userId}}. - Секретные переменные: Значения, ключ которых похож на секрет (
token,password,api_key, …), маскируются в редакторе; кнопка-глаз показывает значение. - Ссылки на хранилище секретов: Значение может ссылаться на секрет-хранилище пространства имён:
{{secret:имяХранилища/имяКлюча}}. Ссылка резолвится на сервере в момент отправки — открытое значение никогда не попадает в интерфейс. Секрет-ссылки работают только при серверном выполнении запроса; клиентское (браузерное) выполнение отклоняет их с понятной ошибкой. - Активное окружение: Выберите активное окружение из выпадающего списка в верхней панели API Tester. Одновременно активно только одно окружение (у каждого пользователя — своё).
- Общие окружения: Включите Поделиться с пространством имён в редакторе окружения, чтобы сделать его видимым всем участникам пространства имён. Коллеги могут просматривать и активировать общее окружение, но редактировать, удалять и отключать общий доступ может только владелец. Выбор активного окружения у каждого пользователя независим — активация общего окружения не меняет чужой выбор.
Где выполняется запрос
Каждый запрос отправляет либо сервер Mockarty (по умолчанию), либо ваш браузер напрямую. Точка рядом с кнопкой Отправить показывает, какой путь выбран, ещё до нажатия.
- На сервере — запрос делает сервер. Здесь работают ссылки на хранилище секретов, приватные сети, доступные серверу, и все протоколы.
- В браузере — включается автоматически, если Mockarty открыт с другой машины, а запрос идёт на
localhostили приватный адрес: сервер не дотянется до вашей машины, поэтому запрос отправляет браузер. Работает для HTTP, SOAP, GraphQL, MCP, SSE и WebSocket. Локальный сервис должен отвечать CORS-заголовками, а ссылки на секреты отклоняются — иначе открытый текст пришлось бы отдать браузеру. - gRPC всегда выполняется на сервере.
Если сервер стоит на той же машине, что и локальный сервис, задайте на сервере ALLOW_PROXY_TO_PRIVATE_IPS=true, и он будет ходить на localhost сам.
Та же сетевая политика сервера действует для mk.http.send в скриптах API Tester и коллекциях Tests. Если ассершен видит статус 0 и пустой ответ, сначала проверьте журнал шага: цель могла быть заблокирована или соединение не удалось.
Пре-реквест скрипты
Пре-реквест скрипты выполняются перед отправкой запроса, позволяя:
- Динамически устанавливать заголовки, параметры запроса или значения тела.
- Генерировать токены аутентификации или подписи.
- Устанавливать переменные окружения или коллекции программно.
- Связывать запросы, используя данные из предыдущих ответов.
Скрипты используют JavaScript-подобный синтаксис со встроенным API для доступа к свойствам запроса и переменным окружения.
Тестовые скрипты
Тестовые скрипты выполняются после получения ответа, позволяя писать проверки:
- Проверки кода состояния: Проверка кода состояния ответа.
- Проверки тела: Проверка определённых полей в теле ответа с помощью JsonPath.
- Проверки заголовков: Проверка заголовков ответа.
- Проверки времени: Проверка, что время ответа находится в допустимых пределах.
- Извлечение переменных: Сохранение значений ответа в переменные окружения или коллекции для использования в последующих запросах.
Результаты тестов отображаются на панели ответа с индикаторами прохождения/неудачи и деталями ошибок.
Чтобы выполнить коллекции под нагрузкой, откройте Запустить тесты, выберите коллекции или отдельные запросы и режим Нагрузочный. Задайте число виртуальных пользователей, длительность и целевое число запросов в секунду (RPS); 0 RPS использует нагрузку от виртуальных пользователей без фиксированной частоты запросов. Выберите раннер и окружения для этого запуска. Если несколько окружений содержат одну переменную, выберите её значение в диалоге конфликтов. Оставьте Создать публичный test run включённым, чтобы сохранить результат в истории Test Runs; отключите его для отладочного запуска без записи в историю.
В этом режиме нагрузка создаётся из HTTP, GraphQL и SOAP-запросов. Для запросов с включёнными пре-реквест/тестовыми скриптами, скриптами коллекции, multipart или двоичными телами используйте отдельный нагрузочный скрипт. Необработанное исключение скрипта помечает нагрузочный запуск как неуспешный; HTTP-метрики отражают только реальные запросы.
История запросов
API Tester поддерживает историю всех отправленных запросов:
- Просмотр предыдущих запросов с их ответами.
- Повторная отправка исторического запроса одним нажатием.
- Сравнение ответов между несколькими выполнениями.
- История привязана к текущему пользователю и пространству имён.
Импорт
API Tester поддерживает импорт из множества форматов:
- Postman: Импорт коллекций Postman (формат JSON v2.0 и v2.1) с запросами, папками, окружениями и пре-реквест/тестовыми скриптами.
- SoapUI: Импорт проектов SoapUI с SOAP и REST запросами.
- OpenAPI: Импорт спецификации OpenAPI для генерации коллекции с одним запросом на эндпоинт.
- WSDL: Импорт WSDL-файла для генерации SOAP-запросов.
- gRPC: Импорт
.protoфайлов для генерации gRPC-запросов. - GraphQL: Импорт схемы GraphQL или интроспекция эндпоинта.
- MCP: Импорт файла конфигурации MCP.
- HAR: Импорт HAR-файла для воссоздания захваченных запросов.
- JMeter: Импорт плана Apache JMeter (
.jmx). Каждый HTTP-сэмплер становится редактируемым запросом; JSON/Regex/Boundary-экстракторы и Response/Duration-проверки превращаются в тестовый скрипт запроса; ссылки${var}конвертируются в переменные окружения{{var}}; User Defined Variables можно импортировать как новое окружение; Thread Group’ы становятся отдельными коллекциями. Немаппируемые конструкции (CSV Data Set, Cookie Manager, вызовы${__function}) перечисляются в замечаниях импорта. - Формат Mockarty: Импорт коллекций, экспортированных из другого экземпляра Mockarty.
Нативный JSON-файл коллекции Mockarty может занимать до 50 МиБ. Файл большего размера не импортируется; разделите крупную коллекцию и импортируйте части по отдельности.
Если запрос или папку не удалось сохранить, импорт показывает частичный результат с числом сохранённых и несохранённых элементов. Содержимое несохранённой папки пропускается, чтобы сохранить исходное расположение элементов. Успешно импортированные элементы остаются в новой коллекции. Перед повторным импортом проверьте её, чтобы не создать дубликаты. Импорт SoapUI и JMeter возвращает сохранённые коллекции и запросы, сводку и список несохранённых элементов. Ответ HTTP 200 может означать частичный импорт: перед запуском проверьте summary.failedCount и failures. Если UI не смог подтвердить результат, проверьте коллекции перед ручной повторной отправкой.
Импорт из файла или с сервера допускает одну ожидающую отправку для каждого формата. При ошибке чтения файла отображается сообщение, запрос импорта не отправляется. Закрытие формы, смена источника или namespace и уход со страницы отменяют показ её результата. Уже отправленный серверу импорт может завершиться; перед повторной отправкой проверьте коллекции. Запросы автоматически не повторяются.
Экспорт коллекций
Экспорт коллекций в нативном JSON-формате Mockarty для резервного копирования, обмена или миграции между окружениями.
Генерация моков из ответов
После получения ответа в API Tester нажмите «Создать мок» для генерации мока на основе:
- Маршрута, метода и заголовков запроса.
- Кода состояния, заголовков и тела полученного ответа.
- Обнаруженных параметров пути и параметров запроса.
Это полезно при записи реального поведения API и его преобразовании в моки.
Запуски тестов
Путь: /ui/test-runs
Страница запусков тестов показывает результаты всех тестовых запусков, включая запуски коллекций, запланированные запуски и нагрузочные тесты.


AI-функция: Нажмите кнопку Analyze Report на любом тестовом запуске для AI-диагностики ошибок и проблем производительности. Подробнее в разделе AI-функции.
Список тестовых запусков
Основное представление отображает все запуски тестов в таблице:
- Идентификатор запуска: Уникальный идентификатор тестового запуска.
- Коллекция: Тестируемая коллекция.
- Тип: Запуск коллекции, запланированный запуск или нагрузочный тест.
- Статус: Выполняется, завершён, не пройден или отменён.
- Начало / Окончание: Временные метки тестового запуска.
- Длительность: Общее время выполнения.
- Успех / Неудача: Количество пройденных и непройденных проверок.
- Инициатор: Пользователь или расписание, инициировавшие запуск.
Фильтруйте запуски тестов по статусу, типу, коллекции или диапазону дат.
Детальный отчёт о тесте
Нажмите на любой тестовый запуск, чтобы увидеть детальный отчёт:
- Сводка: Общее количество пройденных/непройденных, время выполнения и статус.
- Результаты по каждому запросу: Каждый запрос в коллекции с:
- Деталями запроса (метод, URL, тело).
- Деталями ответа (код состояния, тело, заголовки).
- Результатами проверок (пройдено/не пройдено с ожидаемыми и фактическими значениями).
- Временем выполнения.
- Детали ошибок: Для непройденных проверок — подробные сообщения об ошибках, объясняющие, что пошло не так.
- Представление временной шкалы: Визуальная временная шкала, показывающая порядок выполнения запросов и тайминги.
Оценка APDEX
Для нагрузочных тестовых запусков (см. Нагрузочное тестирование) отчёт включает оценку APDEX (Application Performance Index):
- Оценка: Значение от 0 до 1, где 1 — идеальная удовлетворённость.
- Рейтинг: Отлично (> 0.94), Хорошо (> 0.85), Удовлетворительно (> 0.70), Плохо (> 0.50), Неприемлемо (<= 0.50).
- Детализация: Количество удовлетворённых, терпимых и разочарованных ответов на основе настроенного порога.
- Порог (T): Целевое время ответа в миллисекундах. Ответы быстрее T — «удовлетворённые», быстрее 4T — «терпимые», медленнее 4T — «разочарованные».
Статистика задержек
Отчёты нагрузочных тестов включают детальную статистику задержек:
- Среднее: Среднее время ответа по всем запросам.
- Медиана (p50): Время ответа 50-го перцентиля.
- p95: 95-й перцентиль (95% запросов были быстрее этого значения).
- p99: 99-й перцентиль (99% запросов были быстрее этого значения).
- Мин / Макс: Самое быстрое и самое медленное время ответа.
- Стандартное отклонение (StdDev): Мера разброса времени ответа.
- Коэффициент вариации (CV): StdDev в процентах от среднего, показывающий стабильность.
Экспорт отчётов
Экспорт отчётов о тестах в формате JSON:
- JSON: Машиночитаемый формат для интеграции с CI/CD и распространения среди заинтересованных сторон.
Для коллекций Tests в API Tester экспорт содержит каждую проверку и её статус пропуска; импорт отчёта сохраняет их.
Можно импортировать нативный JSON-отчёт Mockarty размером до 50 МиБ. Больший отчёт отклоняется без создания запуска.
Если импорт занят, подождите интервал из Retry-After и повторите отправку отчёта.
Отмена запущенных тестов
Для длительных тестов нажмите кнопку «Отмена», чтобы остановить выполнение. Частичные результаты сохраняются и могут быть просмотрены в отчёте.
Тест-кейсы
Путь: /ui/test-cases
Раздел «Тест-кейсы» — встроенная в Mockarty система управления тестированием (TMS). Позволяет организовывать ручные и автоматизированные тест-кейсы в иерархию папок, отслеживать их выполнение и интегрировать с рабочими процессами команды.
Ключевые возможности
- Дерево папок (до 8 уровней вложенности) — отражает структуру проекта или модулей. Перетаскивание для изменения порядка, контекстное меню по правой кнопке. Множественный выбор через Ctrl+Click для групповых операций.
- Конструктор кейсов — шаги с полями «Действие» и «Ожидаемый результат», вложения, зависимости между шагами, режим выполнения (авто / ручной / полуавтоматический).
- Общие шаги — переиспользуемые фрагменты шагов, встраиваемые по ссылке в несколько кейсов. Изменения распространяются автоматически.
- История версий — каждое сохранение создаёт версионный снимок. Сравнение любых двух версий и откат к любому предыдущему состоянию.
- Рабочий процесс ревью — отправка кейса на проверку, комментарии, одобрение или отклонение. Панель ревью показывает историю и исполнителей.
- Ссылки на внешние трекеры — связывание кейсов с задачами Jira, GitHub, Linear или GitLab. Заголовки и статусы привязанных задач отображаются как живые чипы.
Запуск тест-кейсов
Тест-кейсы можно выполнять:
- Разово — из конструктора кнопкой Запустить.
- В составе тест-плана — добавьте тип элемента
test_caseв план. - Пакетом (синтетический план) — выберите несколько кейсов и запустите групповой прогон.
Результаты попадают в общий отчёт о прогоне тестов наравне с другими типами тестов.
Подробнее: Управление тест-кейсами · Шаги тест-кейсов · Runtime-вид прогона · Вложения
Тест-планы
Путь: /ui/test-plans
Тест-планы оркестрируют любую комбинацию типов тестов — функциональных (API Tester), нагрузочных (k6), фаззинговых, хаос- и контрактных — в единый повторяемый воркфлоу. Каждый план получает стабильный числовой ID (#42), по которому CI/CD-пайплайны могут ссылаться на него.
Что входит в план
- Элементы — отдельные шаги плана. Каждый элемент указывает на ресурс (коллекцию API Tester, конфиг нагрузочного теста, конфиг фаззинга и т.д.) и имеет порядок и опциональные зависимости.
- Режим выполнения —
fifo(последовательно, по умолчанию),parallel(все элементы одновременно) илиdag(учитываетdependsOnи гейты). - Гейты — условия, блокирующие следующий элемент при неудаче предыдущего (например, остановить нагрузочный тест, если smoke-тест упал).
- Расписания — привязка одного или нескольких расписаний (cron / разовых / интервальных) для автоматического запуска.
- Переопределения — перепостановка переменных и выбор подмножества элементов для целевых повторных прогонов.
Запуск плана
Нажмите Запустить в детальном виде плана, или запустите через CLI (mockarty-cli testplan run) или API (POST /api/v1/test-plans/:id/run). Вид прогона показывает живой прогресс с состоянием каждого элемента и единым потоком логов. Итоговый отчёт объединяет результаты всех элементов в единый Allure-совместимый экспорт.
Подробнее: Тест-планы · Расширенные тест-планы · Тест-планы в CI/CD · Вид прогона · Отчёт о прогоне
Рекордер
Путь: /ui/recorder
Рекордер позволяет захватывать реальный сетевой трафик между вашим приложением и его бэкенд-сервисами. После захвата вы можете инспектировать каждый запрос и ответ, воспроизводить их или преобразовывать непосредственно в моки одним нажатием. Это самый быстрый способ создания моков, точно отражающих поведение реального сервиса.



AI-функция: Нажмите кнопку Analyze Traffic на записанных сессиях для AI-анализа трафика, аудита безопасности или обнаружения сценариев. Подробнее в разделе AI-функции.
Управление сессиями
Запись организована в сессии:
- Старт: Нажмите «Начать запись» для начала новой сессии. Настройте режим записи и порт.
- Стоп: Нажмите «Стоп» для завершения текущей сессии записи. Захваченные записи сохраняются.
- Перезапуск: Остановить и немедленно начать новую сессию с той же конфигурацией.
- Удаление: Удалить сессию и все её захваченные записи.
Несколько сессий могут существовать одновременно, но только одна сессия на порт может активно записывать.
Режимы записи
Режим обратного прокси
Mockarty работает как обратный прокси перед целевым сервисом:
- Настройте целевой URL (реальный бэкенд-сервис).
- Все запросы, отправленные на порт рекордера, перенаправляются на целевой сервис.
- И запрос, и ответ захватываются.
- Ответ целевого сервиса возвращается клиенту без изменений (если не настроены правила модификации заголовков).
Режим прямого прокси
Mockarty работает как HTTP(S) прямой прокси:
- Настройте ваш клиент (браузер, приложение или набор тестов) на использование Mockarty в качестве HTTP-прокси.
- Весь HTTP-трафик захватывается при прохождении.
- Для HTTPS-трафика Mockarty выполняет MITM-перехват с использованием сгенерированного сертификата.
Типы захватываемого трафика
Рекордер захватывает:
- HTTP запросы/ответы: Метод, URL, заголовки, тело, код состояния, тайминги.
- WebSocket сообщения: Установление соединения, отдельные сообщения (в обоих направлениях), закрытие соединения.
- SSE события: Тип события, данные, идентификатор и значения повторного подключения.
Список записей
Захваченные записи отображаются в списке:
- Временная метка: Когда запись была захвачена.
- Метод: HTTP-метод или индикатор протокола.
- URL: Полный URL запроса.
- Статус: Код состояния ответа (цветовая кодировка: зелёный для 2xx, жёлтый для 3xx, красный для 4xx/5xx).
- Длительность: Время ответа в миллисекундах.
- Размер: Размер тела ответа.
Записи можно фильтровать по методу, диапазону кодов состояния, шаблону URL и типу контента.
Детали записи
Нажмите на любую запись, чтобы увидеть полные детали:
- Вкладка запроса: Метод, URL, заголовки (форматированная таблица), параметры запроса и тело (с подсветкой синтаксиса).
- Вкладка ответа: Код состояния, заголовки и тело (с подсветкой синтаксиса для JSON/XML/HTML).
- Вкладка таймингов: DNS-поиск, TCP-соединение, TLS-рукопожатие, время до первого байта и общая длительность.
Правила модификации заголовков/метаданных
Настройте правила для модификации заголовков при прохождении трафика через рекордер:
- Добавить заголовок: Внедрить новый заголовок в запросы или ответы.
- Удалить заголовок: Удалить заголовок из запросов или ответов.
- Заменить заголовок: Изменить значение заголовка с помощью замены строки или регулярного выражения.
Правила применяются по порядку и могут быть нацелены на запросы, ответы или и то, и другое.
Управление MITM-сертификатами
Для записи HTTPS в режиме прямого прокси:
- Генерация CA-сертификата: Mockarty генерирует корневой CA-сертификат для MITM-перехвата.
- Загрузка CA-сертификата: Загрузите сертификат для установки в браузер или системное хранилище доверия.
- Статус сертификата: Просмотр срока действия и отпечатка текущего сертификата.
Настройка пула портов
Настройте диапазон портов, доступных для сессий рекордера. Каждая сессия требует выделенного порта для проксирования трафика.
Параметры экспорта
Захваченный трафик можно экспортировать в нескольких форматах:
- HAR-файл: Стандартный формат HTTP Archive, совместимый с инструментами разработчика браузера, Charles Proxy и другими инструментами.
- Скрипт нагрузочного тестирования: Генерация скрипта нагрузочного тестирования из захваченного трафика.
- Тестовый скрипт с проверками: Генерация тестовых скриптов API Tester с проверками на основе захваченных ответов.
- Коллекция API Tester: Создание коллекции API Tester с одним запросом на каждую захваченную запись.
Создание моков из записей
Выберите одну или несколько захваченных записей и нажмите «Создать моки» для генерации моков на основе:
- Маршрута, метода и заголовков захваченного запроса.
- Кода состояния, заголовков и тела захваченного ответа.
- Автоматически обнаруженных параметров пути.
Это самый быстрый способ создания реалистичных моков на основе фактического поведения сервиса.
См. также: Рекордер трафика
Обновления в реальном времени
Во время активной сессии записи новые записи появляются в списке в реальном времени через WebSocket-обновления. Обновление страницы не требуется. Живой индикатор показывает статус записи и количество записей.
Анализ страницы
Путь: /ui/ui-testing?tab=page-audit (вкладка Аудит страницы в UI-тестировании; старый адрес /ui/page-analyzer перенаправляет сюда)
«Анализ страницы» замеряет ОДНУ страницу по обычному HTTP и выставляет оценку по стобалльной шкале. Браузер при этом не открывается, поэтому раннер не нужен и ответ приходит за секунды — и это единственная поверхность, которая показывает заголовки безопасности и кеширования страницы.
Как проанализировать страницу
- Откройте UI-тестирование → Аудит страницы. Старая закладка
/ui/page-analyzerперенаправит на эту вкладку. - Укажите абсолютный адрес страницы (
https://example.com/checkout). - При необходимости измените параметры:
- Таймаут, с — сколько ждать ответа (по умолчанию 30, максимум 300).
- Максимум ресурсов — сколько подключаемых скриптов, стилей и изображений загрузить и замерить (по умолчанию 100, максимум 500).
- Замерять подключаемые ресурсы — выключите, чтобы проверить только заголовки и тайминги.
- Идти по перенаправлениям — дойти до конечной страницы вместо замера самого перенаправления.
- Нажмите Анализировать. Анализ выполняется в фоне: строка сразу появляется в списке Анализы и обновляется по завершении.
- Нажмите на строку, чтобы открыть разбор.
Что показывает разбор
| Карточка | Что вы получаете |
|---|---|
| Тайминги | Разрешение DNS, TCP-соединение, TLS-рукопожатие, время до первого байта, передача содержимого и общее время |
| Заголовки | Оценка безопасности, сколько заголовков безопасности присутствует, оценка кеширования и используется ли сжатие |
| Ресурсы | Сколько подключаемых ресурсов загружено, их общий размер и сколько из них блокируют отрисовку |
| DOM | Заголовок страницы, число узлов, максимальная глубина, размер HTML, количество скриптов и изображений |
Сохранённые конфигурации
Сохранить как конфигурацию запоминает текущий адрес и параметры, чтобы повторить ту же проверку позже — нажмите Загрузить на сохранённой строке, и она вернётся в форму. Удалить убирает её.
Значения аутентификации, переданные через API в authConfig, доступны только для записи: в ответах сохраняется прежний ключ authConfig, но его значением всегда будет пустой объект. При обновлении конфигурации не передавайте authConfig, чтобы сохранить прежние значения; передайте пустой объект, чтобы очистить их; либо передайте полные новые значения для замены. Если настроена MOCKARTY_PII_ENCRYPTION_KEY, новые значения аутентификации шифруются при хранении; без этого opt-in ключа они остаются читаемыми в базе данных. Включите существующий ключ до сохранения учётных данных в конфигурации. См. настройку администратора.
Не помещайте учётные данные или подписанные токены в адрес цели — используйте authConfig. В результатах анализа, сведениях о ресурсах, AI-промптах и ответах API конфигураций остаётся только безопасная проекция URL без user-info, значений query-параметров и фрагмента. Точный сохранённый адрес доступен только контуру выполнения: при настроенной MOCKARTY_PII_ENCRYPTION_KEY URL со значениями query-параметров или фрагментом хранятся в существующем зашифрованном envelope; без ключа сохранение или замена такого URL отклоняется, а не пишет значения открытым текстом. Существующие URL без query-параметров и фрагмента остаются побайтово совместимыми. При обновлении не передавайте targetUrl, чтобы сохранить точный адрес выполнения.
Примеры API, CLI и SDK
Все клиенты ниже запускают одну и ту же операцию POST /api/v1/page-analyzer/run. Ответы конфигураций всегда содержат authConfig: {} и только безопасную проекцию targetUrl. В тот же жизненный цикл входят список/создание/изменение/удаление конфигураций и список/чтение/удаление/AI-анализ результатов.
cURL:
curl -sS -X POST "http://localhost:5770/api/v1/page-analyzer/run" \
-H "Authorization: Bearer $MOCKARTY_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"targetUrl":"https://example.com","options":{"checkResources":true,"followRedirects":true}}'
CLI (поместите JSON-тело из примера cURL в page-analysis.json):
mockarty-cli page-analyzer run --file page-analysis.json
mockarty-cli page-analyzer results get RESULT_ID
mockarty-cli page-analyzer configs list
Go:
run, err := client.PageAnalyzer().Run(ctx, mockarty.PageAnalyzerRunRequest{
TargetURL: "https://example.com",
Options: &mockarty.PageAnalyzerOptions{CheckResources: true, FollowRedirects: true},
})
Python:
run = client.page_analyzer.run({
"targetUrl": "https://example.com",
"options": {"checkResources": True, "followRedirects": True},
})
Java:
Map<String, Object> run = client.pageAnalyzer().run(Map.of(
"targetUrl", "https://example.com",
"options", Map.of("checkResources", true, "followRedirects", true)
));
Во всех трёх SDK доступны все девять зарегистрированных операций Page Analyzer. Запуск возвращает resultId; читайте этот результат, пока status не станет completed или failed.
«Анализ страницы» или «UI-тестирование»?
Оба замеряют страницу, но отвечают на разные вопросы:
- Анализ страницы работает по HTTP. Подходит для заголовков, таймингов ответа и веса страницы, а также когда браузерного раннера нет.
- UI-тестирование управляет настоящим браузером. Нужно, когда важно то, что видит браузер: отрисовка, Web Vitals или страница, которая собирается только после выполнения JavaScript.
Безопасность: фаззинг
Путь: Безопасность → Сканеры (/ui/security). Прежний адрес /ui/fuzzing по-прежнему открывает фаззинг.
Фаззинг – это техника автоматизированного тестирования безопасности. Вместо ручного перебора граничных случаев Mockarty отправляет тысячи сгенерированных или случайных входных данных на эндпоинты вашего API и отслеживает неожиданное поведение – сбои, утечки ошибок или уязвимости безопасности. Это быстрый способ найти ошибки, которые обычное тестирование часто пропускает.



AI-функция: Нажмите кнопку Analyze Finding на любой аномалии фаззинга для AI-анализа первопричин и рекомендаций по устранению. Подробнее в разделе AI-функции.
Конфигурации фаззинга
Создание и управление конфигурациями фаззинг-тестов:
- Целевой URL: Эндпоинт для фаззинга.
- Метод: HTTP-метод (или тип протокола для не-HTTP целей).
- Позиции полезной нагрузки: Отметьте позиции в запросе (URL, заголовки, тело), куда будут внедряться фаззинг-данные. Позиции отмечаются синтаксисом-заполнителями.
- Базовый запрос: Шаблон запроса, в который будут внедряться фаззинг-данные.
- Аутентификация: Настройка аутентификации для целевого сервиса (Bearer token, Basic Auth, API Key и др.).
- Ограничение частоты: Управление частотой запросов, чтобы не перегружать целевой сервис.
- Таймаут: Максимальное время ответа, после которого запрос считается тайм-аутом.
Категории полезных нагрузок
Mockarty включает встроенные словари полезных нагрузок для распространённых категорий уязвимостей:
- SQL Injection: Фрагменты SQL-синтаксиса, UNION-based полезные нагрузки, слепые SQL Injection паттерны, временн*ые полезные нагрузки.
- XSS (Cross-Site Scripting): Script-теги, обработчики событий, закодированные полезные нагрузки, полиглот XSS-строки.
- Buffer Overflow: Длинные строки, повторяющиеся символы, спецификаторы формат-строк.
- Path Traversal: Последовательности обхода каталогов (
../,..%2f), абсолютные пути, инъекции нулевого байта. - Command Injection: Метасимволы оболочки, разделители команд, выполнение через обратные кавычки, цепочки через pipe.
- Format Strings: Спецификаторы формата в стиле printf, атаки через ширину/точность.
- Header Injection: CRLF Injection, полезные нагрузки для контрабанды заголовков.
- XXE (XML External Entity): Объявления сущностей, внешние ссылки, параметрические сущности.
- SSRF (Server-Side Request Forgery): Внутренние IP-адреса, URL облачных метаданных, полезные нагрузки DNS rebinding.
- Authentication Bypass: Учётные данные по умолчанию, манипуляции с JWT, токены фиксации сессии.
Пользовательские списки полезных нагрузок также можно загрузить или создать вручную.
Импорт целей
Быстрая настройка целей фаззинга путём импорта из существующих источников:
- Команды cURL: Вставьте команду cURL для извлечения URL, метода, заголовков и тела.
- Спецификация OpenAPI: Импортируйте API-спецификацию и выберите эндпоинты для фаззинга.
- Коллекции API Tester: Выберите запросы из ваших коллекций API Tester в качестве целей фаззинга.
- Сессии рекордера: Используйте захваченный трафик как основу для фаззинга.
- Существующие моки: Выберите моки и проведите фаззинг их эндпоинтов.
Обнаружение, специфичное для протокола
- Интроспекция GraphQL: Автоматическое обнаружение запросов, мутаций и типов путём выполнения запроса интроспекции к GraphQL-эндпоинту.
- Рефлексия gRPC: Обнаружение сервисов и методов с помощью рефлексии gRPC-сервера.
Запуск фаззинг-тестов
Запуск фаззинг-теста из конфигурации:
- Мониторинг прогресса: Индикатор прогресса в реальном времени показывает процент завершения, количество отправленных запросов и прошедшее время.
- Статистика в реальном времени: Просмотр текущей частоты запросов, распределения кодов ответов и количества ошибок во время выполнения теста.
- Остановка: Остановка выполняемого фаззинг-теста с сохранением частичных результатов.
аномалии
После завершения фаззинг-теста (или во время выполнения) аномалии перечислены со следующей информацией:
- Серьёзность: Критическая, Высокая, Средняя, Низкая или Информационная.
- Категория: Тип обнаруженной уязвимости (SQL Injection, XSS и др.).
- Полезная нагрузка: Точная полезная нагрузка, вызвавшая аномалию.
- Ответ: Код состояния ответа и фрагмент тела.
- Доказательство: Конкретные паттерны в ответе, указывающие на потенциальную уязвимость (сообщения об ошибках, трассировки стека, отражённый ввод).
Сортировка аномалий
Проверка и классификация каждой аномалии:
- Подтверждено: Отметить как реальную уязвимость, которую необходимо устранить.
- Ложное срабатывание: Отметить как ложную тревогу (поведение ожидаемо или безвредно).
- Проигнорировано: Отклонить аномалию без классификации.
Статус сортировки сохраняется между сессиями и может быть экспортирован вместе с отчётом о аномалиях.
Воспроизведение аномалий
Нажмите «Воспроизвести» на любой аномалии, чтобы повторно отправить точный запрос, вызвавший её. Это полезно для:
- Проверки воспроизводимости аномалии.
- Тестирования после применения исправления.
- Более детального исследования поведения.
Экспорт отчёта о аномалиях
Экспорт всех аномалий (или отфильтрованных подмножеств) в виде:
- JSON: Машиночитаемый формат для интеграции с инструментами безопасности и CI/CD пайплайнами.
- CSV: Формат, совместимый с электронными таблицами, для отслеживания и отчётности.
Запланированные фаззинг-запуски
Настройте фаззинг для запуска по расписанию (ежедневно, еженедельно или по пользовательскому cron-выражению). Запланированные запуски:
- Выполняются автоматически в настроенное время.
- Отправляют уведомление по завершении (при включённых email-уведомлениях).
- Результаты доступны на страницах Fuzzing и запусков тестов.
- Сравнивайте аномалии между запусками для отслеживания состояния безопасности во времени.
Режим быстрого фаззинга
Для быстрого тестирования без детальной настройки:
- Введите целевой URL и выберите категории полезных нагрузок.
- Mockarty автоматически обнаруживает параметры и точки внедрения.
- Результаты доступны в течение нескольких минут для быстрой оценки безопасности.
См. также: Фаззинг API
Контрактное тестирование
Путь: /ui/contract-testing
Preview: Эта функция находится в состоянии preview/beta. Она скрыта по умолчанию и может быть включена в настройках пользователя или через флаги функций.
Контрактное тестирование проверяет соответствие моков API-спецификациям, управляет контрактами потребителей и обеспечивает двунаправленные проверки безопасности деплоя. Поддерживает все протоколы: OpenAPI, gRPC, GraphQL, MCP, AsyncAPI, WSDL.


Вкладки
Страница контрактного тестирования содержит 6 вкладок:
1. Валидация моков
Загрузите API-спецификацию и проверьте, что моки ей соответствуют. Поддерживает все типы спецификаций. Выбор моков по тегам или через файловый браузер. Доступен ИИ-анализ результатов.
2. Можно деплоить?
Двунаправленная проверка готовности к деплою:
- Как потребитель: Выберите контракт и проверьте совместимость со всеми провайдерами. Отвечает: «сломают ли меня мои зависимости?»
- Как провайдер: Выберите API из реестра и опционально вставьте новую спеку. Отвечает: «сломаю ли я потребителей?» Полезно для анализа влияния перед деплоем.
3. Совместимость
Сравнение двух версий API-спецификации для выявления ломающих изменений. Два режима:
- Вставить: Вставить старую и новую спеки рядом.
- Из реестра: Выбрать API из реестра и сравнить две версии из истории.
Поддерживает все протоколы. Показывает структурный diff с индикаторами ломающих изменений.
4. Контракты
Управление контрактами потребителей в двух форматах:
- Контракты Mockarty (пакеты зависимостей): Создание через 4-шаговый визуальный визард — выбор провайдеров из реестра, выбор эндпоинтов, настройка обязательных полей, проверка и сохранение. Один контракт может покрывать несколько API провайдеров.
- Pact v3: Стандартный формат, совместимый с Pact Broker, для команд использующих pact-js, pact-jvm, pact-python.
Оба формата участвуют в единой матрице Can-I-Deploy и панели здоровья.
5. Реестр API
Внутренний маркетплейс API, где команды публикуют спецификации. Функции:
- Публикация API с контролем видимости (публичные, внутренние, ограниченные).
- Адаптивный UX под тип протокола.
- Авто-обновление для URL-записей — Mockarty периодически получает свежие спеки.
- История версий с визуализацией дифов и откатом.
- Процесс ревью (черновик → на проверке → активный/устаревший).
- Подписка на изменения API с уведомлениями о ломающих изменениях.
6. История и здоровье
- История: Таймлайн всех запусков валидации с раскрываемыми результатами, график трендов (60 дней).
- Панель здоровья: Статус-светофор (зелёный/жёлтый/красный) для каждого контракта.
- Мониторы: Настройка cron-валидаций с уведомлениями.
Визард создания контракта
Визард проводит через 4 шага:
- Выбор провайдеров — поиск и выбор API из реестра (любой протокол).
- Выбор эндпоинтов — просмотр распарсенных эндпоинтов, отметка нужных.
- Настройка требований — обязательные поля ответа, ожидаемые статус-коды, типы. Поля из спеки предзаполнены.
- Проверка и сохранение — имя контракта, обзор, сохранение.
ИИ-функции
- ИИ-анализ: ИИ-анализ результатов валидации с рекомендациями (отображается как markdown).
- Авто-триаж: Автоматическая классификация аномалий по серьёзности и приоритету.
См. также: Руководство по контрактному тестированию
Хаос-инженерия
Путь: /ui/chaos
Preview: Эта функция находится в состоянии preview/beta. Она скрыта по умолчанию и может быть включена в настройках пользователя или через флаги функций. Требуется PRO-лицензия и подключённый кластер Kubernetes.


Хаос-инженерия позволяет тестировать отказоустойчивость системы путём внедрения контролируемых сбоев в вашу инфраструктуру Kubernetes. Вместо ожидания аварий для обнаружения слабых мест вы проактивно проводите эксперименты, которые уничтожают поды, внедряют сетевые задержки, нарушают DNS или создают нагрузку на ресурсы – и наблюдаете, восстанавливается ли система корректно.
Топология кластера
Первая вкладка показывает визуализацию вашего Kubernetes-кластера в реальном времени с помощью интерактивного графа (на базе Cytoscape.js):
- Пространства имён, деплойменты, поды: Отображаются как узлы направленного графа с автоматической компоновкой.
- Индикаторы здоровья: Узлы окрашены по статусу (зелёный = здоров, жёлтый = деградация, красный = отказ).
- Выбор: Клик по любому узлу показывает его детали (метки, использование ресурсов, события) в боковой панели.
- Масштабирование и навигация: Используйте колёсико мыши или экранные элементы управления для навигации по большим кластерам.
- Обновление: Топология обновляется по запросу или с настраиваемым интервалом.
Типы экспериментов
Mockarty поддерживает следующие 12 типов сбоев:
| Тип сбоя | Описание |
|---|---|
pod_kill |
Завершение выбранных подов для проверки восстановления |
pod_kill_random |
Завершение одного случайного подходящего пода |
network_partition |
Изоляция выбранных компонентов от сетевого узла |
network_delay |
Добавление сетевой задержки |
network_loss |
Потеря части сетевых пакетов |
deployment_restart |
Перезапуск выбранного развёртывания |
scale |
Изменение числа реплик развёртывания |
node_drain |
Вывод выбранного узла Kubernetes из обслуживания |
resource_stress |
Нагрузка на ресурсы компонента |
dns_disruption |
Нарушение ответов DNS |
io_chaos |
Ошибки или задержка ввода-вывода |
time_chaos |
Смещение системного времени для компонента |
Создание эксперимента
Для создания нового хаос-эксперимента:
- Выберите тип сбоя: Выберите из 12 поддерживаемых типов.
- Определите цели: Выберите целевые поды по пространству имён, селектору меток или конкретным именам подов. Установите ограничение радиуса поражения (например, затронуть не более 50% подходящих подов).
- Настройте параметры: Каждый тип сбоя имеет специфические параметры (например, длительность задержки в миллисекундах, процент потери пакетов, количество ядер CPU для нагрузки).
- Установите длительность: Как долго сбой должен быть активен до автоматического отката.
- Добавьте steady-state пробы: Определите проверки здоровья, которые валидируют систему во время и после эксперимента (HTTP-пробы, запросы метрик Prometheus, проверки количества подов).
- Защитные механизмы: Настройте списки запрещённых пространств имён, максимальный радиус поражения и условия автоматического отката.
Запуск экспериментов
Запустите эксперимент и отслеживайте его в реальном времени:
- Временная шкала прогресса: Визуальная шкала, показывающая начало внедрения сбоев, проверки steady-state и откат.
- Результаты проб в реальном времени: Steady-state пробы выполняются непрерывно и отображают статус pass/fail по мере продвижения эксперимента.
- Экстренная остановка: Заметная красная кнопка немедленно откатывает все активные сбои в случае проблем.
- Автоматический откат: Эксперименты автоматически откатываются по истечении длительности или при провале steady-state пробы (настраивается).
Результаты экспериментов
После завершения эксперимента результаты включают:
- Вердикт: Pass (система оставалась здоровой) или Fail (steady-state пробы обнаружили деградацию).
- Временная шкала: Полный журнал событий с временными метками для внедрения сбоев, проверок проб и отката.
- Детали проб: Результаты каждой пробы с ожидаемыми и фактическими значениями.
- Затронутые ресурсы: Список подов/контейнеров, которые были целями эксперимента.
- Время восстановления: Сколько времени потребовалось системе для возврата в устойчивое состояние после отката.
Пресеты
Mockarty включает готовые пресеты экспериментов для распространённых сценариев:
- Chaos Monkey: Случайное уничтожение пода в выбранном пространстве имён.
- Network Partition: Изоляция сервиса от его зависимостей.
- Scale to Zero: Уничтожение всех подов деплоймента и измерение времени восстановления.
- Slow Network: Внедрение возрастающей задержки для обнаружения порогов таймаутов.
- Resource Starvation: Нагрузка CPU и памяти для проверки автомасштабирования.
Пресеты можно настроить перед запуском и сохранить как новые шаблоны.
Планирование
Настройка экспериментов для запуска по расписанию:
- Cron-выражения: Стандартный синтаксис cron для гибкого планирования.
- Уведомления: Получайте оповещения через настроенные каналы уведомлений при завершении экспериментов.
- Анализ трендов: Сравнивайте результаты между запланированными запусками для отслеживания улучшений отказоустойчивости.
Отчёты
Экспорт результатов экспериментов в нескольких форматах:
- JSON: Машиночитаемый формат для интеграции с CI/CD.
- HTML: Человекочитаемый отчёт с графиками и визуализацией временной шкалы.
- JUnit XML: Совместим с парсерами результатов тестов CI/CD (Jenkins, GitLab CI и др.).
См. также: Руководство по хаос-инженерии
Утилиты
Путь: /ui/utils
Страница утилит предоставляет набор инструментов для разработчиков для распространённых преобразований форматов данных и задач генерации. Эти инструменты выполняются полностью в браузере и не отправляют данные на сервер.

Форматирование и валидация JSON
- Вставьте или введите JSON в поле ввода.
- Нажмите «Форматировать» для красивого отображения JSON с правильными отступами.
- Нажмите «Минифицировать» для сжатия JSON в одну строку.
- Ошибки валидации подсвечиваются с номерами строк и описанием ошибок.
- Копирование отформатированного результата в буфер обмена одним нажатием.
Генератор UUID
- Генерация случайных значений UUID v4.
- Генерация нескольких UUID за раз (настраиваемое количество).
- Копирование отдельных UUID или всего списка в буфер обмена.
Кодировщик/декодировщик Base64
- Кодирование: Вставьте обычный текст и закодируйте его в Base64.
- Декодирование: Вставьте строку Base64 и декодируйте её в обычный текст.
- Поддержка стандартного и URL-safe вариантов Base64.
- Обработка многострочного ввода.
Кодировщик/декодировщик URL
- Кодирование: Кодирование специальных символов в URL или компоненте URL.
- Декодирование: Декодирование процентно-закодированных символов обратно в исходную форму.
- Кодирование/декодирование полного URL или отдельных компонентов.
Декодировщик JWT
- Вставьте JWT (JSON Web Token) для декодирования его заголовка, полезной нагрузки и подписи.
- Заголовок и полезная нагрузка отображаются как отформатированный JSON.
- Время истечения показывается в человекочитаемом формате с указанием, истёк ли токен.
- Проверка подписи не выполняется (декодировщик не валидирует подписи).
Конвертер временных меток
- Конвертация между Unix-временными метками (секунды и миллисекунды) и человекочитаемыми форматами даты/времени.
- Отображение текущей временной метки с обновлением в реальном времени.
- Поддержка нескольких форматов даты/времени (ISO 8601, RFC 2822, пользовательский).
- Конвертация с учётом часовых поясов с селектором часового пояса.
Генераторы хэшей
Генерация криптографических хэшей из входного текста:
- MD5: 128-битный хэш (не рекомендуется для безопасности, полезен для контрольных сумм).
- SHA-1: 160-битный хэш.
- SHA-256: 256-битный хэш (рекомендуется для общего использования).
Ввод можно вставить или ввести. Хэш вычисляется в реальном времени по мере ввода.
Шаблоны
Путь: /ui/stores?tab=templates-store (раньше /ui/templates — старый URL по-прежнему редиректит сюда).
Шаблоны — это файлы тел ответов, на которые моки ссылаются по имени. Они живут как вкладка внутри страницы Хранилища рядом с Global / Chain / Mock / Prompts / Secrets / S3.
Управление файлами шаблонов
- Загрузка: Нажмите «Загрузить шаблон», чтобы отправить файл с локальной машины. Принимается любой текстовый или бинарный файл (
.json,.yaml,.xml,.html,.txt, изображения и т. д.). Файл сохраняется на сервере в текущем пространстве имён. - Фильтр по типу: Кнопки All / JSON / YAML / XML / HTML / Other над списком сужают выборку по расширению.
- Поиск: Фильтр по имени файла.
- Просмотр (иконка глаза): Открывает модальное окно с содержимым файла. Текстовые файлы показываются как есть; изображения — как
<img>; бинарные файлы предлагают скачать. - Редактирование (иконка карандаша): Открывает то же модальное окно в режиме редактора. Внесите изменения и нажмите Сохранить, либо Отмена для отката. Кнопка Форматировать делает pretty-print JSON / XML на месте; Полный экран разворачивает модальное окно на весь экран для больших файлов.
- Скачать / Удалить: На каждой строке, и дополнительно в футере модального окна, когда файл открыт.
Справка по шаблонам
Шаблоны используют синтаксис text/template Go с пользовательскими функциями Mockarty:
- Функции Faker: Все функции Faker, доступные во встроенных телах ответов, также доступны в шаблонах (например,
{{fake "UUID"}},{{fake "FirstName"}}). - Интерполяция JsonPath: Доступ к данным запроса внутри шаблонов (например,
{{jsonpath "$.user.id"}}). - Ссылки на хранилища: Чтение и запись значений хранилищ в шаблонах.
- Управляющие конструкции: Использование условий Go-шаблонов (
{{if}},{{else}}), циклов ({{range}}) и других конструкций для сложной логики ответов. - Композиция шаблонов: Включение одного шаблона в другой с помощью
{{template "name"}}.
Использование шаблонов в моках
При создании или редактировании мока в конструкторе укажите payloadTemplatePath с именем файла шаблона вместо встроенного тела ответа. Шаблон рендерится в момент запроса с доступом к полному контексту запроса.
Настройки
Путь: /ui/settings
Ограничение доступа: Страница настроек видна только пользователям с системной ролью Admin или Support. Пользователи со стандартной ролью «User» или «Auditor» не видят пункт «Настройки» в боковой панели и не могут получить доступ к этой странице.
Страница настроек – это место, где вы настраиваете поведение вашего пространства имён: кто имеет доступ, как долго хранятся логи, какие вебхуки срабатывают при событиях и как настроен AI-ассистент. Владельцы пространств имён и администраторы используют эту страницу часто.
Настройки привязаны к текущему выбранному пространству имён и влияют на всех пользователей в нём.


Управление пространствами имён
- Просмотр текущего пространства имён: Просмотр имени, описания, даты создания и количества участников пространства имён.
- Создание пространства имён: Нажмите «Новое пространство имён» для создания нового. Укажите имя и необязательное описание.
- Переключение пространства имён: Выберите другое пространство имён из селектора в верхней панели.
- Изоляция пространств имён: Каждое пространство имён имеет собственные моки, хранилища, тестовые коллекции и настройки. Ресурсы не разделяются между пространствами имён, если это не настроено явно.
Управление пользователями в пространстве имён
Управление тем, какие пользователи имеют доступ к текущему пространству имён и их ролями:
- Просмотр участников: Просмотр всех пользователей, назначенных текущему пространству имён, с их ролями.
- Добавление пользователя: Пригласить пользователя в пространство имён, выбрав его учётную запись и назначив роль.
- Изменение роли: Обновить роль пользователя в пространстве имён.
- Удаление пользователя: Отозвать доступ пользователя к пространству имён.
Роли пространства имён:
| Роль | Разрешения |
|---|---|
| Владелец | Полный контроль над настройками пространства имён, пользователями и всеми ресурсами. Может удалить пространство имён. |
| Редактор | Создание, редактирование и удаление моков, хранилищ, коллекций и запуск тестов. Не может управлять настройками пространства имён или пользователями. |
| Наблюдатель | Доступ только для чтения ко всем ресурсам. Не может создавать, редактировать или удалять что-либо. |
Политики очистки
Настройка автоматической очистки временных данных:
- Хранение логов запросов: Как долго хранить логи запросов моков (например, 7 дней, 30 дней, бессрочно).
- Хранение неопределённых запросов: Как долго хранить записи несопоставленных запросов.
- Хранение отчётов о тестах: Как долго хранить результаты запусков тестов.
- Обработка истёкших моков: Автоматически удалять или архивировать моки, превысившие TTL или лимиты использования.
Вебхуки
Настройка HTTP-обратных вызовов, срабатывающих при определённых событиях (подробнее см. Вебхуки и обратные вызовы):
- Типы событий: Разрешение мока, создание мока, удаление мока, завершение запуска тестов, получение неопределённого запроса.
- Целевой URL: URL для отправки POST-запроса вебхука.
- Заголовки: Пользовательские заголовки для включения в запрос вебхука (например, токены аутентификации).
- Формат полезной нагрузки: JSON-полезная нагрузка с деталями события, временными метками и данными соответствующего ресурса.
- Политика повторных попыток: Количество повторных попыток и стратегия отсрочки для неудачных доставок вебхуков.
Каналы уведомлений
Настройка каналов доставки уведомлений для системных событий, оповещений и результатов запусков тестов:
- Telegram: Подключение Telegram-бота для получения уведомлений в чат или группу.
- Email: Настройка email-уведомлений через SMTP для пользователей и команд.
- Вебхуки: Отправка данных о событиях на внешние HTTP-эндпоинты.
- Slack: Отправка уведомлений в каналы Slack через входящие вебхуки.
- Discord: Отправка уведомлений в каналы Discord через вебхуки.
Каждый канал можно включить или отключить независимо, а события можно направлять в определённые каналы. Подробнее см. Каналы уведомлений.
Конфигурация LLM
Настройка параметров AI-ассистента (чата с ассистентом):
- Выбор модели: Выберите модель LLM для использования (OpenAI, Claude, OpenRouter или пользовательский провайдер).
- API-ключ: Укажите API-ключ для выбранного LLM-провайдера.
- Температура: Настройка креативности/случайности AI-ответов (0.0 для детерминированных, 1.0 для креативных).
- Настройки контекста: Настройка объёма контекста моков, получаемого AI-ассистентом.
Интеграции
Управление токенами интеграции для runner-агентов и mock-резолверов (см. Руководство по интеграциям и Архитектура масштабирования для настройки многоузлового развёртывания):
- Создание токена: Генерация нового токена интеграции (формат
mki_*) для runner-агента или mock-резолвера. - Просмотр токенов: Просмотр всех активных токенов интеграции с их типом, областью действия и временной меткой последнего использования.
- Отзыв токена: Немедленное отключение токена интеграции.
- Типы токенов: Test runner (для выполнения тестовых запусков на удалённых агентах), Mock resolver (для распределённого разрешения моков), Orchestrator (для многоузловой координации).
Панель администратора
Путь: /ui/admin
Панель администратора предоставляет возможности системного администрирования. Доступ ограничен пользователями с системной ролью Admin. Подробные инструкции по настройке см. в Руководстве администратора.








Управление пользователями
Полноценное администрирование пользователей:
- Создание пользователя: Добавление новых учётных записей с именем пользователя, электронной почтой и начальным паролем.
- Редактирование пользователя: Обновление информации профиля, электронной почты и отображаемого имени пользователя.
- Установка пароля: Сброс пароля пользователя (генерация временного пароля или отправка ссылки для сброса).
- Отключить / Включить: Временное отключение учётной записи пользователя без её удаления. Отключённые пользователи не могут войти в систему.
- Удаление пользователя: Полное удаление учётной записи пользователя и всех связанных данных.
- Системные роли: Назначение системных ролей пользователям:
| Роль | Разрешения |
|---|---|
| Admin | Полный доступ к системе. Может управлять всеми пользователями, пространствами имён и системными настройками. |
| Support | Расширенный доступ. Может управлять пользователями, пространствами имён, настройками очистки, LLM-профилями, вебхуками и состоянием базы данных в рамках своей области. Не может изменять общесистемные настройки или выполнять деструктивные административные операции. |
| Auditor | Доступ только для чтения к журналам аудита и системным метрикам. Не может изменять какие-либо ресурсы. |
| User | Стандартный пользователь. Доступ определяется назначениями ролей в пространствах имён. |
Управление пространствами имён
Системное администрирование пространств имён:
- Просмотр всех пространств имён: Просмотр всех пространств имён в системе с количеством участников и статистикой ресурсов.
- Создание пространства имён: Создание нового пространства имён и назначение начального владельца.
- Удаление пространства имён: Мягкое удаление пространства имён и всех его ресурсов. Удалённые пространства имён могут быть восстановлены в течение периода хранения.
- Восстановление пространства имён: Восстановление ранее удалённого пространства имён со всеми его ресурсами.
Настройки очистки
Настройка глобальных политик очистки, применяемых ко всем пространствам имён:
- Хранение логов: Период хранения по умолчанию для логов запросов моков.
- Хранение неопределённых запросов: Период хранения по умолчанию для несопоставленных запросов.
- Хранение отчётов о тестах: Период хранения по умолчанию для результатов запусков тестов.
- Расписание очистки: Настройка времени выполнения задач очистки (cron-выражение).
Эти настройки служат значениями по умолчанию; отдельные пространства имён могут переопределить их с более короткими периодами хранения.
Журналы аудита
Просмотр и экспорт журнала аудита системы:
- Типы событий: Входы пользователей, операции CRUD с моками, изменения пространств имён, административные действия, использование API-токенов.
- Фильтры: Фильтрация по пользователю, типу события, диапазону дат и пространству имён.
- Экспорт: Загрузка журналов аудита в формате CSV или JSON для соответствия требованиям и отчётности.
- Хранение: Журналы аудита хранятся независимо от других политик очистки.
Выполнение задач
Просмотр истории запланированных фоновых задач:
- Типы задач: Очистка, резервное копирование, запланированные тесты, проверки здоровья.
- Статус: Завершена, не удалась, выполняется или в очереди.
- Детали: Время выполнения, длительность и сообщения об ошибках.
- Ручной запуск: Запуск задачи вручную вне расписания.
Здоровье базы данных

Мониторинг и обслуживание здоровья базы данных:
- Статус индексов: Просмотр всех индексов базы данных с их размером, статистикой использования и состоянием.
- Статистика таблиц: Количество строк, размеры таблиц, количество мёртвых кортежей и время последнего vacuum/analyze.
- Рекомендации по обслуживанию: Предложения по оптимизации индексов, очистке vacuum и другим задачам обслуживания.
- Пул соединений: Текущее использование и конфигурация пула соединений.
Конфигурация электронной почты
Настройка email-уведомлений (требуется EMAIL_ENABLED=true):
- Настройки SMTP: Хост, порт, имя пользователя, пароль и конфигурация TLS.
- Адрес отправителя: Адрес «From» для всех исходящих писем.
- Тестовое письмо: Отправка тестового письма для проверки конфигурации SMTP.
- Шаблоны писем: Настройка HTML-шаблонов, используемых для уведомительных писем (сброс пароля, коды 2FA, приглашения, уведомления о запусках тестов).
Профили LLM
Настройка глобальных профилей AI-моделей:
- Настройки провайдера: Конечные точки API, ключи и идентификаторы моделей для поддерживаемых LLM-провайдеров.
- Модель по умолчанию: Установка модели по умолчанию, используемой, когда пространства имён не указывают собственную.
- Отслеживание использования: Просмотр использования токенов и оценки стоимости по пространствам имён.
- Лимиты частоты: Настройка лимитов частоты вызовов LLM API по пространствам имён.
Мониторинг (OpenTelemetry)
Настройка трассировки OpenTelemetry для обработки моков и операций поиска:
- Включить трассировку OpenTelemetry: Включение и выключение трассировки. Изменения применяются на лету — перезапуск не требуется.
- Тип экспортёра: OTLP по gRPC или HTTP.
- OTLP Endpoint: Адрес коллектора, например
localhost:4317(gRPC) илиlocalhost:4318(HTTP). - Пропустить проверку TLS: Использовать незащищённое соединение с коллектором.
- Имя сервиса / Версия сервиса: Идентификация данного экземпляра Mockarty в трейсинг-бэкенде.
- Дополнительные заголовки (JSON): Дополнительные заголовки, отправляемые коллектору (например, токен авторизации).
Интеграции (Admin)
Системное управление токенами интеграции:
- Просмотр всех токенов интеграции во всех пространствах имён.
- Создание токенов для системных интеграций (общие runners, оркестраторы).
- Мониторинг использования токенов и временных меток последней активности.
- Отзыв токенов во всей системе.
Эффекты (Admin)
Часть действий уходит за пределы платформы и не отменяется ею: платный вызов LLM, развёртывание, сообщение через коннектор. Если исход такого действия не удалось наблюдать (провайдер не ответил уже после отправки, аренда истекла на полпути, отмена пришла после отправки), квитанция остаётся неразрешённой и ждёт человека.
Вкладка Эффекты показывает такие квитанции по пространству имён, от старых к новым, с причиной и идентификаторами миссии и исполнения.
- Выберите пространство имён и при необходимости причину или семейство эффекта.
- Нажмите Взять в работу. Это аренда на 10 минут: решает ровно один оператор, остальные видят, кто держит эффект.
- Уточните у провайдера или целевой системы, что произошло на самом деле.
- Если ничего не произошло — Отметить: эффекта не было: квитанция закрывается, платный резерв освобождается.
- Если эффект всё же состоялся, здесь ничего делать не нужно: породивший его модуль закроет квитанцию по свидетельству провайдера. Слово человека никогда не закрывает состоявшийся эффект.
Отпустить возвращает аренду без решения. Та же очередь доступна агентам через MCP-инструменты effect_reconciliation_queue и effect_reconcile_no_effect.
Политика поставки (Admin)
Окружения развёртывания и их режим согласования (какие развёртывания требуют проверенного гранта, что грант может покрывать) живут во вкладке Delivery policy. Каждое сохранение создаёт неизменяемую ревизию; прежние ревизии никогда не перезаписываются. Прежний отдельный адрес /ui/admin/delivery-policy открывает эту вкладку.
Панель поддержки
Путь: /ui/support
Панель поддержки доступна пользователям, которым назначена системная роль Support. Пользователи с ролью Support имеют полный доступ на чтение и могут управлять пользователями, пространствами имён, настройками очистки, LLM-профилями, вебхуками и состоянием базы данных в рамках своей области.

Что такое роль Support?
Роль Support предназначена для тимлидов, QA-лидов или назначенных специалистов поддержки, которым необходим обзор системы для помощи другим пользователям без полного административного доступа. Пользователи с ролью Support видят больше информации о системе, чем обычные пользователи, но ограничены в изменении конфигурации, которая может повлиять на всю платформу.
Возможности роли Support
Пользователи с ролью Support могут:
- Просматривать пользователей и их профили: Просмотр списка всех пользователей в системе, их назначенных пространств имён и ролей. Полезно для проверки статуса учётной записи, когда пользователь сообщает о проблеме.
- Сбрасывать пароли пользователей: Помощь пользователям, заблокированным в своих учётных записях, путём сброса их паролей.
- Просматривать все пространства имён: Просмотр всех пространств имён в системе с их списками участников и количеством ресурсов. Это помогает при устранении проблем, связанных с пространствами имён, о которых сообщают пользователи.
- Просматривать статус системы: Доступ к информации о состоянии системы, включая подключение к базе данных, статус фоновых задач и использование ресурсов.
- Просматривать журналы аудита: Чтение журнала аудита для расследования событий, когда пользователь сообщает о неожиданном поведении (например, исчезновение моков, изменение настроек).
- Просматривать выполнение задач: Просмотр истории фоновых задач (очистка, резервное копирование, запланированные тесты) для диагностики проблем, таких как отсутствующие отчёты о тестах или устаревшие данные.
Чего не может роль Support
Роль Support намеренно не предоставляет:
- Изменение общесистемных настроек (телеметрия, конфигурация электронной почты).
- Выполнение деструктивных административных операций с системными ресурсами.
Как назначить роль Support
Только администраторы могут назначить роль Support:
- Перейдите в Панель администратора (
/ui/admin). - Откройте раздел Управление пользователями.
- Найдите пользователя, которому хотите повысить роль, и нажмите Редактировать.
- В выпадающем списке Системная роль выберите Support.
- Сохраните изменения. Пользователь увидит пункт навигации «Поддержка» в своей боковой панели при следующей загрузке страницы.
ИИ-функции
Mockarty интегрирует искусственный интеллект по всей платформе с выделенными кнопками на каждой основной странице. Каждая ИИ-кнопка следует единому паттерну: нажмите для выполнения операции, нажмите на иконку шестерёнки для настройки параметров.
Паттерн ИИ-кнопок
Каждая ИИ-функция предоставляет:
- Кнопка действия — нажмите для запуска ИИ-операции
- Шестерёнка настроек — выберите LLM-профиль, введите пользовательский промпт и управляйте интеграциями MCP-инструментов
- Отображение результата — ответы ИИ отображаются в формате Markdown
Где найти ИИ-кнопки
- Конструктор: Generate Mock, Improve Mock
- API Tester: Generate Script, Generate Perf Script, Diagnose Error, API Diff, Log Analysis, Generate Collection
- Запуски тестов: Analyze Report (в модальном окне отчёта)
- Fuzzing: Analyze Finding, Batch Analyze, Batch Auto-Triage
- Рекордер: Analyze Traffic, Security Audit, Find Scenarios
- Производительность: Analyze Results
Настройка поведения ИИ
Нажмите на иконку шестерёнки на любой ИИ-кнопке, чтобы:
- Выбрать ИИ-профиль: Выберите, какую LLM использовать (быстрые vs. мощные модели)
- Добавить пользовательский промпт: Предоставьте дополнительные инструкции (например, “Focus on security”, “Respond in Russian”, “Compare against SLA: p95 < 200ms”)
- Выбрать MCP-инструменты: Включите внешние инструменты для запроса данных в реальном времени
Настройки сохраняются для каждой функции — настройки “Generate Script” не повлияют на “Diagnose Error”.
Полное руководство по всем ИИ-функциям, пользовательским промптам и советам см. в документации по ИИ-функциям.
Чат с ассистентом
Чат с ассистентом — это AI-помощник, доступный на каждой странице через плавающую кнопку чата в правом нижнем углу экрана.



Доступ к чату
Нажмите плавающую кнопку чата (иконка речевого пузыря), чтобы открыть панель чата. Панель выдвигается справа, и её размер можно изменить, перетаскивая левый край.
Возможности
Чат с ассистентом использует настроенную LLM (OpenAI, Claude или OpenRouter) для помощи в следующих задачах:
- Создание моков: Опишите нужный мок на естественном языке (например, «Создай GET-эндпоинт для /api/users, который возвращает список из 10 пользователей со случайными именами и email»). Ассистент создаёт и настраивает мок автоматически.
- Редактирование моков: Попросите ассистента изменить существующие моки (например, «Добавь условие к моку /api/users, чтобы возвращать 404, когда ID пользователя равен 0»).
- Ответы на вопросы: Задавайте вопросы о функциях Mockarty, синтаксисе JsonPath, функциях Faker или использовании хранилищ.
- Устранение неполадок: Опишите проблему (например, «Мой мок не сопоставляется с запросами»), и ассистент поможет диагностировать проблему.
- Массовые операции: Попросите ассистента создать несколько связанных моков в одном разговоре.
История разговора
Чат поддерживает историю разговора для текущей сессии. Вы можете:
- Прокручивать предыдущие сообщения.
- Ссылаться на более ранние части разговора.
- Начать новый разговор, нажав «Очистить чат».
Сессии чата с агентом сохраняются в базе данных. При повторном открытии сессии автоматически загружаются до 100 предыдущих сообщений.
Режим автоматического одобрения
По умолчанию каждый вызов инструмента, выполняемый AI-ассистентом, требует ручного одобрения — вы видите кнопки Принять и Отклонить для каждого действия. Для ускоренной работы переключитесь в режим Auto Approve:
- Откройте панель чата с ассистентом.
- Найдите выпадающий список Auto Approve вверху.
- Переключите с Manual на Auto Approve.
В режиме автоматического одобрения вызовы инструментов выполняются немедленно без ожидания подтверждения. Настройка сохраняется в браузере и сохраняется между сессиями.
Совет: Используйте автоматическое одобрение в sandbox/development пространствах имён для быстрого прототипирования. Сохраняйте ручной режим в рабочих пространствах для безопасности.
Серверная и клиентская LLM
Чат с ассистентом поддерживает два режима работы LLM:
Серверный (по умолчанию):
- Вызовы API LLM маршрутизируются через сервер Mockarty
- Используется профиль LLM, настроенный администратором
- API-ключ от пользователя не требуется
Клиентский:
- Вызовы API LLM выполняются напрямую из вашего браузера к провайдеру LLM
- Вы предоставляете собственный API-ключ и URL провайдера
- Выполнение инструментов по-прежнему происходит на сервере
- Полезно, когда вы хотите использовать собственную учётную запись OpenAI/Claude
Для клиентского режима выберите пользовательский профиль в настройках чата и укажите свой API-ключ.
Доступные инструменты
AI-ассистент имеет доступ к следующим встроенным инструментам:
| Инструмент | Описание |
|---|---|
| Операции с моками | Просмотр, создание, обновление и удаление моков |
| Операции с хранилищами | Чтение и запись значений Global, Chain и Mock store |
| Управление шаблонами | Просмотр и применение шаблонов моков |
| Взаимодействие с формами | Заполнение полей форм на текущей странице |
| HTTP-запрос | Тестирование HTTP-эндпоинтов для проверки работы моков |
| Переключение области | Переключение между операциями на уровне страницы и глобальными |
Доступные инструменты зависят от контекста текущей страницы. Например, на странице Конструктора ассистент имеет доступ к полям формы и инструментам настройки мока.
Осведомлённость о контексте
Чат с ассистентом осведомлён о:
- Текущей странице, которую вы просматриваете.
- Выбранном пространстве имён и его ресурсах.
- Доступных функциях Faker и синтаксисе шаблонов.
- Возможностях и ограничениях API Mockarty.
Этот контекст позволяет ассистенту предоставлять релевантные, практически применимые предложения.
Советы для эффективных промптов
- Будьте конкретны: «Создай GET /api/users/list эндпоинт, который возвращает данные пользователя с фейковым именем и email» работает лучше, чем «создай мок пользователя»
- Описывайте поведение: «Верни 404, когда ID = ’not-found’, иначе верни 200 с данными пользователя»
- Ссылайтесь на существующие моки: «Измени мок /api/orders, добавив условие для отменённых заказов»
- Просите объяснений: «Объясни, как работает Chain Store для многошагового процесса оформления заказа»
- Запрашивайте массовые операции: «Создай CRUD-эндпоинты для ресурса products (GET список, GET по ID, POST, PUT, DELETE)»
API-токены
API-токены обеспечивают программный доступ к REST API Mockarty. Они используются для автоматизации, интеграции с CI/CD и интеграции с внешними инструментами. Полный список доступных эндпоинтов см. в Справочнике API.

Доступ к управлению токенами
Управление API-токенами доступно из выпадающего меню пользователя (нажмите на ваше имя пользователя в правом верхнем углу и выберите «API-токены»).
Генерация нового токена
Нажмите «Сгенерировать токен» для создания нового API-токена:
- Имя: Дайте токену описательное имя (например, «CI/CD Pipeline», «Postman Collection»).
- Срок действия: Опционально установите дату истечения. Истёкшие токены автоматически отзываются.
- Область действия: Токены наследуют разрешения пользователя, который их создал.
После генерации токен отображается один раз. Скопируйте его немедленно, так как позже его нельзя будет получить.
Формат токена
API-токены используют формат mk_* (например, mk_7_<случайная-base64-строка>). Включите токен в API-запросы с помощью заголовка Authorization:
Authorization: Bearer mk_<ваш-токен>
Также принимается заголовок X-API-Key: mk_<токен>.
Просмотр и отзыв токенов
Страница управления токенами показывает все ваши активные токены:
- Имя токена и дата создания.
- Временная метка последнего использования.
- Дата истечения (если установлена).
Нажмите «Отозвать» для немедленного отключения токена. Отозванные токены не могут быть восстановлены.
Роли и разрешения
Mockarty реализует комплексную систему управления доступом на основе ролей (RBAC) с двумя уровнями: системные роли и роли пространства имён.
Системные роли
Системные роли назначаются администраторами и определяют глобальные разрешения:
| Роль | Панель мониторинга | Моки | Конструктор | Хранилища | Генератор | API Tester | Рекордер | Fuzzing | Утилиты | Шаблоны | Настройки | Администрирование |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Admin | Полный | Полный | Полный | Полный | Полный | Полный | Полный | Полный | Полный | Полный | Полный | Полный |
| Support | Просмотр | Просмотр | Просмотр | Просмотр | Просмотр | Просмотр | Просмотр | Просмотр | Полный | Просмотр | Полный | Ограниченный |
| Auditor | Просмотр | Просмотр | Заблокирован | Заблокирован | Заблокирован | Просмотр | Просмотр | Просмотр | Просмотр | Заблокирован | Скрыт | Только аудит |
| User | По пр. имён | По пр. имён | По пр. имён | По пр. имён | По пр. имён | По пр. имён | По пр. имён | По пр. имён | Полный | По пр. имён | Скрыт | Скрыт |
Для пользователей с системной ролью «User» разрешения определяются назначениями ролей в пространствах имён.
Роли пространства имён
Роли пространства имён назначаются для каждого пространства имён и определяют, что пользователь может делать внутри него:
| Возможность | Владелец | Редактор | Наблюдатель |
|---|---|---|---|
| Просмотр моков | Да | Да | Да |
| Создание/редактирование моков | Да | Да | Нет |
| Удаление моков | Да | Да | Нет |
| Управление хранилищами | Да | Да | Нет |
| Запуск тестов | Да | Да | Нет |
| Импорт/генерация моков | Да | Да | Нет |
| Управление настройками пространства имён | Да | Нет | Нет |
| Управление пользователями пространства имён | Да | Нет | Нет |
| Удаление пространства имён | Да | Нет | Нет |
Скрытые страницы
Некоторые страницы требуют определённой роли. Если ваша роль не даёт доступ к странице, Mockarty скрывает её из навигации и отклоняет прямой переход.
Заблокировано для Auditor (403 при переходе на страницу):
- Конструктор, Неопределённые запросы, Хранилища, Генератор и Шаблоны возвращают 403 Forbidden при попытке аудитора перейти на эти страницы.
- Настройки полностью скрыты из боковой панели.
- Аудиторы сохраняют доступ только для просмотра: Панель мониторинга, Моки, API Tester, Запуски тестов, Рекордер, Fuzzing, Контрактное тестирование, Chaos Engineering, Утилиты и Панель администратора (только журналы аудита).
Скрыто от User (стандартная роль):
- Настройки скрыты. Доступ зарезервирован только для ролей Admin и Support.
- Панель администратора скрыта.
Скрыто по умолчанию (флаги функций):
- Фаззинг, контрактное тестирование и хаос-инженерия появляются, когда соответствующая функция доступна вашему аккаунту.
Панель администратора: Скрыта от всех пользователей без роли Admin (отображается по проверке роли на стороне клиента).
Советы и лучшие практики
Организация
- Используйте пространства имён для организации моков по проекту, команде или окружению. Каждый микросервис или граница API может иметь собственное пространство имён, сохраняя моки изолированными и управляемыми.
- Используйте теги для сквозной категоризации, охватывающей пространства имён. Теги вроде «regression», «smoke-test», «v2» или «deprecated» помогают быстро находить связанные моки.
- Используйте папки на странице моков для создания логической иерархии. Повторяйте структуру ресурсов вашего API (например,
/users,/orders,/payments).
Проектирование моков
- Используйте Faker для реалистичных тестовых данных вместо жёстко закодированных значений. Ответы с
$.fake.FirstName,$.fake.Emailи$.fake.UUIDболее репрезентативны для реальных сценариев и помогают обнаруживать ошибки сериализации/парсинга. - Используйте Global Store для общего состояния, такого как счётчики и флаги функций. Например, используйте
$.increment(gS.orderCounter)для генерации последовательных идентификаторов заказов в нескольких моках. - Используйте Chain Store для многошаговых рабочих процессов. Проектируйте моки так, чтобы создание заказа сохраняло его идентификатор в
cS.orderId, а последующие моки GET/UPDATE/DELETE ссылались на$.cS.orderId. - Используйте условия разумно. Начинайте с широких моков (без условий) и добавляйте конкретные с более высоким приоритетом по мере детализации ваших тестовых сценариев.
- Используйте OneOf-ответы для имитации реалистичного поведения. Реальные сервисы не всегда возвращают один и тот же ответ; OneOf со случайным выбором имитирует это естественно.
Импорт и начальная настройка
- Импортируйте OpenAPI-спецификации для быстрой начальной настройки моков для всего API. Это экономит значительное время по сравнению с созданием моков по одному.
- Используйте рекордер для захвата реального трафика и его преобразования в моки. Это самый быстрый способ создания моков, точно отражающих фактическое поведение сервиса.
- Импортируйте коллекции Postman, если ваша команда уже имеет коллекции для тестирования API. API Tester Mockarty совместим с Postman и может импортировать коллекции без проблем.
Тестирование
- Планируйте запуски тестов для непрерывной валидации. Запускайте тестовые коллекции по расписанию (например, каждый час или ежедневно) для обнаружения дрейфа конфигурации моков.
- Используйте окружения в API Tester для переключения между целями. Определите окружения «Local» (указывающее на Mockarty), «Staging» (указывающее на ваше промежуточное окружение) и «Production» с той же коллекцией.
- Пишите тестовые скрипты для валидации не только кодов состояния, но и структуры ответов, типов данных и бизнес-логики.
Безопасность
- Используйте фаззинг регулярно для тестирования ваших API на распространённые уязвимости. Даже мок-сервисы могут выявить пробелы в валидации входных данных.
- Включите 2FA для всех пользователей с доступом на запись к мокам. Скомпрометированный мок может возвращать вредоносные ответы.
- Ротируйте API-токены периодически и отзывайте токены, которые больше не используются.
- Используйте изоляцию пространств имён, чтобы команды не могли случайно изменить моки друг друга.
Производительность
- Мониторьте панель мониторинга регулярно для понимания паттернов трафика и выявления активно используемых моков.
- Используйте режим прокси с осторожностью. Хотя это мощный инструмент, проксирование добавляет задержку. Используйте его для тестовых сценариев, а не для постоянного пропуска трафика.
- Устанавливайте TTL на временные моки, чтобы поддерживать чистоту пространства имён. Моки, созданные для одноразовых тестов, должны истекать автоматически.
- Используйте политики очистки для автоматического удаления старых логов запросов, неопределённых запросов и отчётов о тестах. Это поддерживает базу данных в лёгком состоянии и запросы быстрыми.
См. также
- Быстрый старт – Начните работу с Mockarty за несколько минут.
- Справочник API – Полная документация REST API для программного доступа.
- Справочник Faker-функций – Все доступные Faker-функции для динамических данных в ответах.
- Руководство по JsonPath – Синтаксис JsonPath для извлечения данных запроса и условий.
- Системы хранилищ – Подробное руководство по хранилищам Global, Chain и Mock.
- Генератор серверов – Генерация автономных серверов gRPC, Kafka, RabbitMQ, SMTP и других протоколов.
- Руководство по развёртыванию – Инструкции по развёртыванию через Docker и на сервере.
- Руководство администратора – Системное администрирование и конфигурация.
- Руководство по интеграциям – Runner-агенты, mock-резолверы и интеграции со сторонними сервисами.
- Архитектура масштабирования – Многоузловое развёртывание и распределённое разрешение моков.
- Управление тест-кейсами – Папочная TMS с версионированием шагов, общими шагами и рабочими процессами ревью.
- Тест-планы – Оркестрация многотипных тест-прогонов в виде DAG-воркфлоу с интеграцией CI/CD.
- Фаззинг API – Автоматизированное тестирование безопасности с фазз-нагрузками.
- Контрактное тестирование – Валидация моков на соответствие API-спецификациям.
- Хаос-инженерия – Внедрение сбоев и тестирование отказоустойчивости Kubernetes.
- Нагрузочное тестирование – Нагрузочное тестирование и оценка APDEX.
- Рекордер трафика – Захват и воспроизведение реального API-трафика.
- Каналы уведомлений – Настройка уведомлений через Telegram, email, Slack, Discord и вебхуки.