Тестирование производительности - PullRequest
2 голосов
/ 17 сентября 2008

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

Ответы [ 3 ]

5 голосов
/ 17 сентября 2008

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

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

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

0 голосов
/ 17 сентября 2008

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

0 голосов
/ 17 сентября 2008

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

...