60 тест-кейсов для тестирования API

Программный интерфейс приложения (API) – основа современного мира. Многие действия, которые вы выполняете на цифровых платформах, используют API, и тестирование этих API является ключом к обеспечению хорошего пользовательского опыта в программном обеспечении и приложениях. Если вы пытаетесь протестировать API и не знаете, с чего начать, читайте дальше и узнайте о 60 тест-кейсах для тестирования API, которые вы можете использовать в качестве шаблонов. Мы также включили в статью пример тест-кейса, чтобы вы могли использовать его в своей работе, а также подробное руководство о том, как следует тестировать API. 

Содержание:

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Что такое тестирование API?

Тестирование API – это практика тестирования программного обеспечения, которая тестирует непосредственно API: от его функциональности, надежности, производительности до безопасности. Как часть интеграционного тестирования, тестирование API направлено на проверку логики архитектуры сборки. Целью тестирования API является проверка не отдельных программных компонентов, а связи между ними. 

Тестирование API может проводиться как вручную, так и автоматически с помощью специальных инструментов, каждый из которых имеет свои плюсы и минусы. Как правило, автоматизированное тестирование API предпочтительнее, так как этот тип тестирования основан на данных и имеет множество повторений. Кроме того, существует множество аспектов в тестировании API, но это три наиболее распространенные категории:

  • Функциональное тестирование (проверка того, выполняет ли API свои функции так, как ожидалось)
  • Тестирование производительности (проверка работоспособности API при различных уровнях нагрузки)
  • Тестирование безопасности (проверка наличия в API уязвимостей или защиты от угроз безопасности).

60 тест-кейсов для тестирования API по категориям

1. Тест-кейсы для функционального тестирования

Функциональность является основой любого тестируемого приложения, и API не является исключением. Его самая базовая и основополагающая функциональность – это получение и отправка данных, и функциональное тестирование API должно вращаться вокруг этих двух областей. Ознакомьтесь со следующими примерами функциональных тестов и посмотрите, как вы можете применить их в своем собственном проекте тестирования:

  1. Проверка кода состояния для корректных запросов: убедитесь, что API постоянно возвращает ожидаемый код состояния ответа, например “200 OK”, для корректных и правильно оформленных запросов.
  2. Обработка аутентификации с некорректными учетными данными: протестируйте ответ API при предоставлении некорректных учетных данных, убедившись, что он последовательно возвращает код состояния “401 Unauthorized”, как и ожидалось.
  3. Обработка отсутствующих или некорректных параметров: убедитесь, что API обрабатывает отсутствующие или некорректные параметры запроса и возвращает понятные сообщения об ошибках, которые помогают в устранении неполадок.
  4. Валидация входных данных с использованием искаженных данных: протестируйте валидацию входных данных API, отправляя различные формы искаженных данных, например, некорректные форматы электронной почты, и убедитесь, что API отклоняет и правильно реагирует на эти данные.
  5. Обработка таймаутов под нагрузкой: убедитесь, что API корректно обрабатывает таймауты, имитируя запросы, обработка которых занимает больше времени, и гарантируя, что он не зависает.
  6. Проверка функциональности пагинации: протестируйте функциональность пагинации API, запросив определенные страницы результатов и проверив, что ответы содержат ожидаемые данные и информацию о пагинации.
  7. Параллельное тестирование без повреждения данных: убедитесь, что API обрабатывает одновременные запросы от нескольких пользователей без повреждения данных или конфликтов, обеспечивая целостность данных.
  8. Соответствие формату ответа (JSON/XML): убедитесь, что API последовательно возвращает ответы в указанном формате (например, JSON или XML) и придерживается определенной схемы структуры данных.
  9. Оценка механизма кэширования с помощью повторных запросов: оцените механизм кэширования API, выполнив повторные запросы и убедившись, что заголовки кэша правильно установлены и соблюдены.
  10. Оценка ограничения скорости: отправляйте запросы со скоростью, превышающей установленные ограничения, чтобы проверить, что API выдает ожидаемые ответы с ограничением скорости.
  11. Поддержка методов HTTP для операций CRUD: убедитесь, что API поддерживает различные HTTP-методы (GET, POST, PUT, DELETE) для операций создания, чтения, обновления и удаления и что он возвращает соответствующие ответы для каждой из них.
  12. Возможности обработки ошибок для получения содержательных сообщений: оцените возможности API по обработке ошибок, намеренно вызывая ошибки, такие как некорректные входные данные или неожиданные ситуации, и убедитесь, что он последовательно возвращает содержательные сообщения об ошибках для устранения неполадок.
  13. Обработка условных запросов (If-Modified-Since, If-None-Match): проверьте поддержку условных запросов с такими заголовками, как If-Modified-Since и If-None-Match, и убедитесь, что ответы обрабатываются должным образом.
  14. Проверка сортировки и фильтрации списков ресурсов: убедитесь, что API правильно сортирует и фильтрует списки ресурсов на основе указанных параметров, сохраняя точность данных.
  15. Обработка длинных или сложных наборов данных без их повреждения: убедитесь, что API правильно обрабатывает длинные или сложные строки, такие как URL или текстовые поля, не усекая и не повреждая данные.
  16. Поддержка согласования контента для нескольких форматов: протестируйте поддержку согласования контента в API, указав различные заголовки Accept (например, JSON, XML) и проверив соответствие формата в ответе формату в запросе.
  17. Обработка не найденного ресурса (404 Not Found): убедитесь, что API последовательно возвращает соответствующий код состояния “404 Not Found” при попытке получить доступ к несуществующему ресурсу.
  18. Измерение времени отклика для различных запросов: измерьте время отклика API для различных типов запросов, чтобы оценить его производительность и отзывчивость.
  19. Управление большими полезными нагрузками (загрузка файлов): убедитесь, что API может обрабатывать большие полезные нагрузки, такие как загрузка файлов, не сталкиваясь с ошибками или значительным снижением производительности.
  20. Совместимость с клиентскими библиотеками и пакетами средств разработки ПО (SDK): оцените совместимость API с различными клиентскими библиотеками или SDK, чтобы обеспечить эффективную интеграцию с различными платформами и языками программирования.

