Автоматизация проверки XML сообщений на платформе 1С с помощью инструмента Vanessa Automation

в 13:08, , рубрики: , vanessa-automation, XML, сценарии

Всем привет! Меня зовут Пётр и это моя первая статья.

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

Проблема

Уверен, что многие кто тестировал XML сообщения - знают, что такие проверки довольно сложные. Потому, что в сообщениях передаются много разнообразных параметров и сами сообщения могут быть очень большими. Также стоит добавить определенную логику заполнения XML сообщений и то, что может быть несколько различных потоков (типов сообщений) и мы получим довольно объемный набор тест-кейсов.

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

Постановка задачи

Чтобы понять как решать задачу - нужно сначала ее сформировать.

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

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

Абстрактная карточка физического лица

Абстрактная карточка физического лица

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

Пример XML сообщения

Пример XML сообщения

Так как же реализовать проверку данных сообщений?

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

Для этого нам понадобится 2 команды:

  • И Я запоминаю в переменную "Сообщение" значение ""

  • Тогда элемент формы с именем "TextDocument" стал равен "$Сообщение$" по шаблону

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

Как это все будет выглядеть вместе:

Реализация проверки XML сообщений

Реализация проверки XML сообщений

Как видно из картинки все отступы были заменены на символ *. Потому, что проверка образца XML сообщения с отступами не работала. Да, и не сами отступы мы проверяем - а передаваемые значения.

Когда мы выполним первую команду у нас создастся переменная с массивом строк:

Что сохраняется в многострочной переменной

Что сохраняется в многострочной переменной

Далее при выполнении второй команды у нас возможны 2 варианта - либо сообщение корректно, либо есть ошибка относительно образца.

Успешная проверка

Успешная проверка
Не успешная проверка

Не успешная проверка

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

Разбор ошибок в WinMerge

Разбор ошибок в WinMerge

Итог

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

В данном решении также можно использовать переменные в шаблоне. т. е. при проверке документов — создается новый уникальный код. И для подстановки этого кода — его необходимо запомнить в переменную и затем вставить в нужное место XML сообщения.

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

Автор: Petr_Strelyaev

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js