swoole-load-tester
Load-test client based on Swoole.
Как использовать
git clone https://github.com/PatchRanger/swoole-load-tester.git
cd swoole-load-tester/docker
docker-compose build && docker-compose up
Это запустит Swoole-сервер, готовый к приёму запроса. Далее просто открыть http://localhost/?search=foo - и получить результат.
Описание решения и результата
Оно работает - но неправильно))
Во-первых, ответ HTML, а лучше бы JSON, раз уж это микросервис.
Во-вторых, на данный момент оно укладывается в заданный лимит в 30 секунд и не падает по памяти - и даже выдаёт массив с результатами. Но результат для всех одинаковый, это неправильно.
Чтобы починить, нужно заменить \MultipleIterator
на GuzzleHttp\Pool
, что позволит итерироваться по хостам порознь.
@todo
- Заменить
\MultipleIterator
наGuzzleHttp\Pool
, что позволит починить неправильное поведение с динаковыми результатми для всех хостов. - JSON-ответ, а не html в виде JSON.
- Лучше обрабатывать ошибки (чтоб выводилось что-то внятное).
- Вынести src в корень проекта.
- Создать
inspectAllRecursive
, чтобы избежать хака с перезаполнением массива под другими ключами, чтобы передать вUtils::inspectAll
, который принимает только плоский массив.