Тестирование видов сведений СМЭВ: инструкция

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

smev test

1. Общее описание процесса тестирования

Процесс тестирования видов сведений разбивается на два этапа:

  • тестирование в тестовой среде СМЭВ;
  • тестирование в продуктивной среде СМЭВ.

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

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

Эталонные запросы, эталонные ответы и правила XSL-преобразования описываются в Руководстве пользователя вида сведений.

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

Тестирование в продуктивной среде СМЭВ производится с использованием реальных запросов к реальным информационным системам поставщиков.

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

В обычном режиме работы СМЭВ-адаптер не сохраняет сообщения в формате СМЭВ.

Для перевода СМЭВ-адаптера в отладочный режим необходимо установить параметр development.transport.persist.soap в значение true и перезапустить СМЭВ-адаптер.

Для СМЭВ-адаптера устаревшей версии параметр development.transport.persist.soap располагается в конфигурационном файле core.properties.

Для СМЭВ-адаптера текущей версии параметр development.transport.persist.soap устанавливается в интерфейсе администратора, в разделе «Настройка конфигурации адаптера».

Для перехода в этот раздел необходимо в меню выбрать пункт «Настройка конфигурации» и в открывшейся форме выбрать режим «Показать расширенные настройки» (см. рисунок).

Расширенные настройки конфигурации СМЭВ-адаптера

В расширенном режиме необходимо развернуть раздел «Отладка» и установить флаг «Сохранение входящих/исходящих сообщений СМЭВ» (см. рисунок), после чего нажать кнопку «Сохранить».

Выбор параметров отладки
Установка параметра сохранения входящих/исходящих сообщений СМЭВ

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

Для этого необходимо в командной панели перейти в каталог установки СМЭВ-адаптера и выполнить команду adapter.exe restart (или sh adaper.sh restart для CentOS), а если СМЭВ-адаптер установлен как служба Windows, перезапустить службу из консоли управления службами.

СМЭВ-адаптер устаревшей версии можно перезапустить двумя способами:

  • Перезагрузкой сервера (если запуск адаптера проиводится автоматически при загрузке ОС);
  • Удалением процесса адаптера и повторным его запуском из консоли.

Второй вариант более предпочтительный, потому что после окончания тестирования необходимо восстановить значение параметра development.transport.persist.soap=false, и только после этого перезагружать сервер (или адаптер).

Для удаления процесса адаптера в системе CentOS необходимо выяснить его PID с помощью команды ps axu | grep java, а затем выполнить команду kill [PID].

Для повторного запуска адаптера необходимо в консоли перейти в каталог установки адаптера и выполнить команду sh startup.sh.

2. Тестирование в тестовой среде СМЭВ

Диаграмма активностей процесса тестирования ВС в тестовой среде СМЭВ представлена на рисунке.

Диаграмма активностей процесса тестирования ВС в тестовой среде СМЭВ

2.1. Подготовка тестового запроса

Тестовый запрос должен быть сформирован в формате СМЭВ-адаптера, т.е. в виде сообщения ClientMessage.

Структура ClientMessage для запроса представлена на рисунке.

Сообщение ClientMessage для запроса

Значение элемента itSystem должно соответствовать мнемонике информационной системы Потребителя. В тестовой среде СМЭВ мнемоники ИС участников взаимодействия имеют, как правило, суффикс «_3T», в отличие от продуктивной среды, где мнемоники оканчиваются на «_3S».

Содержимое эталонного запроса вида сведений должно быть вставлено в элемент MessagePrimaryContent.

Содержимое элемента RequestMetadata заполняется следующим образом:

Элемент Значение Комментарий
clientID Произвольный GUID У каждого запроса, отправляемого в СМЭВ-адаптер, должен быть уникальный ClientID. Иначе будет возвращена ошибка, что такой запрос уже отправлялся в СМЭВ.

GUID можно сгенерировать online, например, здесь: https://guidgenerator.com/

createGroupIdentity/
FRGUServiceCode
00000000000000000000 Значения, используемые для генерации кода транзакции по умолчанию
createGroupIdentity/
FRGUServiceDescription
00000000000000000000
createGroupIdentity/
FRGUServiceRecipient
Description
00000000000000000000
testMessage true Обязательное значение для вызова эмулятора на стороне СМЭВ

Пример сообщения ClientMessage:

<?xml version="1.0" encoding="UTF-8"?>
 <tns:ClientMessage xsi:schemaLocation="urn://x-artefacts-smev-gov-ru/services/service-adapter/types smev-service-adapter-types.xsd" xmlns:n1="http://www.altova.com/samplexml/other-namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn://x-artefacts-smev-gov-ru/services/service-adapter/types">
   <tns:itSystem>MNEM01_3T</tns:itSystem>
   <tns:RequestMessage>
      <tns:RequestMetadata>
         <tns:clientId>3e83e83a-6a23-4908-b0d2-e3ad08fe2584</tns:clientId>
         <tns:createGroupIdentity>
            <tns:FRGUServiceCode>00000000000000000000</tns:FRGUServiceCode>
            <tns:FRGUServiceDescription>00000000000000000000</tns:FRGUServiceDescription>
         <tns:FRGUServiceRecipientDescription>00000000000000000000</tns:FRGUServiceRecipientDescription>
         </tns:createGroupIdentity>
         <tns:testMessage>true</tns:testMessage>
      </tns:RequestMetadata>
      <tns:RequestContent>
         <tns:content>
            <tns:MessagePrimaryContent>
                  <!-- ЭТАЛОННЫЙ ЗАПРОС ВСТАВЛЯТЬ СЮДА -->
            </tns:MessagePrimaryContent>
         </tns:content>
      </tns:RequestContent>
   </tns:RequestMessage>
