Разработка и сценарное тестирование с Vanessa-ADD. Отчетность Allure. Автоматизация запуска сценариев

Публикация № 1010127

Разработка - Практика программирования

Vanessa ADD Automation Driven Development Behavior BDD Сценарное тестирование

120
Формируем отчетность о результатах выполнения сценариев. Автоматизируем запуск.

 

Варианты автоматического запуска сценариев

Запуск через CLI платформы 1С

Файл настроек запуска bddRunner.epf

Запуск через Vanessa-Runner

Файл настроек запуска Vanessa-Runner

 

Отчетность Allure

Установка Allure 2

Выгрузка результатов выполнения сценариев в формат Allure

Работа из консоли

Тренд (история) в отчете Allure

Создание скриншотов

Произвольные атачменты в отчетах: файлы, двоичные данные и ссылки

 

 

 

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

 

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

Как и ранее, чтобы не перепечатывать примеры со скриншотов из публикации, Вам доступен репозиторий https://github.com/VladimirLitvinenko84/DevelopingAndTestingWithVanessa 

 

 

 

Варианты автоматического запуска сценариев

 

 

 

Запуск через CLI платформы 1С

 

Запуск консольной командой необходим для автоматизации выполнения сценарных тестов. Сформированную команду затем можно использовать в простейших планировщиках заданий (например в планировщике Windows) или встраивать её в сборочные линии серверов сборки (например Jenkins). Главное, чтобы механизм автозапуска позволял тест-клиенту взаимодействовать с рабочим столом операционной системы.

Как и любую другую внешнюю обработку bddRunner.epf можно открыть на выполнение используя ключ /Execute  командной строки 1С:Предприятия. Для этого у пользователя, под которым происходит запуск, также должна быть отключена защита от опасных действий. Как это сделать рассказано здесь: //uproptima.ru/public/974944/#Необходимые_права 

 

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

"C:\Program Files\1cv8\8.3.14.1450\bin\1cv8c.exe"  /TESTMANAGER /SHOST:1541\ut_autotest  /Execute "C:\Program Files (x86)\OneScript\lib\add\bddRunner.epf" /N "Администратор" /P ""

 

Но такая строка всё ещё будет бесполезна, для запуска сценариев. Обработка bddRunner.epf будет открыта на выполнение и в неё будут загружены настройки, которые мы задавали в ней в последний раз (или настройки по умолчанию, если она ещё ни разу не запускалась), но она не будет знать, что делать дальше. Для того чтобы запустить на выполнение сценарии, нам потребуется файл настроек. И путь к этому файлу нужно будет передать обработке bddRunnr.epr через специальный параметр командной строки:

/C"StartFeaturePlayer;workspaceRoot=C:\data\features;VBParams=C:\data\features\bddRunnerAutostartSettings.json"

 

Здесь ключ StartFeaturePlayer говорит, что сценарии необходимо загрузить для выполнения. Ключ workspaceRoot определяет каталог проекта. А ключ VBParams определяет путь к файлу с настройками запуска. Пример такого файла приведён ниже на скриншоте, а подробнее структура этого файла будет разобрана в следующем разделе публикации:

 

 

Все три приведённые выше ключа являются обязательными. Без задания ключа StartFeaturePlayer, настройки из файла, указанного в параметре VBParams вообще не будут прочитаны. Итоговая консольная команда для запуска будет выглядеть следующим образом:

"C:\Program Files\1cv8\8.3.14.1450\bin\1cv8c.exe"  /TESTMANAGER /SHOST:1541\ut_autotest  /Execute "C:\Program Files (x86)\OneScript\lib\add\bddRunner.epf" /N "Администратор" /P "" /C"StartFeaturePlayer;workspaceRoot=C:\data\features;VBParams=C:\data\features\bddRunnerAutostartSettings.json"

 

Результат её выполнения будет следующим:

 

 

 

 

Файл настроек запуска bddRunner.epf

 

Итак, для запуска из консоли нам требуется создавать файл с настройками запуска и указывать его в консольной команде как VBParams=<Путь к json-файлу>.

Множество примеров таких json-файлов настроек для Vanessa-ADD можно найти здесь https://github.com/silverbulleters/add/tree/master/tools/JSON, а для Vanessa-Automation (возможна специфика этого фреймоврка) здесь https://github.com/Pr-Mex/vanessa-automation/tree/develop/tools/JSON   

Есть однозначное соответствие между большинством из этих параметров и настройками, задаваемыми на вкладке "Сервис" и вкладке "Библиотеки" в Vanessa-ADD:

 

 

 

Но возможности, предоставляемые файлом настроек и запуском из консоли всё же больше, чем предоставляют интерактивные настройки. Описание большинства из параметров также можно найти по приведённым выше ссылкам на репозитории github. Повторим здесь описание наиболее важных из них, и на их примере рассмотрим правила указания параметров в зависимости от их типа данных.

При указании значений значений, являющихся путями к каталогам, допустимо использовать шаблоны подстановки $workspaceRoot, вместо которого будет подставляться значение ключа командной строки workspaseRoot, и $instrumentsRoot - каталог установки Vanessa-ADD.

 

"КаталогФич": "$workspaceRoot/features"   - задаёт абсолютный или относительный путь к каталогу с файлами сценариев, которые будут открываться на исполнение. Это аналог интерактивного выполнения команды Загрузить фичи → Загрузить файлы из каталога. При использовании в путях обратных слешей \ их нужно экранировать, указывая вместо одного слэша два \\

 

"КаталогиБиблиотек" - задаёт массив путей к библиотекам, которые после загрузки тест-менеджера также появятся на вкладке "Библиотеки". Массив в формате Json задаётся в квадратных скобках, элементы массива перечисляются через запятую.

 

"ВыполнитьСценарии" - булево. Задавать значение типа булево для bddRunner.epf можно как в виде литералов true / false, так и в виде строк "Истина" / "Ложь". Как уже было сказано выше, если мы хотим, чтобы сценарии после открытия bddRunner.epf загрузились на вкладку выполнения сценариев необходимо передавать в этот параметр Истину. Но также это приведёт к автоматическому старту выполнения сценариев после их загрузки.

 

"ЗакрытьTestClientПослеЗапускаСценариев" - булево. Определяет будет ли закрыто тестируемое приложение (тест-клиент), но не после запуска сценариев, как можно подумать исходя из названия параметра, а после выполнения всех сценариев.

"ЗавершитьРаботуСистемы" - булево. Определяет будет ли закрыт тест-менеджер после выполнения сценариев.

При автоматизации тестирования на сервере CI оба этих параметра "ЗакрытьTestClientПослеЗапускаСценариев" и "ЗавершитьРаботуСистемы" имеет смысл устанавливать в Истину. Ведь нам не нужно чтобы на сервере накапливались незакрытые сеансы 1С. Но например для случая отладки бывает смысл устанавливать эти параметры в Ложь, чтобы подключившись к серверу увидеть в каком состоянии находятся тест-менеджер и тест-клиент своими глазами.

 

"ДелатьСкриншотПриВозникновенииОшибки"  - булево. Определяет будет ли автоматически выполняться скриншот при возникновении ошибки. Крайне важный параметр для автоматизации тестирования. Без скриншота при возникновении ошибки мы будем иметь только тестовые логи выполнения сценариев и зачастую будет сложно или невозможно сразу понять в чём причина ошибки. Скриншоты часто позволяют экономить время и не прогонять повторно весь сценарий вручную, чтобы увидеть где возникла ошибка. Есть аналогичный параметр, который говорит о том, что нужно делать скриншот каждого окна. Но обычно в его установке нет необходимости и создание скриншотов каждого окна только замедлит выполнение сценариев.

