Skip to content

Releases: ROCTUP/1c-testpilot

1.8.0

Choose a tag to compare

@ROCTUP ROCTUP released this 30 Sep 04:04
  • Выбор значения одним действием. Добавлен select_value: выбор из выпадающего списка или формы выбора по тексту либо значениям колонок, с проверкой результата. Такой выбор можно включать в составное заполнение через set_fields.

  • Поиск и настройка списков. Новое действие search вводит текст в стандартную строку поиска и возвращает результат после стабилизации строк. Добавлены чтение и изменение отборов и сортировки через стандартную форму настройки списка.

  • Дополнительные сведения о полях. get_context может получать через Testpilot.epf подсказки ввода, ограничения типов, настройки и варианты выбора. Свойства читаются одним общим запросом; обогащение можно включать и отключать.

  • Изменения формы вместо повторного полного описания. get_context по умолчанию возвращает полное первое чтение, затем — изменения. Полное описание можно запросить явно. Автоматически хранится одно состояние на форму в пределах общих лимитов снимков; дополнительных запросов для сохранения и сравнения нет.

  • Меньше данных в ответах. Добавлены выбор колонок в read_rows, отбор элементов в get_context и постраничная выдача find_objects. Разметка подсветки поиска в строках таблиц удаляется по умолчанию. Неизменившееся окно заменяется на window_changed: false, повторяющиеся служебные поля сокращаются.

  • Краткие результаты сценариев. По умолчанию возвращаются сводка выполнения и сведения об ошибке; полный список шагов доступен по запросу и сохраняется в журнале. Также сокращены описания MCP-инструментов.

  • Надёжнее чтение таблиц и снимков. read_rows поддерживает таблицы с одиночным выделением. Добавлена проверка неактивной вкладки перед чтением и переходом к строке. Снимки больше не объявляют непрочитанную таблицу пустой; таблица с одной строкой и множественным выделением читается и на неактивной вкладке.

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

  • Совместимые сценарии Тестера. Добавлен запуск поддерживаемых BSL-сценариев и наборов тестов через MCP и Python API: параметры, вложенные сценарии, проверки форм и таблиц, предварительная проверка без выполнения и отчёты. MCP-инструмент включается отдельной настройкой.

1.7.1

Choose a tag to compare

@ROCTUP ROCTUP released this 23 Sep 22:06
  • Чтение ошибок 1С. Исправлен разбор ответов с вложенными причинами ошибки, из-за которого get_current_error мог завершаться таймаутом и нарушать дальнейший обмен с клиентом.

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

  • Конфигурации с английским встроенным языком. Исправлены обнаружение служебной обработки, чтение метаданных и передача ссылок и перечислений. Также исправлена передача пустых ссылок на точки маршрута бизнес-процессов.

  • Работа со служебной обработкой. Активная форма Testpilot больше не блокирует открытие рабочих форм, в том числе на пустой начальной странице. Улучшены обработка стартовых окон и диагностика ошибок подготовки обработки.

  • Контроль незавершённого ввода. Если введённый текст изменился до завершения редактирования, последующие действия сообщают об этом и предлагают повторить или отменить ввод. Проверка работает и при воспроизведении сценариев.

  • Состояние сворачиваемых групп. Исправлено обратное значение current_opened: теперь результат соответствует тому, развёрнута группа или свёрнута.

  • Скриншоты на Linux с KWin. Исправлен захват окон, вложенных в рамки оконного менеджера. Снимок обрезается до области окна 1С; при захвате проверяются его принадлежность, положение и размеры.

  • Фильтр BSL-кода. Закрыты обходы запретов через комментарии внутри многострочных строк и одиночный CR. Устранены ложные срабатывания на запрещённые слова внутри строковых литералов (@ksv47).

  • Запуск внешних программ. Прямые методы запуска, включая асинхронный и английские аналоги, добавлены в запреты по умолчанию. Каждый из них можно отдельно разрешить в настройках; вложенные Выполнить и Вычислить остаются запрещёнными всегда.

  • Запросы с комментариями. Исправлена обработка комментариев, заканчивающихся одиночным CR: корректные запросы больше не отклоняются, а уже указанный РАЗРЕШЕННЫЕ / ALLOWED не дублируется.

  • Штатное завершение клиента. Исправлена обработка подтверждения выхода с кнопками «Завершить работу» и «Продолжить работу», из-за которой клиент мог завершаться принудительно.

