Чек-лист по API @protestinginfo

Начать. Это бесплатно
или регистрация c помощью Вашего email-адреса
Чек-лист по API @protestinginfo создатель Mind Map: Чек-лист по API @protestinginfo

1. Позитивные проверки

1.1. Обязательность полей

1.1.1. проверить, что у обязательных полей значения не null в полученном ответе, опираясь на требование

1.2. Валидные значения

1.2.1. проверить имена свойств (ключей), типы полей, значения полей согласно требованиям

1.2.2. проверить основные заголовки HTTP headers, заголовки ответа согласно требованиям

1.2.3. проверить структуру URL согласно требованиям

1.2.4. проверить создание id или uuid

1.2.5. проверить, параметры при отправке запроса

1.2.6. проверить, валидное тело запроса при отправке на сервер

1.2.7. проверить, тело ответа при его получении от сервера.

1.3. Формат передачи данных

1.3.1. проверить объект в формате JSON с запрошенными полями

1.3.2. проверить структуру XML ответа от сервера согласно требованиям

1.4. HTTP методы

1.4.1. Отправить GET с обязательными валидными параметрами

1.4.2. Отправить валидное тело в запросе (POST, PUT, PATCH)

1.4.3. Самое главное проверяем ответ от сервера согласно требованиям

1.4.4. проверить версию протокола

1.4.5. проверить код состояния согласно ТЗ, например, что запрос должен возвращать код состояния HTTP 2XX для GET, POST, DELETE, PUT

1.4.6. проверить пояснение (status text)

1.4.7. проверить состояние после отправки запросов, например, для запросов GET убедитесь, что система не изменено состояние, а именно проверить идемпотентность; проверить идемпотентность для методов PUT и DELETE

1.4.8. проверить обновление существующих данных

1.4.9. проверить удаление существующего объекта

1.4.10. Авторизация

1.4.10.1. проверить структуру полезных данных (playload) токена, который представлен закодированной строкой

1.4.10.2. проверить создание токена авторизации

1.4.10.3. проверить различные типы токенов авторизации согласно ТЗ

1.4.10.4. проверить, что токен авторизации действительный

1.5. Дополнительные проверки: кэшируемость, безопасность

1.5.1. проверить безопасность и кэшируемость методов

1.5.2. проверить, что информация не утекает через заголовки (например, X-Powered-By заголовок не отправляется пользователю)

1.5.3. проверить, что ответ на запрос приходит своевременно

2. Негативные проверки

2.1. Обязательность полей

2.1.1. обязательными полями, не допускающие значения null, являются пустыми пустыми обязательными HTTP заголовками

2.1.2. пустыми значениями вложенных объектах в формате JSON, где поля являются обязательными

2.1.3. пустыми значениями во вложенных массивах в формате JSON, где поля являются обязательными

2.1.4. без указания значения обязательного поля

2.1.5. с дубликатами значений обязательных полей в теле запроса

2.1.6. пустыми обязательными HTTP заголовками

2.2. Невалидные, несуществующие и пустые значения

2.2.1. невалидным токеном

2.2.2. пустым токеном

2.2.3. несуществующим id

2.2.4. невалидным id

2.2.5. невалидным uuid в параметрах запроса

2.2.6. невалидным uuid в теле запроса

2.2.7. недопустимым uuid

2.2.8. несуществующим uuid

2.2.9. невалидными HTTP заголовками

2.2.10. неподдерживаемые методами

2.2.11. невалидным телом в запросе

2.2.12. невалидным типом параметра

2.2.13. недопустимыми символами в параметрах

2.2.14. невалидными значениями параметров

2.2.15. недопустимыми символами в теле запроса

2.3. JSON формат

2.3.1. недопустимыми данными JSON в теле запроса

2.3.2. неполной JSON моделью c отсутствующими полями

2.3.3. JSON моделью c невалидными полями

2.3.4. полностью пустым телом формата JSON

2.4. Переполнением данных

2.4.1. uuid длиной порядка 500 символов или больше

2.4.2. id длиной порядка 100 символов

