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

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

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.

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

______________________

Если у вас остались вопросы по данному материалу — пожалуйста, оставьте комментарий или свяжитесь с нами.

Также вы можете передать задачи организации СМЭВ-взаимодействия участникам нашего проекта. Качественная настройка СМЭВа и интеграция Адаптера с различными ИС — наш нехемульский долг.

avatar
9 Цепочка комментария
27 Ответы по цепочке
0 Последователи
 
Популярнейший комментарий
Цепочка актуального комментария
15 Авторы комментариев
ВасилийНадейкин ФедорВиталий АскольдовАннаyadmin Авторы недавних комментариев
  Подписаться  
Уведомление о
Алексей
Гость
Алексей

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

Виталий Аскольдов
Гость

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

Алексей
Гость
Алексей

А как получить эталонный запрос?

Виталий Аскольдов
Гость
Виталий Аскольдов

Можно обратиться в СЦ СМЭВ с просьбой выслать эталонный запрос по такому-то ВС.
Если речь идет о рассылках ЗАГС, то эталонные запросы высылает ФНС по заявкам участников.

В принципе, хемули тоже могут на тестовом стенде СМЭВ послать эталонный запрос.

Максим
Гость
Максим

Как с помощью Адаптера СМЭВ подготовить и отправить эталонный ответ как поставщик ВС?

Виталий Аскольдов
Гость
Виталий Аскольдов

Нужно собрать сообщение ClientMessage с элементом ResponseMessage (см. схему адаптера).
В элементе replyToClientId нужно указать clientId полученного запроса (см. файл в папке integration/files/[мнемоника]/in).
Не путать с messageID полученного запроса!
Внутрь элемента MessagePrimaryContent вложить эталонный ответ.
Сформированный файл положить в каталог out и он будет отправлен в СМЭВ.

Seburo
Гость
Seburo

Как настроить подпись в бесплатном адаптере 3.0?

В документации подробности не описаны. Хочу настроить на использование JCP2, но не понимаю как прикрутить в адаптере вместо REGISTRY тестовую подпись из файла сертификата. Или как импортировать тестовую подпись в реестр и настроить REGISTRY на неё.

Владимир
Гость
Владимир

В разделе с контактами есть номер телефона. К нему привязан телеграм и вотсап. Наберите или напишите нам — поможем.

Дмитрий
Гость
Дмитрий

А какой формат файла для потребителей для GetResponseRequest?

Виталий Аскольдов
Гость
Виталий Аскольдов

Если речь идет о формате именно GetResponseRequest, то он описан в методических рекомендациях, а XSD находятся по адресам http://smev3-d.test.gosuslugi.ru:7500/smev/v1.2/ws?xsd=smev-message-exchange-types-1.2.xsd (версия 1.2) или http://smev3-n0.test.gosuslugi.ru:5000/ws/smev-message-exchange-types-1.3.xsd (версия 1.3).
А если речь идет о том, как от клиентской ИС отправить такой запрос в СМЭВ, то этого делать не нужно 🙂
Потому что адаптер опрашивает очередь СМЭВ автоматически с заданными в настройках интервалами времени.

Анастасия
Гость
Анастасия

Добрый день! Подскажите, пожалуйста,в каком случае возникает необходимость и для кого (Потребителя или Поставщика) для прохождения тестирования в продуктивной среде, между Участниками?

Владимир
Гость
Владимир

Анастасия, добрый день! Эталонная процедура подключения, в т.ч. тестирования описана в «Правилах и процедурах работы в СМЭВ по Методическим рекомендациям версии 3.х». Документ расположен на Техпортале СМЭВ. Тестирование в продуктиве необходимо в первую очередь Поставщику при выводе в СМЭВ нового (собственного) вида сведений. Тестирование может осуществляться как с Потребителем, так и с МКС. Однако фактически процедура может меняться от ВС к ВС. Например, при подключении к ВС ПФР по 269-ФЗ в роли Поставщика МКС присылает запрос на тестирование в тестовую среду в ответ на заявку на доступ в продуктивную среду. Но тут есть еще один нюанс. Иногда бывает, что, ВС… Подробнее »

Ибрагим
Гость
Ибрагим

Добрый день… Поможете с ошибкой в лог-файле, что за ошибка? 2019-02-20 09:26:26.415 ERROR 5012 — [pool-5-thread-2] ru.rtlabs.smev3.adapter.transport.receiver.XReceiver : ****** receiveMessages from RESPONSE failure: com.sun.xml.ws.client.ClientTransportException: HTTP transport error: java.net.ConnectException: Connection timed out: connect

Виталий Аскольдов
Гость
Виталий Аскольдов

Если до этого какое-то время все работало, то «Connection timed out» — это проблемы на стороне СМЭВ.
Либо технические работы какие-нибудь (можно следить за сообщениями на технологическом портале), либо просто сервис упал.
Такое, к сожалению, случается.
Нужно просто подождать некоторое время и сообщение рано или поздно уйдет в СМЭВ.

Ибрагим
Гость
Ибрагим

Спасибо вам за ответ Виталий. Ситуация у нас такая, в тестовой среде — 1.3 СМЭВ 3.0 нам удалось получить сообщения и ответить на них, после этого получили доступ к продуктивной среде и перенастроили адаптер следующим образом, зашли от имени администратора в конфигурации адаптера, во вкладке предустановленные настройки выбрали продуктивная среда — 1.3 сохранили настройки и перезапустили службу адаптера, зашли от имени пользователя, сообщений не было, подождав несколько дней решили удалить все связанное с адаптером СВЭВ программное обеспечение и установить по новой, предварительно скачав с технологического портала последнюю версию адаптера, настроив его никаких изменений не последовало, так и мучаемся, вид сведений… Подробнее »

