Вопросы по Postman на собеседовании

🔍 Хочешь работать тестировщиком, но не знаешь, где искать вакансии для Junior?
Мы уже всё нашли за тебя! Подписывайся и получай лучшие предложения 🚀 в нашем Telegram канале "Вакансии QA".

О Postman:

Postman был запущен Абхинавом Астханой как часть стороннего проекта, направленного на упрощение проблемы процесса тестирования API. Затем к нему присоединились его коллеги Анкит Собти и Абхиджит Кейн, чтобы создать Postman как отдельный продукт в 2014 году. Так Postman стал самой популярной в мире платформой для совместной работы, используемой для проектирования, разработки и тестирования API. 

В этой статье мы рассмотрим наиболее часто задаваемые вопросы и ответы по Postman на собеседовании как для новичков, так и для опытных разработчиков/тестировщиков программного обеспечения.

Содержание:

Вопросы по Postman для новичков

1. Как получить доступ к истории запросов в Postman?

Историю запросов можно просмотреть во вкладке «History». История в Postman будет синхронизирована на всех устройствах, на которых вы вошли в систему под своей учетной записью.

  • При нажатии на любой из запросов из вкладки «History», открывается запрос, который ранее был сохранен.
  • История также отображает выполненные коллекции, которые ранее были запущены.
  • Нажмите «View More option (…)» в запросе, чтобы увидеть варианты сохранения, документирования, отслеживания, удаления или имитации запроса.
  • Можно выбрать несколько запросов, зажав кнопку «Command» или «Control» и кликнув по запросу.

Ниже представлена страница, которая отображается при клике кнопки «View More option (…)» в запросе во вкладке «History»:

2. Что такое дайджест-аутентификация в Postman?

Digest Authorization — один из методов авторизации в Postman. В этом методе клиент сначала отправляет запрос в API и получает ответы от сервера, который включает номер для единоразового использования, значение realm (название зоны аутентификации) и ответ 401 Unauthorized. Затем зашифрованный массив данных, содержащий имя пользователя и пароль вместе с данными, полученными от сервера ранее, отправляется обратно. Сервер использует эти данные для генерации зашифрованной строки и сравнивает ее с тем, что было отправлено для аутентификации запроса.

Это можно сделать, выбрав вкладку «Authorization», а затем выбрав «Digest Auth» из выпадающего списка. В окне Postman представлены поля для обоих этапов запроса аутентификации. Поля, необходимые для второго этапа запроса, заполняются автоматически на основе данных, полученных с сервера.

3. Что такое коллекция в Postman?

Коллекция в Postman помогает группировать похожие запросы и систематически упорядочивать их по папкам.

4. Зачем нужен Postman?

  • Во-первых, Postman — это бесплатное программное обеспечение, полезное для тестирования API.
  • Данный инструмент может отправлять HTTP-запросы различных типов (такие как GET, POST, PUT, PATCH и т. д.) и дает возможность сохранять тестовые среды для будущего использования.
  • Он помогает управлять жизненным циклом API от начала до конца — от проектирования до создания макетов, тестирования и, наконец, обслуживания API.
  • Postman предоставляет Runtime Service (среду выполнения), которая помогает управлять коллекциями API, рабочими окружениями, пространствами и примерами запросов.
  • Его можно использовать для простой интеграции с инструментами CI/CD, такими как Jenkins.
  • Также он имеет широкую поддержку со стороны компании-разработчика и предоставляет обширную документацию.

5. Как логировать значения переменных в Postman?

Значения переменных в Postman можно логировать (записать) в консоли, используя команду:
console.log(pm.variables.get("variable_name"));

6. Как получить доступ к переменным Postman?

Доступ к переменной можно получить, используя ее имя :{{variable_name}}

7. Какие методы авторизации предоставляет Postman?

Postman предоставляет следующие методы авторизации API-запросов:

  • API Key (Ключ API)
  • Bearer Token (Токен Bearer)
  • Basic auth (Базовая аутентификация)
  • Digest auth (Дайджест аутентификации)
  • Oauth 1.0
  • Oauth2.0
  • Аутентификация Hawk (Аутентификация Hawk)
  • Подпись AWS (Подпись AWS)
  • Аутентификация NTLM (Аутентификация NTLM)

8. Какие типы API-запросов поддерживаются в Postman?