1.7.0

Choose a tag to compare

@ROCTUP ROCTUP released this 23 Sep 01:04
  • Выполнение кода и запросов из MCP и Python-тестов. Добавлена внешняя обработка Testpilot, которая открывается вместе с клиентом 1С. Можно выполнять BSL-код в клиентском и серверном контексте, передавать параметры и получать результат. Доступность инструментов и ограничения на используемые слова задаются в настройках.

  • Чтение метаданных. Новый инструмент позволяет получать структуру конфигурации, искать объекты и поля, читать реквизиты, табличные части, типы и значения перечислений. Метаданные читаются в привилегированном режиме.

  • Пользовательские BSL-функции. В обработке можно зарегистрировать свои функции с описанием параметров и результата. Агент получает их список и вызывает готовые функции. Инструменты появляются, когда подключённая обработка содержит зарегистрированные функции.

  • Передача значений 1С. Поддерживаются массивы, структуры, даты, перечисления и ссылочные типы, включая ссылки внешних источников данных и точки маршрута бизнес-процессов. Полученные ссылки можно передавать в следующие вызовы.

  • Отчёты Allure. Для работы агента, воспроизведения сценариев и pytest можно выбирать HTML, Allure, оба формата или только JSONL. Шаги сценариев, результаты и скриншоты включаются в отчёты; в pytest они привязываются к соответствующему тесту.

  • Устойчивость соединения. Исправлен обрыв связи с клиентом 1С после нескольких минут простоя. Статус подключения теперь отражает обнаруженный обрыв, показывает выполняемое действие и его длительность. Ожидание очереди ограничено — по умолчанию 60 секунд. Зависшее сетевое ожидание можно прервать принудительным отключением.

  • Штатное завершение работы 1С. При остановке клиента сначала выполняется обычный выход с подтверждением распознанных вопросов о завершении работы. По умолчанию на выход отводится 15 секунд, затем при необходимости процесс завершается принудительно. В ответе указывается способ завершения и причина принудительной остановки. Это поведение действует через MCP и при завершении Python- и pytest-тестов, включая Windows и Linux.

  • Скриншоты на Windows. Исправлено зависание тестового протокола 1С 8.5 после снимка развёрнутого окна. Исправление работает на обычном и изолированном рабочих столах. Если захват с экрана не удался или дал пустое изображение, автоматически используется захват самого окна.

  • Восстановление после таймаута выполнения кода. Сохраняется состояние незавершённого запроса: следующий вызов получает его результат или продолжает завершение без повторного выполнения. Исправлена потеря необходимого подтверждения после промежуточных обращений к интерфейсу.

  • Запись и воспроизведение сценариев. Исправлено сохранение условий поиска строки по большому числу колонок и отслеживание незавершённого редактирования ячейки табличного документа при воспроизведении. Выбор из меню табличного документа теперь сохраняет правильного адресата и воспроизводится на поле документа.

  • Python API после принудительного отключения. Сохранённые объекты Element корректно становятся недействительными, в том числе при отключении во время предварительной проверки элемента. Последующие обращения возвращают предусмотренный ActionError вместо необработанных исключений.

  • Другие исправления. Исправлена передача HTML с большим количеством изображений. При отказе заполнения строки на неактивной странице сохраняется ссылка на таблицу даже при минимальном лимите ссылок. Запуск изолированного клиента на Linux теперь учитывает общий таймаут запуска.

1.6.0

Choose a tag to compare

