как имитировать нагрузку на сайта
как имитировать нагрузку на сайта
Как протестировать сайт под нагрузкой, конкретно на многочисленные запросы через поиск?
Re: как имитировать нагрузку на сайта
есть сервисы, есть проги, из последних использовал https://tech.yandex.ru/tank/ - устанавливается на линукс, крутая вещь
Re: как имитировать нагрузку на сайта
Как вариант можно перенести логику контроллеров, которую хотите протестировать, в сервисы (В этом случае во фронтентде и коноли можно вызывать один и тот же код)
И протестировать логику через консоль (при этом можно добавить профилирование и т.п. при необходимости)
В консольном контроллере пишем
И далее вызывать тестирование функционала :
Если нужно 2 потока, вызываем 2 раза команду
Данный метод хорош, что можно тестировать только нужный функционал (без учета http задержек и тп), и позволяет использовать свои метрики для тестирования.
Еще как вариант написать API и через него по похожему принципу можно тестировать.
Код: Выделить всё
/**
*/
public function actionTask(int $id)
{
$result = $this->service->execute($id);
return $this->render('get-hint', [
'result' => $result,
]);
}
В консольном контроллере пишем
Код: Выделить всё
/**
*/
public function actionTask(int $id, int $tests)
{
for($i = 0: $i < $tests, $i++){
$begin = Yii::getLogger()->getElapsedTime();
$result = $this->service->execute($id);
Console::stdout("\r" . round(Yii::getLogger()->getElapsedTime() - $begin, 3));
}
}
Код: Выделить всё
./yii task/task &
Код: Выделить всё
./yii task/task &
./yii task/task &
Еще как вариант написать API и через него по похожему принципу можно тестировать.