Я в настоящее время делаю работу и нагрузочное тестирование комплексной системы многоярусной расследуя влияние различных изменений, но у меня возникают проблемы, отслеживающие всего:Как отслеживать тестирование производительности
- Есть много копий различных сборок
- Orignally выпустил сборки
- Официально выпущенные исправления
- агрегатов, что я» Ве построили дополнительно содержащий дополнительные исправления
- сборки, которые я сборку, содержащую дополнительную диагностическую регистрацию или кальку
- Есть много патчей базы данных, некоторые из перечисленных выше узлов зависят от некоторых патчей базы данных применяется
- Существует множество разных уровней ведения журнала, в разных уровнях (ведение журнала приложений, статистика производительности приложений, профилирование SQL-сервера)
- Существует много разных сценариев, иногда полезно протестировать только 1 сценарий, в других случаях мне нужно проверить комбинации разных сценариев.
- Нагрузка может быть разделена на несколько машин или только одна машина
- Данные, имеющиеся в базе данных может изменить, например, некоторые тесты могут быть сделано с сгенерированных данных, а затем с данными, взятыми из живая система.
- Существует огромное количество потенциальных данных о производительности, которые будут собраны после каждого теста, например:
- Много различных типов приложений конкретного протоколирования
- SQL Profiler прослеживает
- журналов событий
- DMVs
- Счетчики для перфтонов
- База данных (ов) - это несколько Gb размером, поэтому, если бы я использовал резервные копии, чтобы вернуться к предыдущему состоянию, я склонен применять изменения к любой базе данных после последнего теста, заставляя меня быстро потерять информацию о вещах.
Я собираю как можно больше информации о каждом испытании, которое я выполняю (сценарий, в котором исправления применяются какие данные содержатся в базе данных), но мне все же приходится повторять тесты из-за несогласованных результатов. Например, я просто сделал тест, который, как я считаю, является точным дубликатом теста, который я провел несколько месяцев назад, однако с обновленными данными в базе данных. Я знаю, что новые данные должны приводить к деградации производительности, однако результаты показывают обратное!
В то же время я нахожу, что занимаю непропорциональное количество времени, записывая эти все эти детали.
Одна вещь, которую я рассматривал, заключалась в использовании скриптов для автоматизации сбора данных о производительности и т. Д., Но я не был уверен, что это была такая хорошая идея - не только время, затрачиваемое на разработку сценариев, а не тестирование, но ошибки в моем скрипты могут заставить меня потерять информацию о вещах еще быстрее.
Я следую советам/подсказкам о том, как лучше управлять тестовой средой, в частности, как балансировать между сбором всего и фактически получать некоторые тесты, сделанные с риском пропустить что-то важное?