2. Тест-кейсы для тестирования производительности

Если API, разработанный в вашей команде, получает большой трафик, хорошей идеей будет включить тестирование производительности в свою ежедневную рутину. На самом деле, тестирование производительности должно начинаться еще до начала разработки, поскольку оно дает ценные сведения о максимальном уровне нагрузки на сервер, что может помочь команде разработки лучше распределять и оптимизировать использование ресурсов. Вот несколько распространенных тест-кейсов для проведения тестирования производительности API:

  1. Базовое время отклика: измерьте время отклика простого API-запроса в нормальных условиях, чтобы установить базовый уровень производительности.
  2. Стресс-тестирование: отправьте большое количество одновременных запросов к API, чтобы оценить его производительность при высокой нагрузке.
  3. Параллельное тестирование: оцените, как API обрабатывает заданное количество одновременных запросов без снижения производительности.
  4. Тестирование по нарастающей: постепенно увеличивайте количество запросов с течением времени, чтобы определить точку сбоя и пределы производительности API.
  5. Тестирование пиковой нагрузки: протестируйте производительность API в пиковые моменты использования, чтобы убедиться, что он способен выдержать максимально ожидаемый трафик.
  6. Тестирование на выносливость: непрерывно отправляйте запросы к API в течение длительного времени, чтобы оценить его стабильность с течением времени.
  7. Тестирование масштабируемости: постепенно увеличивайте нагрузку и измеряйте, как масштабируется API, добавляя больше ресурсов (например, серверов) для поддержания производительности.
  8. Тестирование использования ресурсов: отслеживайте загрузку процессора, памяти и сети, проводя тесты производительности, чтобы выявить узкие места в ресурсах.
  9. Распределение времени отклика: проанализируйте распределение времени отклика, чтобы выявить отклонения и проблемы с производительностью.
  10. Тестирование задержек: измерьте задержку в сети между клиентом и сервером API, чтобы обеспечить низкую задержку для пользователей.
  11. Тестирование пропускной способности: определите максимальное количество транзакций, которое API может обработать за единицу времени, сохраняя при этом приемлемое время отклика.
  12. Тестирование частоты ошибок: отслеживайте и записывайте количество ошибок или неудачных запросов во время нагрузочного тестирования, чтобы оценить степень обработки ошибок и устойчивость.
  13. Производительность кэширования: оцените влияние кэширования на время отклика и использование ресурсов.
  14. Тестирование объема данных: протестируйте API с различными объемами данных (например, малые, средние и большие полезные нагрузки), чтобы оценить его производительность при работе с различными объемами данных.
  15. Географическое нагрузочное тестирование: смоделируйте запросы из разных географических точек, чтобы оценить глобальную производительность API и время отклика.
  16. Параллельное тестирование с аутентификацией: оцените, как API обрабатывает одновременные запросы с аутентификацией, включая проверку токенов.
  17. Нагрузочное тестирование базы данных: оцените влияние API-запросов на связанную с ними базу данных, измерив время отклика запросов.
  18. Долго выполняющиеся транзакции: протестируйте транзакции, на выполнение которых уходит значительное количество времени, и оцените их влияние на общую производительность системы.
  19. Стресс-тестирование ограничения скорости: проверьте, как API обрабатывает чрезмерное количество запросов при установленном ограничении скорости.
  20. Тестирование отказов: смоделируйте отказы серверов и проверьте способность API переходить на резервные серверы, сохраняя при этом производительность.

