Урок за тестване на API: Какво е автоматизация на тестване на API?

Какво е API тестване?

Тестване на API е тип тестване на софтуер, който валидира интерфейсите за програмиране на приложения (API). Целта на API тестването е да провери функционалността, надеждността, производителността и сигурността на програмните интерфейси. При тестване на API, вместо да използвате стандартни потребителски входове (клавиатура) и изходи, вие използвате софтуер за изпращане на повиквания към API, получаване на изход и записване на отговора на системата. API тестовете са много различни от GUI тестовете и няма да се концентрират върху външния вид и усещането на приложението. Той се концентрира главно върху нивото на бизнес логиката на софтуерната архитектура.

Изображение за тестване на API

За фон, API (интерфейс за приложно програмиране) е компютърен интерфейс, който позволява комуникация и обмен на данни между две отделни софтуерни системи. Софтуерна система, която изпълнява API, включва няколко функции/подпрограми, които друга софтуерна система може да изпълнява. API дефинира заявки, които могат да се правят, как да се правят заявки, формати на данни, които могат да се използват и т.н., между две софтуерни системи.

Настройка на среда за автоматизиране на тестване на API

API автоматизация Тестването изисква приложение, което може да бъде взаимодействано чрез API. За да тествате API, ще трябва да

  1. Използвайте инструмента за тестване, за да управлявате API
  2. Напишете свой собствен код, за да тествате API

Няколко точки за отбелязване

  • API тестването е различно от другите типове софтуерно тестване, тъй като GUI не е наличен, но все пак от вас се изисква да настроите първоначална среда, която извиква API с необходимия набор от параметри и след това най-накрая да прегледате резултата от теста.
  • Следователно настройката на среда за тестване за автоматизирано тестване на API изглежда малко сложно.
  • Базата данни и сървърът трябва да бъдат конфигурирани според изискванията на приложението.
  • След като инсталацията приключи, трябва да се извика API функцията, за да се провери дали този API работи.

Видове изходни данни на API

Изход от API може да бъде

  1. Всякакъв вид данни
  2. Състояние (кажи Успешно или Неуспешно)
  3. Извикайте друга API функция.

Нека да разгледаме пример за всеки от горните типове в този урок за тестване на API

Всеки тип данни

Пример: Има API функция, която трябва да добавя две цели числа.

Long add(int a, int b)

Числата трябва да бъдат дадени като входни параметри. Резултатът трябва да бъде сбор от две цели числа. Този резултат трябва да бъде проверен с очакван резултат.

Обаждането трябва да се извърши като напр

add (1234, 5656)

Изключенията трябва да се обработват, ако числото надвишава ограничението за цяло число.

Състояние (кажи Успешно или Неуспешно)

Помислете за функцията на API по-долу –

  1. заключване()
  2. Отключи()
  3. Изтрий()

Те връщат всяка стойност като True (в случай на успех) или false (в случай на грешка) като изход.

По-точен Тестов случай може да извика функциите във всеки от скриптовете и по-късно да провери за промени или в базата данни, или в GUI на приложението.

Извикване на друг API/събитие

Извикване на друг API/събитие

В този случай ние извикваме една от API функциите, която на свой ред ще извика друга функция.

Например – Първата API функция може да се използва за изтриване на определен запис в таблицата и тази функция от своя страна извиква друга функция за ОБНОВЯВАНЕ на базата данни.

Тестови случаи за API тестване:

Тестовите случаи на API тестване се основават на

  • Върната стойност въз основа на входно условие: сравнително лесно е за тестване, тъй като входът може да бъде дефиниран и резултатите могат да бъдат удостоверени
  • Не връща нищо: Когато няма върната стойност, трябва да се провери поведението на API в системата
  • Задействайте друг API/събитие/прекъсване: Ако изход на API задейства някакво събитие или прекъсване, тогава тези събития и слушателите на прекъсвания трябва да бъдат проследени
  • Актуализиране на структурата на данните: Актуализирането на структурата на данните ще има някакъв резултат или ефект върху системата и това трябва да бъде удостоверено
  • Променете определени ресурси: Ако извикването на API променя някои ресурси, то трябва да бъде валидирано чрез достъп до съответните ресурси

Подход за тестване на API

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

Следните точки помагат на потребителя да направи подход за тестване на API:

Подход за тестване на API

  1. Разбиране на функционалността на програмата API и ясно дефиниране на обхвата на програмата
  2. Приложете техники за тестване като класове за еквивалентност, анализ на гранични стойности и отгатване на грешки и напишете тестови случаи за API
  3. Входните параметри за API трябва да бъдат планирани и дефинирани по подходящ начин
  4. Изпълнете тестовите случаи и сравнете очакваните и действителните резултати.

Разлика между API тестване и Unit тестване

