В чем разница между тестированием производительности, нагрузочным тестированием и стресс-тестированием?
Тестирование производительности измеряет время отклика приложения с ожидаемым количеством пользователей. Целью этого является получение базовых показателей и указание того, как приложение ведет себя в нормальных условиях. Удовлетворяет ли он требуемому времени отклика?
Нагрузочное тестирование - это измерение времени отклика, когда приложение подвергается большему, чем обычно, количеству пользователей.
Время отклика увеличится, то есть приложение будет работать медленнее при большой нагрузке, но цель нагрузочного тестирования - увидеть, сможет ли приложение выдержать повышенную нагрузку на сервер или оно выйдет из строя и приведет к остановке серверов.
Нагрузочное тестирование обычно начинается с малых чисел и постепенно увеличивается в течение заданного периода времени, пока не достигнет желаемой нагрузки на систему, а затем постепенно снижается.
Стресс-тестирование или выдерживающее тестирование похоже на нагрузочное тестирование, но мы возобновляем нагрузку на сервер на длительный период, скажем, на 1 час.
Целью стресс-тестирования является обеспечение того, чтобы при постоянной нагрузке в течение длительного времени серверы не зависали, хотя и медленно реагировали.
Стресс-тестирование начинается так же, как и нагрузочное, например постепенно увеличивая нагрузку на серверы, но по достижении этой нагрузки мы возобновляем ту же нагрузку на сервере в течение заданного времени, а затем измеряем время отклика.
Если мы продолжаем увеличивать нагрузку на сервер, наступает момент, когда сервер не может больше обрабатывать запросы и вылетает, скорее всего, начинает выдавать код ответа HTTP error 500.
Как только это произойдет, мы получим указание на емкость приложения, то есть сколько пользователей может обработать приложение.