СИСТЕМА ТЕСТУВАННЯ ПРОДУКТИВНОСТІ API ПРИ ВИСОКИХ НАВАНТАЖЕННЯХ

Ключові слова: API (Application Programming Interface), тестування, тестування продуктивності, навантажувальне тестування, Locust

Анотація

В основах багатьох сучасних ком’ютерних систем лежать інтерфейси прикладного програмування, або API (Application Programming Interface). Інтерфейси прикладного програмування слугують мостом між різними елементами комп’ютерних систем, дозволяючи їм спілкуватися, взаємодіяти між собою та безперешкодно обмінюватися даними. Фактично API – набір протоколів, інструментів і визначень, які дозволяють різним програмам інтегруватись між собою, а також надають розробникам можливість отримати доступ до певних програмних функцій або наборів даних. Важливим завданням в процесі розробки API є забезпечення їх коректної роботи в умовах високих навантажень. API можуть мати сотні, тисячі і навіть мільйони користувачів, для яких важливе забезпечення стійкості, масштабованості і надійності цих програмних засобів. Система, не є надійним чином протестована в умовах високих навантажень, може зазнати краху у випадку, якщо велика кількість користувачів захоче водночас використати один і той самий метод API, або отримати схожі дані. Така система також буде менш стійкою від DDoS-атак – видів хакерських атак, що “засмічують” комп’ютерну систему великою кількістю запитів, фактично блокуючи доступ до неї для реальних користувачів. У цій статті представляється дослідження та розробка системи тестування, створеної для оцінки продуктивності API. В основі системи лежить Locust, інструмент для тестування продуктивності програм з відкритим програмним кодом. Цей інструмент призначений для моделювання та аналізу поведінки різноманітних додатків при навантаженні великою кількістю користувачів. Розроблена система тестування продуктивності використовує можливості Locust для того, щоб ретельно вивчити стійкість API-системи у реальному сценарії. Вона детально тестує локальну версію API, навантажуючи її так званим “роєм” віртуальних користувачів. Після цього Locust збирає дані про продуктивність API – кількість успішних та помилкових запитів; мінімальний, максимальний та середній час обробки запиту; а також детальний звіт, який може бути використаний для подальшого аналізу результатів. Отримані в результаті такого дослідження дані сприяють розумінню і, в подальшому, покращенню якості роботи API, пропонуючи цінні рекомендації щодо оптимізації продуктивності програми та виявлення “вузьких місць” (bottlenecks) у програмному коді.

Посилання

1. Most Popular APIs this year | Postman API Network. URL: https://www.postman.com/explore/mostpopular-apis-this-year.
2. What is a distributed denial-of-service (DoS) attack? | Cloudflare. URL: https://www.cloudflare.com/learning/ddos/what-is-a-ddos-attack/.
3. Isha, Sharma A., Revathi M. Automated API Testing. 2018 3rd International Conference on Inventive Computation Technologies (ICICT), Coimbatore, India, 15–16 November 2018. 2018. URL: https://doi.org/10.1109/icict43934.2018.9034254.
4. RESTful API Testing Methodologies: Rationale, Challenges, and Solution Directions / A. Ehsan et al. Applied Sciences. 2022. Vol. 12, no. 9. P. 4369. URL: https://doi.org/10.3390/app12094369.
5. Automatic identification of load testing problems / Z. M. Jiang et al. 2008 IEEE International Conference on Software Maintenance (ICSM), Beijing, China, 28 September – 4 October 2008. 2008. URL: https://doi.org/10.1109/icsm.2008.4658079.
6. Latah M., Toker L. Load and stress testing for SDN’s northbound API. SN Applied Sciences. 2019. Vol. 2, no. 1. URL: https://doi.org/10.1007/s42452-019-1917-y.
7. Locust.io. Locust – A modern load testing framework. URL: https://locust.io/.
8. Writing a locustfile – Locust 2.18.4 documentation. Locust Documentation – Locust 2.18.4 documentation. URL: https://docs.locust.io/en/stable/writing-a-locustfile.html#writing-a-locustfile.
9. greenlet. PyPI. URL: https://pypi.org/project/greenlet/.
10. Retrieve test statistics in CSV format – Locust 2.18.4 documentation. Locust Documentation – Locust 2.18.4 documentation. URL: https://docs.locust.io/en/stable/retrieving-stats.html.
Опубліковано
2023-12-18
Як цитувати
Зацерковний, Р. Г., Бабич, В. І., Плеша, М. І., Хмілярчук, Л. І., & Швець, О. М. (2023). СИСТЕМА ТЕСТУВАННЯ ПРОДУКТИВНОСТІ API ПРИ ВИСОКИХ НАВАНТАЖЕННЯХ. Системи та технології, 66(2), 43-49. https://doi.org/10.32782/2521-6643-2023.2-66.5
Розділ
КОМП’ЮТЕРНІ НАУКИ