Тестване на единица API тестване
Разработчиците го изпълняват Тестерите го изпълняват
Тества се отделна функционалност Функционалността от край до край е тествана
Програмистът има достъп до изходния код Тестерите нямат достъп до изходния код
Тестването на потребителския интерфейс също е включено Тестват се само API функции
Тестват се само основните функции Всички функционални проблеми са тествани
Ограничен по обхват По-широк по обхват
Обикновено течаше преди настаняването Тестово изпълнение след създаването на компилацията

Как да тествате API

Тестването за автоматизация на API трябва да обхваща поне следните методи за тестване, освен обичайния SDLC процес

  • Тестване за откриване: Тестовата група трябва ръчно да изпълни набора от извиквания, документирани в API, като проверка дали конкретен ресурс, изложен от API, може да бъде изброен, създаден и изтрит според случая
  • Тест за използваемост: Това тестване проверява дали API е функционален и удобен за потребителя. И дали API се интегрира добре и с друга платформа
  • Тестване на сигурността: Това тестване включва какъв тип удостоверяване се изисква и дали чувствителните данни са криптирани през HTTP или и двете
  • Автоматизирано тестване: Тестването на API трябва да завърши със създаването на набор от скриптове или инструмент, който може да се използва за редовно изпълнение на API
  • Документация: Тестовият екип трябва да се увери, че документацията е адекватна и предоставя достатъчно информация за взаимодействие с API. Документацията трябва да бъде част от крайния резултат

Най-добри практики за тестване на API:

  • API тестовите случаи трябва да бъдат групирани по тестова категория
  • Върху всеки тест трябва да включите декларациите на извикваните API.
  • Изборът на параметри трябва да бъде изрично упоменат в самия тестов случай
  • Приоритетизирайте извикванията на функциите на API, така че да бъде лесно за тестващите
  • Всеки тестов случай трябва да бъде възможно най-самостоятелен и независим от зависимости
  • Избягвайте „верижното тестване“ във вашето развитие
  • Трябва да се обърне специално внимание при работа с функции за еднократно повикване като – Изтриване, Затваряне на прозорец и т.н.
  • Последователността на повикванията трябва да бъде извършена и добре планирана
  • За да осигурите пълно тестово покритие, създайте тестови случаи на API за всички възможни входни комбинации на API.

Видове грешки, които тестването на API открива

  • Не успява да се справи с условията на грешка грациозно
  • Неизползвани знамена
  • Липсваща или дублирана функционалност
  • Проблеми с надеждността. Трудност при свързване и получаване на отговор от API.
  • Проблеми със сигурността
  • Проблеми с многопоточност
  • Проблеми с производителността. Времето за реакция на API е много високо.
  • Неправилни грешки/предупреждение към обаждащия се
  • Неправилно обработване на валидни стойности на аргументи
  • Данните за отговор не са структурирани правилно (JSON или XML)

Как да направите API тест автоматизация

1) Готов API

Готов API е водещ инструмент за функционално тестване, тестване на сигурността и натоварване на RESTful, SOAP, GraphQL и други уеб услуги. В една интуитивна платформа ще получите три мощни инструмента: ReadyAPI Test, ReadyAPI Performance и ReadyAPI Virtualization. С тези инструменти можете да извършвате тестове за функционалност, сигурност и производителност/натоварване. Можете също да се подигравате с API и уеб услуги с нашия надежден инструмент за виртуализация. Освен това можете лесно да интегрирате своя CI/CD тръбопровод по време на всяко изграждане.

Готов API

Основни функции

  • ReadyAPI може да се интегрира във всяка среда.
  • Има функция за интелигентно твърдение, която може бързо да създава групови твърдения срещу стотици крайни точки.
  • Вградена поддръжка за Git, Docker, Jenkins, AzureИ др
  • Поддържа команден ред за автоматизирано тестване.
  • Поддържа паралелно изпълнение на функционални тестове и опашка за работа.
  • Promotes повторно използване на кода
  • Премахва зависимостите по време на тестване и разработка.

Посетете ReadyAPI >>

14-дневен безплатен пробен период (не се изисква кредитна карта)

Следващите уроци предоставят подробно ръководство за автоматизиране на API тест.

Освен това има и други инструменти за тестване на API. Проверете ги тук

Предизвикателства на API тестването

Предизвикателствата на API тестването включват:

  • Основните предизвикателства при тестването на Web API са Комбинация от параметри, избор на параметри и последователност на повикванията
  • Няма наличен GUI за тестване на приложението, което прави трудно е да се дадат входни стойности
  • Валидирането и проверката на изхода в различна система е малко трудно за тестерите
  • Изборът на параметри и категоризацията трябва да бъдат известни на тестерите
  • Функция за обработка на изключения трябва да се тества
  • Знанията по кодиране са необходими на тестерите

Заключение

API се състои от набор от класове/функции/процедури, представляващи слоя бизнес логика. Ако API не е тестван правилно, това може да причини проблеми не само в приложението API, но и в извикващото приложение. Това е незаменим тест в софтуерното инженерство.