Vanessa Automation, или как начать писать свои тесты за 5 минут

Публикация № 1501807 21.08.21

Методология - DevOps - BDD/TDD-тестирование, Vanessa

Статья рассчитана на новичков, которые либо вообще не писали тесты, либо только начинают или хотят их написать. Читай далее - будет интересно!

Вступление

Для начала хочу рассказать о своем опыте работы с инструментом «Vanessa Automation».

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

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

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

Подготовка

  1. Для начала нам понадобится сам инструмент «Vanessa Automation». На момент выхода статьи это версия 1.2.036.28. Заходим на github и скачиваем нужную версию файла « vanessa-automation.zip». Архив скачайте на ПК, где вы будете запускать клиент 1С и распакуйте. Также появилось расширение, если у вас база во фреше, оно будет удобнее, но я им еще не пользовался.
  2. После распаковки архива, запускаете 1С (у меня версия 8.3.19.1150) с параметром «/TESTMANAGER» как на картинке (толстый клиент, чтобы больше кода можно было писать на клиенте)
     
     Настройки запуска клиента 1С
  3. Открываем обработку по пути куда был распакован архив …\vanessa-automation\ vanessa-automation.epf
     
    Интерфейс запуска обработки
  4. Переходим на вкладку «Клиенты тестирования» и жмем на кнопку «Подключить выбранного клиента тестирования» как показано на картинке. Должен запустить сеанс для выполнения разработанных сценариев.
     
    Интерфейс настройки клиентов тестирования

Запуск сценария

Теперь нам нужно запустить сценарий как на скриншоте и тестирование начнется.

 
Готовый сценарий тестирования

Как видите, на весь запуск должно уйти минут 5. Теперь вы можете сами протестировать конфигурацию на ошибки.
Из особенностей синтаксиса:
1. Справка находится в «Библиотека шагов»

2. Работа с переменными идет через структуру «Контекст» доступную на клиенте. Если нужно записать данные на сервере и передать на клиент, придется сделать доработку. Именно по этой причине был запущен толстый клиент. Сами переменные записанные в структуру «Контекст» могут быть доступны через «$ИмяПеременной$».
3. Работа с циклами и условиями выполняется после указанной команды и ключевой момент должна быть сделана табуляция.

После этих шагов работа уже напоминает обрезанный конфигуратор, где можно делать свои сценарии!

Успехов в работе и успешных тестов!

Скачать файлы

Наименование Файл Версия Размер
Тестирование форм справочников и документов

.feature 2,93Kb
5
.feature 2,93Kb 5 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. tormozit 6411 21.08.21 01:08 Сейчас в теме
Мне всегда было интересно, почему подобные прогоняющие тесты обработки не позволяют перезапустить сеанс с нужным параметром (/TESTMANAGER) для работы в качестве менеджера тестирования. Кажется это довольно просто реализуется.
3. Xershi 1257 21.08.21 08:26 Сейчас в теме
(1) попробуйте это с авторами в гите обсудить. Думаю что так и есть.
Решение как я понимаю свободно распространяется и можно самим это доработать и сделать обще доступным.
2. CheBurator 3377 21.08.21 01:25 Сейчас в теме
"фреймворк для тестирования конфигурации"
- что именно можно "тестировать в конфигурации"..?
- для каких тестирований применение инструмента невозможно/сложно..?
4. Xershi 1257 21.08.21 08:27 Сейчас в теме
(2) я не автор решения. Я только показал как можно это использовать в своих целях. На гите авторам эти вопросы задайте.
5. DitriX 1961 22.08.21 20:35 Сейчас в теме
(2)
Вы записываете скрипт действия, пользователя. Типо как макрос в экселе. И потом воспроизводите его.
Тестировать можно почти все, кроме html полей, там это сложно немного делается.
А в целом, задача - чтобы программа работала так как задумана, а не просто - чтобы работала, или вообще не работала.
6. CheBurator 3377 22.08.21 21:44 Сейчас в теме
(5) погано.. если от первого диалога с пользователем до последнего порядка 100 возможных сценариев.. то записывать это все, проходя вручную... это значит что на каждом экране с пользователем я должен записать все возможные сценарии - ввода неправильных данных и реакции на них. действия при недостаточности данных итд. если это сделать один раз - ну ладно, можно найти ресурс на это. но если я где-то внесу в середине цепочки изменение-разветвление - то мне завново нужно будет переписать кучу сценариев...
7. DitriX 1961 22.08.21 22:46 Сейчас в теме
(6) не совсем так, смотря какую цель вы ставите.
Например, можно генерировать автодокументации и видеоинструкции по этим сценариям.
И если вы всеравно их пишете, то вынуждены будете их обновлять, и иногда на столько, что все скриншоты надо будет переделывать. А тут все автоматом и всегда актуально.

