Перейти к основному содержимому

Запуск теста

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

предупреждение

Тест выполняет процесс по-настоящему: все, что процесс делает в других сервисах, произойдет на самом деле. Например, если процесс отправляет письма, каждый прогон отправит письмо. Как пропустить такие действия в тесте, читайте в разделе Отключение действий в других сервисах.

Чтобы запустить тест:

  1. Сохраните изменения процесса, которые хотите проверить: платформа запускает тесты только на сохраненных версиях проекта.

    Запуск берет из версии блоки процесса и пользовательские функции. Встроенные функции и инструменты подключенных MCP-серверов в версию не входят: их состав платформа запоминает при первом запуске любого теста на этой версии. Если после этого в MCP-сервере появились новые инструменты, сохраните новую версию проекта и запустите тест на ней.

  2. Откройте тест и нажмите Запустить. Вы также можете нажать Запустить в строке теста на вкладке Тесты. Откроется окно Запуск теста:

    Окно «Запуск теста»: тест, его конфигурация, проверки с моделями-судьями, поле «Версия сценария», число повторов и сводка
  3. Проверьте, что вы запускаете. В верхнем блоке окна указаны:

    • Конфигурация — датасеты теста и число повторов из его настроек. Например, Доставка и возврат · ×1 означает, что тест берет кейсы из датасета «Доставка и возврат» и агент ответит на каждый кейс один раз.
    • Проверки — проверки теста и модели-судьи LLM-проверок. Изменить их при запуске нельзя: они заданы в тесте.
    • Запусков было — сколько раз тест уже запускали.
  4. В поле Версия сценария выберите версию проекта. По умолчанию выбрана самая свежая сохраненная версия. В списке у каждой версии указаны ее описание, дата и автор. Если у версии нет описания, вместо него стоит короткий хеш.

  5. В поле Повторов на кейс по умолчанию стоит число из настроек теста. Его можно изменить только для этого запуска, настройки теста останутся прежними:

    • уменьшите число повторов, чтобы быстрее проверить небольшую правку и отправить меньше запросов к LLM;
    • увеличьте, чтобы перед публикацией убедиться, что агент стабильно отвечает правильно.

    Сколько прогонов будет в запуске, видно в блоке Сводка. В одном запуске может быть не больше 1 000 прогонов и 2 000 оценок. Если прогонов больше, кнопка Запустить недоступна. Если больше оценок, кнопка останется доступной, но тест не запустится: после нажатия появится уведомление Не удалось запустить тест.

  6. Нажмите Запустить. Откроется тест, а над вкладками раздела появится строка Идет запуск #N с числом готовых прогонов. Первые оценки видны еще до конца запуска. Страницу можно закрыть: запуск не прервется.

    Чтобы прервать запуск, нажмите Остановить в строке Идет запуск #N. Выполненные прогоны сохранятся, а оценка остановится.

Отключение действий в других сервисах​

Во время теста процесс работает так же, как в разговоре с настоящим клиентом. Например, если процесс отправляет письмо в ответ на каждый вопрос, тест из 30 кейсов с тремя повторами отправит 90 писем.

Проверьте, есть ли в процессе действия, которые:

  • отправляют письма или сообщения, например функции Email.send и Telegram.sendText;
  • создают, меняют или удаляют данные в других сервисах: заявки в CRM, заказы, записи в таблицах. Обычно для этого вызывают функции коллекции Http, например Http.post.

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

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

  1. В поле JavaScript-выражение укажите Context.isTestChannel(). Функция из коллекции Context возвращает true, если процесс запущен тестом.
  2. Ветку False соедините с этим блоком, а ветку True — с тем, который идет после него.
Условие Context.isTestChannel(): ветка False ведет к блоку Http.post, ветка True — сразу к агенту

Функция возвращает true и в тестовом виджете конструктора, поэтому там процесс тоже пропустит это действие.