В целом, к тестированию API применимы следующие типы тестов:
- Функциональное тестирование – тесты должны выполнить набор вызовов, задекларированных в API, чтобы проверить общую работоспособность системы.
- Usability-тестирование – проверяет, является ли API функциональным и обладает ли удобным интерфейсом, также проверяется интеграция с другими.
- Тестирование безопасности – проверяет используемый тип аутентификации и шифрование данных с помощью HTTP.
- Автоматизированное тестирование – создание скриптов, программ или настройка приложений, которые смогут тестировать API на регулярной основе.
- Тестирование документации– проверяется полнота описаний функций API, её понятность.
При тестировании API необходимо проверять следующие моменты:
- Правильный ли метод используется для того или иного запроса?
- Проверяйте, что клик по одной и той же кнопке вызывает один и тот же запрос.
- Вникайте в отправляемые запросы. Анализ запросов – это возможность обнаружить спрятавшийся дефект гораздо быстрее, чем осуществляя его поиск в интерфейсе.
- Мониторьте трафик на предмет запросов на другие сервера.
- Внимательно следите за кодами состояний
С помощью тестирования API можно обнаружить следующие типы ошибок:
- Сбой обработки ошибочных условий при передаче корректных и некорректных данных в запросах.
- Неиспользуемые флаги в параметрах запросов.
- Отсутствующая или дублирующаяся функциональность.
- Вопросы надежности: трудности при подключении и получении ответа от API.
- Проблемы с безопасностью.
- Проблемы многопоточности.
Лучшие практики тестирования API:
- Тест-кейсы должны быть сгруппированы по тестовым категориям.
- Каждый тест должен включать декларацию тестируемой функции.
- Выбор параметров должен быть явно упомянут в самом тесте.
- Установка приоритетов вызова функций API.
- Каждый тест должен быть самодостаточным и независимым друг от друга.
- Особую осторожность следует соблюдать при обращении к функциям удаления, закрытия окна и прочим.
- Вызов последовательности действий должен быть хорошо спланирован и выполнен.
- Для обеспечения полного тестового покрытия создавайте тестовые случаи для всех возможных комбинаций входных данных.
Так же мы можем использовать такие общепринятые техники, как анализ граничных значений и разбиение на классы эквивалентности. В API запросах в явном виде могут передаваться значения параметров. Это отличный повод выделить границы входных и выходных значений и проверить их. Даже у небольшого API есть множество вариантов использования и множество комбинаций входных и выходных переменных. Поэтому мы можем лишний раз использовать наши навыки выделения эквивалентных классов.
Тестирование API обладает рядом преимуществ перед обычным тестированием через UI:
- Точное понимание, где происходит ошибка и чем она вызвана.
- Тратится меньше времени на подготовку тестовых данных.
- Возможно выполнение тестов на больших объемах данных с приемлемой скоростью.
- Можно начать тестирование на ранних этапах, когда еще нет интерфейса
Проблемы, с которыми сталкиваются тестировщики при работе с API:
- Комбинация и выбор параметров.
- Отсутствие графического интерфейса.
- Валидация и верификация выходных данных в разных системах.
- Обязательная проверка обработки исключений.
- Тестировщикам необходимы знания в программировании.
I don’t even know how I finished up here, however I thought
this submit used to be good. I don’t realize who you’re but definitely you’re
going to a famous blogger if you happen to aren’t already.
Cheers!