Тестирование API

API (Application Programming Interface) — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах.

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

testirovanie_api

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

Существует множество форматов данных, с помощью которых пользователи взаимодействуют с API. Например, широко известный XML. Или JSON

HTTP глаголы

Обычно при обращении к веб API используются запросы HTTP. Поэтому нужно хотя бы коротко сказать о стандартных методах, которые могут содержаться в HTTP запросе. Эти методы также называют HTTP глаголами:

— GET. Наверное, самый популярный тип запроса. Используется для получения или чтения данных.

— PUT. Обычно используется для обновления ресурса.

— POST. Обычно используется для создания нового ресурса.

— DELETE. Удаляет данные.

— И другие

REST API

REST API — это идеология построения API, которая расшифровывается как Representational State Transfer API. Она основывается на следующих принципах, сформулированных ее создателем, Роем Филдингом:

1. Клиент-серверная архитектура

2. Stateless сервер

3. Кешируемость

4. Многослойная структура

5. Единый интерфейс

6. Код по требованию

Аутентификация

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

Для интеграции сервисов друг с другом широко используется протокол аутентификации OAuth. Например, он может использоваться онлайн игрой, которая импортирует список друзей из Facebook.

Инструменты‎ для работы с API

Обычные GET запросы можно посылать при помощи браузера. Но существует множество специальных инструментов, которые предназначены для разработки и тестирования API. Они предоставляют возможность не только отправлять различные типы запросов, но и сохранять запросы, показывать результаты в различных форматах, выступать в роли proxy сервера. И многое многое другое.

Тестирование API

Конечно, тут есть своя специфика, но мы можем использовать такие общепринятые техники, как:

— Анализ граничных значений. В API запросах в явном виде могут передаваться значения параметров. Это отличный повод выделить границы входных и выходных значений и проверить их.

— Разбиение на классы эквивалентности. Даже у небольшого API есть множество вариантов использования и множество комбинаций входных и выходных переменных. Поэтому мы можем лишний раз использовать наши навыки выделения эквивалентных классов.

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

Можно сделать вывод, что все виды тестирования, к которым мы привыкли — функциональное тестирование, нагрузочное, тестирование безопасности, юзабилити, тестирование документации — не чужды при тестировании API. В принципе, это не удивительно, потому что API является полноценным самостоятельным продуктом.

Добавить комментарий