Tetiva читает и пишет один формат обмена — Postman Collection v2.1 и Postman Environment; отдельный запрос можно забрать из приложения командой cURL. Импорт создаёт коллекцию с вложенной структурой и запросами прямо в текущем рабочем пространстве, экспорт отдаёт файл через системный диалог сохранения. Обратной операции для cURL нет: команду можно скопировать, но не вставить в приложение.
Импорт коллекции#
Кнопка импорта живёт в панели инструментов над деревом коллекций — она кладёт результат в корень рабочего пространства. Пункт Import Postman Collection в контекстном меню коллекции делает то же самое, но вкладывает импортированное внутрь неё. Выбирается файл .json, после импорта всплывает уведомление с числом созданных коллекций и запросов.


Схема проверяется: файл должен быть Collection v2.1. Экспорт v2.0 или v1 будет отклонён с просьбой переэкспортировать коллекцию из Postman в v2.1.
Что переносится#
| Из Postman | В Tetiva |
|---|---|
| Коллекция: имя, описание, auth | Коллекция верхнего уровня с теми же полями |
| Папки любой вложенности | Вложенные коллекции |
| Запрос: имя, метод, URL | Запрос HTTP; неизвестный метод становится GET |
Заголовки, в том числе с disabled: true | Заголовки с выключенным флажком |
raw + язык json | Тело JSON |
raw + язык xml или html | Тело XML |
raw с другим языком или без него | Тело Raw |
formdata | Форма: ключ, значение, тип (text/file), флажок включения |
graphql | Запрос GraphQL: query, переменные, метод POST |
Auth bearer, basic, apikey — на коллекции, папке или запросе | Соответствующий тип авторизации |
Query-параметры приезжают внутри URL; вкладка Params разбирает их из строки, так что таблица параметров заполняется сама.
Что не переносится:
- pre-request и test-скрипты — блоки
eventигнорируются на импорте и не пишутся на экспорте; - переменные коллекции — заведите вместо них окружение;
- описания отдельных запросов, сохранённые примеры ответов, моки и мониторы;
- тела
urlencodedиfile— эти режимы Postman приезжают как Raw с пустым телом; - типы авторизации кроме Bearer, Basic и API Key — они станут None. Что есть в приложении, перечислено на странице Авторизация.
Импорт окружения#
Окружения импортируются отдельным файлом из окна Environments. Имя окружения берётся из поля name внутри JSON, а не из имени файла — с пустым name импорт завершается ошибкой; переменные приходят из массива values, а запись с type: "secret" становится секретной переменной. Флажок enabled из Postman не читается — все переменные приходят включёнными.
Экспорт#
Export as Postman в контекстном меню коллекции собирает файл для всего поддерева: сама коллекция, вложенные коллекции, запросы, заголовки, тела и авторизация. Системный диалог предложит имя вида Имя коллекции.postman_collection.json. У окружения есть свой пункт экспорта в окне Environments — файл Имя.postman_environment.json, секретные переменные помечаются типом secret.
Границы формата стоит держать в голове: v2.1 описывает HTTP-запрос, поэтому gRPC и WebSocket в него не укладываются, скрипты не пишутся, а тело типа binary — ссылка на файл на диске — в файл не попадает. Для переноса всей работы между машинами используйте синхронизацию, а не экспорт.
Copy as cURL#
Рядом с кнопкой Send есть стрелка, под ней — единственный пункт Copy as cURL. Команда собирается тем же конвейером, что и реальная отправка, поэтому в буфере оказывается то, что ушло бы на сервер:
- переменные
{{var}}уже подставлены; - заголовки отсортированы, многозначные повторяются несколькими
-H; - cookie рабочего пространства для этого адреса добавляются флагом
-b; - форма превращается в
-F(с@путьдля файлов) или-d, тело binary — в--data-binary @путь; - pre-скрипт выполняется в режиме dry-run: его заголовки и переменные видны в команде, но в базу не сохраняются и записи в истории не создают.
Пункт работает только для HTTP. Для gRPC, GraphQL и WebSocket приложение вернёт ошибку — этих протоколов cURL не покрывает. Экспорта в другие языки и клиентские библиотеки нет.
Полный маршрут переезда с Postman, включая совместимость скриптов и соответствие понятий, разобран на странице Переход с Postman.