Найти в Дзене

Выполнение тестов по расписанию

С 29 сентября по 2 октября 2023 года прошел осенний партнерский семинар от фирмы «1С». На нем было представлено два доклада по автоматизированному тестированию. Первый доклад в рамках секции «Облака для бизнеса»: Автоматизированное тестирование подсистемы Фреш (Козырев И. О., ведущий разработчик, 1С). Второй доклад в рамках секции «Развитие 1С:Бухгалтерии»: Выполнение тестов по расписанию (Рагузин А. Е., разработчик, 1С). Первый доклад основан на инструменте «Vanessa Automation», а второй про «1С:Сценарное тестирование». Так как блог подразумевает тематическое разделение по инструментам для автоматизированного тестирования, то рассказ по данному мероприятию поделен на две части - каждый в подборке соответствующего инструментария. Если вы читаете данную статью из конкретной подборки, но хотите прочитать и про второй доклад, то это можно сделать перейдя к нему по соответствующей ссылке в наименовании доклада. В докладе рассказывается о новых возможностях инструмента «1С:Сценарное тестир

С 29 сентября по 2 октября 2023 года прошел осенний партнерский семинар от фирмы «1С». На нем было представлено два доклада по автоматизированному тестированию.

Первый доклад в рамках секции «Облака для бизнеса»:

Автоматизированное тестирование подсистемы Фреш (Козырев И. О., ведущий разработчик, 1С).

Второй доклад в рамках секции «Развитие 1С:Бухгалтерии»:

Выполнение тестов по расписанию (Рагузин А. Е., разработчик, 1С).

Первый доклад основан на инструменте «Vanessa Automation», а второй про «1С:Сценарное тестирование». Так как блог подразумевает тематическое разделение по инструментам для автоматизированного тестирования, то рассказ по данному мероприятию поделен на две части - каждый в подборке соответствующего инструментария. Если вы читаете данную статью из конкретной подборки, но хотите прочитать и про второй доклад, то это можно сделать перейдя к нему по соответствующей ссылке в наименовании доклада.

Скрин титульного слайда доклада «Выполнение тестов по расписанию»
Скрин титульного слайда доклада «Выполнение тестов по расписанию»

В докладе рассказывается о новых возможностях инструмента «1С:Сценарное тестирование» в части практики непрерывной интеграции и поставки (CI/CD).

CI/CD (Continuous Integration / Continuous Deployment) - это непрерывная интеграция и развертывание, предназначенные для повышения удобства, частоты и надежности публикации изменений программного обеспечения или продукта, где:

CI - это практика разработки ПО, при которой изменения в коде автоматически собираются, тестируются и интегрируются в целевую ветку репозитория. Основная идея - минимизация разрыва между компонентами проекта и быстрая обратная связь о качестве кода, благодаря автоматической сборке и тестированию.

CD - это продолжение CI, которое позволяет автоматически разворачивать успешно собранный и протестированный код на сервере или другой среде реального применения. Цель - автоматизация процесса разработки и развертывания приложения или программного продукта после всех этапов проверки и тестирования. Развертывание в продакшн (конечная версия программного продукта, доступная рядовым пользователям) должно выполняться после ручного подтверждения, чтобы предоставить дополнительный уровень контроля и безопасности.

Обзорно приводится перечень специализированных инструментов для данной методологии:

Скрин слайда презентации, демонстрирующий перечень специализированных инструментов, применяемых в методологии CI/CD
Скрин слайда презентации, демонстрирующий перечень специализированных инструментов, применяемых в методологии CI/CD

И выведены основные требования, которые предъявляются к инструментам CI/CD:

  • Инструмент должен уметь выполнять различные операции с тестируемыми продуктами или его окружением: сборку, развертывание, запуск тестов, анализ результатов и т.д. Большинство данных команд возможно реализовать при помощи командной строки или специальных скриптов на различных языках программирования.
  • Инструмент должен уметь готовить окружение для сборки или тестирования. Взаимодействовать с операционной системой, виртуальными машинами и другими программами. Это можно сделать при помощи командной строки или специальных утилит.
  • Инструмент должен уметь выстраиваюсь операции в логические цепочки (пайплайны), которые можно запускать по инициативе ответственного специалиста при возникновении определенных событий или по расписанию.

Пайплайн (от англ. pipeline - трубопровод или конвейер) - верхнеуровневый элемент процесса CI/CD, включающий в себя этапы (stages) и задачи (jobs). Автоматизированная последовательность действий, целью которых является ускорение и упрощение процесса разработки, повышение ее надежности и прозрачности, снижение риска ошибок и сбоев.

  • Инструмент должен уметь представлять отчет о выполнении цепочек операций.
  • Инструмент должен уметь распределять нагрузку между несколькими серверами или «Агентами тестирования» для параллельного выполнения цепочек операций.

Таким образом, видим, что основные функции для инструмента CI/CD сводятся к:

Скрин слайда презентации, демонстрирующий перечень требований и их реализации в инструменте «1С:Сценарное тестирование»
Скрин слайда презентации, демонстрирующий перечень требований и их реализации в инструменте «1С:Сценарное тестирование»
  • Работе с командной строкой.
  • Запуску 1С специальными обработками.
  • Анализу результатов выполнения команд заданных файлов.

«1С:Сценарное тестирование» легко может решить все перечисленные задачи.

Инструмент позволяет создавать цепочки последовательности действий через пакеты тестирования. Для этого не нужно быть экспертом в программировании. Достаточно использовать простой и понятный интерфейс.

