Домой » Теория автоматизации » Тестирование API за 10 минут

Тестирование API за 10 минут

Что такое API?

API расшифровывается как “интерфейс прикладного программирования” или “интерфейс программирования приложений”.

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

Что подразумевает тестирование API?

testirovanie_api

Тестирование API полностью отличается от тестирования графического интерфейса и в основном концентрируется на слое бизнес-логики архитектуры программного обеспечения. GUI в API тестировании практически не нужен.

Вместо стандартных видов ввода пользовательских данных (заполнение форм) здесь для передачи данных используется программное обеспечение.

Для API тестирование нам потребуется само тестируемое приложение и приложение для работы с API. Также потребуется написать собственный код для работы с API.

Настройка среды тестирования API

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

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

Выходные данные API

  1. Любой тип данных
  2. Статус (true, или false)
  3. Вызов другой функции API

Давайте рассмотрим пример каждого типа.

Любой тип данных

Пример: Существует функция API, который должен добавить два целых числа.

Long add(int a, int b)

В качестве входных параметров должны быть приведены числа. На выходе должна быть сумма двух целых чисел. Полученный результат должен быть сравнен с ожидаемым результатом.

Вызов должен быть примерно таким:

add (1234, 5656)

При превышении предела должно быть обработано исключение.

Статус (true или false)

Рассмотрим ниже функции API

Lock()
Unlock()
Delete()

Они возвращают какое-либо значение, такое как True (в случае успеха) или False (в случае ошибки), в качестве выходного.

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

Вызов другой функции API

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

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

Разница API-тестированием и Unit-тестированием

Unit-тестирование API-тестирование
·  Выполняется разработчиками ·  Выполняется тестировщиками
·  Тестируются отдельные модули ·  Тестируется end-to-end функционал
·  Разработчик имеет доступ к исходному коду ·  Тестировщик не имеет доступа к исходному коду
·  Возможно тестирование UI ·  Тестируется только API
·  Тестируется только базовый функционал ·  Тестируется весь функционал
·  Ограничен в возможностях ·  Широкие возможности
·  Запускается до заливки на SCV ·  Запускается после билда

Виды тестов в тестировании API:

  1. Обзорное тестирование – тесты должны выполнить набор вызовов, задекларированных в API, чтобы проверить общую работоспособность системы;
  2. Юзабилити-тестирование – проверяет, является ли API функциональным и обладает ли удобным интерфейсом, также проверяется интеграция с другими;
  3. Тестирование безопасности – проверяет используемый тип аутентификации и шифрование данных с помощью HTTP ;
  4. Автоматизированное тестирование – создание скриптов, программ или настройка приложений, которые смогут тестировать API на регулярной основе;
  5. Документация – проверяется полнота описаний функций API, её понятность и, в свою очередь, является финальным результатом.

Лучшие практики тестирования API:

  1. Тест-кейсы должны быть сгруппированы по тестовым категориям;
  2. Каждый тест должен включать декларацию тестируемой функции;
  3. Выбор параметров должен быть явно упомянут в самом тесте;
  4. Установка приоритетов вызова функций API;
  5. Каждый тест должен быть самодостаточным и независимым друг от друга;
  6. Особую осторожность следует соблюдать при обращении к функциям удаления, закрытия окна и прочим;
  7. Вызов последовательности действий должен быть хорошо спланирован и выполнен;
  8. Для обеспечения полного тестового покрытия создавайте тестовые случаи для всех возможных комбинаций входных данных.

Типы ошибок, которые обнаруживаются при API тестировании:

  1. Сбой обработки ошибочных условий;
  2. Неиспользуемые флаги;
  3. Отсутствует или дублируется функционал;
  4. Вопросы надежности: трудности при подключении и получении ответа от API;
  5. Проблемы с безопасностью;
  6. Вопросы многопоточности;
  7. Проблемы с производительностью: время отклика API очень высоко;
  8. Ложные ошибки;
  9. Некорректная обработка валидных значений;
  10. Данные ответа некорректно структурированы (JSON или XML).

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

  • SOAPUI
  • Runscope
  • Postman with jetpacks
  • Postman with newman
  • Curl
  • Cfix
  • Check
  • CTESK
  • dotTEST
  • Eclipse SDK tool- Automated API testing

Проблемы в тестировании API

  1. Комбинация и выбор параметров
  2. Отсутствие графического интерфейса
  3. Валидация и верификация выходных данных в разных системах
  4. Обязательная проверка обработки исключений
  5. Тестировщикам необходимы знания в программировании

Вывод

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

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

Войти с помощью: 

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

*
*