Запуск и контроль выполнения автоматизированных тестов из 1С – Jenkins Skin





Мы рассмотрим пример создания заданий выполнения автоматизированных тестов из 1С с использованием различных Фреймворков (xUnit1C, Тестирование 3.0): запуск, ожидание завершения, загрузка результатов и выполнение полного цикла тестирования продукта. Убедимся, что все действия можно выполнить в пару кликов в дружественном интерфейсе.

Условия примера:

Пример быстрый старт будем рассматривать на демо базах «Тестирвоание 3.0» и конфигурации «ERP 2».
Выполнять работы будем на локальном сервере или компьютере, где стоит сервер 1С (в рамках примера удобно использовать виртуальную среду, к примеру, VirtualBox).

Если вам больше нравится смотреть видео, то можете переходить к видео-уроку в конце статьи.

1-й шаг. Скачиваем необходимый инструментарий и примеры, распаковываем, устанавливаем. 

Для выполнения мероприятий нам понадобится следующий набор компонент:

•    Конфигурация «Тестирование 3.0». Скачиваем и устанавливаем демо базу, ссылки внизу статьи;
•    Фреймворк «xUnitFor1C»;
•    «Менеджер сценарного UI теста» и «Набор плагинов» из Фреймворка «Тестирование»;
•    Набор примеров тестов. Скачиваем с «GIt Hub» набор примеров сценарных и юнит тестов для демо базы «ERP»/ «УТ 11» (scripts-for-testing-1c); 
•    Целевая база для тестирования — «демо ERP» или «демо УТ»;
•    Репозитарий GIT (опционально, если собираетесь вести командную разработку). 

2-й шаг. Проводим настройку базы для выполнения регламентных заданий. 

1)    В разделе администрирования «Настройки работы пользователя на рабочем месте» указываем/правим параметры выполнения заданий для пользователя «Администратор» и «QA-бот». Под администратором будут выполняться регламентные задания, а под QA-ботом происходить загрузка отчетов.

Параметры заполняются в разрезе этих пользователей, рабочего места (сервер, на котором установлена база тестирования) и ключа настройки. Нас интересуют следующие (пути локальные для сервера):

a)    Путь к исполняемому файлу 1С. Выбираем текущую версию 1С.
b)    Путь к каталогу отчетов выполнения тестов. Путь на сервере, куда планируется сохранять отчеты выполнения тестов (к примеру, C:TempОтчеты).
c)    Путь к каталогу GIT. Это корень каталога, куда мы выгрузили примеры тестов (к примеру, C:Тестирование). 
d)    Путь к каталогу наборов сценариев. Это папка, внутри каталога GIT (к примеру, C:ТестированиеМСТ-Demo-UI-TestsScripts).
e)    Путь к каталогу библиотеки сценариев. Это папка, внутри каталога GIT (к примеру, C:ТестированиеМСТ-Demo-UI-TestsLib).

2)    Если вы выполняете настройки с отличной от сервера машины, то рекомендуем выполнить настройки п.1 c,d,e для выбранного пользователя и текущего рабочего места.

 

  Рис. 1 Настройка параметров для пользователя в рамках текущего рабочего места

3)    Открываем в администрировании справочник «Базы 1С». Выбираем целевую базу «ERP (База 1С)» и правим параметры подключения к ней – «Строка подключения КИБ». Для элемента «Текущая база 1С» также выполняем правку пути строки подключения.

4)    Настраиваем регламентные задания «Обработка заданий» и «Обработка действий заданий» через консоль регламентных заданий, которая находится в администрировании.

3-й шаг. Создаем в базе описание тестов. 

Заходим в базу на сервере под администратором и выполняем последовательно следующие действия (можно смотреть видео): 
1)    Создадим сценарный тест. Переходим в раздел «Тестирование», открываем справочник «Тесты» и жмем кнопку создать. Далее указываем: 

a)    Наименование: «БП Перемещение товаров»
b)    Тип теста: «Сценарный тест»
c)    ИД теста: «БП_Перемещение_товаров»
d)    Статус: «Готов»
e)    Вариант хранения: «Во внешнем файле GIT»,
f)    Путь к файлу: «C:ТестированиеМСТ-Demo-UI-TestsScriptsБП Перемещение товаров.xml»
g)    Жмем записать и закрыть.

2)    Создадим юнит тест. В рамках создания нового справочника тесты указываем следующие данные:

a)    Наименование: «Оформить расходный ордер на товары»
b)    Тип теста: «Юнит тест»
c)    Статус: «Готов»
d)    Вариант хранения: «Во внешнем файле GIT» 
e)    Путь к файлу: «C:ТестированиеxUnitFor1C-Demo-Unit-TestsУТ11UnitТест_ОформитьРасходныйОрдерНаТовары.epf»
f)    Жмем записать и закрыть

3)    Создадим набор тестов. Переходим в справочник «Наборы тестов» и создаем новый элемент. Указываем:

a)    Наименование: «Демо»
b)    Вид набора: «Внешний каталог GIT»
c)    Представление путь каталог: «C:ТестированиеXUNITFOR1C-DEMO-UNIT-TESTSДЕМО»
d)    Записываем и закрываем.

4)    Добавляем другие тесты из каталога с примерами.

4-й шаг. Создаем в базе задания выполнения тестов и проверок. 

