Нагрузочное тестирование ПО

среда, 27 мая 2009 г.

Тестирование

Итак, сейчас добавим немного методологии по проведению самого нагрузочного тестирования. Допустим, что все предыдущие шаги успешно завершены, а это значит, что у нас есть:
1. Разработанная и согласованная модель нагрузки. Для модели отобраны критичные для данного вида тестирования операции, определены интенсивности их выполнения в тесте. Определены профили нагрузки, если Приложение имееет различные модели поведения. Рассчитаны нагрузочные точки.
2. Для моделируемых операций разработаны нагрузочные скрипты и созданы необходимые датапулы.
3. Разработаны сценарии, выполнения криптов, которые соответствуют профилям модели нагрузки.
4. Произведена проверка работы скриптов в сценариях. Необходимо исполнить каждый скрипт входящий в сценарий, используя хотя бы несколько виртуальных пользователей в группе, чтобы исключить ошибки взаимного влияния скриптов друг на друга. Тут же могут быть обнаружены скрипты с недостаточно хорошо сделанной корреляцией.

Если ошибок нет, то тогда можно приступать к испытаниям. Необходимо заметить, что оборудование тестового стенда должно в идеале как можно ближе соответствовать промышленной конфигурации. Особенно в случае, когда на основе полученных в результате тестирования времен выполнения операций будут приниматься какие-то бизнес решения. В случае если речь идет просто об оптимизации Приложения, то соответствие конфигураций тестового стенда и промышленного уже не так актуально. Для мониторинга тестовых серверов необходимо иметь доступ на сервера с правами для использования таких утилит как MS Windows Performance для MS Windows или sar, iostat, vmstat для unix-образных OS. При сохранении журналов мониторинга на тестовых серверах необходимо убедиться в наличии дискового простанства для хранения соответствующих объемов информации.

Первые запуски тестов являются пробными и позволяют понять поведение системы в целом, включая работу тестируемого Приложения и оборудования, на котором оно размещено. Начинать испытания надо с нагрузочных точек с меньшей нагрузкой, двигаясь по мере нарастания нагрузки от меньшей к большей. Может получиться так, что в процессе тестирования количество нагрузочных точек поменяется, а также изменятся количества виртуальных пользователей входящих в ту или иную нагрузочную точку. Хотелось бы так же заметить, что результаты испытаний в идеале должны быть логически согласованы. Это значит, что при увеличении нагрузки, результаты времен выполнения операций (и загрузки тестового оборудования) должны соответственно ухудшаться, а не наоборот. Если на нагрузочной точке с большей нагрузкой результаты лучше, то такой эксперимент надо перепровести, чтобы понять причины такого "выброса". Как вариант возможна ситуация, что нагрузочные точки были неправильно спроектированы и возможно нужно увеличть размер "шага", чтобы действительно почувствовать увеличение нагрузки. В заключение хочется добавить, что набор экспериментов (и как следствие результатов) должен быть достаточен для того, чтобы можно было провести анализ "узких" мест и сделать выводы о производительности и стабильности работы тестируемого Приложения.

Комментарии: 1:

  • В целом согласен, но к методике не помешало бы приложить пример создания такого теста. В качестве реализации нагрузочного тестирования предлагаю рассмотреть мой пример с использоваем JMeter - http://sorokin.in.ua/?p=323

    Автор: Blogger deadline, В 13 мая 2010 г. в 14:28  

Отправить комментарий

Подпишитесь на каналы Комментарии к сообщению [Atom]



<< Главная страница