8.3 Тестирование API. Основные методы в Postman. Проект №1
Документация Google Maps
Интерфейс Postman
Панели Postman
Верхняя панель: тут находятся основные элементы настроек программы.
Боковая панель: тут находится список запросов, выполненных ранее и сохраненные в виде коллекции запросы.
Панель вкладок: позволяет переключаться между вкладками запросов.
Рабочая область: здесь размещены основные настройки запроса и возвращенные им данные.
Самые востребованные кнопки в Postman
Кнопка New: можно создавать новые запросы (request), коллекции (Collection) или окружение (Environment).
Кнопка Import: с помощью нее можно импортировать коллекцию или окружение из других источников.
Params – сюда будут помещаться определенные параметры, которые будут добавляться к нашей URL, для того, чтобы можно было отправлять нужны нам запрос, то есть формировать его сущность.
Authorization – API использует авторизацию, чтобы убедиться, что пользователь имеет доступ к запрашиваемым данным. В этой секции описываются параметры авторизации: логин, пароль и тд. Мы будем работать с публичными API, где авторизация не нужна.
Headers – для работы с некоторыми API с каждым запросом необходимо отправлять специальные заголовки. Нужно, чтобы добавить дополнительные данные о типе операции, которую вы хотите провести.
Body – тело нашего запроса, в этой вкладке указываются данные, которые должны быть отправлены вместе с запросом.
Pre-request Script – в этой вкладке пишутся скрипты на JS, которые выполняются перед отправкой запроса.
Tests – здесь будут находиться скрипты, которые выполняются во время запроса. Тесты позволяют проверить API и убедиться, что все работает так, как было задумано.
Основные сущности, которыми оперирует Postman
Коллекция – группа запросов, аналог папки на ПК, в которой лежат наши запросы.
Запросы – комбинация URL, заголовков и тело запроса. Типы запросов:
CRUD - Create(C), Read(R), Update(U), Delete(D)
- GET(R) - получение информации от сервера
- POST(C, U, D) - добавление информации на сервер
- PUT(C, U) - изменение информации на сервере
- DELETE(D) - удаление информации с сервера
Окружение – позволяет запускать запросы и коллекции, используя разные наборы данных: окружение для разработчиков, тестировщиков и продакшн-серверов. В каждом окружении будут свои собственные настройки: URL, токены для авторизации, API ключи и т.д. Окружение представляет собой наборы пары ключ-значение.
Методы в Postman
Для того, чтобы тестировать API, необходимы 3 вещи:
- Сама API
- Postman (или любой другой инструмент, с помощью которой можно отправлять запросы).
- Документация от разработчика, которую составляли параллельно с разработкой API и в которой видно запросы и ответы, URL и прочие данные.
На данном занятии будем тестировать тестовую API Google Maps.
Метод POST
Запрос: Base URL: https://rahulshettyacademy.com Resource: /maps/api/place/add/json Параметр для всех запросов: key=qaclick123 Body: { "location": { "lat": -38.383494, "lng": 33.427362 }, "accuracy": 50, "name": "Frontline house", "phone_number": "(+91) 983 893 3937", "address": "29, side layout, cohen 09", "types": [ "shoe park", "shop" ], "website": "http://google.com", "language": "French-IN" } Ответ: Статус: 200. Запрос прошел успешно { "status": "OK", "place_id": "dea036e58d6773b3f8bfb256249a1593", "scope": "APP", "reference": "1f71a23b1374071eecbb70eed1054cf91f71a23b1374071eecbb70eed1054cf9", "id": "1f71a23b1374071eecbb70eed1054cf9" }
Базовую URL https://rahulshettyacademy.com
, то есть URL, которая будет всегда в тестировании данной API. То есть в базовую URL всегда будем вводить именно этот адрес.
Ресурс (путь) /maps/api/place/add/json
- та самая добавочная часть, которая покажет системе, что именно мы хотим выполнять. То есть тут будем выполнять добавление, так как в пути указано add
(/maps/api/place/add/json).
Параметр для всех запросов: key=qaclick123. Это ключ с доступом к API, то есть без этого ключа мы не сможем выполнить добавление новой локации.
Тело Body:
{
"location": {
"lat": -38.383494,
"lng": 33.427362
}, "accuracy": 50,
"name": "Frontline house",
"phone_number": "(+91) 983 893 3937",
"address": "29, side layout, cohen 09",
"types": [
"shoe park",
"shop"
],
"website": "http://google.com",
"language": "French-IN"
} - то есть та информация (то тело), которое будем добавлять.
Что представляет из себя API:
Google Maps API - это карта, на которой находятся те или иные объекты.
Т.к. это тестовый API, мы не сможем добавлять области на реальную карту. Но по факту это все так и происходит.
С помощью метода POST мы будем создавать новую локацию. Мы будем отправлять в Body информацию, в которой будем указывать широту, долготу, название, телефон, адрес и тд.
После того, как мы его отправили, мы получим ответ. Это должен быть статус-код 200 и некую place_id.
Как это выглядит на практике:
А теперь проверим, что локация действительно создана с помощью метода GET.
Метод GET
Base URL: https://rahulshettyacademy.com Resource: /maps/api/place/get/json Параметр для запросов: key=qaclick123, place_id
Так же можно сохранить ответ в файл:
Негативное тестирование данного API
Мы проверяли, существует ли данная локация. А теперь в запросе удалим последний символ и попробуем отправить запрос вновь.
Мы получили ошибку 404 и сообщение о том, что GET прошел не успешно и данное place_id не существует.
Метод PUT
С помощью метода PUT мы будем изменять данные локации. В частности будем изменять адрес локации.
Запрос: Base URL: https://rahulshettyacademy.com Resource: /maps/api/place/update/json Параметр для запросов: key=qaclick123 Body: { "place_id":"c104d917f4b60e2c9a5feda6c9cbf279", "address":"100 Lenina street, RU", "key":"qaclick123" } Ответ: Статус: 200. Запрос прошел успешно { "msg": "Address successfully updated" }
Метод DELETE
Запрос: Base URL: https://rahulshettyacademy.com Resource: /maps/api/place/delete/json Параметр для запросов: key=qaclick123 Body: { "place_id":"928b51f64aed18713b0d164d9be8d67f" } Ответ: Статус: 200. Запрос прошел успешно { "status": "OK" }