2.4.3. переполнением тела ответа запроса при отправке (большой JSON)

2.5. HTTP методы

2.5.1. Авторизация с использованием методов аутентификации

2.5.1.1. Без «токена»

2.5.1.2. С «токеном» для 403 ошибки

2.5.1.3. С невалидным «токеном»

2.5.2. GET запросы

2.5.2.1. Пустой список (если возможно)

2.5.2.2. Невалидная пагинация в списке (limit, offset)[8]

2.5.2.3. Получение списка с ограничением на количество записей

2.5.2.4. Получение списка с несуществующего номера

2.5.2.5. При отрицательном offset список пользователей возвращается начиная с первой позиции

2.5.2.6. В случае передачи параметров с некорректным значением возвращается 400 с описанием ошибки в теле ответа

2.5.2.7. При несуществующем offset возвращается пустой список

2.5.2.8. Запрос данных по валидному ID, проверка возвращения корректных данных

2.5.2.9. Запрос данных по несуществующему ID, но в валидном формате

2.5.2.10. Запрос данных по невалидному ID

2.5.3. POST запросы

2.5.3.1. Заполнены все поля невалидными данными

2.5.3.2. Заполнены только обязательные поля невалидными данными

2.5.3.3. Не заполнено ни одно поле

2.5.3.4. Валидация данных в полях (невалидные данные)

2.5.3.5. Пустой JSON

2.5.4. PUT запросы

2.5.4.1. Обновление с невалидными данными

2.5.4.2. Обновление по несуществующему ID

2.5.4.3. Обновление по невалидному ID

2.5.4.4. Валидация полей (невалидные данные)

2.5.4.5. Частичное обновление (в JSON присутствуют не все поля)

2.5.5. DELETE запросы

2.5.5.1. Удаление несуществующего объекта

2.5.5.2. Удаление уже удаленного объекта

2.5.5.3. Удаление по несуществующему ID

2.5.5.4. Удаление по невалидному ID

2.6. Дополнительные проверки: комментарии, регистрозависимость, картинки

2.6.1. с комментариями в теле запроса

2.6.2. регистрозависимость в теле запроса

2.6.3. регистрозависимость в заголовках

2.6.4. регистрозависимость текстовых параметров

2.6.5. загрузка с некорретным форматом файла через form-data

2.6.6. отправка фото в сломанном формате base64 через Postman

2.6.7. протокол HTTP / HTTPS согласно спецификации: например, Mixed Content: The page at 'https://<>.ru/' was loaded over HTTPS, but requested an insecure stylesheet 'http://fonts.googleapis.com/css2?family=Arimo:wght@400'. This request has been blocked; the content must be served over HTTPS."

2.6.8. Ошибочные форматы обмена данными (json, xml, html)

2.6.9. Замена допустимого метода на недопустимый метод

2.6.10. Большое или недопустимое время отклика

2.6.11. Наличие / отсутствие файла (-ов) куки

2.7. Проверка на 400 Http Status code

2.7.1. 400: Неверный запрос. Это может быть вызвано различными действиями пользователя

2.7.2. 401: Аутентификация не прошла.

2.7.3. 403: Аутентифицированному пользователю не разрешен доступ к указанной конечной точке API.

2.7.4. 404: Запрашиваемый ресурс не существует.

2.7.5. 405: Метод не разрешен. Проверьте заголовок Allow на предмет разрешенных методов HTTP.

2.7.6. 410: Запрашиваемый контент удалён с сервера.

2.7.7. 412: Указаны условия в заголовках, которые сервер не может выполнить

2.7.8. 415: Неподдерживаемый тип медиа. Запрошенный тип содержимого или номер версии недопустимы

2.7.9. 422: Не удалось выполнить проверку данных (например, в ответ на POST-запрос).

2.7.10. 429: Слишком много запросов. Запрос был отклонен из-за ограничения скорости.

2.8. Проверка на 500 Http Status code

2.8.1. 500: Внутренняя ошибка сервера. Это может быть вызвано внутренними ошибками программы.