2008-09-16 12 views
2

Мы разрабатываем автоматические регрессионные тесты с использованием VMWare и NUnit. Мы разделили тесты на шаги, и теперь я хотел бы, чтобы каждый шаг рассматривался для регрессии производительности. Простое время тестов, как это делает NUnit, не кажется надежным. Я полагал, что коэффициент принятия составляет около 15%, но наши шаги могут иногда отличаться более чем на 35%. В такой среде, зависящей от ресурсов, существует ли какой-либо последовательный способ тестирования производительности? Является ли «умная» система синхронизации моей единственной опцией?Тестирование производительности

ответ

5

Для такого рода тестирования производительности нет такой вещи, как система, которая даст вам простой результат прохода/сбоя. В реальной жизни изменение вашей системы, скорее всего, сделает некоторые вещи быстрее, а некоторые другие более медленными, поэтому обычно это не выбор между «лучше» и «не лучше», это выбор между разными типами лучше. (Конечно, вы хотите избежать случаев, когда это хуже.)

То, что я делал для этого в прошлом, - это просто сохранять статистику с течением времени. Каждый раз, когда вы запускаете свои тесты, удаляйте результаты в базе данных SQL с номером ревизии и временем тестирования. Затем вы можете их графовать всякий раз, когда хотите и хотите (в идеале, в небольшом веб-апплете, чтобы все в команде могли их просмотреть) и посмотреть, не повышается ли ваша производительность вверх или вниз, или если производительность сосала с той или иной версии.

Главное, однако, в том, что это должен быть граф . Таким образом, человеческие глаза могут смотреть на него и находить тенденции. Вы могли потратить всю неделю, пытаясь придумать алгоритм ИИ, чтобы анализировать данные численно, но он никогда не нарушил бы способность распознавания образов человека.

0

Вы можете ознакомиться с функциями, доступными с помощью инструмента, такого как Ants Profiler, поскольку он дает время выполнения/выполнения метода, но я не уверен, что он предлагает в плане повторного тестирования.

0

Что касается тестирования производительности, я скептически относился к использованию vmware или других процессов виртуализации. То, как мы это делали в прошлом, состоит в том, чтобы часть сборки устанавливала последнюю версию на статической машине и запускала тесты. Вы должны увидеть более последовательные результаты за пределами виртуализации.