С другой стороны - вы донакликиваете только новую часть, зачем вам все с нуля перекликивать?
На счет ввода не правильных данных - тут да. Но тут все же не стоит путать юнит тесты и сценарии. Ввод даных всеже должны контролировать именно юнит тесты.
8. CheBurator 3377 23.08.21 08:53 Сейчас в теме
А сценариями на ванессе мы что обрабатываем/проверяем тогда?
9. wtlz 200 23.08.21 09:17 Сейчас в теме
На скриншотах тестируется только открытие форм справочников и документов - логичнее для этой цели было бы использовать дымовое тестирование, тем более что оно уже есть в vanessa.
10. Xershi 1257 23.08.21 09:33 Сейчас в теме
(9) скиньте ссылку или сделайте статью как это делать.
В этот код легко добавить регистры и все остальные метаданные.
Всю конфу там также за 5 минут можно протестировать?
Цель статьи показать, как развернуть ванессу и написать простейший тест, который будет полезен каждому кто начинает их делать.
Ну и шпаргалка, когда раз в год это делаешь.
11. wtlz 200 23.08.21 09:49 Сейчас в теме
(10) Да, можно за 5 минут протестировать и отчет в визуальной форме вывести.
Ванесса всё же в данном контексте больше для сценарного теста (я как ... хочу чтобы ...)

https://www.youtube.com/watch?v=VDKYh99Pur0

https://github.com/vanessa-opensource/add/blob/develop/tests/smoke/readme.md
12. Xershi 1257 23.08.21 10:06 Сейчас в теме
(11) по видео вообще не понятно в чем он сидит, как он это запускает. А здесь все просто и ясно.
Запустили обработку, написали код похожий на 1С и результат аналогичный, плюс уже свою логику можно делать. Что и должно послужить толчком данная статья.
13. wtlz 200 23.08.21 10:37 Сейчас в теме
(12) на видео VS Code - рекомендую к ознакомлению и использованию, как минимум для редактирования тех же feature файлов.
Если подходить по логике - "написали код похожий на 1С", так можно и просто внешнюю обработку написать еще быстрее)
Я хотел сказать про то, что инструменты нужно использовать по назначению, ведь можно и гвозди микроскопом забивать :)
Насчет статьи - действительно, на ИС по этому поводу доступного гайда нету - нужно внимательно читать readme или на канале видео из коммента выше просмотреть видео начиная с первого.

В любом случае, если данная методика позволяет повысить качество вашего кода - здорово.
Lapitskiy; artbear; +2 Ответить
14. Xershi 1257 23.08.21 10:47 Сейчас в теме
(13) ну для тех кто этим каждый день занимается возможно и стоит ознакомиться.
Мне же нужно было максимально понятно и удобно сделать конкретную задачу с чем как видите успешно и справился. А разбираться в неизвестном продукте? Это сколько времени уйдет заказчик скорее откажется от тестирования.
15. ovcharenko.di 73 23.08.21 11:31 Сейчас в теме
от вашей статьи у незнакомого с этим инструментом специалиста может сложиться ОЧЕНЬ обманчивое впечатление.

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

