О программе Postman для тестирования API и для чего она нужна 1С-нику

24.09.19

Интеграция - WEB-интеграция

Для чего нужна программа Postman для тестирования API и какая от него польза для 1С-программиста.

Postman это бесплатное приложение для создания и тестирования API - запросов.

Для чего необходим Postman 1С-нику:

1) Возможность протестировать работу API при помощи не-1С приложения. Часто при тестировании API не удается подключиться к серверу и возникает вопрос: может быть дело в специфических особенностях 1С? Если вы увидите, что 1С к API серверу не подключается, а Postman с похожими параметрами запроса работает - значит дело в особенностях настройки 1С. Если же и Postman-запрос не работает, то нужно читать документацию на API.

2) Возможность разговаривать с не-1Сными программистами на одном языке. Очень много программистов используют Postman и иногда достаточно просто прислать им скриншот Postman-а с настройками, которые не работают и вам ответят, прислав свой скриншот с настройками Postman, которые работают.

Если же начинаешь описывать 1С-ные параметры подключения к API не-1С программисту, он сразу впадает в ступор и говорит, что в 1С не разбирается и у него все работает.

3) Postman имеет более широкие стандартные настройки запросов API, что может натолкнуть вас на мысль о том, как именно нужно сформировать запрос. Например, можно указать различные варианты настроек содержимого тела запроса, что в 1С никак не описывается, а просто предлагается положить текст тела запроса командой УстановитьТелоИзСтроки().

 

Описание работы с Postman

Postman позволяет создавать коллекции (Группы) запросов и сами запросы и сохранять их. Интерфейс прост и интуитивен:

Начальный интерфейс Postman и первоначальное создание запросов.

Самое интересное в Postman и то, что отличается от 1С - это различные варианты заполнения тела запроса:

Все возможные варианты запроса можно заполнить в 1С, но правила заполнения тела запроса (то, что задается командой ЗапросHTTP.УстановитьТелоИзСтроки()) в 1С не описываются явно и иногда нужно догадываться, в каком формате нужно заполнить тело.

Пример заполнения тела запроса

 

Соответствие настроек 1С И Postman:

Соответствие настроек 1С И Postman

 

Соответствие настроек 1С И Postman

Соответствие настроек 1С И Postman

Соответствие настроек 1С И Postman

 

См. также

WEB-интеграция Администрирование веб-серверов Платные (руб)

Веб-портал обеспечивает удобный доступ к конфигурации 1С:ITIL, 1С:ITILIUM, Управление IT-отделом 8 через интернет с любого устройства посредством браузера, увеличивая эффективность работы пользователей и снижая нагрузку на сервер. Быстрая инсталляция портала за пару часов, удобный и интуитивно понятный интерфейс и безопасность данных помогут упростить работу с порталом и ускорить выполнение бизнес-процессов компании.

128000 руб.

19.12.2023    2236    2    0    

9

WEB-интеграция Анализ продаж Системный администратор Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Модуль "Подсистема интеграции AmoCRM с 1С" позволяет обеспечить единое информационное пространство, в котором пользователи могут эффективно управлять клиентской базой, следить за статусами сделок и поддерживать актуальность данных как в AmoCRM, так и в 1С. Бесплатный период Техподдержки - 1 месяц.

60000 руб.

07.05.2019    34256    64    45    

25

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Онлайн-заказ - это решение для автоматизации процесса оформления заказов на сайте в торговых организациях. Продукт обеспечивает легкое взаимодействие между компанией и клиентами через веб-интерфейс, интегрированный с 1С:Предприятие. Система позволяет снизить операционные расходы, повысить лояльность клиентов и оптимизировать работу отдела продаж.

57600 руб.

26.11.2024    1982    1    1    

4

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    18827    21    22    

18

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    3482    3    2    

4

WEB-интеграция Программист Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    18563    53    50    

29
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user774630 24.09.19 18:33 Сейчас в теме
Спасибо за статью.
Программа помогла разобраться, почему не работала доменная аутентификация с себ-сервисом Axapta.

помощью Postman собрал http post-запрос к веб-сервису с ntlm аутентификацией. Он работал нормально.

Аналогичный запрос из 1С не работал.

