Проблема прямого перехода к бизнес-логике заключается в том, что вы никогда не можете быть уверены, что у вас нет проблемы на уровне представления, который создает дополнительную нагрузку на ваш сервер. А тестирование бизнес-логики само по себе может означать отсутствие возможных проблем с производительностью (например, если во многих сеансах HTTP много объектов, ваш сервер может проводить большую часть своего времени в сборщике мусора, поскольку куча слишком мала ), поэтому я бы порекомендовал создать сложный план тестирования, охватывающий все вызовы на сервер.
Самый простой способ добиться этого - использовать HTTP-прокси JMeter, запустить браузер и позволить HTTP-прокси записать план тестирования для вас.
См. Базовый прокси JMeter шаг за шагом о том, как начать работу с прокси.
Это запишет все вызовы, сделанные из браузера на сервер (вас не интересует сам javascript, так как это происходит в браузере, поэтому не повлияет на загрузку сервера, хотя вызовы AJAX будут).
План тестирования, созданный прокси-сервером HTTP, жестко закодирует все значения, поэтому вам, вероятно, придется пройти через него, чтобы определить, какие значения различаются при каждом вызове (например, если у вас есть опция создания, которая возвращает новый идентификатор, последующие запросы должны использовать идентификатор, возвращаемый сервером.
Чтобы получить эти значения, вы можете добавить Извлечение регулярных выражений к вашим запросам и назначить имя переменной, которое затем можно будет повторно использовать в качестве параметра запроса в последующем запросе. Просматривать параметры запроса и определять, какие из них необходимо заменить значениями, которые необходимо проанализировать с предыдущих страниц, может быть немного утомительно, но это не так сложно.
Например, если ваша страница содержит идентификатор записи в возвращаемом HTML
<input type="hidden" name="recordId" value="abcqwer123" />
, который необходимо использовать в следующем запросе, вы можете использовать следующее регулярное выражение для его извлечения:
name="recordId"\s+value="([a-z0-9]+)"
Еще одна вещь, которую нужно иметь в виду, это убедиться, что вы используете широкий диапазон тестовых данных (например, если вы имитируете несколько пользовательских логинов, вам нужно убедиться, что не каждый тест выполняется с тем же userId, как кэширование может означать, что тяжелые операции, такие как поиск в БД, выполняются только при первом запуске. Чтобы упростить использование нескольких учетных записей, вы можете использовать CSV Data Set Config , чтобы загрузить список значений в переменную, которая затем меняется с каждой итерацией.
Мой последний совет - изучить запуск JMeter в Распределенном режиме . Здесь вы запускаете Jmeter-сервер на нескольких удаленных клиентах, которые затем выполняют один и тот же тест. Это гарантирует, что тестовые клиенты сами создают узкие места, не имея достаточного количества ядер ЦП или пропускной способности сети для создания большого количества одновременных запросов.