Postman поддерживает следующие типы запросов:

  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
  • COPY
  • HEAD
  • OPTIONS
  • LINK
  • UNLINK
  • PURGE
  • LOCK
  • UNLOCK
  • PROPFIND
  • VIEW

9. Чем отличаются Query-параметры от Path-переменных?

Path-переменные используются для идентификации конкретных ресурсов, а Query-параметры — для сортировки или фильтрации ресурсов.

Path-переменные обязательные (часть URL-структуры). Query-параметры опциональные (добавляются после ?)

10. Что такое базовая аутентификация (Basic auth) в Postman?

Базовая аутентификация в Postman — это метод авторизации в Postman для HTTP-клиентов, например, веб-браузеров. Он предоставляет поля для ввода логина и пароля, которые автоматически добавляются к запросу.

11. Что такое Postman?

Postman — это бесплатное клиентское приложение для работы с HTTP, используемое главным образом для тестирования API. Оно поддерживает тестирование HTTP-запросов с использованием GUI (графического пользовательского интерфейса): выполнение запросов и проверка ответов. Postman также помогает организовать командную работу для разработки API, предоставляя платформу для проектирования, разработки, тестирования и документирования API.

12. Какую кодировку принимает Postman для авторизованных данных?

Postman принимает авторизованные данные только в формате кодировки Base64. Это кодировка предоставляется в Postman по умолчанию. Если нет желания использовать встроенную систему кодировки, можно обратиться к сторонним веб-сайтам для преобразования данных в формат base64.

13. Можно ли использовать одинаковые имена для глобальных переменных в Postman?

Область видимости глобальных переменных ограничена рабочим пространством, но является глобальной в рамках этого пространства. Соответственно, переменные, имеющие глобальную видимость, не могут иметь одинаковые имена. Можно задавать одинаковые имена для локальных переменных, при условии, что они будут принадлежать разным наборам переменных.

14. Что такое Postman Monitor?

Мониторинг — это метод синхронизации работоспособности и производительности API. Postman предоставляет встроенные службы мониторинга, которые помогают синхронизироваться с разработкой и отслеживать производительность API. Функция мониторинга в Postman использует те же базовые принципы, что и инструмент для запуска коллекций запросов. Она запускает каждый запрос в коллекции и анализируют значения, указанные в тестовых скриптах. Мониторы используют тестовые скрипты для проверки и мониторинга ответов. Созданные отчеты отправляются разработчикам по электронной почте или уведомлениями в Slack, HipChat и т. д. в соответствии с настройками конфигурации.

15. Что такое бинарная форма в POST запросах?

Бинарная форма предназначена для отправки данных в формате, который невозможно ввести вручную. Эти параметры используются при отправке в запросе POST больших файлов, таких как изображения, файлы CSV и т. д.. Бинарное представление является самым простым способом для отправки сложноструктурированных данных в запросе.

16. Каковы ограничения Postman?

  • Postman не подходит для обработки более 1000 API-запросов.
  • Если проект очень большой, управление коллекциями и запросами становится обременительным.
  • Postman не подходит для управления рабочими пространствами в виде кода, поскольку это ведет к дублированию кода при работе с динамическими API-запросами.

17. Как сохранить ответы API в файл в Postman?

Это можно сделать двумя способами:

  1. Нажать кнопку скачивания «Download» в разделе ответов.
  2. Нажать на стрелку рядом с кнопкой отправки «Send» — появится опция отправки и загрузки «Send and Download». Postman запросит место сохранения ответа после успешного выполнения запроса.

18. Каково назначение статуса кода 301?

Код 301 представляет собой перенаправление с одной страницы веб-сайта на другую. Он сообщает поисковой системе, что страница устарела и поисковая система должна проиндексировать URL новой страницы.

Вопросы по Postman для опытных

1. Есть ли в Postman функция для логирования запросов и ответов?

Postman позволяет просматривать запросы и параметры ответа в самом приложении. Но важно видеть, как был отправлен запрос после выполнения pre-request скриптов. Для этого в Postman есть дополнительный инструмент под названием «Postman Console», который используется для просмотра всех деталей запроса и ответа. В консоли можно логировать все детали, используя операторы console.log в скриптах.

2. Почему в Postman преимущественно используется кодирование Base64?

