Некоторые определения / предположения:
Производительность = как быстро приложение реагирует на ввод пользователя, например, время загрузки веб-страницы
Масштабируемость = сколько пиковых одновременных пользователей может обработать приложение.
Во-первых, исполнение. Тестирование производительности может быть довольно простым, например, измерение и запись времени загрузки страницы в среде разработки и использование таких методов, как профилирование приложений, для выявления и устранения узких мест.
Load. Для выполнения нагрузочного теста есть четыре ключевых фактора, вам нужно будет все это сделать, чтобы они были успешными.
1. Хорошие модели использования того, как пользователи будут использовать ваш сайт и / или приложение. Это может быть легко, если приложение уже используется, но это может быть чрезвычайно сложно, если вы запускаете что-то новое, например, приложение Facebook.
Если вы не можете получить цели в качестве требований, проведите некоторое исследование и сделайте некоторые обоснованные предположения, задокументируйте и разошлите их для обратной связи.
2. Инструменты. У вас должны быть скрипты и инструменты тестирования производительности, которые могут оправдать сценарии, определенные на шаге 1, с числом ожидаемых пользователей на шаге 1. (Это может быть довольно дорого)
3. Окружающая среда. Вам понадобится производственная среда, которая изолирована, чтобы ваши тесты могли давать воспроизводимые результаты. (Это также может быть очень дорого.)
4. Технические эксперты. После того, как приложение и среда начинают разрушаться, вам необходимо иметь возможность идентифицировать ошибки и переконфигурировать среду и / или перекодировать приложение после обнаружения ошибок.
Как правило, в большинстве проектов есть поле для «тестирования производительности», которое им необходимо отметить из-за какого-то прошлого сбоя, однако они никогда не планируют и не планируют делать это правильно. Обычно я рекомендую делать бюджет для проверки масштабируемости или экономить свои деньги и вообще не делать этого. Попытка сделать это наполовину дешево - пустая трата времени.
Однако любой хороший разработчик должен иметь возможность проводить тестирование производительности на своей локальной машине и получать некоторые хорошие преимущества.