3. Тест-кейсы для тестирования безопасности

Наконец, обязательно проверьте безопасность вашего API, поскольку именно через него происходит обмен конфиденциальными и ценными данными. API всегда были распространенной целью злоумышленников, стремящихся получить несанкционированный доступ к вашим системам. Вот некоторые тест-кейсы для проверки безопасности API:

  1. Тестирование аутентификации: убедитесь, что API обеспечивает надлежащую аутентификацию для всех конечных точек.
  2. Тестирование авторизации: убедитесь, что пользователи могут получить доступ только к тем ресурсам, на которые они имеют право.
  3. Безопасность токенов: проверьте безопасность токенов аутентификации, включая шифрование и истечение срока действия токенов.
  4. Управление сеансами: проверьте безопасное управление сеансами и работу с сессионными файлами cookie.
  5. SQL Injection: проверьте наличие уязвимости к SQL-инъекциям путем внедрения вредоносных SQL-запросов в параметры API.
  6. Кросс-сайт скриптинг (XSS): убедитесь, что API защищен от XSS-атак путем внедрения вредоносных скриптов.
  7. Межсайтовая подделка запроса (CSRF): проверьте, уязвим ли API к CSRF-атакам путем отправки неавторизованных запросов.
  8. Валидация ввода: убедитесь, что API проверяет и санирует вводимые пользователем данные для предотвращения инъекционных атак.
  9. Ограничение скорости: протестируйте ограничение скорости API для предотвращения злоупотреблений и DoS-атак.
  10. Раскрытие конфиденциальных данных: убедитесь, что конфиденциальные данные, такие как пароли или ключи API, не раскрываются в ответах.
  11. Тестирование HTTPS/TLS: убедитесь, что API использует безопасную связь через HTTPS/TLS, и проверьте валидность сертификата.
  12. Совместное использование ресурсов разными источниками (CORS): проверка корректности CORS-заголовков для предотвращения несанкционированных запросов к ресурсам от различных источников.
  13. Безопасность ключей API: оцените безопасность ключей API и их хранения.
  14. Безопасность JWT (JSON Web Token): оцените безопасность JWT, используемых для аутентификации и авторизации.
  15. Обход аутентификации: попытка обойти механизмы аутентификации и получить несанкционированный доступ.
  16. Фиксация сеанса: проверьте, уязвим ли API к атакам с фиксацией сеанса.
  17. Небезопасные прямые ссылки на объекты (IDOR): проверьте возможность несанкционированного доступа к ресурсам путем манипулирования ссылками на объекты.
  18. Тестирование отказа в обслуживании (DoS): попытка перегрузить API и проверить его устойчивость к DoS-атакам.
  19. Версионирование API: убедитесь, что API поддерживает версионирование, чтобы изменения не повлияли на существующих клиентов.
  20. Заголовки безопасности: проверьте наличие заголовков безопасности, таких как Content Security Policy (CSP), X-Content-Type-Options и т. д., в ответах API.

Как писать тест-кейсы для тестирования API?

При написании тест-кейса для тестирования API:

  • Внимательно изучите API. Ознакомьтесь с документацией у поставщика API. Также проверьте, доступна ли API-песочница для тестирования, и если да, ознакомьтесь с ней.
  • Соблюдайте последовательность именования тест-кейсов.
  • Вы можете объединить похожие тест-кейсы в рамках общей функции/сценария.
  • Перед созданием тест-кейса ознакомьтесь с требованиями или функциями, которые вы тестируете, чтобы знать, какую информацию в него включить.
  • Используйте глаголы действия в начале каждого шага тестирования, например “Нажмите”, “Введите” или “Проверьте”. При необходимости вы можете даже создать семантическую структуру для описания вашего тест-кейса. Как это делается, вы можете посмотреть в статье, посвященной BDD-тестированию.
  • Включите все необходимые настройки и предварительные условия перед выполнением теста.
  • Убедитесь, что в тест-кейсы включены не только позитивные, но и негативные сценарии, с которыми пользователи обычно не сталкиваются, но которые могут произойти в системе.
  • Используйте форматирование, чтобы ваши тест-кейсы было легче читать и выполнять.
  • Регулярно обновляйте тест-кейсы.

Шаблон тест-кейса (en)

Чтобы упростить задачу написания тест-кейса, вы всегда можете воспользоваться готовым шаблоном, который мы подготовили для вас в форматах PDF, Doc и Excel. Просто нажмите кнопку ниже и начните создавать свои тест-кейсы прямо сейчас.

PDF | Doc | Excel

Перевод статьи «60 Test Cases For API Testing (With Template + API Testing Best Practices)».

1 комментарий к “60 тест-кейсов для тестирования API”

  1. Пингбэк: Большой учебник по написанию тест-кейсов

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *