В настоящее время мы используем CruiseControl (версия ruby) для CI, и он запускает наши модульные и интеграционные тесты (в основном, rspec).
Это замечательно: он дает нам мгновенную обратную связь по любым функциональным проблемам или регрессам (я использую instant в приблизительном смысле ;-).
Что нам не говорит, так это то, что наши коммиты ввели регрессию производительности.
Я бы хотел, чтобы наша сборка стала КРАСНОЙ, если тесты измеряют снижение производительности, скажем, 5% И, конечно, указывают нам на проблему, будь то плохо отвечающие запросы к базе данных, время, проведенное в функция ruby или ответ контроллера.
Непрерывное тестирование производительности - тема, которая в течение последних нескольких лет была немного обсуждена, но, за исключением нескольких предложений поставщиков (в основном, направленных на мир Java и .NET), я не вижу особой стороны Rails. , Я думаю, что мы похожи на большинство: тестирование производительности, нагрузки и объема - это отдельное действие, обычно выполняемое перед серьезным обновлением, но часто забываемое во время рутинных итераций и выпусков. И мы избавляемся от серьезных неприятностей только из-за того, что NewRelic отлично следит за нашими живыми инстанциями, и благодаря удаче.
CI важен для практики гибкой разработки, и отсутствие непрерывного тестирования производительности во время сборки , похоже, является одним из немногих оставшихся больших пробелов в нашем инструменте.
Мне бы хотелось получить ответы на некоторые вопросы, которые могут указать на любые инструменты, которые могут помочь, или даже узнать, как вы, возможно, взломали это сами. NB: мы не женаты на CC и не склонны включать другие - даже коммерческие - продукты в цикл сборки, если они могут выполнять свою работу.