Тестирование API Урок 4
Четвёртый урок - по-прежнему шлём PUT
фокусируемся на ответах сервера.
С этого урока я считаю, что Вы уже в состоянии создать новый Request, изменить Path
и знаете как выполнить запрос.
Наш воображаемый менеджер получил новый email от клиента и API получает дополнительный endpoint
/prod_order/
и новую версию документации.
Base URL: 'http://www.qaces.ru' … 4. Resource: /prod_order/<int:prod_order_id> Method: PUT Allowed prod_order_id:[10000;20000] Responses: 200 OK application/json {"Success":"PO with id <int:prod_order_id> created."} Order out of allowed range: 412 Precondition Failed application/json {"Error":"This order value is not allowed"} …
Запросы из предыдущих уроков я временно убрал обозначив их наличие знаком …
Разберём, что нового в этой версии
Allowed prod_order_id:[10000;20000]
Это ограничение на prod_order_id. В предыдущим уроке мы могли передать любое целое число и
получить в ответ 200 ОК.
Теперь нужно, чтобы id был от 10000 до 20000.
Если мы отправим какое-то неправильное число в качестве prod_order_id разработчики предусмотрели специальную ошибку 412.
Order out of allowed range:
412 Precondition Failed
Дополнительный код ошибки помогает тестировщику понять что именно пошло не так.
В
предыдущем уроке
мы получали ошибку 404 когда вводили вместо числа строку (
повторить
)
Проверьте, что и с /prod_order/<int:prod_order_id> она никуда не делась.
Сейчас получив 404 мы понимаем, что передано что-то принципиально неправильное.
Получив 412 мы знаем, что технически запрос корректен, но переданный id не удовлетворяет
дополнительному условию.
Отправим запрос, который, по нашему мнению, дожен удовлетворить заданым условиям и
вернуть 200 ОК.
Например, передадим prod_order_id равный 13243. 13243 больше 10000 и меньше 20000.
Как и ожидалось пришёл ответ 200 ОК.
Обратим внимание на строку {"Success": PO with id 13243 created."}
В документации написано следующее
application/json
{"Success":"PO with id <int:prod_order_id> created."}
application/json означает, что ответ сервера оформлен особым образом - в виде JSON.
Фигурные скобки, кавычки и двоеточие как раз оттуда.
{"Success":"PO with id <int:prod_order_id> created."} это дополнительная подсказка.
Если в этом ответе вместо <int:prod_order_id> будет 13243, значит сервер отвечает именно на наш запрос.
{"Success": PO with id 13243 created."} - всё получилось как мы и ожидали.
Что будет, если мы пошлём не 13243 а 7.
7 меньше 10000 значит получим ошибку 412. Вместе с ошибкой придёт подсказка, тоже в формате JSON
application/json
{"Error":"This order value is not allowed"}
Проверим
Откройте этот же ответ во вкладке JSON
Здесь показан только сам JSON, который пришёл от сервера.
Во вкладке XML наш ответ отображаться не будет, потому что он в другом формате
Вкладку HTML можете посмотреть самостоятельно в качестве упражнения.
Проверим нашу «старую» ошибку 404. Отправляем заведомо неправильный запрос
/prod_order/andreyolegovich.ru
По-прежнему 404 Not Found.
Not Found Вы видите, а где проверить, что это 404 уже должны знать - напишите в комментариях получилось или нет.
Итоги
После первых четырёх уроков Вы знаете как создавать простые REST запросы в
SOAP UI
.
Вы знакомы с методами GET и
PUT
.
Знаете, что в случае успеха нужно ждать ответ 200 OK или похожий на него.
Видели ошибки типа 4XX а именно 404 Not Found и 412 Preconditon failed.
Знаете, что ответ сервера может быть без формата или в формате JSON.
Догадываетесь, что кроме формата JSON есть ещё, как-минимум, XML и HTML
Большая просьба - не посылайте слишком много запросов. Я не уверен какую нагрузку выдержит сайт на моём тарифе.