В работе рассмотрены особенности информационных систем, предназначенных для управления бюджетом в муниципальных образованиях и субъектах РФ. Выполнен анализ особенностей тестирования производительности таких приложений.
Ключевые слова: информационные системы, методы тестирования производительности, нагрузочное тестирование, производительность, программные продукт.
Вопросы управления бюджетом в муниципальных образованиях и субъектах Российской Федерации крайне актуальны на сегодняшний день. Применение информационных технологий способствует повышению качества исполнения бюджета и увеличению скорости принятия управленческих решений. Использование геоинформационных систем поддержки принятия решений позволяют производить совершенствование структуры управления муниципальными образованиями [1].
В качестве одной из таких информационных систем (ИС) можно рассмотреть Автоматизированный Центр Контроля процесса планирования и анализа бюджета («АЦК-Планирование») [2].
«АЦК-Планирование» — это система автоматизации финансово-экономических органов, предназначенная для исполнения бюджета и управления бюджетным процессом в субъектах РФ и муниципальных образованиях. Программный комплекс «АЦК-Планирование» предназначен для автоматизации процесса планирования бюджета региона (муниципального образования) на очередной финансовый год и плановый период в соответствии с действующим законодательством и новейшими тенденциями бюджетной реформы. Клиентская часть системы взаимодействует с серверной по протоколу HTTP.
Стабильность и отказоустойчивость крайне важны в работе любых систем, связанных с исполнением бюджета или же с работой с финансовыми органами. Поэтому для подобных информационных систем необходимо проводить комплексное тестирование, направленное на выявление уязвимостей в приложениях, определение работоспособности, стабильности и других атрибутов качества приложения в условиях стрессовой работы всей системы — тестирование производительности.
Тестирование производительности чаще всего необходимо для определения нагрузки, которую выдерживает информационная система при заданных параметрах [3]. Для этого можно применять онлайн-сервисы для генерации нагрузки на выборочные модули программного продукта. Или можно имитировать деятельность реальных пользователей при помощи запуска разработанных нагрузочных скриптов в несколько потоков. Такую имитацию обычно называют поведенческим методом.
Под нагрузочным тестированием понимают определение характеристик производительности и времени отклика приложения на внешний запрос, чтобы выполнить проверку по предъявляемым требованиям к рассматриваемому программному продукту.
Программный комплекс «АЦК-Планирование», как и любая финансовая система имеет сложную структуру и состоит из множества модулей, которые взаимодействуют друг с другом.
В отличие от большинства программных приложений, в финансовых пользователи в первую очередь взаимодействуют с электронными документами (ЭД). Создание, копирование, обработка, изменение и удаление — это основные действия пользователей над ЭД в финансовых приложениях. Эти действия представляют собой запросы к серверу приложения, которые необходимо воспроизвести специалисту при написании скрипта для нагрузочного тестирования. Но перед созданием скрипта необходимо проанализировать с какими ЭД наиболее часто работают пользователи приложения.
Когда сценарии действий пользователей, которые будут воспроизводится во время нагрузочного теста, сформированы, необходимо эти сценарии создать и воспроизвести с помощью инструмента для нагрузочного тестирования. Одним из таких наиболее известных и популярных инструментов является Apache JMeter — простой в освоении кроссплатформенный программный продукт, поддерживающий большое количество протоколов передачи данных, в том числе HTTP [4]. За счет своей модульности может быть расширен в нужную сторону и реализовать самые необычные сценарии нагрузочного тестирования.
Благодаря встроенному в Apache JMeter proxy-серверу возможно записать необходимые HTTP-запросы, из которых в дальнейшем будет сформирован сценарии работы пользователей. Это избавит от сложностей, связанных с ручным написанием запросов к серверу приложения. Например, запрос на создание такого ЭД как «План финансово-хозяйственной деятельности» содержит в себе не только множество полей, но и строки бюджетных классификаторов, которых может быть до 10–20 тысяч. Таким образом, только один только запрос может занимать 30 Мб в текстовом формате, и его автоматическая запись программой для нагрузочного тестирования сильно упростит создание сценария и сократит общее время тестирования.
Также наличие логических блоков и различного вида и назначения контроллеров позволяет реализовать нелинейную структуру скрипта, что помогает в имитации асинхронной обработки ЭД. Или, при необходимости, можно реализовать собственные условия выполнения запросов с помощью специального контроллера, внутри которого пишется код сценария. Это помогает в специфических сценариях, связанных с выгрузкой шаблонов с сайтов госорганов и дальнейшего их прикрепления к электронным документам приложения. Это необходимо, так как перевод ЭД на новый статус связан с проверкой большого количества бюджетных контролей и для некоторых типов ЭД существует контроль на наличие определенного вложения.
Главная сложность в записи и дальнейшем воспроизведении сценариев как раз и заключается в наличии контролей. Все контроли обработки ЭД соответствуют законам Российской Федерации. И в случаях, когда в законы вносятся правки, бюджетные контроли также модифицируются, что может потребовать внесение изменений в уже существующий скрипт нагрузочного тестирования. Таким образом специалисту, занимающимся нагрузочным тестированием на проекте необходимо поддерживать все скрипты в актуальном состоянии.
Для финансовых приложений в техническом задании должны быть строго прописаны времена выполнения различных действия над ЭД, вместе с аппаратными характеристиками компонентов системы. И во время проведении нагрузочного тестирования отслеживается соответствие заявленных требований реальным результатам. Если же эти условия не прописаны, то задача тестировщика заключается также в установлении потенциальных возможностей системы с текущими аппаратными характеристиками.
В результате были рассмотрены основные особенности тестировании производительности финансовых приложений, предназначенных для исполнения бюджета и управления бюджетным процессом в субъектах РФ и муниципальных образованиях, отличающие их от большинства других приложений. Проведен анализ этих особенностей и предложены возможные пути их решения на примере инструмента для нагрузочного тестирования Apache JMeter.
Литература:
- Купцов К. В. Совершенствование структуры управления муниципальными образованиями на основе применения геоинформационных систем поддержки принятия решений. —: Вестник РГРТУ № 69, 2019. — 168–174 с.
- Автоматизированный Центр Контроля процесса планирования и анализа бюджета («АЦК-Планирование») // БФТ URL: https://bftcom.com/products/upravlenie-gosudarstvennymi-finansami/byudzhetnoe-planirovanie/ (дата обращения: 20.04.2020).
- Bayo Erinle. Performance Testing with JMeter. — Third Edition. —: Packt Publishing, 2017. — 166 с.
- Sai Matam, Jagdeep Jain. Pro Apache JMeter Web Application Performance Testing. —: Apress, 2017. — 358 с.