Інструменти розробника і тестувальника для роботи зі СМЕВ
- скорочення МР - методичні рекомендації. Минкомсвязь - міністерство зв'язку та масових комунікацій...
- програма SoapUI
- установка
- запуск
- Малюнок 1. Зробити запит в SoapUI
- Текстовий редактор GVIM
- Використання консольних програм
- Отримання wsdl опису
- Форматування повідомлення c XMLlint
- Відправлення повідомлення з консолі
- Витяг тега з xml
- Лістинг 1. Програма для вилучення xml тегів
- Лістинг 2. Приклад використання
- Витяг вкладених файлів
- Витяг і збереження сертифіката
- Лістинг 3. Скрипт sign_print
- Малюнок 2. Перегляд сертифіката
- Перевірка ЕЦП і форматно-логічний контроль
- Малюнок 3. Зовнішній вигляд форми
- Малюнок 4. Підтвердження справжності
скорочення
МР - методичні рекомендації.
Минкомсвязь - міністерство зв'язку та масових комунікацій РФ.
СМЕВ - система міжвідомчого електронного взаємодії.
ЕЦП - електронний цифровий підпис.
Програми з графічним інтерфейсом
Розглянуті нижче програми можуть бути використані для тестування веб-сервісів, підготовки документації. Вони доступні для скачування в мережі інтернет безкоштовно.
програма SoapUI
Призначена для тестування веб-сервісів шляхом відправки їм повідомлень і отримання відповідей. Програма написана на JAVA і має графічний інтерфейс, дії виконуються за допомогою клавіатури, миші, можливе написання скриптів. Є версії для Linux і Windows.
Остання версія має номер 5.0.0, її можна завантажити з сайту розробника . Програма поставляється в 3-х варіантах:
- Безкоштовна. З обмеженими можливостями, але для початку їх цілком вистачить.
- Професійна. Платна, має широкі можливості для автоматизації процесу тестування.
- Пробна. Аналогічна професійної, але обмежена за часом безкоштовного використання.
установка
Далі наведено приклади для GNU \ Linux Ubuntu 12.04.03
- необхідно завантажити інсталяційний скрипт .
- Перейти в каталог зі скриптом і призначити йому права для виконання: $ chmod 0755 SoapUI-x64-5.0.0.sh
- Запустити скрипт командою: $. / SoapUI-x64-5.0.0.sh
В результаті запуститься інсталятор, де можна вибрати каталог і компоненти. В процесі установки пропонується створити символічне посилання на програму в / usr / bin. Якщо ви запустили скрипт не від імені root, то відмовтеся, інакше виникне помилка.
запуск
Програма запускається скриптом, розташованим за адресою SmartBear / SoapUI-5.0.0 / bin / soapui.sh в домашньому каталозі користувача (за умови, якщо ви не міняли шляху установки). Основна робота виконується у вікні, показаному на малюнку 1.
Малюнок 1. Зробити запит в SoapUI
Вікно розділене на кілька частин:
- Інформація про проекти.
- Налаштування для обраного проекту - адреса, SoapAction і т. Д.
- Запит для відправки.
- Отримана відповідь.
Можливості 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. Зовнішній вигляд форми
- Скопіюйте перевіряється xml повідомлення в поле 1 (рис.3)
- В поле 2 виберіть версію МР, на відповідність яким ви хочете перевірити.
- В поле 3 виберіть тип ЕЦП, яка повинна використовуватися в перевіряється повідомленні. ЕП-ОВ - електронний підпис органу влади, ЕП-СМЕВ - електронний підпис вузла СМЕВ. Їх відмінності розглянуті в МР, ймовірно, про ви буде використовувати ЕП-ОВ.
Підтвердження справжності електронного підпису
за цього адресою розгорнута форма, що дозволяє перевірити сертифікат і ЕЦП в різних форматах. При цьому видається не тільки інформація про коректність (як на формі вище), але і дані з сертифіката: номер, дата дії, коли, ким, кому виданий і ін.
Для перевірки повідомлення СМЕВ необхідно вибрати «Підтвердження справжності ЕП - сертифіката», як показано на рис. 4.
Малюнок 4. Підтвердження справжності
Ресурси для скачування
Схожі теми
Підпишіть мене на повідомлення до коментарів
Goeway/services/SID0006709?Encoding = "UTF-8"?