@ROCTUP ROCTUP released this 19 Sep 14:37
  • Добавлен Python API для работы с клиентом тестирования 1С без запуска MCP-сервера: поиск элементов, действия с формами, групповое чтение и заполнение полей, снимки состояния и обработка ошибок.
  • Добавлена интеграция с pytest: запуск по профилю, отдельное подключение для каждого теста, автоматическое завершение клиента, журналы со скриншотами и диагностика при падении теста.
  • Добавлены полноценные примеры сценариев для УТ и ЗУП: повторный заказ клиента и приём сотрудника с назначением оклада. Для ЗУП приложен HTML-отчёт реального прогона со скриншотами.
  • Добавлено ожидание нужного состояния через wait_until. В журнале оно отображается одним этапом с длительностью и результатом; промежуточные проверки свёрнуты и не создают лишних скриншотов.
  • Улучшен запуск и подключение к 1С: ожидание готовности по умолчанию увеличено до 120 секунд, автопоиск на Windows учитывает установки только тонкого клиента, ошибки подключения подробнее объясняют причину отказа.
  • Повышена надёжность работы с формами и таблицами: исправлены защита незавершённого ввода, обращения к устаревшим элементам и сохранение частичных результатов групповых операций.
  • Исправлена проверка таймаута ожидания выпадающего списка поля: недопустимые значения отклоняются до отправки команды в 1С (@ksv47).
  • Исправлен выбор большого количества файлов, включая его запись и воспроизведение в сценариях.
  • Ошибка очистки файлового диалога больше не скрывает результат сохранения документа или первоначальную причину отказа (@ksv47).
  • Улучшена диагностика воспроизведения сценариев: при ошибке сохраняются название действия и код причины остановки.
  • Исправлены переносы длинного текста в HTML-журнале и применение выбранного режима скриншотов pytest при автоматическом начале записи.

1.5.1

Choose a tag to compare

@ROCTUP ROCTUP released this 17 Sep 20:34
  • Добавлена загрузка настроек из .env через --env-file. Переменные окружения имеют приоритет над файлом.
  • Добавлено delete_rows: удаление текущей или выделенных строк, установка и явное снятие пометок удаления. Поддерживаются подтверждение, запись и воспроизведение этих операций.
  • Воспроизведение сценария теперь останавливается на первой ошибке и указывает проблемный шаг. При ошибке завершения записи локально собранный сценарий сохраняется в ответе.
  • Исправлен учёт незавершённого ввода после воспроизведения: чтение таблиц не должно незаметно принимать введённый текст, а завершённый ввод больше не блокирует снимки формы.
  • Исправлена обработка длинных текстов, HTML и крупных изображений, а также заголовков и подсказок с особыми сочетаниями символов.
  • Исправлены ошибки выбора пунктов списков и обращения к колонкам таблиц по номеру. При групповом добавлении строк сокращены повторные запросы колонок.
  • Ожидание запуска клиента по умолчанию увеличено до 60 секунд. Исправлены проверка графического сеанса на macOS и порядок отключения при остановке клиента.
  • Улучшена диагностика: ошибки подключения передают причину отказа 1С, а нехватка ссылок на элементы больше не скрывает результат редактирования ячейки.

1.5.0

Choose a tag to compare

@ROCTUP ROCTUP released this 17 Sep 00:56
  • Добавлен журнал работы агента с параметрами вызовов, результатами и скриншотами. HTML-отчёт поддерживает поиск с подсветкой, фильтр ошибок и просмотр снимков с перелистыванием. Запись включается агентом или автоматически; объём хранения ограничивается настройкой.
  • Добавлены именованные YAML-профили запуска и подключения: настройки базы, пользователя и клиента можно сохранить один раз и выбирать по имени. Пароль можно брать из переменной окружения.
  • Добавлен поиск строк таблицы по нескольким колонкам — по точному совпадению или части текста. Поиск учитывает текущие отборы и свёрнутые узлы и явно сообщает, если проверена только часть строк.
  • Исправлены ложные блокировки после редактирования табличного документа: завершение и отмена при воспроизведении сценария позволяют продолжить запись, а закрытая форма больше не мешает создавать снимки других форм.

1.4.0

Choose a tag to compare

