Vanessa automation что это
Вышла новая версия Vanessa-Automation – системы тестирования решений на платформе «1С:Предприятие»
В апреле разработчики представили новую версию инструмента тестирования и автодокументирования прикладных решений на платформе «1С:Предприятие» Vanessa-Automation: 1.2.023.
Основные изменения в этой версии:
Как появилась система
В версии платформы «1С:Предприятие 8.3.2» появилась возможность автоматического тестирования, которое заключается во взаимодействии двух, особым образом запущенных клиентских приложений. Новая опция настраивалась в меню из режима конфигуратора или с ключом при запуске клиента.
Настройка подключения в режиме тестирования
Штатное использование этого механизма оказалось трудоемким, возникла необходимость в автоматизации тестирования. Поэтому на основе платформенного механизма появилось несколько проектов, один из которых – Vanessa-Automation. Система позволяет автоматизировать тестирование со стороны действий пользователя и записать инструкции по изменениям функционала.
Как работает система
Запустив программу для записи, мы производим некие действия, которые записываются в так называемый сценарий. Запустив выполнение сценария, мы можем отследить, отвечает ли поведение системы запланированным в сценарии действиям или нет: отклонения фиксируются, поэтому можно отследить, на каком этапе что-то пошло не так.
Автоматизация подойдет для тестирования предсказуемого поведения пользователя и того функционала, который не должен давать сбои ни при каких обстоятельствах. К примеру, выписка счетов на оплату, работа с банком или реализация для торговых компаний.
Описать все возможные варианты поведения можно, но это отнимет много времени и трудовых ресурсов, поэтому, обычно, сценарии пишутся не на все возможное поведение пользователей, а только на необходимое.
Подключаться для тестирования можно и к нескольким клиентам разных конфигураций, отрабатывая один и тот же тест. Это удобно для замера производительности в разных документах, а также для отладки обмена между базами. Также из удобных функций – возможность получить имена элементов формы, заголовки, дерево элементов с учетом созданных программно из режима «1С: Предприятие», что удобно для QA-инженеров, которым неудобно заходить в конфигуратор и разбирать формы там.
Работа с интерфейсом пользователя UI
Результаты самотестирования VA
Один из видеороликов, собранных VA самостоятельно
Проект открыт как для разработки, так и для использования.
Vanessa-Automation — инструмент автодокументирования прикладных решений на платформе «1С: Предприятие». Кино и BDD
Меня не интересуют истории, которые оставляют зрителя безразличным. Я хочу, чтобы выходя из кинотеатра человек думал: «Черт возьми, мне нужно выпить». (с) Киллиан Мёрфи
Так, что это значит Кино и 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). Настраиваем папку, в которую будем сохранять автоматически сгенерированные автоинструкции. Пример:
Запускаем нашу feature, если не было ошибок — сохраняется автоинструкция:
Генерация видео
Без всякого труда мы можем сделать видео. Для этого необходимо настроить окружение для записи видео по инструкции и наслаждаться процессом. Не надо нарезать видео, склеивать и накладывать звук. Это всё делается автоматически.
Каждое видео идёт с субтитрами. Можем поставить на паузу и почитать. Не сложно. Делаем максимально удобно для пользователя.
Если скучно читать, можно сделать озвучку голосом. Для этого устанавливаем библиотеку и запускаем наш сценарий. Через пару минут видео с озвучкой будет готово.
Есть функция накладывания водяного знака, подсветки активного элемента на экране (эта фича работает для версий платформы 8.3.11 и ниже) (да, пользователи любят когда им всё разжевывают) и движения мышки туда, где происходит “Экшн”.
Гибкая кастомизация видео
Всё начинается со сценария и на нём же заканчивается. Именно так.
Можно настроить ваш CI сервер так, чтобы он генерировал не для всех сценариев документацию, а только для необходимых. Для этого в сценариях, предназначенных для автодоков добавляем тег, например @tree (далее будет работать отбор по этому тегу) и… наслаждаемся процессом.
По идее, когда вы пишете большой сценарий, вам всё равно придётся его делить на логические блоки, делать в нём комментарии (что вот этот супер важный флажок надо установить, иначе ничего работать не будет).
Идея автовидео в том, чтобы эти комментарии стали частью “истории”, которую мы показываем пользователю.
Когда мы смотрим сгенерированное видео, то там изначально будет только видео без звука. Мелькают какие-то скриншоты и текст, становится скучно и перестаёшь вникать. Да и грустно как-то без музыки. Фоном к видео можно поставить “лёгкую” музыку (или какую-нибудь тяжесть, любой каприз), чтобы веселее читалось. Процесс изучения пойдёт быстрее 🙂 Опыт создания таких видео показал, что когда фоном играет музыка, то видео воспринимается проще. Без музыки — сухо как-то.
При записи видео не отображается курсор и не видно куда мы нажимаем, на какой элемент. Для этого есть настройка отображения курсора и подсветка элемента формы.
Все вышеперечисленные настройки показаны в видео и в сценарии, которые сгенерировались после успешного прохождения сценария.
Автообновление видео на ютуб
Для ночной сборки (ну мы же не собираемся заливать ролики на ютуб руками, правда?) можно реализовать автоматическое выкладывание видео на youtube канал.
Натравливаем на папку с нашими feature скрипт, который определяет, что файл изменился, затем делает сборку видео и заливает его куда надо.
Для автовидео я сделал простое приложение на Golang (почему на нём? Изучал go и появилась реальная задача, где можно его применить. Если было бы что-то другое, было бы на чём-то другом), которое отправляет готовый ролик на youtube канал. Это, конечно, просто пример. Видео можно добавлять в ваши Wiki или базу знаний и т.п.
Заключение
Привожу вам тестовый сценарий, по которому сгенерировано видео.
Пример, feature.
Краткая инструкция как настраивать автодокументирование лежит тут.
Инструкция как настраивать автодокументацию.
Спасибо за потраченное время. Как бы дико это не звучало, но 1С сообщество шагнуло вперёд ( и в чём-то даже кого-то обогнало ), появились opensource инструменты тестирования, CI — интеграция. 1С делает для своих продуктов API — это и позволяет энтузиастам автоматизировать участки, до которых 1С пока не дошла, но потихоньку идёт. А скоро нас ожидает новый дивный мир 🙂 Я в ожидании, когда мы сможем без критических ошибок творить в EDT.
Поддержите проект добрым словом, лайком, критикой (чат проекта в Gitter находится здесь) авторам это всегда приятно.
Vanessa Automation + СППР
В начале настроим СППР для работы с функционалом тестирования:
Затем рассмотрим основные объекты и приемы работы с функционалом тестирования в СППР:
Часть разделов снабжена видеоинструкциями.
Чтобы включить в СППР функциональность тестирования нужно установить признак в разделе «Администрирование» – «Настройка параметров системы» – «Общие настройки» установить флаг «Использовать сценарии тестирования»:
В персональных настройках («Органайзер» – «Персональные настройки») заполнить поля:
«Каталог для данных тестирования» – здесь будут лежать служебные файлы для работы фреймворка тестирования (этот каталог будет очищаться при работе с СППР);
и «Фреймворк для запуска тестов» – указать путь к фреймворку Vanessa Automation.
Важно: для корректной работы фреймворка необходимо, чтобы у пользователя, под которым запускается СППР, была отключена защита от опасных действий.
Проекты
В СППР для каждой разрабатываемой конфигурации создается отдельный проект.
В разделе «Главное» – «Проекты» создадим «Основной проект».
Настройка локального запуска тестов
Для запуска сценариев необходимо выполнить «Настройку БД для запуска тестов»:
В настройках локального запуска сценария указывается:
Адрес ИБ – путь к информационной базе, на которой будут запускаться тестовые сценарии;
Эталонная база – используется для хранения параметров подключения к эталонным базам тестирования;
Тип клиента – Тонкий или Web;
Также можно указать менеджер тестирования – менеджером тестирования может выступать как текущий сеанс СППР, так и сеанс другой базы.
Эталонные базы
Рассмотрим подробнее элемент справочника «Эталонные базы»:
На закладке «Описание» указывается наименование, идентификатор базы, проект.
На закладке «Пользователи» необходимо указать профили пользователя из СППР и соответствующего пользователя и пароль базы, на которой будут запускаться тесты.
Известные шаги
В сценариях СППР можно использовать шаги из библиотеки шагов Vanessa Automation.
Для выгрузки шагов из Vanessa Automation необходимо перейти на закладку «Работа с UI», нажать кнопку «Добавить известный шаг»:
В открывшейся форме в «Еще» выбрать команду «Выгрузить шаги в JSON», указать путь и имя файла.
После выгрузки, в СППР необходимо зайти в справочник «Шаги сценариев пользователей» и загрузить шаги из файла.
Сценарии работы пользователей
В справочнике «Сценарии работы пользователей» хранятся простые сценарии тестирования.
Рассмотрим настройки элемента справочника «Сценарии работы пользователей»:
На странице «Описание» указываются основные поля:
функция, которую тестирует данный сценарий (если функциональная модель в СППР не ведется, то можно создать одну функцию и указывать ее во всех сценариях) ;
профиль пользователя, под которым будет запускаться сценарий.
На странице «Текст сценария» указывается текст сценария тестирования на модификации языка Gherkin, которая разработана специально для использования с платформой «1С:Предприятие». Это декларативный, легко воспринимаемый человеком язык, который имеет определенный синтаксис. Также на закладке «Текст сценария» выводятся известные шаги и их можно добавлять в сценарий, не заходя в Vanessa Automation.
Подробнее про синтаксис языка Gherkin можно прочитать в статье Владимира Литвиненко //infostart.ru/public/969637/.
Из формы элемента можно запустить фреймворк тестирования с данным сценарием:
Откроется фреймворк тестирования Vanessa Automation:
Подробно на работе с фреймворком останавливаться не буду. На сайте есть цикл статей от Владимира Литвиненко по работе с фреймворком Vanessa-ADD, который по функциональности тестирования во многом совпадает с Vanessa Automation:
Также у Vanessa Automation есть возможность записи видеоинструкций. О них рассказывает в своих статьях Павел Олейников:
Процессы
Как говорилось ранее, в справочнике «Сценарии работы пользователей» хранятся простые сценарии тестирования. Более сложные сценарии тестирования хранятся в справочнике «Процессы». Процессы состоят из последовательности простых сценариев тестирования.
Для процесса указываются «Шаги процесса», каждый шаг связан со сценарием работы пользователя.
Для того, чтобы сценарий работы пользователя можно было выбирать в процессе, необходимо установить флаг «Разрешено использовать в процессах»:
Методология использования «Процессов» и «Сценариев работы пользователей» состоит в том, что в «Сценариях работы» хранятся максимально обособленные, параметризованные тесты, которые используются как шаги в «Процессах». Таким образом, если есть ошибка в тесте, то исправление нужно будет вносить только в один сценарий, хотя «Процессов», связанных с ним, может быть много.
Параметры сценариев
В тексте сценария можно использовать внутренние и внешние параметры.
Внутренние параметры бывают трех типов:
строка (например, «ИмяСправочника» или ‘ИмяДокумента’);
дата (например, 18.09.2019).
Также для максимального обособления сценария используются внешние параметры сценария. Допустим, в тексте сценария у нас есть следующий шаг:
Тогда на закладке «Параметры» появился параметр «ИмяСправочника»:
И для него мы можем задать значение по умолчанию (в приведенном примере значение по умолчанию – «Номенклатура»).
Также можно передавать составные параметры:
В данном примере в сценарии один параметр «Поступление товаров №[НомерПоступления] от [ДатаПоступления]», в котором два внешних параметра «НомерПоступления» и «ДатаПоступления».
Также в параметрах можно задать параметр с типом Таблица:
Где значение параметра – это Таблица Gherkin. Таблица Gherkin имеет следующий вид:
| ‘000000012’ | ‘Тестовый пример’ |
Где первая строка – это имена колонок, вторая и следующие – значения колонок.
Внешние параметры доступны для переопределения в шагах процесса:
Подсценарии
Также для сценариев можно использовать подсценарии.
В тексте сценария подсценарии обозначаются подчеркиванием, это означает, что в справочнике Сценарии работы пользователей есть сценарий с таким наименованием. Перейти к подсценарию можно по кнопке F12.
Если необходимо шаг сценария выделить в подсценарий, то нужно скопировать название шага и нажать правую кнопку мыши. В открывшемся окне выбрать пункт меню «Преобразовать в подсценарий».
В открывшемся окне в поле «Имя шаблона» необходимо вставить название шага:
И нажать на кнопку «Создать шаблон». Тогда будет открыта форма нового элемента справочника «Сценарии работы пользователей».
В подсценарии можно передавать параметры, на скриншоте представлены примеры подсценариев без параметров, с одним и двумя параметрами.
Если параметров несколько, то порядок параметров в тексте сценария и порядок параметров в подсценарии на закладке «Параметры» должны совпадать.
Также параметры в подсценарии можно передавать следующим образом:
В этом случае порядок параметров не важен. Также можно не передавать часть параметров, тогда они будут заполнены значениями по умолчанию в подсценарии.
Vanessa-Automation — инструмент тестирования прикладных решений на платформе «1С: Предприятие»
Много вы знаете инструментов тестирования, которые умеют:
Об этом доступно и наглядно (с картинками) в этой статье, не переключайтесь.
Вступление
Данная статья представляет собой обзор созданного в недрах OpenSource инструмента тестирования прикладных решений 1С под названием vanessa-automation. Данный проект является прямым продолжением широко известного в узких кругах проекта vanessa-behavior (fork был создан на версии 1.1.131). Кстати, существуют и другие fork’и.
Контекст
Как бы не было приятно думать, что каждый читатель этой статьи на habr знает 1С, все таки, обманываться не вариант. Потому не рискну продолжить, не сформировав у читателя представления о платформе 1С и ее возможностях, используемых в vanessa-automation (далее va или Ванесса).
Итак, после установки платформы 1С её нужно запустить в режиме Предприятия или в режиме Конфигуратора.
В конфигураторе ведется разработка конфигураций, а в предприятии с этими конфигурациями работают пользователи: создают, редактируют и сохраняют всякие такие справочники и документы, тем самым наполняя базу данных, а потом формируют отчеты и снова: создают, редактируют и сохраняют… и так в цикле. Впрочем, обычный сценарий использования платформы разработчиком, внешне, не сильно отличается от пользовательского:
запускают в режиме конфигуратора нужную конфигурацию, а далее в цикле → что-то разрабатывают или дорабатывают → (пере)запускают из конфигуратора 1С в режиме предприятия и руками проверяют то, что разработали или доработали.
Ситуацию спасает функциональность платформы под названием Автоматизированное тестирование, которая дает возможность записать, воспроизвести и проверить действий пользователя. Как данная функциональность меняет сценарий использования разработчиком платформы рассмотрим на примере, НО сначала о Внешних обработках.
Прикладные объекты конфигурации (они же «Метаданные», они же «Объекты конфигурации», она же Элла Кацнельбоген, она же Валентина Панияд )
описывают предметную область и имена этих объектов говорят сами за себя.
«Документы» отражают хозяйственные операции, к примеру, поступление товаров. «Справочники» нужны для того, чтобы ввести, к примеру, название контрагента 1 раз и далее выбирать его, а не вводить каждый раз заново. В «Регистрах» хранятся данные и по ним строятся виртуальные таблицы для выполнения сложных расчетов и формирования «Отчетов». Вот мы и добрались до Обработок, с их помощью обрабатывается информация базы данных (например, выполняется закрытие месяца в бухгалтерском учете или различные обмены между информационными базами), но нам они интересны возможностью выгрузки во внешние обработки.
Конфигурации поставляемые самой фирмой 1С находятся на поддержке (нельзя изменять, чтобы не лишиться автоматического обновления), а внешние обработки дают возможность без снятия с поддержки производить различные манипуляции с данными, ну и конечно — тестировать!
После выхода платформы версии 8.3.10 появилась возможность, для целей тестирования, использовать, кроме внешних обработок, ещё и расширения (они же patch’и).
С определенной долей упрощения, можно сказать что технически, внешняя обработка 1С — это файл с расширением epf открыв который в конфигураторе, можно создать множество форм → разместить на формах элементы управления и запрограммировать некую функциональность в модулях этих форм. Ещё у внешних обработок есть «общий» модуль (он же «Модуль объекта») и макеты, НО это уже совсем другая история, а мы возвращаемся к тестирования.
Чтобы воспользоваться функциональностью Автоматизированное тестирование, нужно запустить два экземпляра 1С предприятия, первый с ключом менеджера тестирования (/TESTMANAGER), второй с ключом клиента тестирования (/TESTCLIENT) и установить соединение между менеджером и клиентом тестирования. Таким образом сценарий использования разработчиком платформы становится таким:
Из конфигуратора запускаем 1С в режиме предприятия с ключом менеджера тестирования → в предприятии открываем va и с его помощью запускаем ещё один экземпляр
1С в режиме предприятия с ключом клиента тестирования. Соединение менеджера и клиента тестирования va устанавливает автоматически после запуска клиента тестирования. Клиентом тестирования может быть как тонкий клиент, так и web-клиент.
Итого: Фирма 1С написала свой Selenium, который встроен в платформу 1С: Предприятие. И этот Selenium от 1С имеет преимущества. Например, любой элемент управления (он же control) на форме всегда имеет уникальное имя, которое в 99.99% случаев известно заранее. Соответственно нет проблем с локаторами, а чтобы найти элемент управления достаточно написать:
Закрепим материал на примере
Необходимо разработать конфигурацию для учета продажи товара с печатью накладных.
Внимательный зритель мог заметить конструкцию
и вы не ошиблись, да — Ванесса использует свой диалект gherkin, в котором есть условия и циклы. Думаю, идея добавить в gherkin условия и циклы родилась примерно так:
Некоторые участники OpenSource сообщества данное решение критиковали, но если верить gitter, то сошлись на следующем — «человекочитаемости» фичи данная функциональность не вредит, а использовать её или нет — каждый решает сам.
Про turbo gherkin планируется отдельная статья, следите за обновлениями.
«BDD на 1С» и немного истории
va, каким мы его видим сейчас, виделся его создателям иначе. Делать тот же cucumber + selenium на 1С было решено только после того как испытали самые очевидные и низкозатратные варианты. В определенный момент стало ясно, что если использовать cucumber и selenium, то именно эти инструменты и придется дорабатывать, чтобы получить необходимую функциональность тестирования прикладных-бизнес решений 1С. Данный расклад, в рамках opensource и реалий мира 1С, усложнял и растягивал по времени развитие проекта. В итоге было решено обойтись только средствами платформы 1С: Предприятие.
На примере с продажей товара мы увидели как работает va, теперь давайте посмотрим как это реализовано.
Проверка шагов
На видео «Тестирование» показан va, в который уже загружен feature-файл (далее фича) и сформировано дерево шагов. По кнопке «Выполнить сценарии» начинается обработка каждого шага, т.е. вызов процедуры проверки шага. О том где находится эта процедура, поясню на примере.
Допустим, есть фича со сценарием:
Чтобы реализовать проверку шагов этого сценария, нужно получить внешнюю обработку, соответствующую фичу. В va это делается автоматически, по соответствующей кнопке.
Процедуры проверки шагов будут распологаться в модуле формы обработки.
Далее, при загрузке фичи va выполнит поиск и последовательное подключение внешних обработок, чтобы узнать процедуры проверки каких шагов в них (внешних обработках) реализованы. За это отвечает следующая процедура:
Последовательность поиска процедур проверки шагов следующая:
В том случае, если в фича добавится/удалится/изменится сценарий, по той же кнопке «Создать и обновить шаблоны обработок» внешнюю обработку соответствующую фиче можно перезаполнить.
Реализовав проверку шага один раз, её можно использовать в других фичах (повторное использование шагов). Собственно по этому, в модуле формы внешней обработки, мы видим две процедуры проверки сценария из трех шагов.
Шаги «из воздуха» и WYCIWYG
Немного о Функциональности Автоматизированное тестирование платформы 1С. Напомню, Автоматизированное тестирование позволяет записывать, воспроизводить и проверять воспроизведенные действия пользователя. На деле это всё те же клиент тестирования и менеджер тестирования, только на стороне клиента включается запись журнала действий пользователя.
В результате мы имеем xml-файл с описанием действий пользователя:
Лежит ли на поверхности идея создать функциональность преобразования журнала действий пользователя в шаги сценария, сейчас сказать сложно, НО первым догадался и реализовал эту идею — Паутов Леонид (pr-mex). Объем проделанной работы можно оценить по содержанию и размеру библиотеки, ведь кроме перевода журнала действий пользователя на язык gherkin, требовалось реализовать процедуры выполнения и процедуры проверки шагов.
Таким образом, чтобы получить готовый сценарий «из воздуха» достаточно в менеджере тестирования включить запись действий пользователя.
В клиенте тестирования воспроизвести действия пользователя, например функциональности, которую нужно доработать или ошибки, которую нужно исправить. Ну и завершить запись действий пользователя. Таким образом реализуется «WYCIWYG» подход к разработки тестов (What you click is what you get).
Шаги, например, проверяющие результат действий пользователя в сценарий можно добавить из библиотеки.
Детализация шагов и экспортные сценарии
К сожалению в реальности сценарий состоит из множества шагов, больше чем на следующем скриншоте.
Есть, как минимум, два варианта облегчить восприятие таких сценариев.
Первый, с помощью табуляции «сдвинуть» шаги, которые нужно сгруппировать и дать им мнемоничный заголовок.
Второй, делать сценарий лаконичным и универсальным и экспортировать. Думаю у меня не получиться описать данную функциональность лучше, чем Елена на видео «Использование тега tree и шаги из воздуха» и «Передача параметров в сценарий».
Данные видео (1, 2) также созданы из сценариев на Gherkin и с помощью движка «АвтоВидеоИнструкций» преобразованы в mp4 формат за один клик.
Да, Ванесса умеет создавать видео ролики о том как работает Ванесса)
АвтоВидео
Автоматические видео-инструкции — это тема отдельной статьи (вот она), мне остается лишь рассказать немного предыстории.
Момент подготовки инфобазы, воспроизведения действий пользователя и проверки этих действий, т.е. выполнение сценария,
достаточно наглядная инструкция, если замедлить выполнение шагов.
Сажать пользователей за просмотр выполнения сценария (откуда этот милицейский юмор?) не вариант, но на реализации функциональности формирования html файла с шагами и соответствующими скриншотами автор не остановился. Его не остановило и то, что при воспроизведении действий пользователя курсор мышки не отображается и нет возможности выделить произвольную область на форме, поэтому он написал соответствующие утилиты. Далее, по запросу пользователей была добавлена озвучка (Елена), что с основными работами по формированию ролика с субтитрами и оригинальным музыкальным фоном, вылилось в приличный объем работ, но авто-видео-инструкции того стояли. На данный момент авто-видео-инструкции существенно оптимизированы, в плане синхронности озвучки и действий на видео.
Немного скучной статистики
va поддерживает:
Чтобы корректно работать на таком «зоопарке», va пришлось научиться тестировать саму себя. Отчет о «self» тестировании выглядит примерно так:
Скрипты для «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 можно проверять «поведение» процедур и функций. Достаточно написать подобный сценарий:
Если у читателей будет интерес, то эту тему можно раскрыть более подробно в будующих статьях.
Варианты поставки
Изначально проект поставлялся только в виде набора epf файлов, которые можно было собрать из исходников на github, либо скачать готовый релиз. Начиная с версии 1.2.009 va поставляется ещё и как один epf файл, который включает в себя все библиотеки, плагины, пакеты локализации, модули сборки видео и т.д. Так сказать — всё в одном.
Этот вариант фреймворка получил название vanessa-automation-single. Он хорошо подойдёт тем пользователям, которые не планируют дорабатывать va, а будут только использовать. Также этот вариант поставки хорошо подходит для включения в состав других конфигураций или расширений (благо лицензия проекта FreeBSD это позволяет).
Сверху вниз и снизу вверх
Несмотря на то, что инструмент изначально задумывался для реализации именно BDD методологии (т.е. когда сценарии пишутся сверху вниз, т.е. отталкиваясь от верхнеуровневых требований заказчика), практика использования показала, что на нём можно писать и сценарии снизу вверх. Типовой кейс — когда уже есть готовая конфигурация, и её надо просто покрыть тестами, не замарачиваясь методологиями.
Мораль
Надеюсь у читателя сложилось (ключевое слово «сложилось») представление о va как о серьезном инструменте тестирования. Посматривая на зарубежные аналоги на старте, сейчас va их превосходит, по моему скромному мнению. Расширение функциональности работы с gherkin, дало (обещанную, но не воплощенную до turbo gherkin) возможность вовлечь в процесс разработки и аналитика и разработчика и тестировщика. Поясню, аналитик пишет сквозной, верхнеуровневый сценарий → разработчик детализирует этот сценарий в том числе с помощью экспортных сценариев, и кроме кода он практически ничего не пишет (все необходимые шаги UI уже в библиотеке) → тестировщик добавляет сценарии, чтобы под «другим углом» проверить функциональность и всё это — в одном feature-файле, ура товарищи!
На этом позвольте завершить данную обзорную статью.
Поддержите проект добрым словом/лайком/критикой (чат проекта в Gitter находится здесь), авторам это всегда приятно.