Этот параметр не является независимым. Он лишь говорит, что скриншот нужно делать. А как именно его делать задают два следующих параметра:

"КаталогOutputСкриншоты": "$workspaceRoot/build/output/screenshots"  - определяет куда будут складываться скриншоты.

"КомандаСделатьСкриншот": "\"C:\\Program Files (x86)\\IrfanView\\i_view32.exe\" /capture=1 /convert="  - определяет консольную команду для создания скриншотов.

Тему создания скриншотов мы разберём отдельно ниже, когда будем рассматривать отчетность Allure.

 

"ДелатьОтчетВФорматеАллюр" - булево. Определяет необходимость формировать данные, которые затем фреймворк Allure сможет "перварить" в красивый отчёт HTML.

"КаталогOutputAllureБазовый": "$workspaceRoot/build/output/allure/results-vb-testing" - задаёт каталог для выгрузки json-файлов, содержащих данные для фреймворка Allure из которых впоследствии можно формировать отчет в  HTML.

 

"ДелатьЛогВыполненияСценариевВТекстовыйФайл" - булево. Позволяет указать системе, что необходимо вести онлайн-лог выполнения сценариев в текстовый файл. Это бывает полезно, чтобы например отследить зависшие сценарии или просто понимать, на каком этапе находится процесс. Ниже будет рассмотрено использование этой настройки на примере запуска сценарного тестирования через Vanessa-Runner. Применение Vanessa-Runner позволит автоматически выводить содержимое этого файла в консоль.

"ИмяФайлаЛогВыполненияСценариев": "$workspaceRoot/build/vanessaonline_testing.txt"  - задаёт соответствующий файл для ведения лога.

 

Следующие параметры соответствуют настройкам "Список исключаемых тэгов" и "Тэгов для запуска" на вкладке "Сервис". Они задаются как массивы строк:

 "СписокТеговОтбор": ["СценариТолькоСЭтимиТегами", "БудутВыполняться"]

 "СписокТеговИсключение":[ "Подготовка", "Видео",  "Черновик",  "ВРазработке"  ]

 

 

 

 

 

Запуск через Vanessa-Runner

 

Как мы видели выше, ручное формирование параметров запуска является проблематичным. Нам необходимо при каждом запуске прописывать путь к платформе, путь к обработке bddRunner.epf и ключ /TESTMANAGER.

Для упрощения запуска платформы 1С:Предприятия и управления из консоли различными составляющими платформы существует удобный инструмент - Vanessa-Runner, который также как и Vanessa-ADD может устанавливаться как одна из библиотек OneScript. Этот инструмент предоставляет удобные возможности для управления кластером серверов 1С через службу администрирования RAS, управления хранилищем, компиляции/декомпиляции файлов конфигурации и внешних обработок,  команды для запуска платформы 1С в различных режимах и т.д.

 

Как и в случае с большинством библиотек OneScript установка Vanessa-Runner может быть выполнена менеджером пакетов opm через команду  opm install vanessa-runner:

 

Представление о возможностях Vanessa-Runner можно получить вызвав справку по перечню доступных команд через runner help  (синоним - vanessa-runner help) или справку по конкретной команде этой утилиты через runner help <имя_команды> (синоним vanessa-runner help  <имя_команды>) :

 

Среди этих команд есть две важные для тестирования прикладных решений:

 

Получим справку по команде runner vanessa:

 

Параметр --vanessasettings  заменяет параметр VBParams, который мы указывали при запуске bddRunner.epf из командной строки без применения Vanessa-Runner. Через него мы будем передавать путь к json-файлу настроек для запуска bddRunner.epf.

 

Доступен параметр --workspace, определяющий каталог проекта и заменяющий параметр workspaceRoot, который мы задавали при использовании CLI платформы 1С. Если параметр --workspace не задавать, то он всё равно будет явно передаваться в команду запуска платформы 1С, но при этом будет автоматически устанавливаться в значение текущего каталога:

 

 

Рассмотрим, что происходит при выполнении команды

runner vanessa --workspace "features" --vanessasettings "features\bddRunnerSettings.json" --ibconnection /SHOST:1541\ut_autotest --db-user "Администратор" --db-pwd ""

 

Vanessa-Runner видит команду vanessa и понимает, что необходимо запустить Vanessa-ADD. Для этого она формирует нужную строку запуска платформы 1С и затем выполняет её:

1)  Она автоматически определяет путь к наиболее старшей версии платформы из установленных в системе и запускает платформу по этому пути. Этим поведением можно управлять через параметр --v8version.

2)  Также она автоматически подставляет путь ко внешней обработке bddRunner.epf. Если Vanessa-ADD установлена как библиотека OneScript в каталог OneScript/lib/add, то путь подставляемый по умолчанию подойдёт. Если же установка была произведена в другой каталог, то следует воспользоваться параметром --pathvanessa чтобы явно задать путь к bddRunner.epf.

3) Такие параметры как /TESTMANAGER , /DisableSturtupDialogs, /C"StartFeaturePlayer" подставляются в командную строку запуска платформы 1С автоматически.

4) Другие опции запуска получаются путем преобразования параметров Vanessa-Runner в параметры Vanessa-ADD или параметры тонкого клиента.

 

Параметр --additional - это то, что ранее мы передавали как значение параметра  /C. Так как для задания VBParams он нам больше не нужен, и ключ StartFeaturePlayer тоже подставляется автоматически, то в большинстве случаев запуска bddRunner.epf его не нужно будет указывать. Но при необходимости мы по прежнему можем передавать через него любые дополнительные параметры, например при использовании типовых конфигураций может оказаться удобен ключ "РежимОтладки".

Также рекомендую обратить внимание на параметр --v8version. Он позволяет автоматически подбирать заданную версию платформы, а не последнюю из доступных. Например, если в системе установлены 8.3.10.2466,  8.3.12.1529 и 8.3.14.1450, можно запустить версию 8.3.12.1529 вместо последней из доступных указав параметр --v8version 8.3.12

 

 

Крайне важной особенностью запуска Vanessa-ADD через Vanessa-Runner является возможность их взаимодействия через временный текстовый файл. Платформа 1С не умеет работать с потоками stdout и stderr (а значит и с cmd и ssh) в реальном времени. Чтобы узнать результат выполнения какой-либо операции нам приходится дожидаться её полного завершения. А Vanessa-Runner может получать информацию о ходе выполнения сценариев и/или дымовых тестов от Vanessa-ADD онлайн, не дожидаясь завершения тестирования. Это преимущество может показаться незначительным, до тех пор пока мы итак смотрим глазами на результат выполнения команд и на процесс работы тест-клиента и тест-менеджера. Но ценность вывода лога выполнения в stdout и stderr становится очевидна при запуске сценариев на CI-сервере, когда текстовый лог выполнения - это основа мониторинга состояния выполняемого приложения со стороны CI-сервера. 

 

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

"ДелатьЛогВыполненияСценариевВТекстовыйФайл": true,

"ИмяФайлаЛогВыполненияСценариев": "$workspaceRoot/vanessaonline.txt"

 

Посмотрим на процесс запуска и выполнения сценариев через Vanessa-Runner теперь. На протяжении всего хода выполнения сценариев мы видим прогресс и служебные сообщения в консоли:

 

 

 

 

 

 

Файл настроек запуска Vanessa-Runner

 

Помимо того, что утилита Vanessa-Runner может оперировать файлом с параметрами запуска Vanessa-ADD, она также может принимать свои собственные параметры в виде json-файла.  Это позволяет сократить длину консольной команды для запуска, что удобно, когда параметры командной строки при запуске меняются редко и при этом их достаточно много. А ведь это типичная ситуация в случае автоматического запуска сценарных и дымовых тестов.

