testengineer.ru

Домой Обучение Идем на собеседование на позицию тестировщика - 36 частых вопросов по Postman

Идем на собеседование на позицию тестировщика — 36 частых вопросов по Postman

Автор

Дата

Категория

Собрали практически все, о чем у вас могу спросить о Postman на собеседовании. Для тех, кто не работал с Postman, мы написали большой гайд для начинающих.

1. Вы уже знаете, что такое Postman? Расскажите.

Платформа для совместной разработки API. Популярный API-клиент, позволяющий тестировать, документировать и работать с разными API.

В Postman можно отправлять HTTP(s)-запросы к сервису и получать ответы. Таким образом можно проверить, что сервис работает.

Изначально это был плагин для Google Chrome. Сейчас — нативное приложение для Mac, Windows и Linux.

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

Postman используют более 8 миллионов разработчиков и тестировщиков. Вот его основные преимущества:

  • Бесплатный. Он абсолютно бесплатный. И в нем может работать команда какой угодно численности (что немаловажно).
  • Простой. Не требует какой-либо сложной предварительной настройки.
  • Поддержка API. Поддерживает разные типы API (REST, SOAP и т.п.).
  • Расширяемый. Можно расширять при необходимости, для этого есть свой Postman API.
  • Интеграция. Легко интегрировать наборы тестов в CI/CD-сервис, с помощью Newman — CLI-инструмента для запуска тестов из командной строки.
  • Есть приличное комьюнити. Большой форум для вопросов и ответов.

3. Стоп, а что такое API?

API (Application Programming Interface) — это «программный интерфейс приложения», или, по другому — «интерфейс прикладного программирования». API описывает, как программа взаимодействует с другими программами.

Более простыми словами, это интерфейс, или «окно» между двумя программами, через которое они «общаются». Это набор функций, которые могут запрашиваться одной программой в другой программе.

4. Какие знаете средства тестирования API?

  • Postman
  • Katalon Studio
  • SoapUI
  • Tricentis Tosca
  • Apigee
  • Jmeter

5. Перечислите ключевые элементы HTTP-запроса?

  • HTTP-метод. (GET, PUT, POST, DELETE и т.п.). Подробнее обо всех методах можно почитать в MDN.
  • Uniform Resource Identifier (URI) — описание ресурса. (например testengineer.ru)
  • Версия HTTP (например HTTP 1.1).
  • Заголовки запроса (например — Content-type: application/json, Content-Length: 511). Все возможные заголовки перечислены в MDN)
  • Payload. Это тело запроса, содержащее непосредственно само сообщение серверу.

6. Хорошо. А какие бывают ключевые элементы HTTP-ответа?

Каждый HTTP-ответ содержит 4 элемента.

  • Код (или номер) ответа, обозначающий статус. Этот код отправляется сервером в ответ на запрос клиентской программы. Знаменитый код ответа “404” значит, что “запрашиваемой страницы на сервере нет”. Код 200 значит, что запрос выполнился успешно.
  • Версия HTTP, например HTTP 1.1.
  • Заголовки. Тип контента (Content-type), его длина (Content-length), дата, текущее состояние сервера, и его тип.
  • Тело ответа. Здесь непосредственно данные, запрошенные клиентским приложением.

7. Какие данные, имеющие отношение к API, можно найти в Web Developer tools?

Заголовок запроса, тело запроса, и кукисы относящиеся к запросу.

8. Как можно удобно передавать данные запроса из Web Developer tools в Postman?

Скопировав в виде cURL.

9. В какой кодировке Postman принимает данные для авторизации?

Только в кодировке Base64. Это особенность Postman. (Но можно «конвертнуть» данные на других сайтах.)

10. А почему так, почему принимает только эту кодировку?

В Postman решили работать только с Base64, поскольку она передает данные в текстовой форме, это чуть проще, чем «классические» HTML-формы. А также это связано с легкой «конвертируемостью» этого формата.

11. Что такое «окружение» (environment) в Postman?

Это набор, состоящий из пар ключ-значение. Все коллекции, работающие в окружении, используют его контекст — т.е. используют переменные окружения. Можно создавать много окружений, и переключаться между ними (например, отдельные окружения для dev, test, demo и prod environments). Существуют два типа окружений — глобальные и локальные. Подробнее в нашем гайде.

12. Могут ли глобальные переменные (global scope variables) иметь дублирующиеся имена в Postman?

Поскольку глобальные переменные являются глобальными (то есть не относятся ни к какому окружению), иметь дубликаты они не могут. А вот локальные переменные могут иметь те же имена (но только если они в разных окружениях).

13. Какая переменная имеет приоритет — глобальная, локальная? (в случае если у них одинаковые имена).

Если есть две переменные с одинаковым именем (одна глобальная, другая локальная), то высший приоритет — у локальной переменной. Она «затирает» глобальную.

14. Что такое коллекция? (Postman Collection)

Коллекция — это файл проекта, объединяющий в себе все связанные запросы API.

15. А что такое монитор?

Мониторы в Postman служат для запуска коллекций. С помощью них можно получать регулярную обратную связь о работе API. С помощью мониторов можно регулярно выполнять ваши коллекции запросов (например, каждый час) до истечения заданного времени.

16. Что такое раннеры коллекций?

Раннеры (Postman Collection runners) служат автоматического запуска коллекций на выполнение. Коллекция (группа запросов) может быть запущена с разными наборами данных, что удобно для тестирования. Подробнее о Collection runners можно почитать по ссылке.

17. Можно ли импортировать локальные переменные в мониторы?

Да. В мониторы можно импортировать локальные переменные. Но нельзя импортировать глобальные.

18. Зачем нужно облако Postman, ведь мы работаем в локалке компании?

Облако работает как общий репозиторий для всех сотрудников компании, для доступа к коллекциям. Коллекции, сохраненные в облаке, будут доступны вне зависимости от того, за каким устройством вы работаете: не нужно беспокоиться о переносе коллекций с одного устройства на другое.

19. Почему тогда сохранять работу в Postman-облаке по умолчанию не рекомендуется?

Сохранять выполненную работу в облаке не рекомендуется из соображений безопасности. Это, теоретически, может грозить взломом. Поэтому Postman Cloud не одобряет практику сохранения выполненной работы, советуя сохранять ее где-нибудь у себя в воркспейсе.

20. Что значит код «304»?

Он расшифровывается как Not Modified (без изменений). Говорит о том, что нет необходимости повторно передавать запрошенные ресурсы. Предназначен для снижения нагрузки на сеть, вызванной множеством стандартных GET-запросов. Тело запроса должно быть пустым, но должны присутствовать заголовки.

21. Опишите код состояния «201».

Он расшифровывается как Created (ресурс создан), когда ресурс успешно создан POST- или GET-запросом. Возвращает ссылку на только что созданный ресурс, в заголовке location.

22. Когда применяем глобальные переменные, переменные в коллекциях, и локальные?

Глобальные переменные — «общего предназначения», доступ к которым есть во всех окружениях. Они идеальны для малых задач (когда вам не нужно думать об областях видимости) и прототипирования. 

Переменные в коллекциях. Чаще применяются для хранения констант (неизменяемых за время выполнения коллекции), и также для URL’ов и данных авторизации (если окружение только одно).

Локальные переменные. Доступны только внутри запроса (в составе набора из таких локальных переменных), или же в Newman/Collection Runner во время их выполнения. Применяются всякий раз, когда нужно «переписать» предыдущие два типа.

23. Как удалить локальные переменные?

Они удаляются автоматически после выполнения тестов.

24. Как остановить выполнение запросов? Как остановить выполнение коллекции?

Командой postman.setNextRequest(null);

25. В чем разница между данными из формы и x-www-form-urlencoded ?

URL будет закодирован, если отправляется с применением x-www-form-urlencoded.

26. Где передаются параметры в GET-запросе?

Они передаются в URL.

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

К переменной var можно получить доступ командой {{var}}.

28. Какой будет код ответа HTTP на POST-запрос с некорректными параметрами?

400 Bad Request — код ответа на некорректные параметры в POST-запросе.

29. Как в Postman выполнить один и тот же запрос 100 раз?

С помощью раннера Collection Runner.

30. Как упорядочить и сгрупировать запросы в Postman?

Запросы группируются в коллекциях.

31. А на каком языке программирования пишутся тесты в Postman?

JavaScript.

32. Что выполняется при запуске коллекций в первую очередь?

Так называемые подготовительные скрипты (pre-request scripts).

33. Какие JavaScript-библиотеки доступны в Postman?

Lodash, Moment, GUID.

34. Каким инструментом можно запускать коллекции в Jenkins?

Newman. Запуск коллекций с помощью Newman описан по ссылке.

35. Как протоколировать запросы и ответы в Postman?

Логи запросов и ответов видны в окне консоли (Console).

36. Что такое GUID?

Глобальный уникальный идентификатор, 128-битный «ярлык». Представляет собой группы из 32 шестнадцатеричных цифр, разделенных дефисами для удобства чтения. В Postman GUID используется для генерации и отправки случайных данных в API. Вот так:

{
  "id": "{{$guid}}",
}

4 КОММЕНТАРИИ

  1. Огромное спасибо, как раз готовлюсь к собесу на QA trainee! Полезно потренироваться. Вопросы все несложные на самом деле — практически на все ответил.

  2. Сохранять выполненную работу в облаке не рекомендуется из соображений безопасности. Это, теоретически, может грозить взломом. Поэтому Postman Cloud не одобряет практику сохранения выполненной работы, советуя сохранять ее где-нибудь у себя в воркспейсе.
    ***
    То есть они сами сделали сервис и сами же не одобряют его использование??? Как-то странно это выглядит

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь

Последние публикации

Последние комментарии