@ROCTUP ROCTUP released this 16 Sep 03:28
  • Снимки формы теперь могут включать таблицы. Сравнение показывает изменения значений, порядка и количества строк. Данные таблиц доступны и в контексте формы.
  • Расширено групповое заполнение: можно добавлять и заполнять несколько строк таблицы, а также устанавливать флажки на форме и в строках. При воспроизведении сценария флажки принимают заданное состояние.
  • Добавлен поиск текста в табличных документах, включая печатные формы. Поиск и чтение можно ограничить нужной областью; объединённые ячейки учитываются.
  • Улучшена диагностика действий. После нажатия можно получить окно и сообщения 1С с ожиданием их появления. При отказе операции сервер возвращает дополнительные сведения о поле, текущей колонке и открытом списке выбора.
  • Исправлены ложные блокировки после завершённого ввода: последующее заполнение полей и создание снимков больше не требуют лишних действий.
  • Малый лимит ссылок больше не превращает выполненное нажатие, выбор строки или открытие формы выбора в ошибку.
  • При неудачном запуске сервер останавливает созданный им клиент 1С, освобождая занятый порт — как на обычном, так и на изолированном рабочем столе (@ksv47).

1.3.0

Choose a tag to compare

@ROCTUP ROCTUP released this 15 Sep 11:03
  • Добавлены снимки состояния форм. Можно сохранить состояние и затем увидеть изменения значений полей, их видимости и доступности, а также появившиеся и исчезнувшие элементы. Доступны список и удаление снимков; ограничения хранения настраиваются.
  • Поиск элементов переведён на встроенный поиск 1С, что сокращает количество обращений к клиенту.
  • Улучшено групповое заполнение полей. Устранены ложные блокировки после завершения ввода или закрытия формы. Ошибки понятнее объясняют запрет редактирования и необходимость переключиться на нужную вкладку.
  • Исправлена работа с элементами, содержащими точки в имени: поиск родителя, чтение пустых значений и сравнение состояния формы.
  • Исправлено чтение HTML, размеров табличных документов и пустого выделения строк.
  • Повышена надёжность обмена с 1С: специальные сочетания символов в данных больше не повреждают ответы и не нарушают выполнение последующих команд.

1.2.0

Choose a tag to compare

@ROCTUP ROCTUP released this 14 Sep 17:48
  • Добавлен запуск 1С на изолированном рабочем столе в Windows и Linux. Клиент работает, не перехватывая мышь и фокус и не мешая пользователю. Режим включается параметром desktop="isolated" при запуске. Поддерживаются несколько изолированных клиентов и скриншоты их окон. При завершении MCP-сервера клиенты автоматически закрываются. На Linux требуется Xvfb; открытый графический сеанс не нужен.
  • Исправлено воспроизведение сценариев для таблиц с группами колонок. Действия над вложенными колонками теперь находят нужное поле при обращении через таблицу.

1.0.3

Choose a tag to compare

@ROCTUP ROCTUP released this 14 Sep 00:21
  • Улучшена работа с таблицами: чтение строк, снятие выделения и подготовка к удалению. Незавершённый ввод в других полях больше не подтверждается незаметно.
  • Исправлено чтение и подтверждение очистки пустых ячеек, в том числе когда вместо пустоты форма показывает текст-заглушку. Для округлённых чисел сервер сообщает, если точное значение нельзя проверить.
  • Уточнены ошибки поиска строк и редактирования ячеек: сервер проверяет названия колонок и фактическое начало редактирования, подсказывает подходящее действие.
  • Исправлена проверка переключения вкладок и выбора даты в календаре: результат учитывает реальное поведение элемента.
  • Доработаны запись и воспроизведение сценариев с таблицами. Повторное закрытие уже закрытого списка выбора больше не прерывает сценарий.
  • Исправлено ожидание закрытия формы: предпросмотр и переключение на другое окно больше не дают ложного подтверждения.
  • Исправлен таймаут команд: ограничение действует на получение полного ответа и не продлевается при поступлении данных частями.