На рис. 2 приведено представление задания выполнения теста, а схема задания «Проверка целевой базы» показана на рис. 3. 

 
Рис.2 Представление выполнения задания из набора действий: 1 – в общем; 2 –выполнения теста

 
Рис.3 Представление выполнения проверки тестируемого приложения

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

a)    Выбираем «Сценарный UI тест (МСТ)» и жмем «Начать создание задания по шаблону»
b)    Указываем наименование «БП Перемещение товаров»; кнопку «Вперед»
c)    Выбираем в поле «Тест» значение «БП Перемещение товаров» и меняем порт тестирования на отличный от дефолтного, к примеру, 1567; жмем «Вперед»
d)    Соглашаемся; опять жмем «Вперед».
e)    И наконец выполняем создание задания – кнопка «Создать новое задание».

2)    Создадим задания выполнения юнит тестов и наборов тестов. Для создания заданий выполнения юнит теста выбираем конструктор «Юнит-тест (xddTestRunner)», а для выполнения тестов из каталога «Набор юнит-тестов из каталога (xddTestRunner)». Последовательность действий аналогичен предыдущему примеру.

3)    Создадим задание проверку. Для этого в конструкторе выбираем пункт «Выполнение проверки (набора заданий)». 

a)    Наименование: «Проверка базы ЕРП»;
b)    Тестируемый клиент: «ERP (демо)»;
c)    Жмем «Вперед»;
d)    Добавляем в таблицу последовательно следующие строки (порядок, и задание) см. рис. 2: 

1, Загрузка начальных данных
2, Все тесты из каталога Демо
2, БП Продажи
3, Проверка оформления расходных ордеров на товары
3, БП Закупки
и т.д.

e)    Жмем «Вперед»;
f)    Соглашаемся и кнопка «Создать и закрыть».

Для тех, кто запускает тесты в другой системе (Jenkins, TeamCity и др.), существует возможность использовать задание «Загрузка отчета». Это задание ожидает появление файла/ов в каталоге и выполняет загрузку по его/их наличию.

5-й шаг. Настройка авто выполнения заданий проверок. 

Переходим в подсистему «Планировщик» и открываем «Планировщик (задания)». Далее добавляем новое задание и указываем временные ограничения его выполнения. Чтобы запустить вручную задание — жмем команду «Выполнить сейчас».

Контроль за выполнением заданий тестов осуществляем через плагин «Jenkins Skin». На скриншотах ниже показаны примеры отображения экранов «Обзор» и «Детализация выполнения».
 
Рис. 4 Экранная форма «обзор»

 
Рис.5 Экранная форма «детализация выполнения»

Видео-урок. Быстрый старт. 

Быстрый старт. Продемонстрирована последовательность действий необходимых для подготовки к выполнению авто тестов, настройки заданий и их запуск.

Дополнительно:

1.    При смене версии платформы, обязательно поменяйте пути к исполняемому файлу иначе сценарные тесты перестанут выполняться из-за того, что при перезапуске стартером 1С теряются параметры тестируемого клиента и порт. И не указывайте стартер 1С в качестве исполняемого файла.
2.    Для того чтобы просмотреть процесс работы тестируемого клиента необходимо (на нулевом рабочем столе) разрешить запуск службы Interactive Services Detection. А службе 1С (в настройках) разрешить взаимодействовать с рабочим столом (Allow service to interact with desktop) в случае локальной учетной.
3.    Результаты выполненных тестов удобно просматривать через рабочее место «Allure Skin».
4.    Демо примеры сценарных и набора юнит тестов можно найти на GitHub: scripts-for-testing-1c
5.    Конфигурация «Тестирование 3.0» расположена по адресу: TestingTool-3
6.    Если вам не очень нравится ГИТ, то вы конечно можете использовать общий каталог.
7.    В демо базе УТ или ЕРП отключите у пользователей свойство "Защита от опасных действий", иначе будут проблемы с запуском тестов xUnitFor1C.
8.    Мы на тестовой машине (сервер или та система, где настроен запуск регламентных и фоновых заданий) установили GUT клиент и клонировали гит репозиторий. Для того чтобы автоматически синхронизировались тесты с последними изменениями, то мы запускаем батник со следующим кодом:

cd "С:/Тестирование/"
git branch --set-upstream-to=origin/master
git pull

9.    Тесты разрабатываем по принципу Git Hub Flow.
10.    Для создания целевой базы тестирования, ночного билда мы используем отдельные батники.
11.    На практике используем только серверную базу для запуска заданий (в файловой есть известные особенности с запуском регламентных и фоновых).
12.   Фреймворк "Тестирование 3.0" мы перевели на отличные от конфигуратора и хранилища "рельсы"  — в EDT. Об особенностях работы в новой среде разработки мы расскажем в следующей статье) 

 

5 Comments

  1. Kaval88

    Полезная статья, хорошо написана.

    Reply
  2. e][tend

    Спасибо, за подробное описание, буду пробовать.

    Ваши репозитарии на GitHub уже до этого видел, а «быстрого старта» не было. Теперь пробел восполнен.

    Reply
  3. ivanov660

    (2) Благодарю за отзыв. По результатам прошу дать обратную связь тут на инфостарте или на github через issues dashboard.

    Reply
  4. kuzyara

    Пора продавать)

    Reply
  5. ivanov660

    (4) еще пока рановато, не охвачена необходимая целевая аудитория )

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *