Software quality assurance days 17 Международная конференция по вопросам качества ПО sqadays.com Минск. 29–30 мая 2015 Дмитрий Вербовский Сбербанк - Технологии. Минск, Беларусь Универсальная система заглушек для эмуляции банковских систем.
Универсальная система заглушек для эмуляции банковских систем. О себе Дмитрий Вербовский Специализация - высоконагруженные системы. С 2011 г. занимаюсь тестированием производительности, от разработки методики до анализа результатов. Zeinum@gmail.com
Универсальная система заглушек для эмуляции банковских систем. Примеры запроса к системе и ответа от нее <Outgoing> <RequestID> 123456 </RequestID> <Client> Ivanov </Client> <CreditHistory> OK </CreditHistory> </Outgoing> <Incoming> <RequestID> 123456 </RequestID> <Client> Ivanov </Client> <Operation> GetCreditHistory </Operation> </Incoming> Создает ответ: Система получает запрос:
Универсальная система заглушек для эмуляции банковских систем. Корпоративная системная шина (КСШ) Путь сообщения: • Система отправитель • Выходная очередь отправителя • Адаптер шины • Транспорт по шине • Адаптер системы получателя • Входная очередь получателя • Система получатель
Пример операции Универсальная система заглушек для эмуляции банковских систем. 1 2 3.1 3.2 3.3 4 5 6 Запрос на получение кредита Запрос кредитной истории клиента Запрос информации из внутренних источников Запрос информации от внешних банков Преобразование во внутренний формат Агрегирование из нескольких источников Принятие решения о выдаче кредита Создание печатных форм
Проблематика тестирования шины Необходимо: • Создать заглушки для систем использующих шину. • Минимизировать время на их создание и доработку. • Управлять запуском и остановкой большого числа заглушек. • Собирать статистику работы заглушек. Универсальная система заглушек для эмуляции банковских систем.
Требования к системе заглушек • Время на разработку новой заглушки менее 1 дня. • Возможность развернуть наборы заглушек на нескольких стендах из одной точки. • Сбор статистики работы в одной точке. • Легкие: 60-80 заглушек на одном стенде. • Быстрые: обработка >1000 сообщений в секунду. • Тестировщик может сам создать и подключить новую заглушку без участия программиста. • Для запуска не требуется специальных знаний. Универсальная система заглушек для эмуляции банковских систем.
Что такое типовая заглушка? Универсальная система заглушек для эмуляции банковских систем.
Что конфигурируем? • Параметры входящх\исходящих очередей • Путь к хранилищу шаблонов • Правила поиска шаблона • Параметры, получаемые из входящего сообщения • Параметры, подставляемые в исходящее сообщение • Длительность задержки перед отправкой ответа • Адрес получателя статистики и частота ее отправки • Адрес для получения служебных команд Универсальная система заглушек для эмуляции банковских систем.
Принцип конфигурации заглушки Универсальная система заглушек для эмуляции банковских систем.
Принцип обработки входящих сообщений • Для получения и сохранения данных из входящего сообщения, существуют так называемые Extractors разных типов. • Для замены данных в шаблонах используются Replacers . Replacers используют значения, полученные при помощи Extractors. Универсальная система заглушек для эмуляции банковских систем.
Extractors & Replacers <Incoming>      < RqUID > 20130111134615964 < /RqUID >      <StatusCode>0</StatusCode>      <StatusDesc>Ok</StatusDesc> </Incoming>              <Outgoing>                 < MsgID > 20130111134615964 </ MsgID >                 <transactionId>1</transactionId>                </Outgoing> <Replacer> <Type>ByTagName</Type> <TagName> MsgID </TagName> <ExName> Ex_RqUID </ExName> </Replacer> <Extractor> <Type>ByTagName</Type> <TagName> RqUID </TagName> <ExName> Ex_RqUID </ExName> </Extractor> Универсальная система заглушек для эмуляции банковских систем.
Профили заглушек Универсальная система заглушек для эмуляции банковских систем.
Система управления заглушками Универсальная система заглушек для эмуляции банковских систем.
Подведем итоги • Время разработки системы ~3 месяца. • Изменение логики работы заглушки не требует экспертизы в написании кода. • Настройки в XML, время обучения нового человека – 1 день. • Разные проекты (НТ, СТ, ИФТ) уже пользуются системой, сконфигурировав ее под свои нужды. • Запуск, конфигурация, остановка распределенных заглушек может проводится с управляющего хоста в 1 клик. Универсальная система заглушек для эмуляции банковских систем.
Вопросы ? Универсальная система заглушек для эмуляции банковских систем.