Автоматизируем процедуру обновления 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.

3600 руб.

05.08.2024    4353    22    1    

16

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    14918    11    13    

36

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

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

2400 руб.

04.07.2022    11483    44    1    

35

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

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

08.10.2025    1939    komil4    12    

10

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

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

19.09.2025    1941    DAAbramov    5    

10

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

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

18.08.2025    3104    ComboBoy    0    

5

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

Задумывались ли вы, сколько времени разработчики тратят не на код, а на рутинные действия – от настройки окружения до поиска ответственных и документации? Эта статья о том, как найти и устранить «ерунду», которая тормозит процесс и раздражает на каждом этапе разработки. Разбираемся, как с помощью автоматизации, чек-листов и правильных процессов сделать разработку комфортной, эффективной и даже приятной.

18.08.2025    4735    mrXoxot    1    

19

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

Так сложилось, что чаще всего для целей CI/CD в проектах 1С применяется Jenkins и чуть реже GitLab CI. Но существует множество других решений для построения сборочных контуров. Ниже речь пойдет о применении решения Azure DevOps в проектах на 1С. В основе – реальный кейс, шаблоны, инструменты и собственные расширения.

15.08.2025    2103    ktb    0    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Armando 1402 06.11.14 22:29 Сейчас в теме
Ветка master редко обновляется, не знаю что вы там не успеваете))) Но за пример спасибо.
2. akomar 460 06.11.14 22:37 Сейчас в теме
Ну я использую develop, она обновляется довольно часто)
3. artbear 1583 07.11.14 01:01 Сейчас в теме
Лень и Автоматизация наше все. Молодец!
amon_ra; dyr89; awa; Evil Beaver; +4 Ответить
4. akomar 460 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 779 07.11.14 17:09 Сейчас в теме
Еще моя такая http://infostart.ru/public/290025/, может кому понадобится.
8. Evil Beaver 8381 07.11.14 19:09 Сейчас в теме
И не забывайте, что можно не только пользоваться, но и контрибьютить (то бишь, вносить вклад) в xUnitFor1C
9. pbazeliuk 1975 07.11.14 22:38 Сейчас в теме
(8) Evil Beaver, ну как бы мы с Андреем внесли весомый вклад в разработку xUnitFor1C, полностью переделали загрузку тестов для УФ, добавили поддержку интерфейса "Такси". Когда будем посвободней сделаем что-то еще :)
13. Evil Beaver 8381 12.11.14 22:55 Сейчас в теме
(9) pbazeliuk, я не про вас, вы-то как раз супер ;). Это скорее к остальным участникам беседы призыв.
10. Armando 1402 07.11.14 22:55 Сейчас в теме
Есть и такие, кто вклад внес, а пользоваться так и не начал))
Как в анекдоте про чукчу, который таксиста обманул - деньги заплатил, а сам не поехал)
11. artbear 1583 07.11.14 23:51 Сейчас в теме
(10) Поправь на "а пользоваться так и НЕ начал", иначе звучит странно :)
Генератор тестовых данных доработал, а сам тесты не юзаешь :(
12. Armando 1402 08.11.14 00:00 Сейчас в теме
(11) artbear, спасибо исправил. Как обычно пишу и отправляю не глядя)
Тесты пришлось отложить. Дела разгребем и вернусь к ним.
Для отправки сообщения требуется регистрация/авторизация