В статье автор исследует взаимосвязь архитектурных решений разработанного микросервисного прототипа системы роботизированной автоматизации процессов RPA_SOFT и его фактических эксплуатационных характеристик. Предложенная методика охватывает модульные, интеграционные, приемочные, нагрузочные тесты и тесты безопасности, встроенные в конвейер CI/CD (методология непрерывной интеграции и непрерывного развертывания ПО). При одновременной работе 10 виртуальных пользователей обработано 1760 HTTP-запросов без отказов; среднее время обработки запроса составило 12,61 мс, максимальная задержка — 77,05 мс. Доверительный интервал (98 %) средней длительности одной итерации (при общем количестве итераций n = 578) находится в диапазоне 1037,84–1041,64 мс, что подтверждает стабильность производительности. Покрытие кода достигло 94 % в API-шлюзе (далее — api-gateway) и 82 % в сервисе аутентификации (далее — auth-service) и сервисе управления доступом (далее — dp-service); выявленные логические ошибки устранены. Тесты безопасности подтвердили защищенность от кибератак, использующих NoSQL-инъекции и обход системы контроля доступа на основе ролей (RBAC). Результаты демонстрируют соответствие прототипа требованиям времени отклика (не больше 3 с) для 98 % запросов и обосновывают готовность к пилотной эксплуатации.
Ключевые слова: роботизированная обработка процессов, микросервисная архитектура, нагрузочное тестирование, DevTestOps, безопасность API.
Введение
Современные процессы цифровой трансформации во многих отраслях экономики приводят к экспоненциальному росту объемов неструктурированных данных, таких как документы, изображения, пользовательские журналы и мультимедийные материалы. Ручная обработка этих данных сопряжена с высоким уровнем трудоемкости, существенными временными затратами и риском возникновения ошибок, обусловленных человеческим фактором. В качестве одного из эффективных решений проблемы автоматизации выступают технологии роботизированной обработки процессов (Robotic Process Automation, RPA), которые позволяют существенно снизить издержки, повысить производительность и обеспечить воспроизводимость результатов. Вместе с тем успешность таких систем напрямую зависит от двух важнейших факторов: надежности архитектуры, способной выдерживать растущие нагрузки и частичные отказы, и качества программного обеспечения, проверенного с использованием современных методик тестирования.
В данной статье представлены результаты комплексного тестирования прототипа микросервисной системы роботизированной обработки неструктурированных данных RPA_SOFT, разработанного для торгово-логистических компаний. Целью исследования стало подтверждение функциональной и нефункциональной готовности системы к пилотной эксплуатации, оценка ее производительности, безопасности и устойчивости к отказам в условиях, максимально приближенных к реальным.
Технические характеристики системы, заложенные в требованиях заказчика, предусматривали обеспечение времени отклика API не более 3 с для 98 % запросов при одновременной работе до пяти пользователей и минимум 10 параллельных процессов обработки документов. Для достижения поставленных целей были использованы современные подходы DevTestOps, которые подразумевают непрерывное тестирование на всех этапах разработки. Испытания включали в себя автоматические модульные и интеграционные тесты, нагрузочные проверки производительности, а также тесты безопасности, реализованные в рамках единого CI/CD-конвейера проекта.
Научная новизна работы заключается в комплексном подходе к тестированию микросервисной архитектуры RPA-системы, обеспечивающей автоматизированную обработку разнотипных данных в виртуализированной среде. Методика испытаний содержала как традиционные техники оценки покрытия кода, времени отклика и безопасности, так и нестандартные сценарии, такие как отказ одного из сервисов и проверка корректности работы системы в условиях интенсивной нагрузки.
Полученные результаты могут служить ориентиром для дальнейшего совершенствования самой системы и формирования унифицированной методики оценки RPA-решений.
Методы
В рамках исследования была использована комплексная методика испытаний, включающая несколько типов проверок, обеспечивающих всестороннюю оценку работоспособности системы RPA_SOFT.
Модульные и интеграционные тесты были реализованы с использованием фреймворка Jest — популярного инструмента для тестирования кода, написанного на языке JavaScript. Jest позволяет проверять отдельные компоненты системы и их взаимодействие. Покрытие кода тестами оценивалось при помощи встроенных средств Jest и дополнительных инструментов анализа кода.
Для проведения нагрузочных тестов применялось ПО K6, которое позволяло моделировать реальную пользовательскую нагрузку и фиксировать метрики производительности, такие как среднее время ответа и процентиль задержек. Сценарии нагрузочных тестов имели различные профили нагрузки с целью проверки системы в условиях, близких к реальной эксплуатации.
Тестирование безопасности осуществлялось по заранее разработанным чек-листам, которые включали проверку на наличие уязвимостей, типичных для веб-приложений и API; контроль авторизации; обработку исключений; защиту от кибератак в виде инъекций и другие аспекты.
Приемочное тестирование системы выполнялось с использованием фреймворка Cypress, который позволял автоматизировать проверку пользовательских сценариев взаимодействия с системой через интерфейс. Тестовые сценарии включали как стандартные операции, так и нестандартные случаи использования, обеспечивая тем самым всестороннюю оценку качества реализации пользовательского интерфейса и бизнес-логики системы.
Все этапы испытаний были интегрированы в единый процесс CI/CD, что позволило автоматизировать выполнение проверок, обеспечить оперативность получения результатов и быстрое реагирование на обнаруженные проблемы.
Результаты
В рамках научного исследования была реализована и протестирована версия прототипа системы RPA_SOFT. Экспериментальные исследования охватывали ключевые аспекты функционирования системы: от отдельных функций микросервисов до полной цепочки пользовательского взаимодействия, включая работу под нагрузкой и защиту от внешних угроз. Все тесты проводились в контролируемой среде с использованием автоматизированных инструментов.
Для обеспечения полноты и воспроизводимости испытаний предварительно была разработана программа и методика предварительных комплексных испытаний системы, определявшая цели, последовательность и подходы к проверке всех компонентов. На ее основе проведены модульные, интеграционные, приемочные, нагрузочные тесты и тесты безопасности, охватывавшие реализацию основных функций системы. По завершении испытаний составлен протокол предварительных комплексных испытаний, зафиксировавший результаты и перечень необходимых доработок.
В рамках модульного тестирования для проверки отдельных компонентов были написаны и выполнены unit-тесты микросервисов: auth-service, dp-service, api-gateway. Охвачены критически важные функции: регистрация, вход пользователя, валидация токенов, обработка CSV-файлов и работа сессий. Тестирование выполнено с использованием фреймворков Jest и Mocha, а также библиотеки Sinon. Среднее покрытие составило: api-gateway — 94 % по строкам и 90 % по ветвлениям; dp-service и auth-service —82 % по строкам и 76 % по ветвлениям. В ходе тестирования выявлены и устранены три логические ошибки, подтвержденные логами выполнения (файлами журнала событий). Компоненты показали стабильную работу в изолированной среде.
Интеграционное тестирование подтвердило согласованность взаимодействий микросервисов. Реализованы сценарии, эмулирующие действия пользователя: регистрация, авторизация, передача и обработка файлов через api-gateway и dp-service. При этом использовался фреймворк Mocha и библиотеки Chai и Supertest. Все цепочки выполнены успешно, максимальное время ответа интеграционного запроса не превысило 750 мс. Тестирование показало устойчивость системы в сквозной проверке маршрутов между auth-service, api-gateway и dp-service.
Нагрузочное тестирование проводилось с помощью ПО K6 при одновременной работе 10 виртуальных пользователей, выполнявших непрерывные обращения к API. За время прогона обработано 1760 HTTP-запросов без отказов (0 %). Среднее время обработки HTTP-запроса составило 12,61 мс (в диапазоне 12,06–13,16 мс), а среднее время ожидания ответа сервера — 11,53 мс (в диапазоне 11,03–12,02 мс) при уровне доверия 98 % (см. рис. 1) [1]. Максимальная зафиксированная задержка не превысила 77,05 мс. Анализ доверительного интервала длительности итерации (см. рис. 2) показал [2], что при том же уровне доверия среднее значение одной итерации равно 1039,74 мс (σ = 13,03; n = 578) и лежит в пределах 1037,84–1041,64 мс, что подтверждает стабильность системы под нагрузкой. Во время стресс-теста наблюдалось лишь умеренное замедление при обработке крупных CSV-файлов, не приводившее к сбоям. Система продемонстрировала высокую консистентность данных и стабильную производительность.
Рис. 1. Средние значения HTTP-метрик [1, с. 5]
Рис. 2. Диаграмма доверительного интервала длительности итерации [2, с. 5]
В рамках тестирования безопасности системы реализованы сценарии моделирования внешних угроз: NoSQL-инъекции, подмена идентификаторов, обход прав доступа. Использованы фреймворк Jest и специализированные скрипты. Все попытки атак были успешно блокированы без утечек данных: возвращались статусы 400 (неправильный запрос) или 403 (доступ запрещен). RBAC-защита корректно ограничила доступ на основе ролей, публичные маршруты не раскрывали сессионные куки (временные файлы, сохраняющиеся в браузере пользователя, пока он находится на сайте).
Приемочное тестирование, организованное с помощью фреймворка Cypress, подтвердило корректность работы пользовательского интерфейса и системы в соответствии с пользовательскими сценариями, включая пограничные условия и негативные сценарии. Все сценарии завершились успешно.
Испытания подтвердили функциональную готовность системы. По итогам тестов составлен протокол, фиксирующий результаты и рекомендации по доработкам. Выявленные ошибки устранены, система соответствует нормативам технического задания по времени отклика, устойчивости к нагрузкам и защите от внешних угроз. Таким образом, прототип системы RPA_SOFT признан технически состоятельным и готовым к опытной эксплуатации.
Заключение
Результаты проведенных испытаний подтвердили функциональную и техническую состоятельность прототипа системы RPA_SOFT. Проведенные модульные, интеграционные, приемочные, нагрузочные тесты и тесты безопасности охватили все ключевые аспекты архитектуры и обеспечили объективную оценку готовности к этапу опытной эксплуатации. Система показала стабильную работу как при штатных, так и при нагрузочных сценариях, корректно обрабатывая пользовательские действия и защищаясь от типичных угроз. Все заданные техническим заданием требования по времени отклика, отказоустойчивости и изоляции прав доступа были выполнены.
Анализ проблем, выявленных в процессе испытаний, позволил сформировать список первоочередных доработок, направленных на повышение устойчивости и расширение функционала (включая автоматизированный мониторинг, журналирование событий, а также резервное копирование и восстановление данных). Полученные результаты демонстрируют практическую применимость разработанных решений и создают основу для последующего масштабирования и внедрения системы в продуктивной среде.
Литература:
- Топ-9 JavaScript Testing Frameworks. — Текст : электронный // BrowserStack : [сайт]. — URL: https://www.browserstack.com/guide/top-javascript-testing-frameworks (дата обращения: 13.05.2025).
- Python Automated Testing: Framework and Examples. — Текст : электронный // QA Touch : [сайт]. — URL: https://www.qatouch.com/blog/python-automated-testing/ (дата обращения: 13.05.2025).
- Software Testing Metrics: Types, Calculations, and Examples. — Текст : // ACCELQ : [сайт]. — URL: https://www.accelq.com/blog/software-testing-metrics/ (дата обращения: 13.05.2025).
- What is NodeJS Testing? A Comprehensive Guide. — Текст : электронный // QAble : [сайт]. — URL: https://www.qable.io/blog/nodejs-testing (дата обращения: 13.05.2025).
- Top Node.js Testing Frameworks. — Текст : электронный // Capicúa : [сайт]. — URL: https://www.capicua.com/blog/node-js-testing-frameworks (дата обращения: 13.05.2025).
- Jest. OpenJS Foundation. — Текст : электронный // Jest : [сайт]. — URL: https://jestjs.io/docs/getting-started (дата обращения: 13.05.2025).
- Mocha. OpenJS Foundation. — Текст : электронный // Mocha : [сайт]. — URL: https://mochajs.org/ (дата обращения: 13.05.2025).
- Pytest: helps you write better programs. — Текст : электронный // Pytest : [сайт]. — URL: https://docs.pytest.org/en/stable/ (дата обращения: 13.05.2025).
- Grafana k6. — Текст : электронный // Grafana Labs : [сайт]. — URL: https://k6.io/docs/ (дата обращения: 13.05.2025).
- Федеральный закон «Об информации, информационных технологиях и о защите информации» от 27.07.2006 № 149-ФЗ // Российская газета.
- Федеральный закон «О персональных данных» от 27.07.2006 № 152-ФЗ // Российская газета.
- Федеральный закон «О безопасности критической информационной инфраструктуры Российской Федерации» от 26.07.2017 № 187-ФЗ // Российская газета.
- Приказ ФСТЭК России «Об утверждении состава и содержания организационных и технических мер по обеспечению безопасности персональных данных при их обработке в информационных системах персональных данных» от 18.02.2013 № 21 // Российская газета.
- ГОСТ Р 56939–2016. Безопасность информации. Защита информации. Общие положения // Российская газета.
- ГОСТ Р 59792–2021. Информационные технологии. Комплекс стандартов на автоматизированные системы. Виды испытаний автоматизированных систем. — Москва : Издательство стандартов, 2021. — 12 с.
- ГОСТ 28195–89. Оценка качества программных средств. Общие положения. — Москва : Издательство стандартов, 2001. — 39 с.
- ГОСТ 28806–90. Качество программных средств. Термины и определения. — Москва : Издательство стандартов, 2005. — 8 с.