<
  • Главная
Статьи

Інструменти розробника і тестувальника для роботи зі СМЕВ

  1. скорочення МР - методичні рекомендації. Минкомсвязь - міністерство зв'язку та масових комунікацій...
  2. програма SoapUI
  3. установка
  4. запуск
  5. Малюнок 1. Зробити запит в SoapUI
  6. Текстовий редактор GVIM
  7. Використання консольних програм
  8. Отримання wsdl опису
  9. Форматування повідомлення c XMLlint
  10. Відправлення повідомлення з консолі
  11. Витяг тега з xml
  12. Лістинг 1. Програма для вилучення xml тегів
  13. Лістинг 2. Приклад використання
  14. Витяг вкладених файлів
  15. Витяг і збереження сертифіката
  16. Лістинг 3. Скрипт sign_print
  17. Малюнок 2. Перегляд сертифіката
  18. Перевірка ЕЦП і форматно-логічний контроль
  19. Малюнок 3. Зовнішній вигляд форми
  20. Малюнок 4. Підтвердження справжності

скорочення

МР - методичні рекомендації.

Минкомсвязь - міністерство зв'язку та масових комунікацій РФ.

СМЕВ - система міжвідомчого електронного взаємодії.

ЕЦП - електронний цифровий підпис.

Програми з графічним інтерфейсом

Розглянуті нижче програми можуть бути використані для тестування веб-сервісів, підготовки документації. Вони доступні для скачування в мережі інтернет безкоштовно.

програма SoapUI

Призначена для тестування веб-сервісів шляхом відправки їм повідомлень і отримання відповідей. Програма написана на JAVA і має графічний інтерфейс, дії виконуються за допомогою клавіатури, миші, можливе написання скриптів. Є версії для Linux і Windows.

Остання версія має номер 5.0.0, її можна завантажити з сайту розробника . Програма поставляється в 3-х варіантах:

  1. Безкоштовна. З обмеженими можливостями, але для початку їх цілком вистачить.
  2. Професійна. Платна, має широкі можливості для автоматизації процесу тестування.
  3. Пробна. Аналогічна професійної, але обмежена за часом безкоштовного використання.

установка

Далі наведено приклади для GNU \ Linux Ubuntu 12.04.03

  1. необхідно завантажити інсталяційний скрипт .
  2. Перейти в каталог зі скриптом і призначити йому права для виконання: $ chmod 0755 SoapUI-x64-5.0.0.sh
  3. Запустити скрипт командою: $. / SoapUI-x64-5.0.0.sh

В результаті запуститься інсталятор, де можна вибрати каталог і компоненти. В процесі установки пропонується створити символічне посилання на програму в / usr / bin. Якщо ви запустили скрипт не від імені root, то відмовтеся, інакше виникне помилка.

запуск

Програма запускається скриптом, розташованим за адресою SmartBear / SoapUI-5.0.0 / bin / soapui.sh в домашньому каталозі користувача (за умови, якщо ви не міняли шляху установки). Основна робота виконується у вікні, показаному на малюнку 1.

Малюнок 1. Зробити запит в SoapUI

Вікно розділене на кілька частин:

  1. Інформація про проекти.
  2. Налаштування для обраного проекту - адреса, SoapAction і т. Д.
  3. Запит для відправки.
  4. Отримана відповідь.

Можливості SoapUI величезні, більш детальну інформацію ви знайдете в її керівництві користувача. У третій статті даного циклу ми розглянемо приклад використання програми для відправки запиту в тестовій СМЕВ.

Текстовий редактор GVIM

Цей текстовий редактор можна ефективно використовувати для перегляду (редагування) XML повідомлення. Для забезпечення зручності редагування додайте у свій конфігураційний файл .vimrc наступні строки:

1 autocmd FileType xml setlocal nowrap syntax = 0 guifont = DejaVuSansMono \ 12 2 "F8 - форматування файлу 3 map <F8>:%! Xmllint --format -encode utf-8 - <cr> 4 vmap <F8> <esc>: %! xmllint --format -encode utf-8 - <cr> 5 imap <F8> <esc>:%! xmllint --format -encode utf-8 - <cr>

Перший рядок налаштовує vim для роботи з xml - скасовує перенесення рядків (nowrap), відміняє підсвічування синтаксису, тому що при включеному підсвічуванні великі файли відкриваються довго (syntax = 0), встановлюється шрифт (можна виключити).

Рядки з 2 по 5: додає можливість відформатувати файл за допомогою xmllint (див. Нижче). При відкритті файлу натисніть F8 в будь-якому режимі, і він буде відформатований.

При першому відкритті XML файлу VIM завантажить відповідний плагін, який дозволяє обробляти швидкими клавішами:

Клавіші Виконувані дії dit Видаляє вміст тега. DeleteIntoTag. cit Видаляє вміст тега і вводить нове. yit Копіює вміст тега в буфер. vit Виділяє вміст тега.

Використання консольних програм

Для автоматизації різних дій зручно використовувати консольні програми, тому що їх легко вбудувати в скрипти. Всі приклади, наведені нижче, отримані на GNU \ Linux Ubuntu 12.04.3.

Отримання wsdl опису

Для підготовки документації або оцінки доступності веб-сервісу часто необхідно завантажити його WSDL опис. Це можна виконати наступним чином:

$ Wget -O wsdl.xml http: //smev-mvr2.test.goeway/services/SID0006709? Wsdl

Опис буде поміщено в файл wsdl.xml.

Форматування повідомлення c XMLlint

XMLlint - бібліотека для роботи з XML, що вільно розповсюджується, містить набір консольних програм, може застосовуватися для форматування та перевірки повідомлення на відповідність стандартам.

Приклад використання для форматування повідомлення:

$ Xmllint --format --encode utf-8 Request.xml> FRM_Request.xml

xmllint має особливість, без вказівки <? xml version = "1.0" encoding = "UTF-8"?> вона погано працює з російськими символами. Кодування він бере з опису файлу (перший рядок), якщо її там немає, то потрібно вказати --encode utf-8.

Відправлення повідомлення з консолі

Для використання в скриптах зручна програма Curl. Це консольна програма, призначена для відправки повідомлення (у тому числі і SOAP) і отримання відповіді. Може використовуватися для автоматичного тестування. Приклад використання:

# Адресу куди відправляти запит addr = http: //188.254.16.92: 7777 / gateway / services / SID0003022 # задати SOAPAction action = SOAPAction: syncReq input = Request.xml output = Out.xml # виконати запит curl -H "Content-Type : text / xml; charset = utf-8 "-H $ action -d @ $ output -X POST $ addr --output $ input

Витяг тега з xml

У процесі роботи з xml повідомленнями часто доводиться витягати певні теги, наприклад в них лежати необхідні дані - сертифікат, файл і т.п. Для цього я використовую програму на Python 2.7

Лістинг 1. Програма для вилучення xml тегів

#! / Usr / bin / python # - * - coding: utf8 - * - import sys from xml.dom.minidom import * xml = parse (sys.argv [1]) name = xml.getElementsByTagName (sys.argv [2 ]) for node in name: print node.childNodes [0] .nodeValue

Програму запускають в командному рядку, передаючи 2 параметра - ім'я XML файлу і ім'я тега. Особливість роботи - вона витягує все теги зазначеним ім'ям.

Лістинг 2. Приклад використання

$ Print_node.py Request.xml smev: Code 355002391 PFRF01001 355002391

Витяг вкладених файлів

У СМЕВ файли передаються всередині xml тегів, перекодувати в base64. Для вилучення файлів використовую таку команду (перед витяганням треба знати тип файлу - zip, xml і т. Д.):

$ Print_node.py Request.xml wsse: BinarySecurityToken | base64 -d> Сертіфікат.cer

> У цьому прикладі був витягнутий відкритий сертифікат та збережений в файл Сертіфікат.cer

Витяг і збереження сертифіката

згідно МР [2] , В кожному СМЕВ повідомленні міститься сертифікат ЕЦП, за нього можна однозначно ідентифікувати відправника.

Для вилучення і збереження сертифіката я застосовую скрипт на bash, в ньому використовується ранішеописана програма print_node.py

Лістинг 3. Скрипт sign_print

#! / Bin / bash # скрипт витягує підпис з xml повідомлення і друкує її на екрані # з використанням openssl # ім'я файлу передається як аргумент командного рядка # приклад: $. / Sign_print request.xml # обробка помилок та інше не реалізовано print_node.py $ 1 wsse: BinarySecurityToken | base64 -d> $ 1.cer openssl x509 -inform DER -in $ 1.cer -outform PEM -out $ 1.pem openssl x509 -in $ 1.pem -noout -text | grep -A 1 'Serial Number' echo "Видалений сертифікат збережений в файл" $ 1.cer # rm $ 1.cer rm $ 1.pem

Приклад використання скрипта sign_print

$ Print_sert Request.xml Serial Number: 61: 6f: 64: 2c: 00: 00: 00: 00: 01: 13

Витягнутий сертифікат збережений в файл Request.xml.cer.

Сертифікат можна подивитися в Ubuntu 12.04.03 за допомогою стандартної програми (Рис. 2).

Малюнок 2. Перегляд сертифіката

онлайн інструменти

Для спрощення тестування і розробки Минкомсвязь розробило кілька онлайн інструментів, вільно доступних в мережі інтернет.

Перевірка ЕЦП і форматно-логічний контроль

за цього адресою розгорнута форма, яка може:

  • Перевірити валідність ЕЦП.
  • Перевірити xml повідомлення на відповідність різними версіями МР.
Малюнок 3. Зовнішній вигляд форми
  1. Скопіюйте перевіряється xml повідомлення в поле 1 (рис.3)
  2. В поле 2 виберіть версію МР, на відповідність яким ви хочете перевірити.
  3. В поле 3 виберіть тип ЕЦП, яка повинна використовуватися в перевіряється повідомленні. ЕП-ОВ - електронний підпис органу влади, ЕП-СМЕВ - електронний підпис вузла СМЕВ. Їх відмінності розглянуті в МР, ймовірно, про ви буде використовувати ЕП-ОВ.

Підтвердження справжності електронного підпису

за цього адресою розгорнута форма, що дозволяє перевірити сертифікат і ЕЦП в різних форматах. При цьому видається не тільки інформація про коректність (як на формі вище), але і дані з сертифіката: номер, дата дії, коли, ким, кому виданий і ін.

Для перевірки повідомлення СМЕВ необхідно вибрати «Підтвердження справжності ЕП - сертифіката», як показано на рис. 4.

Малюнок 4. Підтвердження справжності

Ресурси для скачування

Схожі теми

Підпишіть мене на повідомлення до коментарів

Goeway/services/SID0006709?
Encoding = "UTF-8"?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью