Всем привет! Меня зовут Пётр и это моя первая статья.
Занимаюсь функциональным и интеграционным тестированием на проекте 1С. И решил попробовать свои силы в автоматизированном тестировании - чтобы упростить себе жизнь. И на текущий момент около года работаю с инструментом Vanessa Automation и решил поделиться своим решением для проверки XML сообщений. К нему я пришел не сразу - пришлось экспериментировать, чтобы найти рабочий подход для таких проверок.
Проблема
Уверен, что многие кто тестировал XML сообщения - знают, что такие проверки довольно сложные. Потому, что в сообщениях передаются много разнообразных параметров и сами сообщения могут быть очень большими. Также стоит добавить определенную логику заполнения XML сообщений и то, что может быть несколько различных потоков (типов сообщений) и мы получим довольно объемный набор тест-кейсов.
Также нужно учитывать, что при регрессионном тестировании необходимо этот набор тест-кейсов перепроверять вручную. Потому что новые доработки функционала могут сломать уже реализованный функционал. И мы приходим к выводу, что самое лучшее решение - это написать набор автоматизированных тестов, которые упростят нам жизнь и сэкономят наше время.
Постановка задачи
Чтобы понять как решать задачу - нужно сначала ее сформировать.
Давайте разберемся, что мы имеем и как с этим работать. Представим, что в экосистеме организации много различных программ. И чтобы все эти программы имели актуальные данные необходимо их связать интеграциями. И желательно, чтобы эти данные приходили в режиме реального времени.
В нашей организации есть 1С-ка, в которой ведется учет данных и передает информацию об определенных событиях в системе. Для этого при наступлении этих событий 1С передает XML сообщения с нужными данными. Триггером для оправки таких сообщений может быть как создание нового элемента справочника, так и проведение документа. Разберем такой случай - заведение карточки физические лица. На экране ниже видит абстрактную карточку физического лица.
Как только пользователь системы сохраняет эту информацию - сразу формируется XML сообщение с данными этого физического лица. И это сообщении по интеграции отправляется в нужные системы.
Так как же реализовать проверку данных сообщений?
Первым делом - необходимо создать сценарий по создании новой карточки физического лица. И дойти до интерфейса где у нас можно данное сообщение проверить. Я думаю, что этот момент в сценарии мы рассматривать не будем, а сосредоточимся на реализации самой проверки.
Для этого нам понадобится 2 команды:
-
И Я запоминаю в переменную "Сообщение" значение ""
-
Тогда элемент формы с именем "TextDocument" стал равен "$Сообщение$" по шаблону
В первой команде у нас будет создаваться образец нашего сообщения - которое должно получится в идеале. А во второй команде сравнивается наш образец и проверяемое сообщение.
Как это все будет выглядеть вместе:
Как видно из картинки все отступы были заменены на символ *. Потому, что проверка образца XML сообщения с отступами не работала. Да, и не сами отступы мы проверяем - а передаваемые значения.
Когда мы выполним первую команду у нас создастся переменная с массивом строк:
Далее при выполнении второй команды у нас возможны 2 варианта - либо сообщение корректно, либо есть ошибка относительно образца.
В ошибке сначала выводится полученное сообщение, а потом наш шаблон. Для удобного сравнения использую программу WinMerge. Она сразу покажет место, где есть отличия.
Итог
Таким образом я автоматизировал тесты на проверку XML сообщений. И данное решение хорошо работает. Можно написать, необходимое число сценариев на каждый тип XML сообщений и быть уверенным, что все отклонения от ожидаемого результата будут найден.
В данном решении также можно использовать переменные в шаблоне. т. е. при проверке документов — создается новый уникальный код. И для подстановки этого кода — его необходимо запомнить в переменную и затем вставить в нужное место XML сообщения.
Надеюсь, моя статья была интересной и полезной. Буду очень рад обратной связи — может быть есть похожие решения по данной тематике.
Автор: Petr_Strelyaev