MyWackoSite: Публикации/2013/ISSC/Kolbin2013

УДК 004.4

НАГРУЗОЧНОЕ ТЕСТИРОВАНИЕ АВТОМАТИЧЕСКОЙ СИСТЕМЫ ПРОВЕРКИ НАВЫКОВ ПРОГРАММИРОВАНИЯ NSUTS

Я. С. Колбин

Новосибирский государственный университет

Совместная научно-исследовательская лаборатория НГУ-Parallels

Автоматическая система тестирования NSUTS применяется для проведения олимпиад по программированию, а также является важным инструментом промежуточного контроля при обучении студентов и школьников в области информатики. Во время подготовки к XII Открытой Всесибирской олимпиаде по программированию им. И. В. Поттосина требовалось измерить производительность и убедиться в корректности функционирования системы при ожидаемой нагрузке около 300 участников и 1000 активных пользователей веб-сервера – тренеров команд, болельщиков.

Для проведения нагрузочного тестирования требуется адаптация или разработка собственного инструмента, предоставляющего следующие возможности: имитация нагрузки нескольких тысяч пользователей, воспроизведение реалистичных сценариев использования, повторное использование функциональных тестов для нагрузочного тестирования и облегченная адаптация к новым версиям приложения.

Из существующих программных инструментов для проведения нагрузочного тестирования был выбран Apache JMeter. Его аналоги уступают по функциональности и менее удобны в использовании. Для повторного использования функциональных тестов требуется создать совместимый с JMeter сценарий, состоящий из переходов по веб-приложению для генерации заданной нагрузки. Были рассмотрены три подхода: многопоточный запуск функциональных тестов, транслятор функциональных тестов в совместимый с JMeter сценарий, воспроизведение тестов через прокси-сервер. Последний подход оказался менее трудозатратным и требовательным к аппаратным ресурсам.

Моделирование такой нагрузки позволило успешно провести несколько последних Всесибирских олимпиад. В дальнейшем предполагается применить данный подход к нагрузочному тестированию для дальнейшей оптимизации системы, в том числе для выяснения возможности и целесообразности применения: обратных прокси (nginx, Varnish), серверов кэширования СУБД (memcached).

Научный руководитель – доцент Д. В. Иртегов