APIs или Application Programming Interfaces са връзката между различни системи или слоевете на едно приложение. Повечето приложения стандартно имат три слоя – слой за данни, слой за услуги (API) и презентационен слой (User interface). Частта с API съдържа бизнес логиката на проекта и какви са правилата за взаимодействие между потребителите и услугата, данните или функциите на приложението. Междинната функция на API слоя дава различни възможности за тестване, тъй като няма зависимост от това user interface-ът да е разработен.
Тестването на API има много разновидности, но най-основната част от него е изпращането на заявки (requests) към определена крайна точка (end point) и валидиране/потвърждаване на отговора (response-a). По този начин може да се тества бързината на отговора, сигурността на приложението и правилната работа на функционалностите.
Някои от ползите на API тестването са:
- По-ранно, навременно тестване – тестовете могат да бъдат разработени веднага след като логиката е изготвена, не е нужно да се изчаква цялото приложение да е завършено. Тестовете помагат за валидирането на данните и коректността на отговорите.
- По-лесна поддръжка на тестовете – при потребителския интерфейс промените са чести, тъй като той зависи от типа устройство, на който се използва, ориентация на дисплея и други фактори, които налагат честата промяна на тестовите сценарии от софтуерните тестери. Промените по API са доста по-контролирани и не са толкова чести.
- По-бързо откриване на проблеми – Ако API тест се окаже неуспешен, бързо може да се разбере къде в системата е проблемът.
- По-бързо и по-добро покритие на функционалностите за тестване – След всеки request отговорът се получава за секунди, това означава, че повече тестове се изпълняват за по-малко време и почти веднага може да бъде установен проблем, ако има такъв.
Примерен тестови сценарий за API може да бъде:
1. Да се направи request към endpoint (https://example.com/api/dogs/breeds/show)
2. Да се верифицират данните от отговора.
В случай, че трябваше да се изпълни същият сценарий чрез използване на UI, стъпките щяха да са много повече и изпълнението би отнело повече време. Например: отваряне на браузър, отваряне на сайт, търсене на страница за кучета, избор на точна порода кучета, разглеждане на кучетата от породата, избор на снимка.
Разработката на тестови сценарии, тестването и автоматизирането им може да бъде извършено чрез използването на готов продукт. Такава платформа е например Postman. Чрез използването на този инструмент може да бъде добавена схема на API-a така, че тестовете да имат източник за сверяване на информацията относно това какви данни може да приема API-a, описание на операциите и как да се взаимодейства с API-a.
Възможно е създаването на тестови сетове, написани на JavaScript, до които целият екип от разработчици и тестери да има достъп за дебъгване. За да не се изпълняват едни и същи тестове, може да се направи параметризация на променливите и при всяко изпълнение на тестовете да бъдат взети различни данни. Тестовите сетове могат да бъдат изпълнявани заедно или поотделно и резултатите от тях да се виждат в реално време.
Чрез Postman или друга платформа за създаване и тестване на API е възможно да се направи интеграция към CI/CD pipeline (последователност от стъпки, чрез които да се достави нова версия на софтуер) и така да бъде осигурено изпълнението на тестовите сценарии веднага след като е доставена нова версия от софтуерните разработчици.
Автор: Ина Бунова
Вижте повече в курса по “Автоматизирано тестване”