Я ставлю минус за введение людей в заблуждение
the1; betflop; wtlz; artbear; +4 Ответить
16. Xershi 1257 23.08.21 11:39 Сейчас в теме
(15) никакого заблуждения нет. Клиентский язык в публикации озвучен, а вот обращение к данным 1С уже на родном языке.
А что такое "стандартный"? Вот стандартная задача открыть конфу и потыкать формы. Я это всегда пользователям говорил делать, после обновлений. А какой должен сценарий рассматриваться для того кто продуктом ни разу не пользовался?
Как по мне после этого все элементарно становится. Клиентский язык довольно примитивный, если нужно самостоятельно допиливается. Остальное уже кодом 1С легко получается.
Сами обработки кодом 1С и пишутся.
Вы статью дочитали до конца? За 5 минут смогли развернуть о чем шла речь?
citisoft; +1 Ответить
19. user1157812 23.08.21 14:51 Сейчас в теме
(16) Типовой сценарий для меня - накликать мышкой действия пользователя и запускать после обновления. Это действительно очень удобно и быстро.
Именно так и начал использовать ванессу для 2 разных программ.
24. citisoft 24.08.21 11:56 Сейчас в теме
(16)Спасибо тебе, дружище, норм статья. Пость дальше, пожалуйста, по этой теме. Чем проще и короче, тем лучше )
26. Xershi 1257 24.08.21 12:01 Сейчас в теме
(24) будут заказы на эту тему, выпущу конечно, тема интересная. Заодно и качество кода подтянем и ручного тестирования будет меньше!
citisoft; +1 Ответить
23. citisoft 24.08.21 11:54 Сейчас в теме
(15) Заблудившийся, своё напиши сначала по теме, а потом минусуй.
25. Xershi 1257 24.08.21 12:00 Сейчас в теме
(23) до сих пор не ответил в чем конкретно у него проблема.
17. AvalonE2008 99 23.08.21 12:35 Сейчас в теме
А в чем плюс по сравнению с решением фирмы 1С - Сценарное тестирование?
18. Xershi 1257 23.08.21 13:04 Сейчас в теме
(17) не в курсе. Сделайте статью или киньте ссылку, люди разберутся.
Мне зашло именно это решение.
21. Serg O. 199 23.08.21 17:28 Сейчас в теме
(17) 1С - Сценарное тестирование вроде бы платное...
а тут open-sorce то есть бесплатно...
22. Xershi 1257 23.08.21 18:31 Сейчас в теме
(21) проверил в ИТС не входит, горит серым, значит только после покупки.
35. Светлый ум 269 29.09.21 08:06 Сейчас в теме
(17) Плюс в том что бесплатный и свободно распространяемый, ну и примеров много. А так "сценарное тестирование" для регрессивны тестов больше подходит.
20. Serg O. 199 23.08.21 17:26 Сейчас в теме
на сколько я помню, вроде Ванесса - работала и с обычными формами тоже
а в обычных формах .... параметр «/TESTMANAGER» не работает
в этом и есть самый большой плюс
27. the1 920 24.08.21 12:49 Сейчас в теме
Статья должна называться "Как установить Vanessa Automation", а не "Как начать писать свои тесты за 5 минут". Ибо про написание тестов упомянуто примерно ни разу. Тоже минусанул.
28. Xershi 1257 24.08.21 12:55 Сейчас в теме
(27) вы статью до конца дочитали? Чтобы написать тест, нужно установить Vanessa Automation. Сам тест уже написан, его нужно переписать или скачать. Кстати именно по это причине картинка, чтобы вы тест набрали руками и вот тут уже и тренировка писать тест!
Чтобы начать писать свой тест, нужно почитать справку, как это сделать я расписал.
Чистая выжимка без воды!
Это не статья как писать свои тесты, а как начать их писать! Поэтому категорически не согласен!
29. poyson 24.08.21 14:58 Сейчас в теме
какая классная статья! все просто и понятно. никакой лишней воды....
30. Xershi 1257 24.08.21 15:54 Сейчас в теме
(29) у вас что-то не получилось?
31. poyson 24.08.21 18:03 Сейчас в теме
(30)нет. все срослось идеально. и за 5 минут.....
32. Xershi 1257 24.08.21 18:12 Сейчас в теме
(31) до этого тесты не писали?
33. poyson 25.08.21 09:54 Сейчас в теме
(32)в ванесса нет. пробовал стандартными механизмами 1с. результат 50/50. не понял ничего. Плюнул. Надеюсь тут получится.
34. Xershi 1257 25.08.21 10:47 Сейчас в теме
(33) в (15) написали, что по такой статье ничего не получится. Сами попробовали другой тест написать, получилось?
А в (27), что написать тест вообще нельзя.
Какое ваше мнение?
Оставьте свое сообщение

См. также

Подсистема "Инструменты разработчика" v6.14.2 Промо

Инструментарий разработчика v8 1cv8.cf Бесплатно (free)

Интегрированный набор инструментов разработчика: - консоль кода - консоль запросов - консоль построителя отчетов - консоль компоновки данных - консоль заданий - конструктор запроса - справочник алгоритмов - исследователь объектов - интерфейсная панель - настройка журнала регистрации - анализ журнала регистрации - настройка техножурнала - анализ техножурнала - подбор и обработка объектов - редактор объекта БД - редактор констант - редактор параметров сеанса - редактор изменений по плану обмена - редактор пользователей - редактор предопределенных - редактор хранилищ настроек - динамический список - поиск дублей и замена ссылок - контекстная подсказка - синтакс-помощник - поиск битых ссылок - поиск ссылок на объект - структура хранения БД - удаление объектов с контролем ссылок - и прочее

23.09.2007    609887    36166    tormozit    2794