Автоматизируем процедуру обновления xddTestRunner с помощью Jenkins

06.11.14

Разработка - DevOps и автоматизация разработки

Вот уже на протяжении нескольких недель наша команда пытается внедрить CI в процесс разработки программного обеспечения. Все пишут тесты, матерятся, снова пишут, ну одним словом все идет своим чередом, как у всех.

Для тестирования мы используем замечательный open source инструмент xUnitFor1C. Он позволяет запускать тесты не только интерактивно, но и в пакетном режиме, заблаговременно сохраняя результаты в xml–файл, который понимает плагин JUnit для Jenkins. Все бы ничего, но разработка в проекте идет настолько активно, что редко успеваешь вовремя обновляться, то ли из-за большой лени, то ли из-за большого потока текучки. Вот я и решил немного автоматизировать процесс обновления обработки xddTestRunner.epf. Ну а чего, Jenkins умный, пускай сам о себе позаботится.

Для успешного выполнения задания нам понадобятся следующие инструменты: непосредственно сам Jenkins (предварительно сконфигурированный для работы с git), и установленный Python версии 3.4 и выше. Наш план таков:

Jenkins получает новые файлы из репозитория. После их получения специальный скрипт на Python сравнивает уже существующий файл и новый. Если есть различия – свежая версия xddTestRunner подменяет старую, а пользователям в slack-чат отправляется уведомление об обновлении файла из ссылкой на новую версию.

Давайте посмотрим на настройки Jenkins. Здесь ничего особенного. В разделе Source Code Managment установлена ссылка на репозиторий и ветка, которую будем загружать.

Настройки удаленного репозитория

Следующий раздел, который нам необходимо заполнить – Build. В нем мы должны заполнить секцию "Execute Windows batch command", которая позволяет запускать наш скрипт сравнения файлов.

Раздел Build

Настройка Jenkins окончена. Давайте рассмотрим наш скрипт, который будет сравнивать, подменять файлы и отправлять сообщения в Slack.

Первая важная функция – отправка оповещения в чат. Взял я ее отсюда. Приведем листинг кода.


def get_connection(organization):
    return http.client.HTTPSConnection('{0}.slack.com'.format(organization))

def get_url(token):
  return '/services/hooks/incoming-webhook?token={0}'.format(token)

def post_message(connection, url, urltofile):

    headers = {'Content-Type': 'application/json'}
    color = 'good'
    text = 'Внимание вышла новая версия обработки xddTestRunner <' + urltofile + '|Скачать>.'

    message = {
        'username': 'TestRunnerChecker',
        "channel": "#1c",
        "icon_emoji": ":ghost:",
        'fallback': text,
        'pretext': text,
        'color': color
    }

    connection.request('POST', url, json.dumps(message), headers)
    response = connection.getresponse()
    print(response.read().decode())

Процедура сравнения файлов и копирования файлов – совсем простая задача.

if not filecmp.cmp(namespace.repofile, namespace.destfile):
        shutil.copy(namespace.repofile, os.path.dirname(namespace.destfile))
        send_message(URL)

В результате мы получаем вот такое симпатичное сообщение(файл автоматически закачивается в нужный каталог на build-сервере).

Сообщение в Slack-чат

Вот как-то так. Буду рад конструктивной критике. Оригинал статьи.

Вступайте в нашу телеграмм-группу Инфостарт

Unit тестирование Jenkins xDDTestRunner

См. также

DevOps и автоматизация разработки Тестирование QA Программист Пользователь 1С:Предприятие 8 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Платные (руб)

Автотесты 1С - готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарий – feature-файл, разработанный с помощью vanessa-automation. Запуск сценария выполняется интерактивно с помощью vanessa-automation или с помощью vanessa-runner в CI-системах. Доступно тестирование тонкого клиента. Поддерживаемые версии конфигураций 1С:Зарплата и Управление Персоналом 3 и версии КОРП: 3.1.35.48.

3660 руб.

05.08.2024    4921    34    1    

17

DevOps и автоматизация разработки Логистика, склад и ТМЦ Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Подсистема «Управление сборкой GLI» предназначена для динамического формирования сборочных линий Gitlab и отслеживания процесса доработок систем на базе1С:Предприятия Позволяет упростить выпуск новых релизов системы, подготовить описание доработок системы. Интегрируется с GitLab API по событиям Push, Merge-request, Pipeline. Уведомляет пользователей о результатах сборки/тестирования сборочных конвейеров через СВ, либо при её недоступности или отсутствию по E-Mail. Поможет при отправке исправлений ошибок в общую базу тестирования, сформирует запросы на слияние в ветку версии только по протестированному и подтверждённому функционалу. Подсистема рассчитана исключительно на клиент - серверную архитектуру тестовых ИБ. Поддерживаемая версии СППР 2.0.4.15, платформа не ниже 8.3.17.1549, 2.0.7.3 / не ниже 8.3.21.1664, начиная с релиза 1.0.4.30 требуется платформа не ниже 8.3.23 рекомендуемый релиз 8.3.23.1997

10000 руб.

26.08.2022    15432    11    13    

37

Тестирование QA DevOps и автоматизация разработки Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Налоговый учет Платные (руб)

Готовые тестовые сценарии, предназначенные для регресс-тестирования функционала конфигурации после обновления типовым релизом. Сценарии проверяют интерактивное заполнение форм документов, справочников и результат проведения документов. Сценарии возможно использовать как для vanessa-automation, так и для СППР. Поддерживаемые версии конфигураций ERP2 и КА2: 2.5.17.168.

2440 руб.

04.07.2022    12075    45    1    

