Я использую codesenberg / bombardier для сравнения моего сервера API и создал контроллер Benchmark
в laravel.
Поскольку конечная точка API, с которой я сравниваю, всегда требует обмена данными накаждый запрос.Поэтому я создаю методы, которые похожи на API, который я хотел протестировать, только с тем, что эти необходимые данные уже есть в этом методе, так что я мог протестировать их независимо, независимо от некоторых API.
// example - TodoController
// api/add-todo requires login and other todo info
// TodoBenchmarkController
// api/benchmark/add-todo already logged in and have all info needed to insert todo
Я ожидаю, что миллионы одновременно работающих пользователей будут использовать мое приложение.Операция запроса в большинстве случаев будет insert
или update
и менее при query
.
. Используя bombardier
, вот как я выполняю тест
bombardian -c 1000000 -n 1000000 http://my-stag-server/api/benchmark/endpoint -m "POST"
или
bombardian -n 10000 http://my-stag-server/api/benchmark/endpoint1 -m "POST" & bombardian -n 10000 http://my-stag-server/api/benchmark/endpoint2 -m "POST
Является ли подход, который я использую, наилучшим способом проверить, может ли мой сервер API обрабатывать миллион одновременных пользовательских запросов?