Кодировка Base64 используется в первую очередь потому, что она выполняет задачу преобразования данных в текстовый формат, который проще передавать в HTTP-запросах. Другая причина в том, что использование идентичных 64 символов для кодировки является очень надежным.

3. Каково назначение статуса кода 304?

Статус кода 304 означает NOT MODIFIED. Он используется для уменьшения пропускной способности сети в случаях ограниченных запросов GET. В таких случаях тело ответа должно быть пустым или незаполненным, а заголовки должны содержать дату, местоположение, подпись и т. д.

4. Стоит ли сохранять свои проекты в Postman Cloud?

При работе над проектами корпоративного уровня для организаций не рекомендуется сохранять данные в облаке Postman, так как это может навредить конфиденциальности и безопасности данных.

5. Какие области видимости переменных доступны в Postman?

Postman имеет следующие области видимости переменных:

  • Глобальные переменные: глобальные переменные позволяют осуществлять доступ к данным между различными коллекциями, запросами и скриптами. Они доступны во всем рабочем пространстве.
  • Переменные среды: они позволяют адаптировать запросы к различным средам разработки, таким как локальная среда, тестовая или продуктовая.
  • Локальные переменные: это временные переменные, которые доступны только в рамках скриптов запросов. Их область видимости ограничена одним запросом, либо одной коллекцией. После завершения выполнения скрипта эти переменные становятся недоступными.
  • Переменные коллекции: эти переменные доступны для всех запросов, присутствующих в коллекции. Они не зависят от среды.
  • Переменные данных: эти переменные берутся из внешних файлов JSON или CSV для определения наборов данных, необходимых для запуска коллекций в Collection Runner или Newman.

6. Можно ли повторно использовать токен аутентификации для нескольких запросов?

Да, это возможно. Для этого необходимо создать коллекцию и добавить в нее все запросы с одинаковым токеном аутентификации, а затем назначить токен аутентификации коллекции. Это можно применить к отдельным запросам, выбрав опцию «Inherit auth from parent» на вкладке «Authorization».

7. Как писать тест-кейсы для базовой аутентификации в Postman?

Базовая аутентификация — это один из методов аутентификации, предоставляемых Postman, который гарантирует, что мы можем задать имя пользователя и пароль вместе с запросами API. Для этого сначала необходимо установить учетные данные API:

  • Перейти на вкладку «Авторизация».
  • В раскрывающемся списке выбрать «Базовая аутентификация».
  • Добавить имя пользователя и пароль к API в указанные поля ввода.

Пример скрипта:

pm.test("Is the Request Authenticated?", function () {
       var jsonData = pm.response.json();
       //if authenticated then assert to true
       pm.expect(jsonData.authenticated).to.eql(true);
  });
  pm.test("Is the Content-Type present?", function () {
       pm.response.to.have.header("Content-Type");
  });
  pm.test("Is it a successful POST Request?", function () {
       pm.response.to.have.status(200);
  });

8. Как задать одинаковые заголовки для всех запросов в коллекции?

Коллекции Postman позволяют использовать pre-request скрипты на уровне отдельного запроса и на уровне коллекции. В pre-request скрипты можно добавить любой скрипт, который будет применяться ко всем запросам в коллекции. Это можно сделать, выполнив следующие шаги:

  • Щелкните правой кнопкой мыши по коллекции и перейдите на вкладку предварительного запроса.
  • Добавьте в скрипт следующие строки кода, чтобы добавить заголовок запроса для всех запросов, присутствующих в коллекции.
pm.request.headers.add({
    key: 'TestHeader',
    value: 'testValue'
});
  • Нажмите «Обновить», чтобы сохранить скрипт.
  • Выполните запрос в коллекции и проверьте, добавлены ли заголовки к запросу в консоли Postman.

Заголовок из скрипта предварительного запроса:

9. Что такое рабочие пространства в Postman? Для чего они предназначены?

Рабочие пространства — это пространство, предоставляемое Postman для совместной работы команды над определенной коллекцией или набором коллекций. Оно позволяет логически разделить запросы или коллекции на персональные для разработчика или командные.

