Распределение нагрузки в LoadRunner
Я хочу контролировать TPH / TPS с помощью HP LoadRunner. В JMeter мы можем сделать это с помощью таймера с постоянной пропускной способностью, или, если у кого-то есть альтернативные способы, поделитесь, пожалуйста
Например:
- Транзакция A-Login (100 TPH)
- Транзакция B-Search Product (1000 т / ч)
- Транзакция C-Добавить товар в корзину (200 т / ч)
- Транзакция D-Payment (200 TPH)
- Электронный выход из транзакции (100 т / ч)
1 ответ
Если все эти транзакции выполняются в разных сценариях, нет проблем, поскольку для каждого сценария можно установить разные параметры времени и времени выполнения.
Я предполагаю, что ваша проблема в том, что все эти транзакции выполняются в одном сценарии. В этом случае единственным решением является создание параметра в вашем скрипте, давайте назовем этот параметр iterator
и установите его тип в качестве номера итерации. Таким образом, этот параметр будет иметь значение 1 в первой итерации, значение 2 во второй и т. Д. И т. Д.
Теперь вы можете использовать этот параметр перед вызовом каждой транзакции.
Допустим, ваш максимальный TPH составляет 1000. Затем установите скорость выполнения скрипта на 1000 т / ч. Но если вы хотите, чтобы определенная транзакция выполнялась меньше, чем, скажем, только 100 т / ч, вам нужно запускать ее только на 10-й итерации (1000 / 100 = 10).
Для этого в вашем скрипте вы можете использовать iterator % 10
:
// Cast the iterator parameter to an int
var i;
i = atoi(lr_eval_string("{iterator}"));
// This will run 100 TPH
if ((i % 10) == 0)
{
lr_start_transaction("Login");
// Do login
...
lr_end_transaction("Login", LR_AUTO);
}
И еще один пример, чтобы запустить 200 т / ч, вы можете использовать iterator % 5
:
// This will run 200 TPH
if ((i % 5) == 0)
{
lr_start_transaction("Add Product");
// Do Add Product
...
lr_end_transaction("Add Product", LR_AUTO);
}