Скрин слайда презентации, демонстрирующий пакетное выполнение в инструменте «1С:Сценарное тестирование»
Скрин слайда презентации, демонстрирующий пакетное выполнение в инструменте «1С:Сценарное тестирование»

Шаги пакета могут выполнять не только пакетные команды, запускать программы при помощи командной строки, но и использовать код на языке 1С. А так же имеет большой выбор встроенных команд, как для запуска автоматизированных тестов, так и для других сервисных возможностей. При этом не надо заботиться о правильном форматировании командной строки или экранировании кавычками.

Скрин слайда презентации, демонстрирующий удобство создания пакетов тестирования в инструменте «1С:Сценарное тестирование» через готовые предопределенные шаги
Скрин слайда презентации, демонстрирующий удобство создания пакетов тестирования в инструменте «1С:Сценарное тестирование» через готовые предопределенные шаги

Инструмент умеет строить отчеты о выполнении пакетов в нескольких форматах.

Скрин слайда презентации, демонстрирующий получение отчетности при выполнении пакетов тестирования в инструменте «1С:Сценарное тестирование»
Скрин слайда презентации, демонстрирующий получение отчетности при выполнении пакетов тестирования в инструменте «1С:Сценарное тестирование»

В новой версии сделан механизм распределения нагрузки между серверами. Функции центральной системы выполняет конфигурация «1С:Сценарное тестирование», которая имеет в вебе опубликованный HTTP-сервис для обмена данными.

Скрин слайда презентации, демонстрирующий новый механизм распределения нагрузки между серверами в инструменте «1С:Сценарное тестирование»
Скрин слайда презентации, демонстрирующий новый механизм распределения нагрузки между серверами в инструменте «1С:Сценарное тестирование»

Исполнительным элементом являются «Агент тестирования» - это специальная конфигурация, которая устанавливается как файловая информационная база и запускается на серверах или виртуальных машинах для выполнения заданий, полученных от центральной системы.

Развертывание и настройка данной системы максимально упрощены. Необходимо выполнить следующие шаги:

  • Опубликовать в вебе HTTP-сервис конфигурации «1С:Сценарное тестирование».
Скрин слайда презентации, демонстрирующий публикацию HTTP-сервиса для «1С:Сценарное тестирование»
Скрин слайда презентации, демонстрирующий публикацию HTTP-сервиса для «1С:Сценарное тестирование»
  • Развернуть и запустить файлового «Агента тестирования» на сервере, на котором будет выполняться тестирование или другие процессы.
  • В настройках «Агента тестирования» указать адрес HTTP-сервиса для взаимодействия и каталог, в котором будут выполняться все рабочие процессы. Задать уникальное имя «Агента тестирования», которое будет использовано для идентификации его в центральной системе.
Скрин слайда презентации, демонстрирующий настройку «Агента тестирования»
Скрин слайда презентации, демонстрирующий настройку «Агента тестирования»

После того как «Агенты тестирования» будут готовы к работе, они будут регулярно обращаться к центральной системе и получать от нее задания для выполнения.

Скрин слайда презентации, демонстрирующий работу «Агента тестирования»
Скрин слайда презентации, демонстрирующий работу «Агента тестирования»

Все задания хранятся в едином журнале.

Скрин слайда презентации, демонстрирующий журнал выполнения в инструменете «1С:Сценарное тестирование»
Скрин слайда презентации, демонстрирующий журнал выполнения в инструменете «1С:Сценарное тестирование»

Для каждого задания можно назначить приоритет и установить время начала выполнения.

При обращении «Агента тестирования», который находится в состоянии поиска нового задания, «1С:Сценарное тестирование» выберет из очереди еще не выполненное задание, время выполнения которого уже наступило, и сообщит данные «Агенту тестирования» для выполнения задания по шагам.

Скрин слайда презентации, демонстрирующий выполнение пакета тестирования, взятого из очереди журнала выполнения
Скрин слайда презентации, демонстрирующий выполнение пакета тестирования, взятого из очереди журнала выполнения

После каждого шага, «Агенты тестирования» сообщают центральной системе о результате выполнения. Центральная система контролирует ход выполнения всех заданий и дает новые задания для выполнения.

Таким образом на центральном сервере можно отслеживать выполнений всех задач тестирования в реальном времени. После того как весь пакет будет выполнен, «Агент тестирования» очищает историю выполнения и начинает поиск следующего задания в очереди.

Поставить задание в очередь на выполнение и задать время старта можно из форм:

  • Пакета.
  • Теста.
  • Итерации тестирования.

Рекомендуется использование «Итераций тестирования», как наиболее удобного способа. Так как это позволяет заранее отобрать в плане тестирования все нужные тесты, а после поставить их массово в очередь на выполнение.

Скрин слайда презентации, демонстрирующий возможность добавления в очередь на выполнение из формы итераций тестирования
Скрин слайда презентации, демонстрирующий возможность добавления в очередь на выполнение из формы итераций тестирования

Как видно, «1С:Сценарное тестирование» обладает всеми необходимыми функциями для реализации CI/CD. И при этом имеет ряд преимуществ перед другими инструментами:

  • Простота использования.
  • Гибкость настройки.
  • Интеграция с платформой 1С.
Скрин заключительного слайда презентации с прекрасными словами - тестируйте с удовольствием! А от меня лично - делайте все в своей жизни с удовольствием! И ваша жизнь изменится!
Скрин заключительного слайда презентации с прекрасными словами - тестируйте с удовольствием! А от меня лично - делайте все в своей жизни с удовольствием! И ваша жизнь изменится!