В Postman есть два типа рабочих пространств:

  • Личное рабочее пространство:
    • Это рабочее пространство полезно для одновременной работы над несколькими проектами, когда требуется логическое разделение запросов.
  • Рабочее пространство команды:
    • Оно создано для командной работы, чтобы в тестировании запросов могло участвовать несколько человек.
    • Новых пользователей для совместной работы над коллекциями можно приглашать через их электронную почту. После того, как приглашение будет принято, новые пользователи могут начать вносить вклад в рабочее пространство, добавляя или изменяя запросы.

Новое рабочее пространство можно создать, нажав на значок «Workspace», а затем нажав «New Workspace».

Можно выбрать, будет ли рабочее пространство персональным или групповым, настроив нужные свойства.

10. Как остановить выполнение следующих в очереди запросов или коллекций?

Для остановки выполнение следующего в очереди запроса или коллекции можно использовать данный код: pm.setNextRequest(null);

11. Что значит pre-request скрипт?

Pre-request скрипты — это те скрипты, которые используются для выполнения кода Javascript перед запуском запроса. Они используются для выполнения задач предварительной обработки, таких как настройка переменных, параметров, заголовков, данных тела запроса и т. д.

12. Как использовать пользовательские библиотеки Javascript в Postman?

Postman предоставляет множество встроенных инструментов и библиотек, которые можно использовать для добавления в pre-request или post-request скрипты. Рассмотрим пример использования библиотеки moment.js. Она предоставляет множество полезных функций для форматирования данных по времени. Предположим, что у нас есть запрос POST, который должен указать дату в формате «ДД/ММ/ГГГГ». Можно использовать библиотеку moment, чтобы выполнить это с помощью одной строки кода. В pre-request скрипте нужно добавить следующие строки кода, чтобы получить правильно отформатированные данные, а затем сохранить их в переменной среды:

var moment = require('moment');
pm.environment.set('createdDate',moment().format('DD/MM/YYYY'));

Существует множество других полезных библиотек, например, crypto.js для преобразования текста в зашифрованные значения, которые затем можно использовать в любом месте тела запроса.

13. При условии существования глобальной или локальной переменной с одинаковыми именами какая из них будет приоритетнее?

В таких случаях более высокий приоритет отдается локальной переменной путем перезаписи значения глобальной переменной.

14. Есть ли в Postman поддержка командной строки?

В Postman поддержка командной строки представлена в виде инструмента под названием Newman, с помощью которого можно запустить любую коллекцию Postman. Newman — это пакет на основе NodeJS, повторяющий функционал Collection Runner.

Для использования Newman нужно выполнить следующие шаги:

  • Установить Node.js
  • Установить пакет Newman с помощью команды npm install -g newman
  • Чтобы запустить коллекцию, сначала нужно экспортировать среду в формат JSON в Postman. Затем выполнить следующую команду для запуска коллекции в Newman:
newman run {{path to collection json}} -e {{path to environment json}}

15. Как сгенерировать случайные числа заданного диапазона в Postman?

Предположим, нужно сгенерировать числа в диапазоне от 1 до N. Это можно сделать в pre-request скрипте следующим образом:

pm.globals.set('randomNumber', Math.floor(Math.random() * N));

Затем можно использовать эту переменную в URL-адресе следующим образом: {{randomNumber}}

16. Что такое «Scratch Pad» в Postman?

Scratch Pad — это пространство в Postman, которое помогает работать без подключения к серверам Postman. Оно обеспечивает возможность использования некоторых функций Postman в автономном режиме: создание коллекций, создание запросов, возможность отправлять их. Данные хранятся локально на компьютере, и после входа в систему Postman они синхронизируются и сохраняются в рабочем пространстве Postman.

17. Как получить cURL-команду из REST API запроса в Postman?

Это можно сделать, выполнив следующие шаги:

  • Нажмите на значок «Code», как показано ниже:
  • Отобразится cURL запроса REST API:
  • Также можно получить команду для запроса на разных языках, таких как C#, Javascript, NodeJs, PHP и т. д., выбрав нужный вариант из раскрывающегося списка, как показано на рисунке ниже:

Заключение

Postman стал самым популярным и востребованным инструментом для тестирования API. Поэтому практический опыт работы с инструментом Postman очень важен для любого тестировщика и разработчика.

Перевод статьи «Postman Interview Questions».

🔥 Какой была ваша первая зарплата в QA и как вы искали первую работу? 

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

Читать в телеграм

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *