Vanessa automation что это

Вышла новая версия Vanessa-Automation – системы тестирования решений на платформе «1С:Предприятие»

Vanessa automation что это. e01c50fa427ab3de1649c3bc3c3be45c. Vanessa automation что это фото. Vanessa automation что это-e01c50fa427ab3de1649c3bc3c3be45c. картинка Vanessa automation что это. картинка e01c50fa427ab3de1649c3bc3c3be45c

В апреле разработчики представили новую версию инструмента тестирования и автодокументирования прикладных решений на платформе «1С:Предприятие» Vanessa-Automation: 1.2.023.

Основные изменения в этой версии:

Как появилась система

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

Vanessa automation что это. 29d5c9f8cd778e139205aa9244724fab. Vanessa automation что это фото. Vanessa automation что это-29d5c9f8cd778e139205aa9244724fab. картинка Vanessa automation что это. картинка 29d5c9f8cd778e139205aa9244724fab

Настройка подключения в режиме тестирования

Штатное использование этого механизма оказалось трудоемким, возникла необходимость в автоматизации тестирования. Поэтому на основе платформенного механизма появилось несколько проектов, один из которых – Vanessa-Automation. Система позволяет автоматизировать тестирование со стороны действий пользователя и записать инструкции по изменениям функционала.

Как работает система

Запустив программу для записи, мы производим некие действия, которые записываются в так называемый сценарий. Запустив выполнение сценария, мы можем отследить, отвечает ли поведение системы запланированным в сценарии действиям или нет: отклонения фиксируются, поэтому можно отследить, на каком этапе что-то пошло не так.

Автоматизация подойдет для тестирования предсказуемого поведения пользователя и того функционала, который не должен давать сбои ни при каких обстоятельствах. К примеру, выписка счетов на оплату, работа с банком или реализация для торговых компаний.

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

Vanessa automation что это. 13511a0ae7fb2c8c7ae9491285daf7a6. Vanessa automation что это фото. Vanessa automation что это-13511a0ae7fb2c8c7ae9491285daf7a6. картинка Vanessa automation что это. картинка 13511a0ae7fb2c8c7ae9491285daf7a6

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

Vanessa automation что это. a00e7b4020309ec23868febd1bd35893. Vanessa automation что это фото. Vanessa automation что это-a00e7b4020309ec23868febd1bd35893. картинка Vanessa automation что это. картинка a00e7b4020309ec23868febd1bd35893

Работа с интерфейсом пользователя UI

Vanessa automation что это. cdb2fd6d548ef2916a29146696735546. Vanessa automation что это фото. Vanessa automation что это-cdb2fd6d548ef2916a29146696735546. картинка Vanessa automation что это. картинка cdb2fd6d548ef2916a29146696735546
Результаты самотестирования VA

Один из видеороликов, собранных VA самостоятельно

Проект открыт как для разработки, так и для использования.

Источник

Vanessa-Automation — инструмент автодокументирования прикладных решений на платформе «1С: Предприятие». Кино и BDD

Vanessa automation что это. GNstEc. Vanessa automation что это фото. Vanessa automation что это-GNstEc. картинка Vanessa automation что это. картинка GNstEc

Меня не интересуют истории, которые оставляют зрителя безразличным. Я хочу, чтобы выходя из кинотеатра человек думал: «Черт возьми, мне нужно выпить». (с) Киллиан Мёрфи
Так, что это значит Кино и BDD?! Добро пожаловать под кат.

Я расскажу об инструменте, который из сценария, написанного на Gherkin (есть такой язык сценариев), делает инструкцию, а точнее — актуальную документацию (Living documentation).

Чтобы вас не томить — сразу покажу результат моих (и не только) трудов.
Я расскажу вам как из сценария, написанного ниже, сделать вот такой вот ролик одним кликом. Замечу, что сценарии можно писать не только на русском языке, но и на других языках.

Не секрет — документация со временем устаревает, а поддерживать её в актуальном состоянии затратно, да и “ломает”. Документация уже есть, но постоянно надо что-то дополнять, менять скрины и т.п. Тут из ниоткуда выныривают бородатые дядьки и уверяют, что есть волшебный способ сделать всю вашу разработку по крутому (все эти ваши модные TDD/BDD/и т.д.), с помощью которого весь ваш код пишется сам, сам себя тестирует и документирует.

И вот, движимые ленью и верой в светлое будущее, программисты 1С решили реализовать этот концепт. Я буду показывать как это работает на примере инструмента Vanessa-Automation.

