О программе 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

 

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

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

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

36000 руб.

03.08.2020    15746    10    17    

11

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17548    6    15    

13

Интеграция с сервисом vetmanager

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

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

12000 руб.

02.02.2021    16359    42    49    

23

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25741    9    0    

7

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

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

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    88579    160    215    

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

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

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

В Wireshark сравнил оба запроса, обратил внимание что postman для авторизации пытается использовать NTML, а 1С - Kerberos.
Помогло удаление Kerberos на веб-сервере из списка провайдеров аутентификации Windows.
AlexK_2012; SkyHunter; mysm; tumr; asupsam; Daimon; +6 Ответить
2. antonov_i 314 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.
strange2007; sogesti; mysm; JohnyDeath; Bazil; botokash; litonchik; budidich; Legavaz; RomanCrow13; +10 Ответить
3. RomanCrow13 111 25.09.19 03:09 Сейчас в теме
Недавно тоже познакомился с Postman, классная вещь! Понравилась тем, что можешь просмотреть тело запроса в конечном виде.
До этого работал с Curl. Но он очень автоматизирован, сам подставляет нужные заголовки и так далее.
Сейчас пытаюсь отправить запрос в телеграм с заголовком Content-type : Multipart form-data, чтобы отправлять файл на сервер и посылать в чат.
SkyHunter; +1 Ответить
4. MORT32Ram 16 25.09.19 07:09 Сейчас в теме
Тема не раскрыта, стало понятно что прога классная и удобная, а вот как ей пользоваться нет=(
Strange Device; +1 Ответить
7. budidich 407 25.09.19 11:12 Сейчас в теме
(4)
прога классная и удобная, а вот как ей пользоваться нет=(

Добавил скриншоты - сопоставление параметров API в 1С и в Postman.
11. MORT32Ram 16 26.09.19 01:58 Сейчас в теме
5. user1166203 25.09.19 09:06 Сейчас в теме
А SoapUI уже не торт?
6. budidich 407 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 176 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 57 26.09.19 10:00 Сейчас в теме
21. Aleskey_K 32 30.09.19 11:01 Сейчас в теме
(13) postman тоже вырос из расширения
SkyHunter; +1 Ответить
17. Mortum 26.09.19 14:15 Сейчас в теме
Без постмана как без рук. Можно настроить Environment и одним кликом переключаться между тестовой и рабочей базой. Очень помогает когда надо быстро проверить что-нибудь на рабочей базе.
SkyHunter; +1 Ответить
18. budidich 407 26.09.19 15:50 Сейчас в теме
(17)
Environment

Environment - это что?
19. Yashazz 4709 26.09.19 17:25 Сейчас в теме
Я, канэшн, всё понимаю, но имхо, лучше специально написанной для тестирования одинэсной же обработки - ничего нет. Зачем так корячиться, если можно в том же 1С средствами 1С дёрнуть?
20. budidich 407 26.09.19 17:45 Сейчас в теме
(19) Ну если дергается средствами 1С, то можно дернуть. А вот когда хоть убейся, но не дергается - вот тогда начинаешь продумывать, куда вообще копать - тогда начинаешь перебирать все возможные варианты и смотреть на нюансы, а в специализированных программах нюансов полно и они на виду.
SkyHunter; mivari; Yashazz; +3 Ответить
22. SkyHunter 30.09.19 16:05 Сейчас в теме
(19) Так тут и корячиться не надо, всё уже сделано, только url и параметры подставляй. К тому же, зачастую полезно убрать фактор платформы. О таких инструментах должен знать каждый.
23. triviumfan 92 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 407 02.10.19 15:25 Сейчас в теме
(23) Вроде бы все так. Там, где Имя сервера в постмане перед www. https стоит?
24. budidich 407 02.10.19 15:24 Сейчас в теме
(23) Вроде бы все так. Там, где Имя сервера в постмане перед www. https стоит?
26. triviumfan 92 02.10.19 16:13 Сейчас в теме
(24) тип протокола вообще не указывал. Сейчас указал - результат не поменялся.
27. budidich 407 02.10.19 16:22 Сейчас в теме
(26) Не могу сказать, почему не работает. Я подобную авторизацию делал. Хотел только два момента указать: если Новый ЗащищенноеСоединениеOpenSSL то нужно указывать https перед запросом. И возможно у вас на закладке Autorization что-то стоит, там как я понимаю, ничего не нужно, т.к. авторизация идет через параметр.
28. triviumfan 92 02.10.19 16:29 Сейчас в теме
(27) да я уже все перепробовал, и убрал на этой закладке все, и пробовал указать конкретную авторизацию.. не помогает.
все равно спасибо
29. buganov 200 07.05.21 06:40 Сейчас в теме
А мне Advanced rest client нравится, очень похожи по интерфейсу и по возможностям
30. baracuda 2 11.08.21 16:04 Сейчас в теме
Только ей и пользуюсь)
31. pm74 199 23.08.21 20:20 Сейчас в теме
для mock тестов удобный инструмент mocklab.io
32. budidich 407 24.11.21 17:11 Сейчас в теме
(31)
mocklab.io

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