Путь к этому файлу задаётся через специальный параметр --settings консольной команды runner (или её синонима vanessa-runner).

Файл позволяет задавать настройки по умолчанию в специальном блоке default. Для каждой отдельной команды Vanessa-Runner (таких как run, xunit, vanessa) могут быть заданы одноимённые блоки, где переопределяются настройки по умолчанию. То есть при выполнении конкретной команды берутся настройки по умолчанию, а затем дополняются и переопределяются настройками заданными для конкретной команды.

Возьмем например файл приведенный в репозитории на github:

https://github.com/silverbulleters/add/blob/38336a264557b235aabfa29e48345b880d08cecf/tools/JSON/vrunner.json

 

Согласно нему для всех команд кроме команд runner vanessa и runner xunit будет использоваться база данных по относительному пути build/ib. Но для команды runner xunit будет использоваться другая база из каталога build/ibservicexdd.

Для всех команд рабочим каталогом будет считаться текущий каталог. Но для команды runner vanessa рабочим каталогом (каталогом проекта) будет являться подкаталог features текущего каталога.

Таким образом преимуществом задания параметров в файле является не только сокращение консольных команд, но и возможность задать параметры сразу для многих команд Vanessa-Runner и использовать один файл для команд run, vanessa, xunit и так далее.

 

Поскольку сейчас мы планируем выполнять только команду runner vanessa, запускающую сценарное тестирование, то настройки можно задавать как в блоке default , так и в блоке vanessa и даже свободно перемещать между ними. На результат запуска это не повлияет. Но всё же правильно будет оставить параметр --vanessasettings в специфичном для команды runner vanessa блоке:

 

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

runner vanessa --settings features\VanessaRrunnerSettings.json

 

Несмотря на удобную возможность задать все параметры Vanessa-Runner в одном файле, иногда имеет смысл вынести ряд параметров из этого файла обратно в командную строку. Например, когда мы не хотим хранить параметры авторизации в текстовых файлах. Особенно это важно в случае, если файлы с параметрами запуска находятся под версионным контролем git или другой VCS, ведь в этом случае даже удалив пароли из файлов их можно будет найти в истории репозитория.

Если запуск сценарных тестов выполняется не под специально созданными временными пользователями с постоянно меняющимися паролями, то имеет смысл хранить параметры авторизации в более безопасном месте. Например при использовании Jenkins их можно задавать в специальном хранилище данных авторизации, а при исполнении задачи сборки/тестирования данные авторизации можно считывать из него и передавать в командную строку. В то время как большинство остальных неизменных параметров продолжат храниться в конфигурационном файле:

 

 

 

 

 

 

 

Отчетность Allure

 

 

Наиболее популярным и простым способом визуализации результатов выполнения сценариев в Vanessa-ADD является представление этих результатов в виде отчетности Allure. Allure - это универсальный фреймворк, пригодный для визуализации результатов тестирования продуктов, созданных на любых платформах и любых языках. Для ознакомпления с его возможностями рекомендую две публикации на habr.com:

 

https://habr.com/ru/company/jugru/blog/337386

https://habr.com/ru/company/sberbank/blog/359302

 

Официальная объемная документация на английском языке доступна по следующей ссылке:

https://docs.qameta.io/allure

 

 


Пара замечаний перед чтением раздела:

1)   Для всех примеров, связанных с отчетностью Allure, использовалась версия Vanessa-ADD 5.6.0. В версии 5.7.0 есть проблемы, которые на данный момент устранены только в ветке develop. Если вы используете версию 5.7.0, то это должна быть версия из ветки develop.

2)   Каталог исходных данных для отчетов Allure в примерах ниже по старой памяти назвал xml_for_allure. Хотя правильно было бы назвать его json_for_allure, так как сейчас данные для Allure 2 формируются в формате json. Исправления не делаю чтобы не переснимать множество скриншотов.

3)   Allure - широко распространенный фреймворк для отображения результатов тестирования. Поэтому если у Вас возникнут вопросы "а что значит бомбочка в отчете?" или "как мне поставить плагин Allure для Jenkins?" не обязательно ждать ответа от 1С-ников. Хотя можно и ждать )) В сети много информации, содержащей ответы на эти и многие другие вопросы. На помощь придут не только форум https://xdd.silverbulleters.org или телеграм-канал https://t.me/testspro1c, но и https://stackoverflow.com и официальная документация и https://habr.com


 

Установка Allure 2

 

 

Для тех, кто не знаком с концепцией релизов Open Source проектов на github установка Allure может превратиться в настоящий квест )) Многие такие проекты не имеют официального сайта со специальным разделом для скачивания дистрибутива. В документации по Allure приводится инструкция по установке из командной строки используя установщик Scoop: https://docs.qameta.io/allure/#_installing_a_commandline

Но на самом деле всё можно сделать намного проще. У большинства Open Source проектов есть свой раздел на github.com. И, помимо возможностей загрузить исходный код и самостоятельно собрать из него исполняемые файлы или клонировать себе репозиторий, у многих проектов есть раздел с релизами, где можно скачать уже собранный и готовый для использования проект. Таким образом, например, можно скачать и релиз Vanessa-ADD 5.6.0, использовавшийся для демонстрации примеров из этого раздела: https://github.com/silverbulleters/add/releases

 

У фреймворка Allure есть два репозитория на github. Один для первой версии этого фреймворка https://github.com/allure-framework/allure1. Он устарел и использовать его не имеет смысла. Раздел с релизами для актуальной второй версии фреймворка доступен по ссылке:

https://github.com/allure-framework/allure2/releases

 

На этой странице есть ссылка для загрузки zip-архива с последней версией фреймворка, который подходит для операционной системы Windows.

 

 

После скачивания и распаковки этого архива полный путь к подкаталогу bin, где хранится исполняемый файл allure.bat, необходимо добавить в системную переменную PATH:

 

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

Если всё сделано правильно, то при определении из консоли месторасположения файла, отвечающего за команду allure, мы получим наш путь:

 

На этом установка Allure 2 закончена.

 

 

 

Выгрузка результатов выполнения сценариев в формат Allure

 

Общий алгоритм работы с Allure следующий:

  • Внешняя по отношению к нему программа (в нашем случае это Vanessa-ADD) должна подготовить JSON-файлы со структурированными данными, пригодными к обработке фреймворком Allure. Эти файлы благодаря формату JSON являются чловекочитаемыми, однако понять их содержимое не намного проще, чем любые текстовые логи. Они не предназначены для анализа человеком. Располагаться эти файлы могут как в одном каталоге, так и в любом количестве разных каталогов.
  • Фреймворку Allure посылается команда сгенерировать из JSON-файлов отчет в формате HTML. Входными данными для этой команды являются все каталоги с исходными JSON-файлами. Эти каталоги также могут содержать подкаталоги history, для того чтобы в HTML-отчете можно было видеть не только последние результаты, но и динамику выполнения. Выходными данными (результатом выполнения команды генерации отчета) является каталог с отчетом в формате HTML и необходимыми для его отображения файлами (картинками, js-скриптами и т.д).

Команда генерации может быть вызвана либо из консоли (allure generate) либо её можно доверить специализированным инструментам на сервере сборок.

  • Результат генерации HTML можно либо сделать постоянно доступным, настроив веб-сервер (например Apache или IIS) на чтение каталога с результатами генерации HTML-отчета, либо открывать самостоятельно через встроенный во фреймворк Allure веб-сервер. Для второго варианта во фреймворке Allure предусмотрена специальная команда allure open.

 

В данной публикации мы не рассматриваем работу с Apache или Jenkins - это отдельная большая тема, которая потребовала бы публикации совсем другого объема. Поэтому сейчас мы будем пользоваться консольными командами, которые нам предоставляет сам фреймворк Allure, и стандартными возможностями, предоставляемыми Vanessa-ADD.

 

Посмотрим сначала на пример создания отчета применяя только графический интерфейс Vanessa-ADD. Для генерации отчета Allure на вкладке сервис предусмотрены следующие настройки:

1)  Флаг "Формировать данные для отчета Allure". Его установка приведёт к генерации JSON-файлов из которых затем можно сформировать отчет в виде HTML.

2)  Поле "Временный каталог файлов результатов Allure". Именно в этот каталог будут складываться файлы, хранящие результаты тестирования.

3)  Флаг "Отображать отчет Allure в браузере". Установка этого флага приведёт к тому, что Vanessa-ADD самостоятельно вызовет консольные команды формирования HTML-отчета из JSON-файлов и затем запустит встроенный в Allure веб-сервер для отображения этого HTML-отчета.

 

 

Намеренно внесём ошибку в любой из наших сценариев, чтобы в отчёте мы смогли увидеть хотя бы один упавший тест. И запустим выполнение сценариев с указанными выше настройками. После выполнения сценариев Vanessa-ADD самостоятельно выполняет консольную команду allure open и тем самым открывает сформированный отчет Allure. Успешно пройденные тесты выделяются зелёным. Упавшие - красным. Пропущенные в результате наличия нереализованных шагов - сиреневым. Перейдя в раздел Suites мы получаем возможность фильтровать результаты по статусам, например отключив отображение успешно выполненных сценариев.

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

 

 

 

 

 

Работа из консоли

 

Выше мы видели, что для любой настройки, выполняемой через графический интерфейс Vanessa-ADD, есть соответствующая настройка, которую можно указать в json-файле для запуска из консоли. В разделе, посвященном файлу настроек запуска bddRunner.epf, уже были рассмотрены настройки, необходимые для формирования отчетности Allure. Добавим теперь их в наш файл:

 

 

Файл настроек для Vanessa-Runner не нуждается в изменениях. Он по прежнему должен ссылаться на файл настроек для bddRunner.epf в параметре --vanessasettings:

 

 

В результате выполнения команды runner --settings VanessaRunnerSettings.json не будет автоматически открыт HTML-отчет. Но мы получим данные для его формирования в заданном каталоге:

 

 

Сформированные json-файлы выглядят следующим образом:

 

 

То, что отчет HTML не генерируется сразу при работе из консоли, это преимущество, а не недостаток. Потому что перед его формированием можно выполнить много различных тестов, например дымовые, сценарные тесты под разными пользователями или в разных базах. Разместить результаты в разных каталогах. И только потом подать все эти каталоги на вход команды allure generate, которая сформирует консолидированный HTML-отчет для всех результатов. Это особенно удобно при автоматизации процесса тестирования на сервере сборок.

 

Для формирования отчета из исходных json-файлов необходимо выполнить команду

allure generate <исходный каталог 1> <исходный каталог 2> ….    -o  <каталог для html-отчета>

 

При этом если в каталоге для html-отчета уже есть файлы, то эта команда выдаст ошибку, предупредив о необходимости использовать ключ -c или --clean для предварительной очистки каталога. Чтобы не чистить каталог самостоятельно задействуем и этот ключ.

Сформированный HTML-отчет затем можно попытаться открыть в браузере самостоятельно. В Mozilla Firefox это сделать получится. Но например Google Chrome не отобразит большую часть данных из-за настроек безопасности. Универсальным способом открыть отчет является запуск web-сервера и открытие отчета через него. Allure имеет простейший встроенный веб-сервер. Запустить этот сервер и сразу же открыть отчет можно всего одной командой:

allure open <каталок с html-отчетом>

 

Нужно понимать, что это "локальная" команда, которая меняет порт веб-сервера при каждом запуске. Она не подходит для того, чтобы обеспечить постоянную доступность отчета с других компьютеров. Для постоянной доступности и обновления результатов тестирования лучше настроить Apache или IIS на работу с каталогом, содержащим HTML-отчет и с отключенным кэшированием (чтобы результаты действительно были актуальны и обновлялись при перезагрузки страницы с отчетом).

 

Итак, сейчас нам потребуются две команды:

           allure generate --clean C:\data\allure\xml_for_allure -o C:\data\allure\html_report

           allure open C:\data\allure\html_report

 

Выполнив их получим следующий результат:

 

 

 

 

 

Тренд (история) в отчете Allure

 

 

Тренд - это отдельный блок в отчетности Allure, отображающий историю выполнения тестов. Сейчас, сколько бы мы не выполняли генерацию отчетности, блок с трендом будет пуст:

 

Файлы, необходимые для заполнения этого блока, создаются при генерации html-отчета. Allure сохраняет в специальном подкаталоге history в каталоге с HTML-отчетом:

 

 

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

 

То есть, прежде чем очищать каталог с HTML-отчетом вручную или через allure generate с ключем --clean, нам необходимо забирать каталог history из него и перемещать его в один из каталогов, который мы будем подавать на вход команде allure generate:

 

Теперь выполнив сценарии ещё раз и сформировав отчет мы увидим заполненный блок Trend:

 

 

 

 

 

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

 

 

Очистим каталог с json-файлами и ранее сохраненной историей, являющийся входящим для команды allure generate:

 

Возьмём последнюю актуальную историю из каталога с HTML-отчетом:

 

 

Переместим history в каталог, в который будем складывать результаты выполнения сценариев:

 

 

Выполним команды

vanessa-runner vanessa --settings features\VanessaRrunnerSettings.json

allure generate --clean allure\xml_for_allure -o allure\html_report

allure open allure\html_report

 

Теперь мы видим, что тренд отображает динамику по результатам последних трёх прогонов тестов:

 

 

Здесь стоит повторить то, что уже было написано в первой публикации этого цикла. Тренд - это одна из самых эффектных визуализаций Allure. Но на практике далеко не самая полезная из них.

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

 

 

 

В этом случае гораздо большую пользу будут приносить фильтры по статусам в разделе Suites:

 

 

 

 

Плагины Allure для серверов сборок дают больше преимуществ. Например в случае с Jenkins блок Trend хорош тем, что содержит не только график с историей, но и позволяет переходить к соответствующим версиям отчетов:

 

 

Также при применении таких инструментов, как Jenkins, тренд формируется проще. Больше не нужно вручную или отдельными консольными командами выполнять очистку каталога с HTML-отчетом и перенос каталога history из него. Все эти действия выполняются автоматически всего одной командой. Команда для Jenkins, которая выполняет все необходимые действия, может выглядеть следующим образом:

 

 

 

 

 

 

Создание скриншотов

 

 

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

 

В расшифровке мы также могли увидеть, на каком шаге произошла ошибка:

 

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

 

Например мы забыли указать цену в заказе клиента и потом попытались провести его, ожидая что вместо окна документа "Заказ клиента" откроется другое окно  (например ранее открытая форма списков заказов). В этом случае отчет о выполнении сценария сообщит нам, что ошибка зафиксирована на шаге, проверяющем, что открыта форма списка заказов. Но настоящая причина в том, что не было закрыто окно нового заказа при его проведении. При этом даже саму кнопку "Провести и закрыть" в тест-клиенте нажать удалось. А окно в свою очередь не закрылось из-за ошибок в заполнении документа и появления ошибки уже после нажатия на кнопку "Провести и закрыть".

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

 

Действительно полезной функцией в этом случае является возможность снятия скриншотов в момент возникновения ошибки и их автоматическое прикрепление к отчету. И такая возможность есть.

Для создания скриншотов Vanessa-ADD использует внешние инструменты. Для этого она может взаимодействовать с двумя приложениями: Nircmd или IrfanView. Команды, которые необходимо использовать как для Nircmd, так и для InfranView описаны в F.A.Q. по фреймворку:

 

