Вот не соглашусь.
1) Зачастую, бизнес-операции происходят с какой-то зажержкой между собой. Например, пользователь добавил что-то в корзину, а через какое-то время оформил заказ.
Как проверить «оформление заказа», если мы говорим только про «rps подход»? Вот реально как? Откуда корзина возмётся? Мы её создадим непосредственно перед вызовом «оформления заказа»?
В реальности же, если есть задержка между добавлением в корзину и оформлением, то данные могут вымыться из кэша и профиль нагрузки на диски будет другой, несмотря на то, что «общее колиество операций такое же».
2) Зачастую, длительность операций зависит от их объёма. Например, если по сценарию пользователю нужно «добавить что-то в корзину», то длительность добавления может внезапно зависеть от текущего размера корзины. И хорошо бы проверять разные случаи: «добавим 1 элемент», «добавим 5 элементов». Вот и получилось у нас 2-3 end-to-end сценария. Внимание, вопрос: а будет ли лучше, если мы попытаемся их изобразить исходно в виде «одной только нагрузки про корзину» — да не факт.
Я не говорю, что «только end-to-end, только так», но ооочень странно слышать слова, что «нагружать низкоуровневые части всегда достаточно». Никто же не говорит, что «интеграционные тесты не нужны»? Почему же тогда кто-то говорит, что «интеграционные тесты производительности не нужны»?