
Z9411_КафкаРС_ПИ_ЛР1
.docxМИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
КАФЕДРА 41 |
ОЦЕНКА
ПРЕПОДАВАТЕЛЬ
доцент |
|
|
|
Е. Л. Турнецкая |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ЛАБОРАТОРНАЯ РАБОТА №1
|
ТЕСТИРОВАНИЕ API НА ПЛАТФОРМЕ POSTMAN
|
по дисциплине: Программная инженерия |
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ гр. № |
Z9411 |
|
|
|
Р. С. Кафка |
|
номер группы |
|
подпись, дата |
|
инициалы, фамилия |
Студенческий билет № |
2019/3603 |
|
|
|
Шифр ИНДО |
|
Санкт-Петербург 2024
Цель работы: изучение технологии доступа по API к серверной части веб-приложения с использованием платформы для теcтирования Postman.
Вариант задания: №8
Номера категории: 9, 6, 16
Ход работы:
Зарегистрировался на облачной платформе тестирования Postman (https://www.postman.com/). После регистрации создалось рабочее пространство для работы в веб-версии продукта (рис.1).
Рисунок
1 – Рабочее пространство в Postman
Создал новую коллекцию: New > Collection. В ней будут сохранены все запросы с различными методами. Так как в работе предстоит тестирование API приложения Chuck Norris, то назвал коллекцию также «Chuck Norris» (рис.2).
Рисунок
2 – Создание новой коллекции
Создал новый запрос и назвал его «Chuck joke». Из впадающего списка вариантов выбрал метод GET (рис.3).
Рисунок
3 – Создание нового запроса
Ввёл параметры запроса https://api.chucknorris.io/jokes/random, копируя их части из документации по API и нажал кнопку SEND (рис. 4).
Рисунок
4 – Результат выполнения запроса
Формат ответа соответствует варианту, представленному в документации по API. Так как в ответе от сервера представлены случайные шутки, то значение параметра value, в котором показана шутка при каждом новом запросе, будет разными. Для проверки последнего утверждения нажал кнопку SEND повторно и получил другой результат (рис.5).
Рисунок
5 – Новый результат выполнения повторного
запроса
Сохранил запрос, нажав кнопку Save.
Взял второй API со страницы документации https://api.chucknorris.io/jokes/categories.
Открыл данный API в браузере (рис.6).
Рисунок
6 – Отображение категорий шуток
Создал новый запрос. Для этого нажал на знак Плюс рядом с названием запроса Chuck joke.
В поле ввода текста запроса скопировал https://api.chucknorris.io/jokes/random?category={category}. Затем сформовал параметры запроса, для этого набрал в столбце KEY название атрибута categories и ввёл его параметр animal. В окне ответа от сервера определил JSON-формат и выполнил запрос (рис.7).
Рисунок
7 – Выполнение запроса на шутку категории
animal
Сохранил запрос под именем Category Animal.
Провёл позитивное тестирование, выбрав шутки по 3 существующим категориям, согласно варианту №8. Номера категорий: 9 – money, 6 – fashion, 16 – travel. Результаты представлены на рисунках 8-10.
Рисунок
8 – Выполнение запроса на шутку категории
money
Рисунок
9 – Выполнение запроса на шутку категории
fashion
Рисунок
10 – Выполнение запроса на шутку категории
travel
Выполнил негативное тестирование и выполнил запрос с несуществующей категорией. Выполнение запроса представлено на рисунке 11.
Рисунок
11 – Выполнение запроса с несуществующей
категорией
Я получил сообщение об ошибке 404, что означает, что не найдено ни одной шутки для категории “kafka” в базе данных API Chuck Norris. Сообщение об ошибке гласит: “No jokes for category "kafka" found.”.
Результаты выполненных запросов, исходя из задач тестирования:
Целью тестирования было проверить работоспособность API Chuck Norris для получения шуток по различным категориям. Тестовые запросы и результаты представлены в таблице 1.
Таблица 1 – Тестовые запросы и результаты
Запрос |
Результат |
https://api.chucknorris.io/jokes/random?category=money |
Получена шутка о Чаке Норрисе, связанная с категорией “деньги”. Результат соответствует ожидаемому, что подтверждает работоспособность API для данной категории. |
https://api.chucknorris.io/jokes/random?category=fashion |
Получена шутка о Чаке Норрисе, связанная с категорией “мода”. Результат соответствует ожидаемому, что подтверждает работоспособность API для данной категории. |
https://api.chucknorris.io/jokes/random?category=travel |
Получена шутка о Чаке Норрисе, связанная с категорией “путешествия”. Результат соответствует ожидаемому, что подтверждает работоспособность API для данной категории. |
https://api.chucknorris.io/jokes/random?category=kafka |
Получено сообщение об ошибке 404, что означает, что не найдено ни одной шутки для категории “kafka”. Это подтверждает, что API корректно обрабатывает запросы к несуществующим категориям. |
ВЫВОД
В результате лабораторной работы я изучил технологии доступа по API к серверной части веб-приложения с использованием платформы для теcтирования Postman.
В процессе работы я выполнил несколько запросов к API Chuck Norris для получения шуток по различным категориям. Это позволило мне понять, как формировать запросы к API и как интерпретировать полученные ответы. Я также столкнулся с ситуацией, когда запрос к несуществующей категории возвращал ошибку, что помогло мне лучше понять, как API обрабатывает некорректные запросы. API Chuck Norris работает корректно для существующих категорий и адекватно реагирует на запросы к несуществующим категориям. Это подтверждает его надёжность и пригодность для использования в приложениях, требующих функциональности поиска шуток по категориям.
Также я попробовал выполнить дополнительное задание и протестировать любой сервис, в котором у меня есть личный кабинет на ввод неправильного пароля и логина, однако я не понял, как это будет сделать корректно и с каким именно сайтом. Я узнал, что в контексте входа в систему, обычно используется POST-запрос, поскольку мы отправляем конфиденциальные данные (такие как имя пользователя и пароль) на сервер. Если бы мы использовали GET-запрос, то имя пользователя и пароль отображались бы в URL, что является небезопасным. Кроме того, вход в систему может иметь побочные эффекты (например, изменение состояния входа в систему пользователя), поэтому POST-запрос является более подходящим выбором. Я пробовал делать POST запросы на следующие сайты: https://pro.guap.ru/inside/profile, https://vk.com/login, https://reqres.in/api/login. Первые 2 сайта просто предоставляли мне HTML код страницы, последний – сообщение об ошибке, что неверный username или email. Даже при попытке указать их в запросе ничего не изменялось. Возможно, у меня не получилось, потому что надо заходить не через обычные ссылки на вход, а которые поддерживают API запросы. Но полной уверенности нет. Если бы было больше времени на выполнение работы, то тогда можно было бы больше изучить данный вопрос.
В целом, работа оказалась интересной и не очень сложной. У себя на работе я сталкивался с подобным, под названием Microsoft Graph Explorer (https://developer.microsoft.com/en-us/graph/graph-explorer), но достаточно поверхностно, т.к. я состою не в архитектурной команде, а технической поддержке. Иногда команда из Microsoft поддержки просила выполнить какой-нибудь GET запрос в нём (из нашей организации (tenant)) и прислать скриншот результатов.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Chuck Norris Jokes Api – [Электронный ресурс] – URL: https://api.chucknorris.io/ (Дата обращения: 24.01.2024)
Postman API Platform – [Электронный ресурс] – URL: https://web.postman.co/ (Дата обращения: 24.01.2024)