Я хочу, чтобы тест был ДЕТЕРМИНИСТИЧЕСКИМ - независимо от того, что происходит на машине, на которой выполняются тесты, я хочу, чтобы несколько прогонов теста возвращали одинаковые результаты.
Ошибка.Более или менее по определению это совершенно невозможно в многопроцессорной системе с несколькими пользователями.
Либо переосмыслите это требование, либо найдите новую среду для запуска тестов, в которых не задействованы какие-либо современныеОбработка операционных систем.
Кроме того, ваше работающее веб-приложение не является детерминированным, поэтому навязывание какого-то «детерминированного» тестирования производительности не сильно поможет.
Когда мы выполняли обработку, критичную ко времени (в радаре, где «реальное время» фактически означало реальное время), мы не предпринимали попытки детерминистского тестирования.Мы провели проверку кода и провели простые тесты производительности, которые включали простые средние и максимальные значения.
Используйте cProfile, чтобы настроить интерпретатор для игнорирования «внешнего шума».Я не уверен, что знаю, как читать структуру pstats, но уверен, что это выполнимо.
Объект Stats
, созданный профилировщиком, - это то, что вы ищете.
http://docs.python.org/library/profile.html#the-stats-class
Сосредоточьтесь на 'pcalls', подсчете примитивных вызовов, в статистике профиля, и вы получите что-то примерно детерминированное.