Блог

Полезные статьи и новости о жизни WaveAccess

Тестирование API с помощью JSON-Schema

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

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

API Testing Using The JSON Schema

 

Важнейшие принципы тестирования

Для тестирования API применяются следующие распространённые приёмы:

  • Анализ граничных значений. В запросах API передаются чёткие значения параметров. Благодаря этому можно легко отметить пределы максимального и минимального показателей с их последующей проверкой.

  • Разделение на области эквивалентности. Образуется два класса областей: допустимые входные и выходные данные и недопустимые, помещаемые в соответствующий класс.

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

 

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

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

  • Postman. Представляет собой расширение для Chrome, позволяющее отправлять запросы, сохранять их и показывать историю;

  • jMeter. Известен благодаря нагрузочному тестированию;

  • Runscope. С его помощью можно посылать запросы к серверу и выполнять проверку полученных ответов по критериям, заданным заранее.

  • SoapUI. Прекрасный инструмент, позволяющий разрабатывать и тестировать веб-приложения;

  • Fiddler. Предоставляет возможность просматривать отправляемые HTTP запросы;

  • Advanced REST Client. Очередное дополнение для Гугл Хром, которое создаёт конструкцию запросов и показывает их в удобном виде.

  • JSON-Schema. Является JSON-аналогом формата XML Schema и задаёт структуру документа в декларативном виде.

 

Тестирование API с помощью JSON-Schema

JSON-Schema — это стандарт описания структур данных в формате JSON, разрабатываемый на основе XML-Schema. JSON-схемы вполне пригодны для целей тестирования.

Рассмотрим формат в качестве обычного примера. Возьмем JSON-объект:

{ " title»: «text» }

Чтобы задать его структуру и тип параметров, достаточно заменить значения параметров на специальные объекты, после чего мы получим следующий вид:

 "title": {
                  "type": "string"
                } 

Одни и те же JSON-схемы используются как для тестов, так и для документации. Это значит, что схемы всегда актуальны и корректны. В противном случае тест провалится.  

Если есть несколько вариантов ответа для одного поля, к примеру, description, то оно может быть либо заполнено, либо оставаться пустым. В ответе на JSON запрос мы получим конкретный ответ: «null» или «string». Для реализации такого сценария лучше использовать «one of».

 { "description": {
                  "type": ["string", "null"]
                  }
} 

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

 "imageAnalysis": {
 "$ref": "commons.json#/definitions/imageAnalysis"
                                        } 

Где "$ref": "commons.json#/definitions/imageAnalysis" – указание местонахождения кода с тестом, а  imageAnalysis – то, что мы тестируем в API.

 

Заключение

JSON-Schema помогает существенно сэкономить время, затрачиваемое на тестирование и документирование API. Он требует минимальное число усилий для достижения высоких результатов.

Кроме вышеперечисленных преимуществ, JSON-Schema легко поддерживает обратную совместимость в API, поскольку формат API наглядно отражается в JSON-схеме.

Если Вы желаете задать вопросы или Вам требуется консультация по тестированию API во время работы над проектом, свяжитесь с нами по электронной почте: hello@wave-access.com.

Заказать звонок

Удобное время:

Отменить

Пишите!

Присоединить
Файл не больше 30 Мб.
Отменить