Как вы симулируете частую активность базы данных для реалистичного тестирования? - PullRequest
3 голосов
/ 06 февраля 2009

Я создаю веб-приложение для базы данных, в которой одновременно активно небольшое количество записей (около 5000). Каждая активная рабочая запись, вероятно, испытывает 50-300 изменений 30 пользователей за 4-часовой период ... что составляет тысячи изменений в минуту.

Поскольку наша среда тестирования настолько статична, тестирование нереально, и некоторые проблемы не возникают, пока мы не попадаем в производственную базу данных.

У меня была идея запустить Profiler, собрать операторы DML, а затем воспроизвести их на тестовом сервере во время отладки приложения ... Предполагая, что я могу воспроизвести их в те же промежутки времени, что и исходный файл. Но даже это не будет правильным тестом, поскольку изменения тестера могут повредить будущие операторы DML, которые будут воспроизводиться.

Кто-нибудь знает, как смоделировать изменения базы данных в реальном времени для реалистичного тестирования?

Спасибо.

Кстати, наши проблемы не связаны с параллелизмом.

Ответы [ 3 ]

1 голос
/ 06 февраля 2009

Может быть, вам нужен этот сервис на основе Selenium: browsermob

Мало кто рекомендовал это.

И да, это не реклама:)

0 голосов
/ 02 октября 2009

Возможно, используйте что-то вроде инструмента стресс-тестирования базы данных, такого как эмулятор нагрузки mysqlslap. Вот ссылка , поясняющая варианты использования и конкретные примеры.

0 голосов
/ 13 июня 2009

Есть несколько коммерческих пакетов, которые делают это. Я работаю в Quest Software, создателях одного из пакетов, но я собираюсь перечислить три, потому что я работал со всеми до того, как пришел работать в Quest:

  • Microsoft Visual Studio Test Edition - в него добавлены инструменты нагрузочного тестирования. Он позволяет создавать тесты внутри Visual Studio, например, имитировать попадание браузеров в ваше веб-приложение. Записать исходные макросы довольно сложно, но когда вы это сделаете, их легко воспроизвести. В нем также есть агенты, которые можно развернуть на нескольких рабочих столах, чтобы увеличить нагрузку. Например, мы установили его на рабочие столы нескольких разработчиков, и когда нам нужно было провести нагрузочное тестирование в нерабочее время, мы могли бы бросить тонну вычислительной мощности на серверы. Недостатком является то, что настройка и текущее обслуживание довольно болезненны.
  • HP Quality Center (раньше он был Mercury Test Director и некоторым другим программным обеспечением) - также имеет инструменты для нагрузочного тестирования, но он разработан с нуля для тестировщиков. Если у ваших тестеров нет опыта работы с Visual Studio, это более простой выбор.
  • Quest Benchmark Factory - этот инструмент ориентирован исключительно на сервер баз данных, а не на веб-серверы и серверы приложений. Он фиксирует нагрузку на ваш производственный сервер, а затем может воспроизводить ее на ваших серверах dev / test или генерировать искусственные транзакции. бесплатная версия , которую вы можете использовать, чтобы начать работу.

Если вы знаете и любите Visual Studio, и если вы хотите тестировать свои веб-серверы и серверы приложений, переходите к Visual Studio Test Edition. Если вы просто хотите сосредоточиться на базе данных, тогда используйте Benchmark Factory.

...