37

DevOps и автоматизация разработки Программист 1С 8.3 1С:Библиотека стандартных подсистем Россия Бесплатно (free)

Расширение для VS Code, которое автоматизирует рутинные операции при разработке на платформе 1С:Предприятие 8. Позволяет выполнять все операции с конфигурацией, расширениями, информационными базами и тестами прямо из редактора, без необходимости запоминать команды и копировать их из блокнота.

13.01.2026    5891    0    johnnyshut23    21    

34

DevOps и автоматизация разработки Системный администратор Программист Бесплатно (free)

Rundeck – это бесплатный и мощный оркестратор, «пульт управления», который помогает автоматизировать рутинные операции и внедрить DevOps/GitOps-подход в экосистеме 1С. Объясняем, как с его помощью упростить администрирование, отказаться от cron-скриптов и ручных SSH-подключений, централизовать управление серверами и снизить риски человеческого фактора. Показываем на практике примеры: как создать job, настроить workflow для закрытия месяца, установить платформу 1С через Jumphost и Ansible, а также запускать PowerShell-скрипты и Ansible-модули напрямую из Rundeck. Статья пригодится архитекторам, администраторам и DevOps-инженерам, которые стремятся превратить инфраструктуру 1С в управляемую, безопасную и полностью автоматизированную систему.

17.12.2025    2790    aidar_safin    0    

18

HighLoad оптимизация DevOps и автоматизация разработки Бесплатно (free)

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

08.10.2025    2763    komil4    12    

11

DevOps и автоматизация разработки Бесплатно (free)

Вы собрали свой первый пайплайн на базе Gitlab CI? Поздравляю, вы молодец! Но что делать, когда количество проектов начинает расти? Как быть с проблемами окружения, долгим выполнением сборки и дополнительными трудозатратами по поддержке скриптов? Расскажем о подготовке образов для запуска заданий в контейнерах, оптимальных настройках gitlab-раннеров, приемах повышения скорости выполнения заданий при работе с EDT, использовании CI/CD components для дедупликации кода пайплайна и выпуске артефактов релизов, используя Gitlab Package Registry и Releases.

19.09.2025    3006    DAAbramov    5    

10

DevOps и автоматизация разработки Программист Бесплатно (free)

Облачные технологии и DevOps кардинально меняют подход к разработке на платформе 1С:Предприятие. Делимся реальным опытом построения CI/CD-конвейера в GitLab: от сборки и тестирования с YAxUnit и Vanessa Automation до интеграции с SonarQube и безопасного развертывания в продакшен. Вы узнаете, как с помощью Docker и автоматизации превратить рутину в предсказуемый и надежный процесс, сократив риски и освободив время для решений, которые действительно требуют вашего профессионализма.

18.08.2025    4199    ComboBoy    0    

7
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Armando 1402 06.11.14 22:29 Сейчас в теме
Ветка master редко обновляется, не знаю что вы там не успеваете))) Но за пример спасибо.
2. akomar 461 06.11.14 22:37 Сейчас в теме
Ну я использую develop, она обновляется довольно часто)
3. artbear 1586 07.11.14 01:01 Сейчас в теме
Лень и Автоматизация наше все. Молодец!
amon_ra; dyr89; awa; Evil Beaver; +4 Ответить
4. akomar 461 07.11.14 01:23 Сейчас в теме
5. Makushimo 160 07.11.14 07:13 Сейчас в теме
Нифига не понятно, о чем тут кулуарят. -)))))
но плюс поставлю.

на всякий случай.
6. pumbaE 07.11.14 10:02 Сейчас в теме
(5) Makushimo, говорим про автоматизацию. Сами 1с-ники вроде как всех автоматизируют, а про себя забывают. Более интересный вариант с чем в жизни встречаешься вот такая http://infostart.ru/public/311163/ автоматизация. Даже если откинуть использование git , а просто пройтись по всем файлам в папке и обновить по версиям обработка - это уже шаг в перед.
7. ZhokhovM 781 07.11.14 17:09 Сейчас в теме
Еще моя такая http://infostart.ru/public/290025/, может кому понадобится.
8. Evil Beaver 8390 07.11.14 19:09 Сейчас в теме
И не забывайте, что можно не только пользоваться, но и контрибьютить (то бишь, вносить вклад) в xUnitFor1C
9. pbazeliuk 1976 07.11.14 22:38 Сейчас в теме
(8) Evil Beaver, ну как бы мы с Андреем внесли весомый вклад в разработку xUnitFor1C, полностью переделали загрузку тестов для УФ, добавили поддержку интерфейса "Такси". Когда будем посвободней сделаем что-то еще :)
13. Evil Beaver 8390 12.11.14 22:55 Сейчас в теме
(9) pbazeliuk, я не про вас, вы-то как раз супер ;). Это скорее к остальным участникам беседы призыв.
10. Armando 1402 07.11.14 22:55 Сейчас в теме
Есть и такие, кто вклад внес, а пользоваться так и не начал))
Как в анекдоте про чукчу, который таксиста обманул - деньги заплатил, а сам не поехал)
11. artbear 1586 07.11.14 23:51 Сейчас в теме
(10) Поправь на "а пользоваться так и НЕ начал", иначе звучит странно :)
Генератор тестовых данных доработал, а сам тесты не юзаешь :(
12. Armando 1402 08.11.14 00:00 Сейчас в теме
(11) artbear, спасибо исправил. Как обычно пишу и отправляю не глядя)
Тесты пришлось отложить. Дела разгребем и вернусь к ним.
Для отправки сообщения требуется регистрация/авторизация