Все известные мне сценарии тестирования используют одну и ту же базовую структуру для теста, которая включает в себя генерацию ряда запросов к одному или нескольким запросчикам, предназначенным для агента обработки, подлежащего проверке. Курт ответ является отличным примером этого процесса. Как правило, вы будете запускать тесты, чтобы найти некоторые пороговые значения, а также запустить несколько альтернативных конфигураций (меньше узлов, другое оборудование и т. Д.) Для построения точных усредненных данных.
Запрашивающей стороной может быть машина, сетевая карта, специальное программное обеспечение или поток программного обеспечения, который генерирует запросы. Все, что он делает, это генерирует запрос, который может быть обработан каким-либо образом.
Агент обработки - это программное обеспечение, сетевая карта, машина, которая фактически обрабатывает запрос и возвращает результат.
Однако то, что вы делаете с результатами, определяет тип теста, который вы делаете, и они:
Тестирование нагрузки / производительности : Это наиболее распространенный тип использования. Результаты обрабатываются, чтобы увидеть, сколько обрабатывается на разных уровнях или в разных конфигурациях. Опять же, то, что Курт ищет выше, является примером, если это.
Проверка баланса : Обычная практика масштабирования - использовать агент балансировки нагрузки, который направляет запросы агенту процесса. Настройка такая же, как и для нагрузочного тестирования, но цель состоит в том, чтобы проверить распределение запросов. В некоторых сценариях необходимо убедиться, что достигается равномерный (или настолько близкий к приемлемому) баланс запросов между агентами обработки, а в других сценариях необходимо убедиться, что агент процесса, который обработал первый запрос для конкретного запросчика обрабатывает все последующие запросы (веб-фермы обычно так нужны).
Безопасность данных : С помощью этого теста результаты собираются и данные сравниваются. Здесь вы ищете проблемы с блокировкой (например, тупиковая ситуация SQL), которая препятствует записи или что изменения данных реплицируются на различные используемые вами узлы или репозитории в приемлемое время или меньше.
Граничное тестирование : Это похоже на нагрузочное тестирование, за исключением того, что цель заключается не в производительности обработки, а в том, насколько сильно она хранится, влияет на производительность. Например, если у вас есть база данных, сколько строк / таблиц / столбцов может быть до того, как производительность ввода-вывода упадет ниже допустимого уровня.
Я бы также рекомендовал Искусство планирования потенциала как отличную книгу по этому предмету.