Забыл сказать (на самом деле, конечно не забыл, а сознательно оттягивал 🙂 — этот инструмент для 1С. Моя цель рассказать вам об инструменте, дополняющем 1С. Да, такие инструменты есть, даже больше — они выложены на github и активно развиваются. Позволю себе небольшое отступление. Многие знают, что сейчас есть много фреймворков для JavaScript, то есть живут настоящим, но почему-то многие в отношения 1С живут прошлым. Я хочу показать, что мир 1С развивается. Есть нормальные Open Source инструменты для 1С.

Итак. Одним пользователем нужна документация в виде текстовой документации (HTML, Markdown), другим в виде скринкаста, третьим в виде автовидео. И для всех «хотелок» есть решение в одном флаконе.

Генерация HTML и Markdown

Для того, чтобы генерировать HTML и текст в markdown, необходимо установить утилиту для снятия скриншотов (IrfanView, nircmd или подобное). Далее включаем данную настройку. (Сервис — Автоинструкции. Ищем раздел HTML и Markdown). Настраиваем папку, в которую будем сохранять автоматически сгенерированные автоинструкции. Пример:

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Запускаем нашу feature, если не было ошибок — сохраняется автоинструкция:

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Генерация видео

Без всякого труда мы можем сделать видео. Для этого необходимо настроить окружение для записи видео по инструкции и наслаждаться процессом. Не надо нарезать видео, склеивать и накладывать звук. Это всё делается автоматически.

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Каждое видео идёт с субтитрами. Можем поставить на паузу и почитать. Не сложно. Делаем максимально удобно для пользователя.

Если скучно читать, можно сделать озвучку голосом. Для этого устанавливаем библиотеку и запускаем наш сценарий. Через пару минут видео с озвучкой будет готово.

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Есть функция накладывания водяного знака, подсветки активного элемента на экране (эта фича работает для версий платформы 8.3.11 и ниже) (да, пользователи любят когда им всё разжевывают) и движения мышки туда, где происходит “Экшн”.

Гибкая кастомизация видео

Всё начинается со сценария и на нём же заканчивается. Именно так.

Можно настроить ваш CI сервер так, чтобы он генерировал не для всех сценариев документацию, а только для необходимых. Для этого в сценариях, предназначенных для автодоков добавляем тег, например @tree (далее будет работать отбор по этому тегу) и… наслаждаемся процессом.

По идее, когда вы пишете большой сценарий, вам всё равно придётся его делить на логические блоки, делать в нём комментарии (что вот этот супер важный флажок надо установить, иначе ничего работать не будет).
Идея автовидео в том, чтобы эти комментарии стали частью “истории”, которую мы показываем пользователю.

Когда мы смотрим сгенерированное видео, то там изначально будет только видео без звука. Мелькают какие-то скриншоты и текст, становится скучно и перестаёшь вникать. Да и грустно как-то без музыки. Фоном к видео можно поставить “лёгкую” музыку (или какую-нибудь тяжесть, любой каприз), чтобы веселее читалось. Процесс изучения пойдёт быстрее 🙂 Опыт создания таких видео показал, что когда фоном играет музыка, то видео воспринимается проще. Без музыки — сухо как-то.

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

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

Автообновление видео на ютуб

Для ночной сборки (ну мы же не собираемся заливать ролики на ютуб руками, правда?) можно реализовать автоматическое выкладывание видео на youtube канал.
Натравливаем на папку с нашими feature скрипт, который определяет, что файл изменился, затем делает сборку видео и заливает его куда надо.
Для автовидео я сделал простое приложение на Golang (почему на нём? Изучал go и появилась реальная задача, где можно его применить. Если было бы что-то другое, было бы на чём-то другом), которое отправляет готовый ролик на youtube канал. Это, конечно, просто пример. Видео можно добавлять в ваши Wiki или базу знаний и т.п.

Заключение

Привожу вам тестовый сценарий, по которому сгенерировано видео.
Пример, feature.

Краткая инструкция как настраивать автодокументирование лежит тут.
Инструкция как настраивать автодокументацию.

Спасибо за потраченное время. Как бы дико это не звучало, но 1С сообщество шагнуло вперёд ( и в чём-то даже кого-то обогнало ), появились opensource инструменты тестирования, CI — интеграция. 1С делает для своих продуктов API — это и позволяет энтузиастам автоматизировать участки, до которых 1С пока не дошла, но потихоньку идёт. А скоро нас ожидает новый дивный мир 🙂 Я в ожидании, когда мы сможем без критических ошибок творить в EDT.

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

Источник

Vanessa Automation + СППР

В начале настроим СППР для работы с функционалом тестирования:

Затем рассмотрим основные объекты и приемы работы с функционалом тестирования в СППР:

Часть разделов снабжена видеоинструкциями.

Чтобы включить в СППР функциональность тестирования нужно установить признак в разделе «Администрирование» – «Настройка параметров системы» – «Общие настройки» установить флаг «Использовать сценарии тестирования»:

Vanessa automation что это. 3568a2c9a115500e323df4bf02e3cc88. Vanessa automation что это фото. Vanessa automation что это-3568a2c9a115500e323df4bf02e3cc88. картинка Vanessa automation что это. картинка 3568a2c9a115500e323df4bf02e3cc88

В персональных настройках («Органайзер» – «Персональные настройки») заполнить поля:

«Каталог для данных тестирования» – здесь будут лежать служебные файлы для работы фреймворка тестирования (этот каталог будет очищаться при работе с СППР);

и «Фреймворк для запуска тестов» – указать путь к фреймворку Vanessa Automation.

Vanessa automation что это. a84ce19891224399736e1f6d0b780b7e. Vanessa automation что это фото. Vanessa automation что это-a84ce19891224399736e1f6d0b780b7e. картинка Vanessa automation что это. картинка a84ce19891224399736e1f6d0b780b7e

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

Проекты

В СППР для каждой разрабатываемой конфигурации создается отдельный проект.

В разделе «Главное» – «Проекты» создадим «Основной проект».

Vanessa automation что это. 892d51e8a31c1709358f12921d263b42. Vanessa automation что это фото. Vanessa automation что это-892d51e8a31c1709358f12921d263b42. картинка Vanessa automation что это. картинка 892d51e8a31c1709358f12921d263b42

Vanessa automation что это. c5fac9034db35c1a1da4c59afad0f725. Vanessa automation что это фото. Vanessa automation что это-c5fac9034db35c1a1da4c59afad0f725. картинка Vanessa automation что это. картинка c5fac9034db35c1a1da4c59afad0f725

Настройка локального запуска тестов

Для запуска сценариев необходимо выполнить «Настройку БД для запуска тестов»:

Vanessa automation что это. 894df0d4a706fb426bc5e5935d96f01b. Vanessa automation что это фото. Vanessa automation что это-894df0d4a706fb426bc5e5935d96f01b. картинка Vanessa automation что это. картинка 894df0d4a706fb426bc5e5935d96f01b

Vanessa automation что это. 6af1826a665a25bc4ef967afb57ee4da. Vanessa automation что это фото. Vanessa automation что это-6af1826a665a25bc4ef967afb57ee4da. картинка Vanessa automation что это. картинка 6af1826a665a25bc4ef967afb57ee4da

В настройках локального запуска сценария указывается:

Адрес ИБ – путь к информационной базе, на которой будут запускаться тестовые сценарии;

Эталонная база – используется для хранения параметров подключения к эталонным базам тестирования;

Тип клиента – Тонкий или Web;

Также можно указать менеджер тестирования – менеджером тестирования может выступать как текущий сеанс СППР, так и сеанс другой базы.

Эталонные базы

Рассмотрим подробнее элемент справочника «Эталонные базы»:

На закладке «Описание» указывается наименование, идентификатор базы, проект.

Vanessa automation что это. 3dd18e2623cb59bc07d35993fc4ae69d. Vanessa automation что это фото. Vanessa automation что это-3dd18e2623cb59bc07d35993fc4ae69d. картинка Vanessa automation что это. картинка 3dd18e2623cb59bc07d35993fc4ae69d

На закладке «Пользователи» необходимо указать профили пользователя из СППР и соответствующего пользователя и пароль базы, на которой будут запускаться тесты.

Vanessa automation что это. 36e357a7b78f44dc37f2fbb59907a096. Vanessa automation что это фото. Vanessa automation что это-36e357a7b78f44dc37f2fbb59907a096. картинка Vanessa automation что это. картинка 36e357a7b78f44dc37f2fbb59907a096

Известные шаги

В сценариях СППР можно использовать шаги из библиотеки шагов Vanessa Automation.

Для выгрузки шагов из Vanessa Automation необходимо перейти на закладку «Работа с UI», нажать кнопку «Добавить известный шаг»:

Vanessa automation что это. 46810c32ec11ff05d16b994300d1e67a. Vanessa automation что это фото. Vanessa automation что это-46810c32ec11ff05d16b994300d1e67a. картинка Vanessa automation что это. картинка 46810c32ec11ff05d16b994300d1e67a

В открывшейся форме в «Еще» выбрать команду «Выгрузить шаги в JSON», указать путь и имя файла.

Vanessa automation что это. 44c36279506d2790fe69d92a19306541. Vanessa automation что это фото. Vanessa automation что это-44c36279506d2790fe69d92a19306541. картинка Vanessa automation что это. картинка 44c36279506d2790fe69d92a19306541

После выгрузки, в СППР необходимо зайти в справочник «Шаги сценариев пользователей» и загрузить шаги из файла.

Vanessa automation что это. d36bdc2af6894796e7e894d7d9da5eec. Vanessa automation что это фото. Vanessa automation что это-d36bdc2af6894796e7e894d7d9da5eec. картинка Vanessa automation что это. картинка d36bdc2af6894796e7e894d7d9da5eec

Vanessa automation что это. 2ea10698a52895cad731c33d917d07fe. Vanessa automation что это фото. Vanessa automation что это-2ea10698a52895cad731c33d917d07fe. картинка Vanessa automation что это. картинка 2ea10698a52895cad731c33d917d07fe

Сценарии работы пользователей

В справочнике «Сценарии работы пользователей» хранятся простые сценарии тестирования.

Рассмотрим настройки элемента справочника «Сценарии работы пользователей»:

На странице «Описание» указываются основные поля:

функция, которую тестирует данный сценарий (если функциональная модель в СППР не ведется, то можно создать одну функцию и указывать ее во всех сценариях) ;

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

Vanessa automation что это. 25cce5106eea66bdfe0b78057049d763. Vanessa automation что это фото. Vanessa automation что это-25cce5106eea66bdfe0b78057049d763. картинка Vanessa automation что это. картинка 25cce5106eea66bdfe0b78057049d763

На странице «Текст сценария» указывается текст сценария тестирования на модификации языка Gherkin, которая разработана специально для использования с платформой «1С:Предприятие». Это декларативный, легко воспринимаемый человеком язык, который имеет определенный синтаксис. Также на закладке «Текст сценария» выводятся известные шаги и их можно добавлять в сценарий, не заходя в Vanessa Automation.

Vanessa automation что это. 64925c003a0ed60e76d4bac26bf5569b. Vanessa automation что это фото. Vanessa automation что это-64925c003a0ed60e76d4bac26bf5569b. картинка Vanessa automation что это. картинка 64925c003a0ed60e76d4bac26bf5569b

Подробнее про синтаксис языка Gherkin можно прочитать в статье Владимира Литвиненко //infostart.ru/public/969637/.

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

Vanessa automation что это. fd75639c7ae3e359846001ba32c71c51. Vanessa automation что это фото. Vanessa automation что это-fd75639c7ae3e359846001ba32c71c51. картинка Vanessa automation что это. картинка fd75639c7ae3e359846001ba32c71c51

Откроется фреймворк тестирования Vanessa Automation:

Vanessa automation что это. bc91abb96fe7fc76bea439be29851d70. Vanessa automation что это фото. Vanessa automation что это-bc91abb96fe7fc76bea439be29851d70. картинка Vanessa automation что это. картинка bc91abb96fe7fc76bea439be29851d70

Подробно на работе с фреймворком останавливаться не буду. На сайте есть цикл статей от Владимира Литвиненко по работе с фреймворком Vanessa-ADD, который по функциональности тестирования во многом совпадает с Vanessa Automation:

Также у Vanessa Automation есть возможность записи видеоинструкций. О них рассказывает в своих статьях Павел Олейников:

Процессы

Как говорилось ранее, в справочнике «Сценарии работы пользователей» хранятся простые сценарии тестирования. Более сложные сценарии тестирования хранятся в справочнике «Процессы». Процессы состоят из последовательности простых сценариев тестирования.

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

Vanessa automation что это. 9851f35f9c6224920d4830054ee505be. Vanessa automation что это фото. Vanessa automation что это-9851f35f9c6224920d4830054ee505be. картинка Vanessa automation что это. картинка 9851f35f9c6224920d4830054ee505be

Для того, чтобы сценарий работы пользователя можно было выбирать в процессе, необходимо установить флаг «Разрешено использовать в процессах»:

Vanessa automation что это. 25cce5106eea66bdfe0b78057049d763. Vanessa automation что это фото. Vanessa automation что это-25cce5106eea66bdfe0b78057049d763. картинка Vanessa automation что это. картинка 25cce5106eea66bdfe0b78057049d763

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

Параметры сценариев

В тексте сценария можно использовать внутренние и внешние параметры.

Внутренние параметры бывают трех типов:

строка (например, «ИмяСправочника» или ‘ИмяДокумента’);

дата (например, 18.09.2019).

Также для максимального обособления сценария используются внешние параметры сценария. Допустим, в тексте сценария у нас есть следующий шаг:

Vanessa automation что это. a6b73bf16300c5a3b8bde13e8df85b70. Vanessa automation что это фото. Vanessa automation что это-a6b73bf16300c5a3b8bde13e8df85b70. картинка Vanessa automation что это. картинка a6b73bf16300c5a3b8bde13e8df85b70

Тогда на закладке «Параметры» появился параметр «ИмяСправочника»:

Vanessa automation что это. 31e4463f7e6251a26030a741ec255977. Vanessa automation что это фото. Vanessa automation что это-31e4463f7e6251a26030a741ec255977. картинка Vanessa automation что это. картинка 31e4463f7e6251a26030a741ec255977

И для него мы можем задать значение по умолчанию (в приведенном примере значение по умолчанию – «Номенклатура»).

Также можно передавать составные параметры:

Vanessa automation что это. 89c2c3f9242cabc2f2f8596a23e5e6f1. Vanessa automation что это фото. Vanessa automation что это-89c2c3f9242cabc2f2f8596a23e5e6f1. картинка Vanessa automation что это. картинка 89c2c3f9242cabc2f2f8596a23e5e6f1

В данном примере в сценарии один параметр «Поступление товаров №[НомерПоступления] от [ДатаПоступления]», в котором два внешних параметра «НомерПоступления» и «ДатаПоступления».

Также в параметрах можно задать параметр с типом Таблица:

Vanessa automation что это. 2c98d0b1138dca46f7c293b42648a37a. Vanessa automation что это фото. Vanessa automation что это-2c98d0b1138dca46f7c293b42648a37a. картинка Vanessa automation что это. картинка 2c98d0b1138dca46f7c293b42648a37a

Где значение параметра – это Таблица Gherkin. Таблица Gherkin имеет следующий вид:

| ‘000000012’ | ‘Тестовый пример’ |

Где первая строка – это имена колонок, вторая и следующие – значения колонок.

Внешние параметры доступны для переопределения в шагах процесса:

Vanessa automation что это. 6d7c7497c34a4a4cac37e29c900ca884. Vanessa automation что это фото. Vanessa automation что это-6d7c7497c34a4a4cac37e29c900ca884. картинка Vanessa automation что это. картинка 6d7c7497c34a4a4cac37e29c900ca884

Подсценарии

Также для сценариев можно использовать подсценарии.

В тексте сценария подсценарии обозначаются подчеркиванием, это означает, что в справочнике Сценарии работы пользователей есть сценарий с таким наименованием. Перейти к подсценарию можно по кнопке F12.

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

Vanessa automation что это. dbcd8ec97680fa2be439022272266636. Vanessa automation что это фото. Vanessa automation что это-dbcd8ec97680fa2be439022272266636. картинка Vanessa automation что это. картинка dbcd8ec97680fa2be439022272266636

В открывшемся окне в поле «Имя шаблона» необходимо вставить название шага:

Vanessa automation что это. 0f0a6ee1699b8eade221f439b03f61bd. Vanessa automation что это фото. Vanessa automation что это-0f0a6ee1699b8eade221f439b03f61bd. картинка Vanessa automation что это. картинка 0f0a6ee1699b8eade221f439b03f61bd

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

Vanessa automation что это. d2d328a19b61fc2e2c1311fec1d93d6f. Vanessa automation что это фото. Vanessa automation что это-d2d328a19b61fc2e2c1311fec1d93d6f. картинка Vanessa automation что это. картинка d2d328a19b61fc2e2c1311fec1d93d6f

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

Vanessa automation что это. 3adfb8db9e69fdf5ddc9a8c8b88b201e. Vanessa automation что это фото. Vanessa automation что это-3adfb8db9e69fdf5ddc9a8c8b88b201e. картинка Vanessa automation что это. картинка 3adfb8db9e69fdf5ddc9a8c8b88b201e

Если параметров несколько, то порядок параметров в тексте сценария и порядок параметров в подсценарии на закладке «Параметры» должны совпадать.

Также параметры в подсценарии можно передавать следующим образом:

Vanessa automation что это. 442f01548db9555b4c6e2636e26a60a0. Vanessa automation что это фото. Vanessa automation что это-442f01548db9555b4c6e2636e26a60a0. картинка Vanessa automation что это. картинка 442f01548db9555b4c6e2636e26a60a0

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

Источник

Vanessa-Automation — инструмент тестирования прикладных решений на платформе «1С: Предприятие»

Много вы знаете инструментов тестирования, которые умеют:

Об этом доступно и наглядно (с картинками) в этой статье, не переключайтесь.

Вступление

Данная статья представляет собой обзор созданного в недрах OpenSource инструмента тестирования прикладных решений 1С под названием vanessa-automation. Данный проект является прямым продолжением широко известного в узких кругах проекта vanessa-behavior (fork был создан на версии 1.1.131). Кстати, существуют и другие fork’и.

Контекст

Как бы не было приятно думать, что каждый читатель этой статьи на habr знает 1С, все таки, обманываться не вариант. Потому не рискну продолжить, не сформировав у читателя представления о платформе 1С и ее возможностях, используемых в vanessa-automation (далее va или Ванесса).

Итак, после установки платформы 1С её нужно запустить в режиме Предприятия или в режиме Конфигуратора.

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

В конфигураторе ведется разработка конфигураций, а в предприятии с этими конфигурациями работают пользователи: создают, редактируют и сохраняют всякие такие справочники и документы, тем самым наполняя базу данных, а потом формируют отчеты и снова: создают, редактируют и сохраняют… и так в цикле. Впрочем, обычный сценарий использования платформы разработчиком, внешне, не сильно отличается от пользовательского:
запускают в режиме конфигуратора нужную конфигурацию, а далее в цикле → что-то разрабатывают или дорабатывают → (пере)запускают из конфигуратора 1С в режиме предприятия и руками проверяют то, что разработали или доработали.

Ситуацию спасает функциональность платформы под названием Автоматизированное тестирование, которая дает возможность записать, воспроизвести и проверить действий пользователя. Как данная функциональность меняет сценарий использования разработчиком платформы рассмотрим на примере, НО сначала о Внешних обработках.

Прикладные объекты конфигурации (они же «Метаданные», они же «Объекты конфигурации», она же Элла Кацнельбоген, она же Валентина Панияд )
описывают предметную область и имена этих объектов говорят сами за себя.

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

«Документы» отражают хозяйственные операции, к примеру, поступление товаров. «Справочники» нужны для того, чтобы ввести, к примеру, название контрагента 1 раз и далее выбирать его, а не вводить каждый раз заново. В «Регистрах» хранятся данные и по ним строятся виртуальные таблицы для выполнения сложных расчетов и формирования «Отчетов». Вот мы и добрались до Обработок, с их помощью обрабатывается информация базы данных (например, выполняется закрытие месяца в бухгалтерском учете или различные обмены между информационными базами), но нам они интересны возможностью выгрузки во внешние обработки.

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Конфигурации поставляемые самой фирмой 1С находятся на поддержке (нельзя изменять, чтобы не лишиться автоматического обновления), а внешние обработки дают возможность без снятия с поддержки производить различные манипуляции с данными, ну и конечно — тестировать!

После выхода платформы версии 8.3.10 появилась возможность, для целей тестирования, использовать, кроме внешних обработок, ещё и расширения (они же patch’и).

С определенной долей упрощения, можно сказать что технически, внешняя обработка 1С — это файл с расширением epf открыв который в конфигураторе, можно создать множество форм → разместить на формах элементы управления и запрограммировать некую функциональность в модулях этих форм. Ещё у внешних обработок есть «общий» модуль (он же «Модуль объекта») и макеты, НО это уже совсем другая история, а мы возвращаемся к тестирования.

Чтобы воспользоваться функциональностью Автоматизированное тестирование, нужно запустить два экземпляра 1С предприятия, первый с ключом менеджера тестирования (/TESTMANAGER), второй с ключом клиента тестирования (/TESTCLIENT) и установить соединение между менеджером и клиентом тестирования. Таким образом сценарий использования разработчиком платформы становится таким:

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Из конфигуратора запускаем 1С в режиме предприятия с ключом менеджера тестирования → в предприятии открываем va и с его помощью запускаем ещё один экземпляр
1С в режиме предприятия с ключом клиента тестирования. Соединение менеджера и клиента тестирования va устанавливает автоматически после запуска клиента тестирования. Клиентом тестирования может быть как тонкий клиент, так и web-клиент.

Итого: Фирма 1С написала свой Selenium, который встроен в платформу 1С: Предприятие. И этот Selenium от 1С имеет преимущества. Например, любой элемент управления (он же control) на форме всегда имеет уникальное имя, которое в 99.99% случаев известно заранее. Соответственно нет проблем с локаторами, а чтобы найти элемент управления достаточно написать:

Закрепим материал на примере

Необходимо разработать конфигурацию для учета продажи товара с печатью накладных.

Внимательный зритель мог заметить конструкцию

и вы не ошиблись, да — Ванесса использует свой диалект gherkin, в котором есть условия и циклы. Думаю, идея добавить в gherkin условия и циклы родилась примерно так:

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Некоторые участники OpenSource сообщества данное решение критиковали, но если верить gitter, то сошлись на следующем — «человекочитаемости» фичи данная функциональность не вредит, а использовать её или нет — каждый решает сам.
Про turbo gherkin планируется отдельная статья, следите за обновлениями.

«BDD на 1С» и немного истории

va, каким мы его видим сейчас, виделся его создателям иначе. Делать тот же cucumber + selenium на 1С было решено только после того как испытали самые очевидные и низкозатратные варианты. В определенный момент стало ясно, что если использовать cucumber и selenium, то именно эти инструменты и придется дорабатывать, чтобы получить необходимую функциональность тестирования прикладных-бизнес решений 1С. Данный расклад, в рамках opensource и реалий мира 1С, усложнял и растягивал по времени развитие проекта. В итоге было решено обойтись только средствами платформы 1С: Предприятие.

На примере с продажей товара мы увидели как работает va, теперь давайте посмотрим как это реализовано.

Проверка шагов

На видео «Тестирование» показан va, в который уже загружен feature-файл (далее фича) и сформировано дерево шагов. По кнопке «Выполнить сценарии» начинается обработка каждого шага, т.е. вызов процедуры проверки шага. О том где находится эта процедура, поясню на примере.

Допустим, есть фича со сценарием:

Чтобы реализовать проверку шагов этого сценария, нужно получить внешнюю обработку, соответствующую фичу. В va это делается автоматически, по соответствующей кнопке.

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Процедуры проверки шагов будут распологаться в модуле формы обработки.

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Далее, при загрузке фичи va выполнит поиск и последовательное подключение внешних обработок, чтобы узнать процедуры проверки каких шагов в них (внешних обработках) реализованы. За это отвечает следующая процедура:

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Последовательность поиска процедур проверки шагов следующая:

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

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

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

Шаги «из воздуха» и WYCIWYG

Немного о Функциональности Автоматизированное тестирование платформы 1С. Напомню, Автоматизированное тестирование позволяет записывать, воспроизводить и проверять воспроизведенные действия пользователя. На деле это всё те же клиент тестирования и менеджер тестирования, только на стороне клиента включается запись журнала действий пользователя.

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

В результате мы имеем xml-файл с описанием действий пользователя:

Лежит ли на поверхности идея создать функциональность преобразования журнала действий пользователя в шаги сценария, сейчас сказать сложно, НО первым догадался и реализовал эту идею — Паутов Леонид (pr-mex). Объем проделанной работы можно оценить по содержанию и размеру библиотеки, ведь кроме перевода журнала действий пользователя на язык gherkin, требовалось реализовать процедуры выполнения и процедуры проверки шагов.

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

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

В клиенте тестирования воспроизвести действия пользователя, например функциональности, которую нужно доработать или ошибки, которую нужно исправить. Ну и завершить запись действий пользователя. Таким образом реализуется «WYCIWYG» подход к разработки тестов (What you click is what you get).

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Шаги, например, проверяющие результат действий пользователя в сценарий можно добавить из библиотеки.

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Детализация шагов и экспортные сценарии

К сожалению в реальности сценарий состоит из множества шагов, больше чем на следующем скриншоте.

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

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

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

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

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

Данные видео (1, 2) также созданы из сценариев на Gherkin и с помощью движка «АвтоВидеоИнструкций» преобразованы в mp4 формат за один клик.

Да, Ванесса умеет создавать видео ролики о том как работает Ванесса)