https://github.com/silverbulleters/add/blob/fbda12379141e7e6beeda05cb4f8ebd86b9b0f77/F.A.Q.MD

 

 

Настроим снятие скриншотов на примере Nircmd.  Загрузить 32-битную утилиту можно с официального сайта http://www.nirsoft.net/utils/nircmd.html  по ссылке http://www.nirsoft.net/utils/nircmd.zip

Подобно тому, как мы делали с фреймворком Allure, добавим путь к утилите в переменную PATH и убедимся, что система её находит выполнив команду where nircmd:

 

 

После этого необходимо перезапустить консоль, из которой мы собираемся вызывать запуск сценариев, или сеанс тест-менеджера, если выполняем запуск интерактивно. Иначе они не получат новое значение переменной PATH и при начале выполнения сценариев с нужными нам настройками для создания скриншотов просто произойдёт зависание с выводом ошибки в окно сообщений тест-менеджера:

 

 

Указать необходимость делать скриншот и команду для его снятия можно в графическом интерфейсе Vanessa-ADD. Но мы уже хорошо умеем работать с консолью )) Поэтому сразу перейдём к конфигурационному файлу и добавим в него необходимые для этого строки:

 

 

Выполним команду  vanessa-runner vanessa --settings features\VanessaRrunnerSettings.json

Результатом будут скриншоты окон, снятые в момент возникновения ошибок. И часть файлов, содержащих исходные данные для генерации HTML-отчета, будут ссылаться на эти скриншоты:

 

 

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

 

 

Важно! При автоматизации выполнения сценариев на серверах сборок необходимо обеспечить возможность взаимодействия исполняющей службы (узла сервера сборок) с графической подсистемой операционной системы. Иначе про скриншоты можно будет забыть и вместо них мы будем видеть чёрные квадраты и прямоугольники. Добиться взамодействия этого можно по разному. В случае применения Jenkins одним из простейших способов является интерактивный запуск узла-сборщика и следование инструкции https://support.smartbear.com/testcomplete/docs/testing-with/running/via-rdp/keeping-computer-unlocked.html. Но есть и другие способы вплоть до замыкания двух сеансов RDP друг на друга, применения VNC и прочие технические хитрости.

 

Пример обсуждения, в котором рассматривались различные подходы можно прочитать здесь: https://t.me/testspro1c/2617

 

 

 

 

Произвольные атачменты в отчетах: файлы, двоичные данные и ссылки

 

 

Итак, мы научились прикреплять скриншот об ошибке к нашему отчету Allure. А что если мы хотим прикрепить данные не только к ошибочному шагу? Что если мы хотим прикрепить произвольные данные после выполнения произвольного шага? Думаю что полезность этих возможностей не вызывает сомнения. Так как же сделать это?

 

Здесь нам вновь поможет информация о внутреннем устройстве Vanessa-ADD. За работу с отчетом Allure отвечает плагин  add\plugins\Аллюр2Отчет.epf. Если открыть модуль формы этой обработки, то в нем можно обнаружить два нужных нам метода:

 

Методы похожи. Оба из них прикрепляют двоичные данные к отчету Allure сохраняя их в файл. Но метод ДобавитьФайлКТекущемуШагу получает эти двоичные данные из заданного файла, а не берёт произвольные.

 

Попробуем подключить с помощью них к шагу текстовый файл.

Можно было бы подумать, что нам поможет шаг выполнения произвольного кода, вызывающий этот метод. Например такой:

 

Он действительно сработает, и похожий шаг понадобится нам дальше, когда мы будем прикреплять графический файл. Но сейчас есть способ проще. Если из конфигуратора мы выполним поиск модулей в каталоге с библиотечными шагами OneScript\lib\add\features\libraries, содержащих текст "ДобавитьФайлКТекущемуШагу",  то сможем найти обработку setlabelsallure.epf, содержащую такие замечательные шаги как

 

И Я подключаю файл '$workspaceRoot/fixtures/file.xls' к шагу 'id'

и

И Я устанавливаю ссылку 'http://test/issue' с именем 'SUP-222'"

 

Если взглянуть на методы, реализующие эти шаги

 

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

 

И Я подключаю файл '$workspaceRoot/fixtures/file.xls' к шагу

 

 

Причина таких сложностей в поиске этих шагов заключается в том, что при объявлении этих шагов не заполнены последние параметры метода Ванесса.ДобавитьШагВМассивТестов. Из публикации по созданию собственных шагов //uproptima.ru/public/992320 мы знаем, что это ведёт к невозможности увидеть их в форме выбора библиотечных шагов. Тем не менее, полученная информация о внутреннем устройстве этих шагов и реализующих их методов поможет нам дальше:

 

Несколько примеров применения этих и похожих библиотечных шагов можно найти в фича-файле, описывающем функционал обработки setlabelsallure.epf  

https://github.com/silverbulleters/add/blob/master/features/libraries/manually/setlabelsallure.feature :

 

 

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

И Я подключаю файл '$workspaceRoot/allure/ПроизвольныйФайл.txt' к шагу

И Я устанавливаю ссылку "//uproptima.ru/public/1010127" с именем "Публикация с секретными возможностями Vanessa-ADD"

 

 

Загрузим один этот сценарий в bddRunner.epf и убедимся, что шаги корректно связались с реализующими их обработками:

 

 

Запустим наши команды по выполнению сценариев, генерации и открытию отчета Allure:

vanessa-runner vanessa --settings features\VanessaRrunnerSettings.json

allure generate --clean allure\xml_for_allure -o allure\html_report

allure open allure\html_report

 

Теперь можно увидеть, что нам стал доступен раздел Links, где есть нужная нам ссылка:

 

 

Также в отчете о выполнении сценариев появился новый шаг с прикрепленным к нему файлом. Файл фигурирует как параметр шага, который можно развернуть и сразу увидеть содержимое файла. Для того, чтобы содержимое файла можно было просмотреть прямо в отчете Allure, а не просто скачав его по ссылке, текстовое содержимое файла должно быть в  кодировке UTF-8. Если кодировка будет другой, то русские буквы будут отображаться некорректно и для просмотра файла его придется предварительно скачать нажав значок дискеты:

 


 

Прикрепить к шагу можно не только файл с текстовым содержимым (txt, json, xml) , но и например бинарный файл или картинку :

 

Существующий шаг встроенной библиотеки, как мы видели из кода реализующего его метода, определяет тип файла для отчета Allure исходя из его расширения. Но тип "jpg" не является валидным для Allure. Получив тип "jpg" фреймворк не в состоянии понять, что этот файл следует отобразить не как бинарные данные, а как изображение:

 

 

 

Чтобы передать правильный тип такого файла можно написать собственный шаг по образцу типового. Но можно воспользоваться и шагом исполнения произвольного кода. Передадим в метод ДобавитьФайлКТекущемуШагу описание типа, которое Allure сможет корректно обработать:

    И затем я выполняю код встроенного языка

        |' ПутьКФайлу = "C:\data\allure\ПроизвольныйГрафическийФайл.jpg";    '|

        |' ПлагинАллюра = Ванесса.Плагин("Аллюр2Отчет");                     '|

        |' ПлагинАллюра.ДобавитьФайлКТекущемуШагу(ПутьКФайлу, "image/jpeg"); '|

   

 

Снова выполнив сценарии и сгенерировав отчет, мы увидим, что теперь  Allure корректно отображает подключенное изображение:

 

 

 

 

 

Что дальше?

 

На этом цикл публикаций, посвященных сценарному тестированию и BDD заканчивается. Но возможности Vanessa-ADD и параллельного проекта Vanessa-Automation не ограничиваются тем, что мы рассмотрели в этих пяти публикациях.

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

  • Возможности автоматической генерации инструкций в HTML и видео-инструкций.
  • Возможность подключить SikuliX для выхода за пределы платформы 1С, для чего будет достаточно шагов встроенной библиотеки.
  • Дымовое тестирование с помощью вошедшего в состав фреймворка xUnitFor1C.
  • Разработка сборочной линии на Jenkins, Gitlab CI или другом сервере сборок, ведь автоматизация тестирования и CI/CD идут рука об руку.
  • Возможность поучаствовать в развитии фреймворков и утилит. Проекты являются открытыми для контрибьютинга и Вы можете принять участие в их разработке или тестировании.
  • И ещё многое другое.

 

Для того, чтобы быть в курсе последних событий и новых возможностей фреймворков рекомендую присоединиться к каналам в Telegram:

https://t.me/testspro1c 

https://t.me/silvernation

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

 

 

 

 

120

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Pr-Mex 124 26.02.19 11:07 Сейчас в теме
2. Meteorage 17 26.02.19 11:34 Сейчас в теме
Отличная статья! Мне бы эту статью да года полтора назад, где я на предприятии продвигал идею про BDD и CI/CD. Все подробно написано. Респект.
3. smirnov.es 16 26.02.19 13:05 Сейчас в теме
Отличная статья. Надеюсь на продолжение
4. Viktor_Ermakov 26.02.19 13:49 Сейчас в теме
Спасибо за отличную работу!
5. artbear 1159 26.02.19 13:56 Сейчас в теме
(0) Отличная статья. Очередное большущее спасибо за популяризацию тестирования и инструментов от Ванесса.АДД.

Добавь в статью, что для ванесса-раннер можно в текущий каталог положить спец. файл env.json c необходимыми настройками и тогда можно не указывать путь к файлу настройу, т.е. не задавать параметр --settings

Такой файл удобно положить в корень гит-репозитория своего проекта и потом легко и просто использовать ванесса-раннер.
Vladimir Litvinenko; +1 Ответить
6. Vladimir Litvinenko 1823 26.02.19 14:24 Сейчас в теме
(5) Спасибо за дополнение. Добавлю скоро в публикацию. Надо будет ещё добавить ссылку на https://github.com/silverbulleters/vanessa-runner, где описан приоритет поиска и установки параметров для запуска Vanessa-Runner.
7. valentinko 141 26.02.19 18:20 Сейчас в теме
Спасибо за статью. Полезно. Вопрос к автору: после генерации отчетов, есть все данные, кроме скринов ошибок. При том, что сами скриншоты делаются, однако как вложения - не подтягиваются и не отображаются в самом аллюре.
8. Vladimir Litvinenko 1823 26.02.19 19:05 Сейчас в теме
(7) С таким поведением не сталкивался.

Думаю здесь нужны все условия для воспроизведения ошибки, если она стабильно у Вас воспроизводится.
Версия Allure, версия Vanessa-ADD/Vanessa-Automation, json-файл с настройками для bddRunner.epf и так далее. Исходные json-файлы для отчёта Allure, чтобы увидеть, есть ли в них информация о том, что скриншот должен быть присоединён.
19. for_sale 796 18.08.19 19:33 Сейчас в теме
(8)
Владимир, огромное спасибо за статьи!

Если можно - вопрос: можно ли как-то переиспользовать сценарии? У меня продукт для УТ и УНФ, в основном сценарии совпадают, но много всяких кнопок, которые называются по-разному и прочих мелочей, не позволяющих использовать один сценарий для обеих конфигураций. Но при этом 95% (если не 99%) текстов сценариев - одинаковые. Пока что решаю проблему копированием сценариев, но как и любое копирование, это всё сложнее и сложнее поддерживать. Есть ли возможность написать что-то вроде:

Если ЭтоУТ Тогда
Я нажимаю на кнопку "УТ"
Иначе
Я нажимаю на кнопку "УНФ"

Если где-то об этом уже написано - буду признателен за ссылку.
20. Pr-Mex 124 18.08.19 22:18 Сейчас в теме
(19)Да, вы можете использовать условия для этого.
Например вы можете задать глобальную переменную и тогда сценарий будет выглядеть так
Если "$$ЭтоУТ$$" Тогда
Я нажимаю на кнопку "УТ"
Иначе
Я нажимаю на кнопку "УНФ"
for_sale; +1 Ответить
21. for_sale 796 18.08.19 23:00 Сейчас в теме
(20)
Большое спасибо за ответ!
Глобальная переменная - это переменная в конфигурации? Т.е. её нужно задать в конфигураторе? Или же имеются в виду какие-то глобальные переменные в контексте Ванессы? Если да, то подскажите, пожалуйста, как её задать?
22. Pr-Mex 124 19.08.19 09:39 Сейчас в теме
(21)
В контексте Ванессы.
Например так:
Дано Я запоминаю значение выражения "Истина" в переменную "ЭтоУТ" глобально
for_sale; +1 Ответить
23. for_sale 796 19.08.19 11:25 Сейчас в теме
9. jaroslav.h 151 27.02.19 00:01 Сейчас в теме
Много трудов прикладают люди для разработки данного решения, но у меня мАленький вопрос.
Кроме самих разработчиков данного решения, кто то использует ещё (не просто установил, а в реальных условиях, в реальных задачах)?
Кто то разобрался с этим?

Есть прмеры (историй) реального использования, кроме разработчиков, на данном сайте или в нете?!
10. Vladimir Litvinenko 1823 27.02.19 00:48 Сейчас в теме
Ответ на этот вопрос достаточно легко найти в поисковиках, Инфостарте, а в последнее время даже на ИТС.
Извиняюсь за переадресацию, вместо прямых ссылок, но это действительно так. Если поищете и действительно не найдёте - напишите, сделаю подборку ссылок )) А лучше заходите в канал https://t.me/testspro1c

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

Это не зависит от платформы и языка. Вот только сегодня презентацию с TeamLead Conf выкладывали не тему "тестировать или не тестировать": https://t.me/TeamLeadTalks/33311
11. vlad.frost 186 27.02.19 08:33 Сейчас в теме
Отличная демонстрация того, как vanessa-runner инкапсулирует сложность платформенного CLI. А ведь vanessa-runner ещё умеет и переменные окружения использовать - полезный навык если вы строите свою CI/CD.
13. tsukanov 57 27.02.19 13:55 Сейчас в теме
(11) Не понял каким образом он инкапсулирует сложность. Что API платформы изучать, что API раннера.