В Wireshark сравнил оба запроса, обратил внимание что postman для авторизации пытается использовать NTML, а 1С - Kerberos.
Помогло удаление Kerberos на веб-сервере из списка провайдеров аутентификации Windows.
dimaster; AlexK_2012; SkyHunter; mysm; tumr; asupsam; Daimon; +7 Ответить
2. antonov_i 319 25.09.19 03:07 Сейчас в теме
Хорошая, статья. Спасибо. Тоже начинали с программы Postman и ей аналогичных, но в итоге решили отказаться от графического интерфейса. Когда API начинает расти, то возникает проблема с переносом списка запросов, да и просто с перемещением между запросами. Не говоря уже про возможность автоматизации. В итоге остановились на расширении RestClient (https://marketplace.visualstudio.com/items?itemName=humao.rest-client) для VSCode. Расширение позволяет описывать все запросы в тексте, т.е. достаточно завести отдельный файлик с расширением `.http и описать все необходимые запросы. Например:

POST /api HTTP/1.1
Content-Type: application/json
Authorization: Basic login pass

{
    "id": "222",
    "action": "something"
}
Показать


И при просмотре этого файлика в VSCode напротив каждого запроса будет появляться кнопка "Send Request". Можно сразу отправить запрос и увидеть результат. В общем удобно применять и хранить в git. В итоге мы немного пошли дальше и стали формировать на основании таких файликов таски на написание тестов к API.
Merkalov; AlexK_2012; strange2007; sogesti; mysm; JohnyDeath; Bazil; botokash; litonchik; budidich; Legavaz; RomanCrow13; +12 Ответить
3. RomanCrow13 111 25.09.19 03:09 Сейчас в теме
Недавно тоже познакомился с Postman, классная вещь! Понравилась тем, что можешь просмотреть тело запроса в конечном виде.
До этого работал с Curl. Но он очень автоматизирован, сам подставляет нужные заголовки и так далее.
Сейчас пытаюсь отправить запрос в телеграм с заголовком Content-type : Multipart form-data, чтобы отправлять файл на сервер и посылать в чат.
SkyHunter; +1 Ответить
4. MORT32Ram 17 25.09.19 07:09 Сейчас в теме
Тема не раскрыта, стало понятно что прога классная и удобная, а вот как ей пользоваться нет=(
Strange Device; +1 Ответить
7. budidich 419 25.09.19 11:12 Сейчас в теме
(4)
прога классная и удобная, а вот как ей пользоваться нет=(

Добавил скриншоты - сопоставление параметров API в 1С и в Postman.
AlexK_2012; +1 Ответить
11. MORT32Ram 17 26.09.19 01:58 Сейчас в теме
5. user1166203 25.09.19 09:06 Сейчас в теме
А SoapUI уже не торт?
6. budidich 419 25.09.19 09:56 Сейчас в теме
(5)
SoapUI

Понятия не имею, что такое SoapUI. От вас первый раз слышу.
Если расскажите - будет хорошо.
user774630; +1 Ответить
8. user774630 25.09.19 11:23 Сейчас в теме
(6) Это аналогичная программа.
Что понравилось в SoapUI - удобная работа с SOAP web-сервисами, в т.ч. программа может сама генерировать тестовые запросы на основании wsdl с заполнением обязательных/необязательных полей. Это удобно, если работаешь из 1C с SOAP не с помощью xdto, а через HTTPсоединение и собираешь xml руками.
ДимокШ; mysm; Yashazz; it_tungus; +4 Ответить
14. CodeNull 26.09.19 09:07 Сейчас в теме
(8) SoapUI, это мощное средство предназначенное больше для регрессионного тестирования API. По-моему, для простых случаев и запросов он избыточен.

Как альтернатива - можно использовать еще и JMeter.
9. Dorosh 177 25.09.19 11:25 Сейчас в теме
(5)
А SoapUI уже не торт?


Торт, но с горчинкой. Например отказывается понимать русские буквы. Авторизоваться как "Администратор" не выйдет, изволь создать спецом "Administrator".
it_tungus; +1 Ответить
12. Bizerber 26.09.19 06:22 Сейчас в теме
(5) SoapUI хорош только для SOAP. А если у тебя висит какой то сервис, отдающий по REST API JSONы - лучше постман.
shumvlesu; +1 Ответить
10. iliabvf 25.09.19 19:27 Сейчас в теме
Спасибо за обзор, есть еще SoapUI и Fiddler.
13. Johny_v 140 26.09.19 08:32 Сейчас в теме
По возможностям очень напоминает расширение для Google Chrome - Advanced Rest Client (ARC). Я давно на него перешел при тестировании веб-сервисов. И ничего ставить отдельно не надо. Всегда в браузере подключено.
Прикрепленные файлы:
Aleskey_K; budidich; +2 Ответить
15. CodeNull 26.09.19 09:09 Сейчас в теме
Есть еще и такое: https://chrome.google.com/webstore/detail/restlet-client-rest-api-t/aejoelaoggembcahagimdiliamlcdmfm

Тоже удобный инструмент, значительно экономит время при тесте простых запросов.
CyberCerber; +1 Ответить
16. FesenkoA 59 26.09.19 10:00 Сейчас в теме
21. Aleskey_K 35 30.09.19 11:01 Сейчас в теме
(13) postman тоже вырос из расширения
SkyHunter; +1 Ответить
17. Mortum 26.09.19 14:15 Сейчас в теме
Без постмана как без рук. Можно настроить Environment и одним кликом переключаться между тестовой и рабочей базой. Очень помогает когда надо быстро проверить что-нибудь на рабочей базе.
SkyHunter; +1 Ответить
18. budidich 419 26.09.19 15:50 Сейчас в теме
(17)
Environment

Environment - это что?
19. Yashazz 4809 26.09.19 17:25 Сейчас в теме
Я, канэшн, всё понимаю, но имхо, лучше специально написанной для тестирования одинэсной же обработки - ничего нет. Зачем так корячиться, если можно в том же 1С средствами 1С дёрнуть?
20. budidich 419 26.09.19 17:45 Сейчас в теме
(19) Ну если дергается средствами 1С, то можно дернуть. А вот когда хоть убейся, но не дергается - вот тогда начинаешь продумывать, куда вообще копать - тогда начинаешь перебирать все возможные варианты и смотреть на нюансы, а в специализированных программах нюансов полно и они на виду.
AlexK_2012; SkyHunter; mivari; Yashazz; +4 Ответить
22. SkyHunter 30.09.19 16:05 Сейчас в теме
(19) Так тут и корячиться не надо, всё уже сделано, только url и параметры подставляй. К тому же, зачастую полезно убрать фактор платформы. О таких инструментах должен знать каждый.
23. triviumfan 98 02.10.19 15:19 Сейчас в теме
Решил скачать и попробовать postman.
Авторизировать получилось. Но дальше все запросы в теле должны содержать ключ "authorisation" и полученное его значение.
В 1с делаю так (и все работает, а в постмане нет):
	Если Соединение = Неопределено Тогда
		Соединение = Новый HTTPСоединение(ИмяСервера,443 , , , , 15, Новый ЗащищенноеСоединениеOpenSSL);
	КонецЕсли;
	
	headers = Новый Соответствие;
	headers.Вставить("Content-Type", "application/json");
	Если Токен = Неопределено Тогда
		ПолучениеТокенаНаСервере();
	КонецЕсли;
	headers.Вставить("Authorization", Токен["token_type"]+ " " + Токен["access_token"]);
	
	HTTPЗапрос = Новый HTTPЗапрос("/api/1.0/" + ИмяЗапроса, headers);
	HTTPОтвет = Соединение.Получить(HTTPЗапрос);
Показать
Прикрепленные файлы:
25. budidich 419 02.10.19 15:25 Сейчас в теме
(23) Вроде бы все так. Там, где Имя сервера в постмане перед www. https стоит?
24. budidich 419 02.10.19 15:24 Сейчас в теме
(23) Вроде бы все так. Там, где Имя сервера в постмане перед www. https стоит?
26. triviumfan 98 02.10.19 16:13 Сейчас в теме
(24) тип протокола вообще не указывал. Сейчас указал - результат не поменялся.
27. budidich 419 02.10.19 16:22 Сейчас в теме
(26) Не могу сказать, почему не работает. Я подобную авторизацию делал. Хотел только два момента указать: если Новый ЗащищенноеСоединениеOpenSSL то нужно указывать https перед запросом. И возможно у вас на закладке Autorization что-то стоит, там как я понимаю, ничего не нужно, т.к. авторизация идет через параметр.
28. triviumfan 98 02.10.19 16:29 Сейчас в теме
(27) да я уже все перепробовал, и убрал на этой закладке все, и пробовал указать конкретную авторизацию.. не помогает.
все равно спасибо
29. bugagashenka 203 07.05.21 06:40 Сейчас в теме
А мне Advanced rest client нравится, очень похожи по интерфейсу и по возможностям
30. baracuda 2 11.08.21 16:04 Сейчас в теме
Только ей и пользуюсь)
31. pm74 203 23.08.21 20:20 Сейчас в теме
для mock тестов удобный инструмент mocklab.io
32. budidich 419 24.11.21 17:11 Сейчас в теме
(31)
mocklab.io

Ок, спасибо. Только дошли руки до изучения тестов.
Оставьте свое сообщение