С 29 сентября по 2 октября 2023 года прошел осенний партнерский семинар от фирмы «1С». На нем было представлено два доклада по автоматизированному тестированию.
Первый доклад в рамках секции «Облака для бизнеса»:
Автоматизированное тестирование подсистемы Фреш (Козырев И. О., ведущий разработчик, 1С).
Второй доклад в рамках секции «Развитие 1С:Бухгалтерии»:
Выполнение тестов по расписанию (Рагузин А. Е., разработчик, 1С).
Первый доклад основан на инструменте «Vanessa Automation», а второй про «1С:Сценарное тестирование». Так как блог подразумевает тематическое разделение по инструментам для автоматизированного тестирования, то рассказ по данному мероприятию поделен на две части - каждый в подборке соответствующего инструментария. Если вы читаете данную статью из конкретной подборки, но хотите прочитать и про второй доклад, то это можно сделать перейдя к нему по соответствующей ссылке в наименовании доклада.
В докладе рассказывается о новых возможностях инструмента «1С:Сценарное тестирование» в части практики непрерывной интеграции и поставки (CI/CD).
CI/CD (Continuous Integration / Continuous Deployment) - это непрерывная интеграция и развертывание, предназначенные для повышения удобства, частоты и надежности публикации изменений программного обеспечения или продукта, где:
CI - это практика разработки ПО, при которой изменения в коде автоматически собираются, тестируются и интегрируются в целевую ветку репозитория. Основная идея - минимизация разрыва между компонентами проекта и быстрая обратная связь о качестве кода, благодаря автоматической сборке и тестированию.
CD - это продолжение CI, которое позволяет автоматически разворачивать успешно собранный и протестированный код на сервере или другой среде реального применения. Цель - автоматизация процесса разработки и развертывания приложения или программного продукта после всех этапов проверки и тестирования. Развертывание в продакшн (конечная версия программного продукта, доступная рядовым пользователям) должно выполняться после ручного подтверждения, чтобы предоставить дополнительный уровень контроля и безопасности.
Обзорно приводится перечень специализированных инструментов для данной методологии:
И выведены основные требования, которые предъявляются к инструментам CI/CD:
- Инструмент должен уметь выполнять различные операции с тестируемыми продуктами или его окружением: сборку, развертывание, запуск тестов, анализ результатов и т.д. Большинство данных команд возможно реализовать при помощи командной строки или специальных скриптов на различных языках программирования.
- Инструмент должен уметь готовить окружение для сборки или тестирования. Взаимодействовать с операционной системой, виртуальными машинами и другими программами. Это можно сделать при помощи командной строки или специальных утилит.
- Инструмент должен уметь выстраиваюсь операции в логические цепочки (пайплайны), которые можно запускать по инициативе ответственного специалиста при возникновении определенных событий или по расписанию.
Пайплайн (от англ. pipeline - трубопровод или конвейер) - верхнеуровневый элемент процесса CI/CD, включающий в себя этапы (stages) и задачи (jobs). Автоматизированная последовательность действий, целью которых является ускорение и упрощение процесса разработки, повышение ее надежности и прозрачности, снижение риска ошибок и сбоев.
- Инструмент должен уметь представлять отчет о выполнении цепочек операций.
- Инструмент должен уметь распределять нагрузку между несколькими серверами или «Агентами тестирования» для параллельного выполнения цепочек операций.
Таким образом, видим, что основные функции для инструмента CI/CD сводятся к:
- Работе с командной строкой.
- Запуску 1С специальными обработками.
- Анализу результатов выполнения команд заданных файлов.
«1С:Сценарное тестирование» легко может решить все перечисленные задачи.
Инструмент позволяет создавать цепочки последовательности действий через пакеты тестирования. Для этого не нужно быть экспертом в программировании. Достаточно использовать простой и понятный интерфейс.
Шаги пакета могут выполнять не только пакетные команды, запускать программы при помощи командной строки, но и использовать код на языке 1С. А так же имеет большой выбор встроенных команд, как для запуска автоматизированных тестов, так и для других сервисных возможностей. При этом не надо заботиться о правильном форматировании командной строки или экранировании кавычками.
Инструмент умеет строить отчеты о выполнении пакетов в нескольких форматах.
В новой версии сделан механизм распределения нагрузки между серверами. Функции центральной системы выполняет конфигурация «1С:Сценарное тестирование», которая имеет в вебе опубликованный HTTP-сервис для обмена данными.
Исполнительным элементом являются «Агент тестирования» - это специальная конфигурация, которая устанавливается как файловая информационная база и запускается на серверах или виртуальных машинах для выполнения заданий, полученных от центральной системы.
Развертывание и настройка данной системы максимально упрощены. Необходимо выполнить следующие шаги:
- Опубликовать в вебе HTTP-сервис конфигурации «1С:Сценарное тестирование».
- Развернуть и запустить файлового «Агента тестирования» на сервере, на котором будет выполняться тестирование или другие процессы.
- В настройках «Агента тестирования» указать адрес HTTP-сервиса для взаимодействия и каталог, в котором будут выполняться все рабочие процессы. Задать уникальное имя «Агента тестирования», которое будет использовано для идентификации его в центральной системе.
После того как «Агенты тестирования» будут готовы к работе, они будут регулярно обращаться к центральной системе и получать от нее задания для выполнения.
Все задания хранятся в едином журнале.
Для каждого задания можно назначить приоритет и установить время начала выполнения.
При обращении «Агента тестирования», который находится в состоянии поиска нового задания, «1С:Сценарное тестирование» выберет из очереди еще не выполненное задание, время выполнения которого уже наступило, и сообщит данные «Агенту тестирования» для выполнения задания по шагам.
После каждого шага, «Агенты тестирования» сообщают центральной системе о результате выполнения. Центральная система контролирует ход выполнения всех заданий и дает новые задания для выполнения.
Таким образом на центральном сервере можно отслеживать выполнений всех задач тестирования в реальном времени. После того как весь пакет будет выполнен, «Агент тестирования» очищает историю выполнения и начинает поиск следующего задания в очереди.
Поставить задание в очередь на выполнение и задать время старта можно из форм:
- Пакета.
- Теста.
- Итерации тестирования.
Рекомендуется использование «Итераций тестирования», как наиболее удобного способа. Так как это позволяет заранее отобрать в плане тестирования все нужные тесты, а после поставить их массово в очередь на выполнение.
Как видно, «1С:Сценарное тестирование» обладает всеми необходимыми функциями для реализации CI/CD. И при этом имеет ряд преимуществ перед другими инструментами:
- Простота использования.
- Гибкость настройки.
- Интеграция с платформой 1С.