Вот буквально утром накидал такой скрипт на повершеле:
$1CPath = "C:\Program Files\1cv8\common\1cestart.exe"
$ArgList = "ENTERPRISE",
           "/F C:\Users\user\Documents\TestBase",
           "/N Administrator",
           "/P `"`"" ,
           "/TESTMANAGER",
           "/Execute `"C:\git\work\vanessa-erp-test\vanessa-automation-single.epf`"",
           "/C`"StartFeaturePlayer;VBParams=C:\git\work\vanessa-erp-test\AutostartSettings.json`""

Start-Process $1CPath -ArgumentList $ArgList
Показать


Чем подобный скрипт будет хуже использования раннера конкретно для этой задачи? Какие грабли я упускаю?
Pr-Mex; grumagargler; +2 Ответить
12. Shmell 257 28.02.19 07:03 Сейчас в теме
Большая работа проделана! Спасибо!
14. kuzyara 812 01.03.19 08:04 Сейчас в теме
15. Vladimir Litvinenko 1823 01.03.19 13:28 Сейчас в теме
(14) Возможно через какое-то время, если будет заслуживающая этого информация.

По Jenkins нет дефицита материалов. Есть хорошие курсы, даже в открытом доступе. Есть курсы и книги от "Серебряной Пули". Повторять их содержание было бы не вполне корректно и боюсь было бы больше похоже на плагиат )) На основе имеющихся материалов вполне можно разработать CI и даже CD для своего проекта. В общем информации много, она систематизирована и источники известны. Если будет какая-то особенная информация, то будет повод сделать публикацию.

Целью этих публикаций было закрыть дефицит информации по Vanessa-ADD, точнее той её части, что относится к сценарному тестированию и BDD. И систематизировать имеющуюся информацию, которую приходилось собирать по кусочкам по форумам, чатам и гитхабу. Более масштабных целей пока не было.

Ещё в последнее время появилась информация, что для решений на 1С успешно используется не только Jenkins, но и Gitlab CI.
16. sapervodichka 1880 11.06.19 12:14 Сейчас в теме
По быстрому можно так протестировать https://infostart.ru/public/1056811/
17. ms-des 19.06.19 16:31 Сейчас в теме
Спасибо за статью!
Возникла проблема, несколько раз выполнен тест
runner --settings VanessaRunnerSettings.json

Сформировались 4 файла json, делаю
allure generate ...
allure open ...


Но в браузере отображается только один тест кейс. В чем может быть проблема?
Прикрепленные файлы:
18. ms-des 19.06.19 17:47 Сейчас в теме
(17) разобрался, отображается количество уникальных тестов
Оставьте свое сообщение

См. также

Vanessa Automation + СППР 73

Статья Программист Нет файла v8 Бесплатно (free) Vanessa Automation СППР

Vanessa Automation. Использование автоматизированного тестирования в СППР.

07.11.2019    2478    SvVik    12       

Агрегатные функции СКД, о которых мало кто знает 341

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    12950    ids79    44       

Обмен данными. Консистентность vs Многопоточность 25

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Интеграция

Рассмотрим теоретические основы обмена данными. Какие бывают обмены, какие гарантии при этом даются, зачем идти на компромиссы и что при этом может пойти не так. Есть ли идеальная схема?

03.09.2019    4074    m-rv    1       

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив 253

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    13977    ids79    30       

Подсистема "Варианты отчетов". Используете ли Вы ее правильно? 215

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Работа с интерфейсом БСП (Библиотека стандартных подсистем)

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    16837    YPermitin    49       

Выгрузка документа по условию 5

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    5941    m-rv    2       

Как настроить правильную техподдержку (helpdesk, service desk на коленке) 38

Статья Программист Бизнес-аналитик Руководитель проекта Нет файла v8 УУ Управление взаимоотношениями с клиентами (СRM) Документооборот и делопроизводство Монитор заказов Учет рабочего времени Бесплатно (free) Управление услугами и сервисом

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

24.04.2019    8148    siddy    0       

Как прикрутить ГУИД к регистру сведений 23

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8 Разработка

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

16.04.2019    8587    m-rv    16       

Копирование числовых ячеек из 1С в Excel 26

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Загрузка и выгрузка в Excel Администрирование данных 1С

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

15.01.2019    11543    itriot11    21       

Универсальные функции ЗУП 3.1 / ЗКГУ 3.1, которые помогут в разработке 485

Статья Программист Нет файла v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ Зарплата Управление персоналом (HRM) Бесплатно (free) Универсальные функции

В статье размещен список стандартных процедур и функций с примерами, которые могут помочь при разработке (доработке) конфигураций Зарплата и управление персоналом ред. 3.1 и Зарплата и кадры государственного учреждения 3.1. Иногда бывает довольно сложно правильно получить данные или долго, поэтому лучшим вариантом будет использование стандартных процедур. Буду очень признателен, если Вы поделитесь своим опытом и предложите свои варианты стандартных процедур которые помогают в работе. Или предложите, как дополнить имеющиеся процедуры.

14.11.2018    35403    GeterX    93       

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С 127

Статья Программист Нет файла v8 v8::blocking 1cv8.cf Бесплатно (free) Математика и алгоритмы Практика программирования

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    22210    ids79    40       

Git + 1С. Часть 1. Как подключиться к команде разработки и начать использовать Git 277

Статья Системный администратор Программист Нет файла v8 1cv8.cf Бесплатно (free) Инструментарий разработчика Управление проектом

Первая статья из цикла инструкций по работе с Git в 1С-разработке. Рассмотрим, как настроить рабочее место, как получить свою "копию" проекта для разработки и приступить к полезным действиям. Все примеры будут изложены в рамках трёх практических кейсов: 1. Моя команда дорабатывает типовую конфигурацию, использует приватный репозиторий на BitBucket, в котором версионируются внешние отчеты/обработки, расширения конфигураций и правила обмена; 2. Я участвую в стартап-команде, которая разрабатывает свою конфигурацию с использованием Git и GitLab; 3. Я принимаю участие в развитии OpenSource-продукта на GitHub как заинтересованный разработчик (контрибьютор).

18.10.2018    36746    stas_ganiev    72       

Вспомогательные инструкции в коде 1С 105

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    21498    tormozit    100       

Из Excel в 1С запросом 33

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

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

14.08.2018    14219    m-rv    5       

Повышаем эффективность разработки правил обмена 124

Статья Программист Нет файла v8 КД ОС Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    20151    olegtymko    47       

Как сделать запрос на изменение данных 75

Статья Программист Нет файла v8 v8::Запросы 1cv8.cf Бесплатно (free) Практика программирования

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    22092    m-rv    21       

Строим графы средствами 1С (без GraphViz) 43

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования

Множество статей на Инфостарте описывают, как работать с компонентой GraphViz, чтобы построить ориентированный граф. Но практически нет материалов, как работать с такими графами средствами 1С. Сегодня я расскажу, как красиво строить графы с минимальным пересечением. Нам этот метод пригодился для отрисовки алгоритмов в БИТ.Финансе, т.к. типовой механизм не устраивал. Еще это может быть полезно для визуализации различных зависимостей: расчета себестоимости, графы аффилированности компаний и т.д. Надеюсь, эта статья поможет сделать мир 1С красивее и гармоничней:) Итак, поехали...

23.05.2018    17882    slozhenikin_com    19       

Распределение расходов пропорционально продажам 9

Статья Программист Пользователь Нет файла v8 v8::ОУ УТ10 УУ Финансовый учет и бюджетирование (FRP) Учет доходов и расходов Бесплатно (free) Практика программирования

Финансовая модель. Распределение административных расходов по подразделениям пропорционально продажам за месяц. Дополнительные реквизиты против бизнес-процессов!

13.05.2018    11992    Rustig    9       

Универсальный обмен между идентичными конфигурациями через REST интерфейс OData. Часть І: Справочники 96

Статья Программист Нет файла v8 Бесплатно (free) Перенос данных из 1C8 в 1C8

Сейчас все чаще интеграции различных конфигураций проектируются через HTTP-сервисы - они и работают быстрее, и "войти" в режим отладки гораздо проще, тем самым обойдя "черный ящик" универсального обмена через xml, например. Более года назад я начал работать в компании, в которой разработчики работали с конфигурациями 1С в режиме совместимости еще 8.2.16 (менять режим совместимости в типичных базах мы не хотели) - а как Вы наверное знаете, если интересовались HTTP-сервисами в 1С, их использование в режиме совместимости 8.3.4 и ниже недопустимо - и здесь я уже не надеялся на разработку и использование HTTP-сервисов. Но позже меня заинтересовал такой "сервис" как REST интерфейс OData, так как его можно использовать не меняя режим совместимости конфигурации - именно он и стал для меня идеальным вариантом решения "нетривиальных" задач.

11.05.2018    16925    V.Stavinsky    11       

Минимализмы 3 355

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    37060    ildarovich    44       

Этюды по программированию. Взаимодействие с Microsoft Word 109

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования

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

11.12.2017    26511    milkers    23       

Метод формирования движений в типовых регистрах нетиповыми регистраторами 31

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

Вариант решения задач с проведением по типовым регистрам нетиповыми регистраторами. Зачем - чтобы при сравнении конфигурации не обращать внимание на свойства регистров и исключить вероятность допущения горькой оплошности при обновлении информационных баз, заменив типы регистраторов основной конфигурации типами конфигурации поставщика. Для программных продуктов, имеющих в своем составе метаданных документ "Корректировка регистров"("Корректировка записей регистров").

05.12.2017    21950    itriot11    34       

1С: Конвертация данных 3. Инструкции и примеры. EnterpriseData (универсальный формат обмена) 737

Статья Программист Нет файла v8 КД Бесплатно (free) Перенос данных из 1C8 в 1C8 Практика программирования Обмен через XML

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

19.11.2017    142716    MaxS    251       

Обзор имеющихся библиотек OneScript 300

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) OneScript

Экосистема OneScript активно развивается. Количество пользователей данного интерпретатора и имеющихся библиотек неуклонно растет, количество решаемых проблем - тоже. Однако остро встает вопрос некоторой разобщенности и размазанности информации по имеющимся библиотекам, их функциональности и проблемам, которые они решают. Данная статья призвана навести порядок в этой теме.

14.11.2017    31942    nixel    85       

Программные перечисления, ч.2: приемы кэширования при разработке 67

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования

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

30.10.2017    21971    unichkin    18       

Легкий способ обновления измененной конфигурации 41

Статья Системный администратор Программист Нет файла v8 Бесплатно (free) Инструментарий разработчика

Легкий способ обновления измененной конфигурации. Сервис подготовки расширения конфигурации

25.10.2017    19041    avk72    63       

Работа с Excel 298

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

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

23.10.2017    27030    arakelyan    39       

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере 127

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Практика программирования

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    35114    tormozit    72       

Ускоряем 1С: модули с повторным использованием возвращаемых значений 137

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования

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

04.09.2017    44298    m-rv    60       

Как просто запомнить алгоритм программного вывода в СКД 206

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования

Порой нужно быстро вывести на экран таблицу значений, используя СКД \ получить данные отчета в таблицу значений.. Несмотря на очевидность алгоритма - раньше мне проще было загуглить программный вывод, благо эта инфа есть везде. Но постепенно понял как его можно быстро вспомнить, и лишний раз ничего не искать. Конечно эта статья не для Гуру :) Но я думаю - что любой неопытный в СКД программист сделает для себя небольшое открытие...

01.09.2017    42466    unichkin    15       

Как формируется GUID? 470

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования

"Коллеги, есть идеи, как получить последнюю созданную характеристику? Реквизиты полностью идентичны(код, наименование, и т.п.)."(c) "Насколько я знаю, ссылка не обеспечивает последовательность, а только уникальность."(c) "Я сделал по Максимум(Ссылка). Но, чета, мне кажется, это неправильно."(c) "Слышал что в ГУИд содержится как раз время создания и по всей логике вещей сортировка по ссылке должна сортировать по моменту создания объекта"(c) Сколько раз вы слышали такие фразы? На удивление я не обнаружил информации по этой теме, пришлось разбираться самому...

16.06.2017    54766    kuzyara    56       

Использование инструментов разработчика для отладки обменов КД 2.0 67

Статья Программист Нет файла v8 КД Бесплатно (free) Перенос данных из 1C8 в 1C8

Пара трюков, благодаря которым жить становится намного проще...

05.05.2017    23141    unichkin    3       

Работа с конвертацией данных 351

Статья Программист Нет файла v8 КД Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8

Поскольку к конвертации обращаюсь время от времени и какие-то детали забываются, хочу выделить несколько пунктов, чтобы "было где посмотреть". Статья сделана преимущественно «для себя», так что просьба не судить строго. (Примечание читающим/комментирующим: код в примерах очень сильно сокращен.)

16.03.2017    63662    perepetulichka    26       

Online телефонный справочник из 1С: Зарплата и управление персоналом 34

Статья Системный администратор Программист Нет файла v8 ЗУП3.x Россия Управление персоналом (HRM) Бесплатно (free) WEB

В интернете представлено много реализаций online телефонных справочников организаций. Есть справочники, которые использует для хранения информации базу Active Directory (LDAP), есть справочники, которые реализованы с использованием СУБД (например, MySQL). Но я не нашел справочника, который использует информацию из базы 1С. Далее я рассмотрю данную разработку.

10.03.2017    19525    ruha    14       

Библиотека стандартных подсистем (Механизм БСП) 74

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования БСП (Библиотека стандартных подсистем)

Конфигурации в 1С пишутся для пользователей и по их «правилам» (клиент всегда прав), поэтому в основном все конфигурации разные, но достаточно часто в них используются одни и те же объекты, которые незначительно отличаются друг от друга. Действительно, сложно представить конфигурацию, где не фигурировали бы такие сущности как номенклатура, контрагенты, пользователи, валюта. И некоторые задачи являются типичными: возможность базового разграничения прав, работа с электронной почтой, задачи пользователям и т.д. Но...!

03.03.2017    52952    V.Stavinsky    21       

Автоматизированная проверка конфигураций… и пара слов о стандартах разработки 270

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Тестирование и исправление

Предлагаю познакомиться с инструментом "Автоматизированная проверка конфигураций" и получить практику его применения

18.01.2017    44704    3    Vladimir Litvinenko    20       

Отладка подключаемых обработок 196

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

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

04.01.2017    44990    unichkin    77       

Использование программных перечислений, ч.1: строковые константы 144

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    30501    unichkin    45       

РИБ 200 узлов. Середина пути 116

Статья Системный администратор Программист Нет файла v8 Розница Россия Бесплатно (free) Распределенная БД (УРИБ, УРБД)

Между настройкой и поддержкой РИБ на 2 узла и на 10 большой разницы нет, а вот когда число удаленных точек переваливает за сотню, приходится решать уже совсем другие вопросы

25.10.2016    34743    comol    215       

Использование git для доработки типовых конфигураций 1С 230

Статья Программист Нет файла v8 Беларусь Украина Россия Бесплатно (free) Математика и алгоритмы

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

11.10.2016    188415    pumbaE    31       

Отладка конфигураций на мобильной платформе 109

Статья Программист Нет файла v8 Бесплатно (free) Мобильная разработка

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

25.09.2016    36193    spezc    44       

Обновление доработанной Бухгалтерии предприятия. Как проверить и убедиться, что все сделано хорошо? 89

Статья Системный администратор Программист Бухгалтер Нет файла v8 БП2.0 Бесплатно (free) Практика программирования

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

05.09.2016    25108    kraynev-navi    33       

Старые обработки в новом (Управляемом) интерфейсе 101

Статья Программист Нет файла v8 v8::УФ Windows Бесплатно (free) Практика программирования

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

12.08.2016    58409    valerasv    7       

Регистры сведений 1С. Как это устроено. 727

Статья Программист Нет файла v8 Бесплатно (free) Математика и алгоритмы

Основная идея публикации - собрать в одном месте информацию о внутреннем устройстве такой абстрактной сущности, как "Регистр сведений 1С" и ответить на ряд вопросов: Что происходит при записи регистра в различных режимах? Что такое на самом деле "СрезПервых" и "СрезПоследних"? Как оптимально выбрать структуру регистра? Это та информация, владея которой, начинаешь лучше понимать как это работает и как правильно использовать регистры сведений.

05.08.2016    150979    Sergey.Noskov    154