Виталий Аскольдов
Гость
Виталий Аскольдов

Судя по XSDShemas_41020, это «Сведения из ЕГР ЗАГС о государственной регистрации смерти».
Так там, насколько я знаю, нужно запрашивать ФНС, чтобы прислали запрос на определенную мнемонику.
Так просто вы ничего не получите — ФНС просто не знает, что вам тоже нужно отправлять эту рассылку.

Ибрагим
Гость
Ибрагим

Добрый день. Можно в формате (@имя_чата) так не получается найти

Илья
Гость
Илья

Коллеги, проконсультируйте пожалуйста по след. вопросу: на технологическом портале смэв3 есть информация о xsd схемах версии 1.3. В методических рекомендациях есть ссылки на схемы вер. 1.2 и 1.3. На технологическом портале в разделе проверка сообщений по xsd схеме есть проверка для схем 1.1 и 1.2.
В чем разница между схемой 1.1 и 1.2 есть информация в одной из версий методических рекомендаций.
Вопрос: что нового в версии 1.3, и где об этом можно почитать?

Виталий Аскольдов
Гость
Виталий Аскольдов

Основные изменения в версии 1.3 заключаются в новых видах маршрутизации сообщений: общая реестровая маршрутизация по мнемоникам, реестровая маршрутизация по мнемоникам. Для рассылок добавлена фрагментарная маршрутизация по идентификаторам.
Описание различных видов маршрутизации приведено в Методических рекомендациях 3.5.0.1.
Там же, в приложении M есть схемы версий 1.2 и 1.3.
Их можно сравнить, например, в XML Spy и получить полный список отличий.

Василий
Гость
Василий

Добрый день. ВС: Прием заявлений на биометрическую регистрацию При отправке ВС через СМЭВ Адаптер в логах получаем следующее: 2019-05-27 11:23:49.564 INFO 3205 — [http-nio-7576-exec-6] ru.rtlabs.smev3.adapter.transport.integration.XIntegrationModulePortImpl : —— save prepared for sent message state: OUTGOING SENDING 2019-05-27 11:23:49.565 INFO 3205 — [http-nio-7576-exec-6] ru.rtlabs.smev3.adapter.transport.integration.XIntegrationModulePortImpl : —— save prepared for sent message 2019-05-27 11:23:49.566 INFO 3205 — [http-nio-7576-exec-6] ru.rtlabs.smev3.adapter.common.model.services.transport.MessageContainerService : —— save message metadata: REQUEST 5eaa9f69-8050-11e9-9706-0025902c53ae 2019-05-27 11:23:49.568 INFO 3205 — [http-nio-7576-exec-6] ru.rtlabs.smev3.adapter.common.model.services.transport.MessageContainerService : —— save message content: MESSAGE 2019-05-27 11:23:49.568 INFO 3205 — [http-nio-7576-exec-6] ru.rtlabs.smev3.adapter.common.model.services.transport.MessageContainerService : —— save attachment metadata: bioReg-PHOTO.png image/png 2019-05-27 11:23:49.569 INFO 3205 — [http-nio-7576-exec-6] ru.rtlabs.smev3.adapter.common.model.services.transport.MessageContainerService : —— save… Подробнее »

Виталий Аскольдов
Гость
Виталий Аскольдов

Добрый день!
Будем разбираться.
Возможно, что это ошибка в адаптере.
Какая у вас версия адаптера?

Виталий Аскольдов
Гость
Виталий Аскольдов

На тестовом стенде ошибка воспроизводится — при отправке во втором запросе того же файла вложения возникает ошибка «File exists».
Так что версия о баге в адаптере, похоже, подтверждается.

Василий
Гость
Василий

«Caused by: it.sauronsoftware.ftp4j.FTPException: 39831cff-2a0c-4c2a-8061-02afc32876d0: File exists» — очевидно, что FTP клиент пытается создать директорию (в качестве названия случайный UUID, который генерит адаптер, судя по всему). Как долго после создания директории живут на FTP сервере?

Василий
Гость
Василий

извиняюсь, UUID берется из запроса. Кстати, в запросе у нас RequestContent->content->MessagePrimaryContent->RegisterBiometricDataRequest->BiometricData->Data->AttachmentRef->attachmentId и RequestContent->content->AttachmentHeaderList->AttachmentHeader->Id равны

Виталий Аскольдов
Гость
Виталий Аскольдов

СМЭВ смотрит только на метаданные, т.е. на RequestContent->content->AttachmentHeaderList->AttachmentHeader->Id.
Правила заполнения BiometricData->Data->AttachmentRef->attachmentId должны определяться Руководством пользователя на этот ВС.
Мне кажется, что нет ничего плохого в том, что они равны, но нужно читать РП 🙂
В любом случае СМЭВ туда не лезет.

Виталий Аскольдов
Гость
Виталий Аскольдов

Срок хранения, загруженного в файловое хранилище файла (до момента отправки к единому электронному сервису сообщения, содержащего ссылку на данный файл) составляет от 8 до 18 календарных часов (в зависимости от нагрузки на файловое хранилище).

Василий
Гость
Василий

Версия 3.1.2

Анна
Гость
Анна

Добрый день!
Подскажите, пожалуйста, а как протестироваться со СМЭВ-3 если мы не являемся явным участником взаимодействия. Мы компания-разработчик и, получается, отладить свои решения с адаптером СМЭВ-3 нет возможности никак?

Василий
Гость
Василий

Добрый день. Есть какие-либо новости по ошибке «File exists»?