A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | https://petstore.swagger.io/ как пример | Видео на Youtube: https://youtu.be/M72eY5tHhCM | Создание запросов в Postman на основе тест-кейсов по API | https://t.me/protestinginfo | |||||||||||||||||||||||
2 | Environment: Окружение: Postman v10.8.8 | ||||||||||||||||||||||||||
3 | № | Приоритет | Название | Предусловия | Тестовые данные | Шаги | Ожидаемый результат | Статус прохождения Passed or Failed | Link to bug report (Link of defect) | Комментарий | |||||||||||||||||
4 | Пример позитивного API-теста | ||||||||||||||||||||||||||
5 | 1 | High | Добавить нового питомца в магазин (Вызов метода POST) | Headers request: Content-Type: application/json Обязательно: не забываем про параметры аутентификации, для этого сервиса не нужны параметры, для того, чтобы авторизоваться в систему 1 cпособ api_key (apiKey) Name: api_key In: header Value: 2 способ petstore_auth (OAuth2, implicit) Authorization URL: https://petstore.swagger.io/oauth/authorize Flow: implicit client_id: | Параметры в случае POST передаются в теле запроса в JSON объекте. 1) category: name = animal 2) name = Bulldog 3) photoUrls = https://site.com/bulldog/photo 4) tags: name = #dog 5) status = available Тело запроса: { "id": 10, "category": { "id": 1, "name": "animal" }, "name": "Bulldog", "photoUrls": [ "https://site.com/bulldog/photo" ], "tags": [ { "id": 1, "name": "#dog" } ], "status": "available" } | Отправить POST запрос https://petstore.swagger.io/v2/pet или по-другому записать шаг Инициировать вызов сервиса методом POST с телом | Запрос успешно отправлен на сервер (или запрос успешно иницирован) | Passed | Поле заголовка запроса Content-Type используется для указания медиа типа данных в теле сообщения. | ||||||||||||||||||
6 | Проверить код состояния | HTTP Status: 200 OK | Passed | ||||||||||||||||||||||||
7 | Проверить тело ответа от сервера | Новый питомец добавлен в магазин Тело ответа в формате JSON (сформированный объект JSON) возвращается от сервера и будет иметь следующий вид: { "id": 10, "category": { "id": 1, "name": "animal" }, "name": "Bulldog", "photoUrls": [ "https://site.com/bulldog/photo" ], "tags": [ { "id": 1, "name": "#dog" } ], "status": "available" } Каждое поле JSON объекта соответствует аргументу метода сервиса | Passed | ||||||||||||||||||||||||
8 | Проверить структуру ответа | Схема JSON отображена корректно имена и типы полей соответствуют ожидаемым, включая вложенные объекты: "category": { "id": 1, "name": "animal" } вложенная структура данных, содержащая объекты и массивы: "tags": [ { "id": 1, "name": "#dog" } ] значения полей соответствуют ожидаемым значениям из тестовых данных: "id": 10 - number "category": {"name": "animal"} - object "name": "Bulldog" - string "photoUrls": [ "https://site.com/bulldog/photo"] - array "tags": [ { "name": "#dog"}] - array with objects "status": "available" - string | Passed | ||||||||||||||||||||||||
9 | Проверить заголовки ответа | access-control-allow-headers: Content-Type,api_key,Authorization access-control-allow-methods: GET,POST,DELETE,PUT access-control-allow-origin: * content-type: application/json date: server: Jetty(9.2.9.v20150224) | Passed | ||||||||||||||||||||||||
10 | 1.1 | High | Изменение статуса добавленного питомца в магазин | Headers request: Content-Type: application/json | Заменить status = sold Тело запроса: { "id": 10, "category": { "id": 1, "name": "animal" }, "name": "Bulldog", "photoUrls": [ "https://site.com/bulldog/photo" ], "tags": [ { "id": 1, "name": "#Bulldog" } ], "status": "sold" } | Отправить PUT запросhttps://petstore.swagger.io/v2/pet | Запрос успешно отправлен на сервер (или запрос успешно иницирован) | Passed | |||||||||||||||||||
11 | Проверить код состояния | HTTP Status: 200 OK | Passed | ||||||||||||||||||||||||
12 | Проверить тело ответа от сервера | Тело ответа в формате JSON возвращается от сервера и будет иметь следующий вид: { "id": 10, "category": { "id": 1, "name": "animal" }, "name": "Bulldog", "photoUrls": [ "https://site.com/bulldog/photo" ], "tags": [ { "id": 1, "name": "#Bulldog" } ], "status": "sold" } Изменен статус питомца на "Продано" - "status": "sold" | Passed | ||||||||||||||||||||||||
13 | Проверить заголовки ответа | access-control-allow-headers: Content-Type,api_key,Authorization access-control-allow-methods: GET,POST,DELETE,PUT access-control-allow-origin: * content-type: application/json date: Thu,01 Dec 2022 19:14:43 GMT server: Jetty(9.2.9.v20150224) | Passed | ||||||||||||||||||||||||
14 | 1.2 | High | Удаление питомца из магазина | Headers request: Content-Type: application/json | {petId} = 10 integer($int64) (path)запрос https://petstore.swagger.io/v2/pet/{petId} | Отправить DELETE запрос https://petstore.swagger.io/v2/pet/10 | Запрос успешно отправлен на сервер | Passed | Если еще раз удалить питомца, то будет 404 Error: Not Found | ||||||||||||||||||
15 | Проверить код состояния | HTTP Status: 200 OK | |||||||||||||||||||||||||
16 | Проверить тело ответа от сервера | Тело ответа в формате JSON будет иметь следующий вид: Response body { "code": 200, "type": "unknown", "message": "10" } Питомец с id = 10 удален из магазина | Passed | ||||||||||||||||||||||||
17 | Проверить заголовки ответа | access-control-allow-headers: Content-Type,api_key,Authorization access-control-allow-methods: GET,POST,DELETE,PUT access-control-allow-origin: * content-type: application/json date: server: Jetty(9.2.9.v20150224) | Passed | ||||||||||||||||||||||||
18 | Пример негативного API-теста | ||||||||||||||||||||||||||
19 | 2 | Medium | Добавить нового питомца в магазин Вызов метода GET - Попытка создать ресурс недопустимым методом | Headers request: Content-Type: application/json Accept: application/json | Параметры в случае GET передаются в теле запроса в JSON объекте. { "id": 10, "category": { "id": 1, "name": "animal" }, "name": "Bulldog", "photoUrls": [ "https://site.com/bulldog/photo" ], "tags": [ { "id": 1, "name": "#dog" } ], "status": "available" } | Отправить GET запрос https://petstore.swagger.io/v2/pet | Запрос успешно отправлен на сервер | NotTested | Заголовок Accept помогает серверу правильно расшифровать сообщение. Указывая в заголовке Accept, мы даем серверу понять, какие данные готовы принять в ответ. | ||||||||||||||||||
20 | Проверить код состояния | HTTP Status: 405 Method Not Allowed | NotTested | ||||||||||||||||||||||||
21 | Проверить тело ответа от сервера | Тело ответа в формате JSON будет иметь следующий вид: { "code": 405, "type": "unknown" } описание ошибки правильное для данного типа ошибки | NotTested | ||||||||||||||||||||||||
22 | Проверить заголовки ответа | access-control-allow-headers: Content-Type,api_key,Authorization access-control-allow-methods: GET,POST,DELETE,PUT server: Jetty(9.2.9.v20150224) | NotTested | ||||||||||||||||||||||||
23 | 3 | Medium | Добавить нового питомца в магазин Вызов метода POST - Попытка создать ресурс c телом JSON и c content-type = XML | Headers request: Content-Type: application/xml Accept: application/json | Параметры в случае POST передаются в теле запроса в JSON объекте. { "id": 10, "category": { "id": 1, "name": "animal" }, "name": "Bulldog", "photoUrls": [ "https://site.com/bulldog/photo" ], "tags": [ { "id": 1, "name": "#dog" } ], "status": "available" } | Отправить POST запрос https://petstore.swagger.io/v2/pet | Запрос успешно отправлен на сервер | Passed | Здесь дефект | Тело ответа в формате JSON будет иметь следующий вид: { "code": 400, "type": "unknown", "message": "javax.xml.bind.UnmarshalException\n - with linked exception:\n[org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.]" } описание ошибки правильное для данного типа ошибки | |||||||||||||||||
24 | Проверить код состояния | HTTP Status: 415 Unsupported Media Type Код состояния HTTP соответствует типу ошибки | Failed | ||||||||||||||||||||||||
25 | Проверить тело ответа от сервера | Тело ответа в формате JSON будет иметь следующий вид: { "code": 415, "type": "unknown" } описание ошибки правильное для данного типа ошибки | Failed | ||||||||||||||||||||||||
26 | Проверить заголовки ответа | access-control-allow-headers: Content-Type,api_key,Authorization access-control-allow-methods: GET,POST,DELETE,PUT server: Jetty(9.2.9.v20150224) | Passed | ||||||||||||||||||||||||
27 | 4 | Medium | Добавить нового питомца в магазин Вызов метода POST - Попытка создать ресурс c телом JSON и c content-type = Javascript | Headers request: Content-Type: application/javascript Accept: application/json | Параметры в случае POST передаются в теле запроса в JSON объекте. { "id": 10, "category": { "id": 1, "name": "animal" }, "name": "Bulldog", "photoUrls": [ "https://site.com/bulldog/photo" ], "tags": [ { "id": 1, "name": "#dog" } ], "status": "available" } | Отправить POST запрос https://petstore.swagger.io/v2/pet | Запрос успешно отправлен на сервер | NotTested | |||||||||||||||||||
28 | Проверить код состояния | HTTP Status: 415 Unsupported Media Type Код состояния HTTP соответствует типу ошибки | NotTested | ||||||||||||||||||||||||
29 | Проверить тело ответа от сервера | Тело ответа в формате JSON будет иметь следующий вид: { "code": 415, "type": "unknown" } описание ошибки правильное для данного типа ошибки | NotTested | ||||||||||||||||||||||||
30 | Проверить заголовки ответа | access-control-allow-headers: Content-Type,api_key,Authorization access-control-allow-methods: GET,POST,DELETE,PUT server: Jetty(9.2.9.v20150224) | NotTested | ||||||||||||||||||||||||
31 | 5 | Medium | Добавить нового питомца в магазин Вызов метода POST - Попытка создать ресурс c полем, не допускающим значение "NULL", но равен "NULL" в теле запроса | Headers request: Content-Type: application/json Accept: application/json | Параметры в случае POST передаются в теле запроса в JSON объекте. { "id": NULL, "category": { "id": 1, "name": "animal" }, "name": "Bulldog", "photoUrls": [ "https://site.com/bulldog/photo" ], "tags": [ { "id": 1, "name": "#dog" } ], "status": "available" } | Отправить POST запрос https://petstore.swagger.io/v2/pet | Запрос успешно отправлен на сервер | NotTested | Поле заголовка запроса Accept используется, чтобы определить тип информации, который должен содержаться в ответе HTTP сервера | ||||||||||||||||||
32 | Проверить код состояния | HTTP Status: 400 Bad Request Код состояния HTTP соответствует типу ошибки | NotTested | ||||||||||||||||||||||||
33 | Проверить тело ответа от сервера | Тело ответа в формате JSON будет иметь следующий вид: { "code": 400, "type": "unknown", "message": "bad input" } описание ошибки правильное для данного типа ошибки | NotTested | ||||||||||||||||||||||||
34 | Проверить заголовки ответа | access-control-allow-headers: Content-Type,api_key,Authorization access-control-allow-methods: GET,POST,DELETE,PUT server: Jetty(9.2.9.v20150224) | NotTested | ||||||||||||||||||||||||
35 | 6 | Medium | Добавить нового питомца в магазин Вызов метода POST - Попытка создать ресурс c полем, не допускающим значение "null", но равен "null" в теле запроса | Headers request: Content-Type: application/json | Параметры в случае POST передаются в теле запроса в JSON объекте. { "id": null, "category": { "id": 1, "name": "animal" }, "name": "Bulldog", "photoUrls": [ "https://site.com/bulldog/photo" ], "tags": [ { "id": 1, "name": "#dog" } ], "status": "available" } | Отправить POST запрос https://petstore.swagger.io/v2/pet | Запрос успешно отправлен на сервер | Passed | есть дефект | будет такой ответ { "id": 9223372036854775807, "category": { "id": 1, "name": "animal" }, "name": "Bulldog", "photoUrls": [ "https://site.com/bulldog/photo" ], "tags": [ { "id": 1, "name": "#dog" } ], "status": "available" } и этот дефект id как 9223372036854775807 подставляется автоматически | |||||||||||||||||
36 | Проверить код состояния | HTTP Status: 400 bad request Код состояния HTTP соответствует типу ошибки | Failed | ||||||||||||||||||||||||
37 | Проверить тело ответа от сервера | id должен быть типом "number", а не "nul" Тело ответа в формате JSON будет иметь следующий вид: { "code": 400, "type": "unknown", "message": "bad input" } | Failed | ||||||||||||||||||||||||
38 | Проверить заголовки ответа | access-control-allow-headers: Content-Type,api_key,Authorization access-control-allow-methods: GET,POST,DELETE,PUT server: Jetty(9.2.9.v20150224) | Passed | ||||||||||||||||||||||||
39 | 7 | Medium | Добавить нового питомца в магазин Вызов метода POST - Попытка создать ресурс с использованием несуществующего адреса | Headers tab: Content-Type: application/json | Параметры в случае POST передаются в теле запроса в JSON объекте. { "id": 10, "category": { "id": 1, "name": "animal" }, "name": "Bulldog", "photoUrls": [ "https://site.com/bulldog/photo" ], "tags": [ { "id": 1, "name": "#dog" } ], "status": "available" } | Отправить POST запрос https://petstore.swagger.io/v2/pet1 | Запрос успешно отправлен на сервер | NotTested | |||||||||||||||||||
40 | Проверить код состояния | HTTP Status: 404 Not Found Код состояния HTTP соответствует типу ошибки | NotTested | ||||||||||||||||||||||||
41 | Проверить тело ответа от сервера | Тело ответа в формате JSON будет иметь следующий вид: { "code": 404, "type": "unknown", "message": "null for uri: http://petstore.swagger.io/v2/pet1" } описание ошибки правильное для данного типа ошибки | NotTested | ||||||||||||||||||||||||
42 | Проверить заголовки ответа | access-control-allow-headers: Content-Type,api_key,Authorization access-control-allow-methods: GET,POST,DELETE,PUT server: Jetty(9.2.9.v20150224) | NotTested | ||||||||||||||||||||||||
43 | 8 | High | Добавить нового питомца в магазин Вызов метода POST - Попытка создать ресурс c пустым JSON объектом | Headers tab: Content-Type: application/json | Параметры в случае POST передаются в теле запроса в JSON объекте. { } | Отправить POST запрос https://petstore.swagger.io/v2/pet | Запрос успешно отправлен на сервер | Passed | Не уверена, что это корректный ожидаемый результат По сути должно быть отображено тело JSON с сообщением об заполнении обязательных полей и иметь другой формат { "id": "This field is required.", "name": "This field is required." } | ||||||||||||||||||
44 | Проверить код состояния | HTTP Status: 200 OK | Passed | ||||||||||||||||||||||||
45 | Проверить тело ответа от сервера | Тело ответа в формате JSON будет иметь следующий вид: { "id": 9223372036854018882, "photoUrls": [], "tags": [] } | Failed | ||||||||||||||||||||||||
46 | |||||||||||||||||||||||||||
47 | |||||||||||||||||||||||||||
48 | |||||||||||||||||||||||||||
49 | |||||||||||||||||||||||||||
50 | |||||||||||||||||||||||||||
51 | |||||||||||||||||||||||||||
52 | |||||||||||||||||||||||||||
53 | |||||||||||||||||||||||||||
54 | |||||||||||||||||||||||||||
55 | |||||||||||||||||||||||||||
56 | |||||||||||||||||||||||||||
57 | |||||||||||||||||||||||||||
58 | |||||||||||||||||||||||||||
59 | |||||||||||||||||||||||||||
60 | |||||||||||||||||||||||||||
61 | |||||||||||||||||||||||||||
62 | |||||||||||||||||||||||||||
63 | |||||||||||||||||||||||||||
64 | |||||||||||||||||||||||||||
65 | |||||||||||||||||||||||||||
66 | |||||||||||||||||||||||||||
67 | |||||||||||||||||||||||||||
68 | |||||||||||||||||||||||||||
69 | |||||||||||||||||||||||||||
70 | |||||||||||||||||||||||||||
71 | |||||||||||||||||||||||||||
72 | |||||||||||||||||||||||||||
73 | |||||||||||||||||||||||||||
74 | |||||||||||||||||||||||||||
75 | |||||||||||||||||||||||||||
76 | |||||||||||||||||||||||||||
77 | |||||||||||||||||||||||||||
78 | |||||||||||||||||||||||||||
79 | |||||||||||||||||||||||||||
80 | |||||||||||||||||||||||||||
81 | |||||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||
83 | |||||||||||||||||||||||||||
84 | |||||||||||||||||||||||||||
85 | |||||||||||||||||||||||||||
86 | |||||||||||||||||||||||||||
87 | |||||||||||||||||||||||||||
88 | |||||||||||||||||||||||||||
89 | |||||||||||||||||||||||||||
90 | |||||||||||||||||||||||||||
91 | |||||||||||||||||||||||||||
92 | |||||||||||||||||||||||||||
93 | |||||||||||||||||||||||||||
94 | |||||||||||||||||||||||||||
95 | |||||||||||||||||||||||||||
96 | |||||||||||||||||||||||||||
97 | |||||||||||||||||||||||||||
98 | |||||||||||||||||||||||||||
99 | |||||||||||||||||||||||||||
100 |