</tns:ClientMessage>

2.2. Размещение тестового запроса в каталоге OUT СМЭВ-адаптера

Местоположение каталога OUT зависит от версии СМЭВ-адаптера.

Для адаптера устаревшей версии этот каталог находится по адресу [каталог установки адаптера]/main/[мнемоника ИС]/OUT.

Для адаптера текущей версии этот каталог находится по адресу [каталог установки адаптера]/integration/[мнемоника ИС]/OUT.

Созданные файлы с сообщениями ClientMessage необходимо разместить в каталоге OUT.

2.3. Запуск СМЭВ-адаптера

Если в момент размещения ClientMessage в каталоге OUT СМЭВ-адаптер уже запущен, то эти сообщения будут отправлены в СМЭВ сразу же после их размещения в указанном каталоге.

В противном случае требуется запустить СМЭВ-адаптер.

Для этого необходимо открыть консоль и перейти в ней в каталог установки СМЭВ-адаптера.

Адаптер устаревшей версии запускается из консоли командой startup.bat (или sh startup.sh для CentOS).

Адаптер текущей версии запускается из консоли командой adapter.exe start (или sh adapter.sh start для CentOS).

2.4. Поиск СМЭВ-сообщений запроса и ответа

Отладочные сообщения в формате СМЭВ адаптер устаревшей версии размещает в своем каталоге установки, а адаптер текущей версии в каталоге [каталог установки адаптера]/messages.

Для поиска сообщений, соответствующих отправленному сообщению и полученному ответу, необходимо узнать, с каким messageID был отправлен запрос в СМЭВ.

Для этого нужно открыть найти сообщение в каталоге OUT/Sent по clientID:

Для поиска файлов по их содержимому необходимо включить соответствующий параметр в эксплорере Windows:

В найденном сообщении, в элементе MessageId, будет содержаться идентификатор сообщения, отправленного в СМЭВ:

По значению messageID необходимо найти сообщения в каталоге установки адаптера устаревшей версии (или в [каталог установки адаптера]/messages для текущей версии адаптера).

Должны быть найдены три сообщения:

  • {мнемоника}-{GUID}-{SendRequestRequest}-{SUCCESS} – отправка в СМЭВ;
  • {мнемоника}-{GUID}-{SendRequestResponse}-{SUCCESS} – подтверждение от СМЭВ;
  • {мнемоника}-{GUID}-{GetResponseResponse}-{SUCCESS} – ответ от СМЭВ.

Для последнего сообщения (GetResponseResponse) необходимо найти сообщение с опросом очереди (GetResponseRequest). Оно имеет тот же GUID в наименовании файла, что и сообщение GetResponseResponse).

Сообщения Ack, о которых упоминается в Регламенте подключения ИС Участника к СМЭВ и в письмах от Ситуационного центра, СМЭВ-адаптером не фиксируются! Но СЦ, будучи информирован об использовании Потребителем СМЭВ-адаптера, не настаивает на включении Ack в результаты тестирования.

2.5. Взаимодействие с СЦ СМЭВ

Четыре найденных сообщения в формате СМЭВ необходимо упаковать в архив со значащим именем (например, «MNEM01_3T-ЕГРЮЛ-Request0.zip») и направить в Ситуационный центр СМЭВ в виде результатов тестирования.

Если тестировалось несколько эталонных запросов (а обычно так и происходит), то по четыре СМЭВ-сообщения для каждого эталонного запроса размещаются в отдельных каталогах, соответствующих эталонным запросам, например, «Request0», «Request1» и т.д.

Затем эти каталоги упаковываются в один архив, например, «MNEM01_3T-ЕГРЮЛ.zip», который отправляется в СЦ СМЭВ.

3. Тестирование в продуктивной среде СМЭВ

Тестирование в продуктивной среде СМЭВ должно производиться на сервере, имеющем доступ к продуктивной среде СМЭВ.

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

Формат сообщения ClientMessage отличается от формата, приведенного в п. 2.1, отсутствием элемента testMessage:

Сообщение ClientMessage для запроса

Содержимое запроса к виду сведений должно соответствовать реальному объекту или субъекту, сведения о котором необходимо получить.

Если в качестве запроса использовать один из эталонных запросов, то в ответ вернется, скорее всего, сообщение reject с признаком отсутствия данных в ИС Поставщика.

Дальнейший процесс ничем не отличается от тестирования ВС в тестовой среде СМЭВ, описанного в п. 2.

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

 

 

Тестирование видов сведений СМЭВ: инструкция: 2 комментария

  1. А какой порядок прохождения тестирования, если организация выступает поставщиком сведений?

    1. В целом такой же, только ClientMessage будет содержать не RequestMessage, а ResponseMessage, где в ResponseMetadata нужно будет указать clientID тестового запроса в элементе replyToClientId, а эталонный ответ поместить в элемент ResponseMessage/ResponseContent/content/MessagePrimaryContent.
      Получаем эталонный запрос, находим его clientId, формируем эталонный ответ, соответствующий эталонному запросу, собираем сообщения СМЭВ (они немного по-другому будут называться) из соответствующего каталога адаптера, пакуем и отправляем в СЦ.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *