Чат поддержки
Практикум
Привет! Это поддержка Практикума 👋 Если что-то не получается — постараемся помочь. Пишите в чат или выберите другой способ связи
пт, 2 декабряв 17:21
Мы уже начали заниматься вашим вопросом, ответим в ближайшее время
Практикум

Здравствуйте!

Поддержка не сможет помочь с вопросами, связанными с теорией или задачам из курса «Системный аналитик» — в этой ситуации рекомендуем вам обратиться к вашему преподавателю в чате в Slack.

Если же у вас возникнут иные вопросы — обязательно пишите, будем рады помочь :)

17:24
Выбрать способ связи
Виктория Казмина
kazminaviktoriya1
Пригласить друга
Перейти в профиль
Выйти из профиля
ViktoriyaPolyakova81
natalyaefremova78
tatyana1988tatiana
MiloMilo83
SvetlanaKuznezova1987
milomilo79.maria
tanya1999petrova
Добавить аккаунт

Программные интерфейсы

спринт Программные интерфейсы
Компьютерная сеть и протоколы
6/6
О чём этот спринт
Сетевая модель OSI
Сетевая модель TCP/IP
HTTP-запрос
Параметры HTTP-запроса
HTTP-ответ
Стили представления данных
2/2
JSON
XML
Postman
2/2
Postman: основная функциональность
Postman: тестирование API
Стили взаимодействия
4/4
Проектирование взаимодействия
1/1
Воркшоп и домашнее задание
1/2
Заключение
1/1

Postman: тестирование API

В прошлом уроке вам удалось познакомиться с Postman, отправить запросы в API и посмотреть ответы сервера. Теперь вы потренируетесь тестировать API приложения Яндекс Прилавок с помощью Postman.
Представьте, что разработчики API передали вам на тестирование новую функциональность:
  • Получить список наборов, которые содержатся в карточке.
  • Создать пустой набор с продуктами.
  • Получить список наборов, в которых есть переданные в запросе продукты.
  • Получить список продуктов, которые входят в набор.
Изучите требования тут.
Ваш коллега-тестировщик уже подготовил тестовые данные — проверить функциональность нужно на примере карточки «Под ситуацию».
Используйте чек-лист:
  1. При отправке запроса GET /api/v1/kits?cardId=1 в ответе возвращается список наборов, привязанных к карточке.
  2. При отправке запроса POST /api/v1/kits с cardId и name создаётся пустой набор, привязанный к карточке.
  3. При отправке запроса POST /api/v1/products/kits с указанными id продуктов в ответ приходит список наборов, в которых содержатся эти продукты.
  4. При отправке запроса GET /api/v1/kits/search?name=В+космос в ответ приходит список продуктов для заданного набора.
  1. Запустите сервер с API из предыдущего урока.
  2. Откройте Postman. Создайте новый запрос и скопируйте адрес сервера в URL.
Теперь можно выполнять проверки по чек-листу.
При отправке запроса GET /api/v1/kits?cardId=1 в ответе возвращается список наборов, привязанных к карточке «Под ситуацию».
Адрес сервера у вас уже подставлен. Теперь нужно добавить к адресу URL /api/v1/kits?cardId=1. URL можно найти в требованиях.
Запрос принимает на вход параметр cardId с номером карточки, содержимое которой нужно посмотреть. В этом примере вы запрашиваете список наборов в карточке «Под ситуацию», поэтому нужно знать её номер.
Информацию о параметрах запроса можно найти в документации к API. Документация описывает, как работает API: например, какие запросы может принимать и какие ответы отправлять. Вы научитесь работать с ней в следующих уроках.
Пока можете посмотреть выдержку из документации с параметрами запроса GET /api/v1/kits:
Из предыдущего урока вы уже знаете, как создавать параметры в запросе.
  1. Создайте параметр cardId и подставьте значение 1 — это номер карточки «Под ситуацию». Она уже есть в приложении.
  2. Отправьте запрос в API.
Какие код и тело ответа сервера удалось получить?
Должен вернуться список наборов, которые входят в карточку.
Этот код ответа значит, что запрашиваемый по URL ресурс не найден. Проверь, что нет ошибки в URL и параметре запроса, и отправь запрос ещё раз. Должен вернуться список наборов, которые входят в карточку.
Такая ошибка может появляться, если ещё не все компоненты сервера запустились. Подожди минуту и отправь запрос повторно. Должен вернуться список наборов, которые входят в карточку.
Должен вернуться список наборов, которые входят в карточку. Если его нет в теле ответа, обратись к преподавателю.
Должно получиться так:
Сохраните запрос.
Для этого:
  1. В области работы с запросом кликните по кнопке Save («Сохранить»). Появится окно сохранения запроса.
  2. В поле Request name («Имя запроса») введите название запроса. Например, «Получить список наборов в карточке».
  3. В поле Select a collection or folder to save («Выбрать коллекцию или папку для сохранения») нажмите Create collection («Создать коллекцию»).
  4. Создайте новую коллекцию Practicum.
Коллекция — это место хранения ваших запросов в Postman. Ещё в коллекции можно группировать и сортировать запросы. Подробнее о коллекциях можно прочитать тут.
При отправке запроса POST /api/v1/kits с cardId и name создаётся пустой набор, привязанный к карточке
По документации к API, чтобы создать набор, нужно в теле запроса передать номер карточки (параметр cardId) и название набора (параметр name) в формате JSON.
  1. Подставьте в запрос уже известную вам карточку «Под ситуацию»: cardId = 1.
  2. Новый набор с продуктами назовите «В космос»: name = "В космос".
Пример тела запроса из документации:
JSON
{
    "cardId": 1, 
    "name": "В космос" 
} 
  1. В URL после адреса стенда добавьте путь /api/v1/kits.
  2. Отправьте запрос.
Какие код и описание ответа сервера удалось получить?
Эта ошибка возникает, когда неправильно указан метод в запросе. Проверь, что указан правильный метод — POST. Отправь запрос повторно. Должен вернуться ответ об успешной обработке запроса: 201 Created.
Этот код ответа значит, что запрашиваемый по URL ресурс не найден. Проверь, что нет ошибки в URL и параметре запроса, и отправь запрос ещё раз. Должен вернуться ответ об успешной обработке запроса: 201 Created.
Такая ошибка может появляться, когда ещё не все компоненты сервера запустились. Подожди минуту и отправь запрос повторно. Должен вернуться ответ об успешной обработке запроса: 201 Created.
Ответ сообщает о том, что запрос успешно обработан.
Такая ошибка возникает, когда сервер не запущен. Перезапусти его, подожди минуту и отправь запрос повторно. Должен вернуться ответ об успешной обработке запроса: 201 Created.
Такая ошибка возникает, когда запрос составлен технически неверно: в теле запроса есть ошибка. Проверь, что структура запроса правильная: запятые стоят в нужных местах, ключи в кавычках, ключ и значение разделяются двоеточием. Отправь запрос повторно. Должен вернуться ответ об успешной обработке запроса: 201 Created.
Проверьте, что в списке наборов карточки «Под ситуацию» есть набор «В космос». В теле ответа ищите название набора по name.
Проверьте, что набор добавлен в ту же карточку, для которой вы запрашиваете список наборов — «Под ситуацию»: cardId = 1. В ответе должен прийти такой блок: {"id": 7, "name": "В космос", "productsList": null, "productsCount": 0}
Набор в карточке действительно добавился. Об этом говорит такой блок в ответе: {"id": 7, "name": "В космос", "productsList": null, "productsCount": 0}
При отправке запроса POST /api/v1/products/kits с указанными id продуктов в ответ приходит список наборов, содержащих эти продукты
Иногда методом POST можно не только создавать, но и получать данные. По документации к API в теле запроса передаётся параметр ids в формате JSON. ids — это массив, содержащий список идентификаторов id продуктов.
В базе данных приложения уже лежат продукты для тестирования. Возьмите вот эти:
  • 1 — id продукта Orange Juice - Cold-Pressed, No Added Sugar, Preservative Free;
  • 22 — id продукта Pepperoni.
Вот пример тела запроса из документации:
JSON
{
    "ids": [
        1,
        22
    ]
} 
Создайте и отправьте новый запрос.
Какой ответ сервера удалось получить?
Эта ошибка возникает, когда неправильно указан метод в запросе. Проверьте, что указан правильный метод — POST. Отправьте запрос повторно. Должен вернуться ответ об успешной обработке запроса 200 ОK, в теле ответа — набор «На пикник».
Такая ошибка возникает, когда сервер не запущен. Перезапустите его, подожди минуту и отправь запрос повторно. Должен вернуться ответ об успешной обработке запроса 200 ОK, в теле ответа — набор «На пикник».
Так и должно быть.
В ответе должен быть набор «На пикник»: продукты с id 1 и 22 встречаются только в нём. Проверьте, правильно ли указаны данные в теле запроса.
Этот ответ говорит о том, что в запросе есть ошибка. Убедитесь, что нет ошибок в теле и запрос отправляется в правильном формате. Должен вернуться ответ об успешной обработке запроса 200 ОK, в теле ответа — набор «На пикник».
Сохраните запрос под именем «Получить список наборов по продуктам».
При отправке запроса GET /api/v1/kits/search в ответ приходит список продуктов для заданного набора
Запрос принимает на вход параметр name с названием набора. Вы уже умеете добавлять параметры в URL запроса. В качестве name используйте набор «В космос». В ответ должен прийти список продуктов или пустой ответ, если в наборе пока нет продуктов.
Обратите внимание, в URL можно передать только ограниченный набор символов, поэтому пробел в параметрах запроса заменяется либо на %20, либо на +: В%20космос или В+космос.
Создайте и отправьте новый запрос. Что пришло в ответ?
Набор «В космос» пока пустой — без продуктов.
Должен вернуться ответ об успешной обработке запроса 200 ОК с пустым телом ответа.
Этот код ответа говорит о том, что запрашиваемый по URL ресурс не найден. Проверь, что нет ошибки в URL и параметре запроса. Отправь запрос повторно. Должен вернуться ответ об успешной обработке запроса 200 ОК с пустым телом ответа.
Такая ошибка может появляться, когда ещё не все компоненты сервера запустились. Подожди минуту и отправь запрос повторно. Должен вернуться ответ об успешной обработке запроса: 200 ОК.
Сохраните запрос под именем «Получить список продуктов по имени набора».
Теперь вы знаете, как в Postman тестировать API по чек-листу и сравнивать ожидаемый результат с фактическим.

Курсы

Вводный модуль

Понимание профессии системного аналитика

Разработка требований

Проект 1. Спецификация требований ко второму релизу Chatty

SQL для аналитиков

Моделирование данных

Проект 2. Моделирование данных и работа с базой данных интернет-магазина «Накарабине»

Моделирование процессов

Пользовательские интерфейсы

Agile-практики

Проект 3. Бэклог приложения для сети клиник «Вита»

Трудоустройство

Архитектура системы

Программные интерфейсы

Проект 4

Реализация системы

Поддержка, обслуживание и оценка результатов

Дипломный проект

Дополнительные материалы