АвтоВидео

Автоматические видео-инструкции — это тема отдельной статьи (вот она), мне остается лишь рассказать немного предыстории.

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

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Сажать пользователей за просмотр выполнения сценария (откуда этот милицейский юмор?) не вариант, но на реализации функциональности формирования html файла с шагами и соответствующими скриншотами автор не остановился. Его не остановило и то, что при воспроизведении действий пользователя курсор мышки не отображается и нет возможности выделить произвольную область на форме, поэтому он написал соответствующие утилиты. Далее, по запросу пользователей была добавлена озвучка (Елена), что с основными работами по формированию ролика с субтитрами и оригинальным музыкальным фоном, вылилось в приличный объем работ, но авто-видео-инструкции того стояли. На данный момент авто-видео-инструкции существенно оптимизированы, в плане синхронности озвучки и действий на видео.

Немного скучной статистики

va поддерживает:

Чтобы корректно работать на таком «зоопарке», va пришлось научиться тестировать саму себя. Отчет о «self» тестировании выглядит примерно так:

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Скрипты для «self» тестирования находятся в том же репозитории.

Библиотека шагов

В поставку va входит библиотека стандартных шагов Gherkin, которая позволяет решать повседневные задачи автотеситрования, такие как работа и интерфейсом приложения (кнопки, поля, таблицы и т.д.), работа с файлами, ОС и т.д. На данный момент это более 400 шагов.

Локализация

Интерфейс va локализован на 20 языков:

RU, am, az, bg, et, fr, ka, de, en, hu, it, lv, lt, mn, pl, ro, sl, es, sv, tr, vi.

Локализацию va можно разделить на 3 составляющих:

Поэтому уже сейчас на va могут писать сценарии на английском англоязычные пользователи. Все шаги из стандартной библиотеки переведены человеком. Результат может выглядеть примерно так.

Логично, что для поддержки такой локализации пришлось реализовать дополнительный инструментарий по работе с макетами (макет — это что-то вроде таблицы excel) для вставки/удаление значений, сортировка строк и т.д. напрямую в исходниках (xml файлах).

«TDD в 1С», тестирование процедур и функций (unit тесты)

С помощью va можно проверять «поведение» процедур и функций. Достаточно написать подобный сценарий:

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

Если у читателей будет интерес, то эту тему можно раскрыть более подробно в будующих статьях.

Варианты поставки

Изначально проект поставлялся только в виде набора epf файлов, которые можно было собрать из исходников на github, либо скачать готовый релиз. Начиная с версии 1.2.009 va поставляется ещё и как один epf файл, который включает в себя все библиотеки, плагины, пакеты локализации, модули сборки видео и т.д. Так сказать — всё в одном.

Этот вариант фреймворка получил название vanessa-automation-single. Он хорошо подойдёт тем пользователям, которые не планируют дорабатывать va, а будут только использовать. Также этот вариант поставки хорошо подходит для включения в состав других конфигураций или расширений (благо лицензия проекта FreeBSD это позволяет).

Сверху вниз и снизу вверх

Несмотря на то, что инструмент изначально задумывался для реализации именно BDD методологии (т.е. когда сценарии пишутся сверху вниз, т.е. отталкиваясь от верхнеуровневых требований заказчика), практика использования показала, что на нём можно писать и сценарии снизу вверх. Типовой кейс — когда уже есть готовая конфигурация, и её надо просто покрыть тестами, не замарачиваясь методологиями.

Мораль

Надеюсь у читателя сложилось (ключевое слово «сложилось») представление о va как о серьезном инструменте тестирования. Посматривая на зарубежные аналоги на старте, сейчас va их превосходит, по моему скромному мнению. Расширение функциональности работы с gherkin, дало (обещанную, но не воплощенную до turbo gherkin) возможность вовлечь в процесс разработки и аналитика и разработчика и тестировщика. Поясню, аналитик пишет сквозной, верхнеуровневый сценарий → разработчик детализирует этот сценарий в том числе с помощью экспортных сценариев, и кроме кода он практически ничего не пишет (все необходимые шаги UI уже в библиотеке) → тестировщик добавляет сценарии, чтобы под «другим углом» проверить функциональность и всё это — в одном feature-файле, ура товарищи!

Vanessa automation что это. image loader. Vanessa automation что это фото. Vanessa automation что это-image loader. картинка Vanessa automation что это. картинка image loader

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

Источник

Добавить комментарий

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