/swoole-load-tester

Load-test client based on Swoole.

Primary LanguagePHP

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, который принимает только плоский массив.