У нас есть набор микросервисов, которые я хотел бы загрузить для тестирования в соответствии с тем, как к ним обращаются.
Остановившись на Locust в качестве инструмента, я обнаружил, что в основе соединения TCP есть пул соединений, потому что я продолжаю видеть сообщения, подобные этим:
ПРЕДУПРЕЖДЕНИЕ/requests.packages.urllib3.connectionpool: Пул соединений заполнен, соединение сбрасывается:
Насколько я понимаю, это сообщение говорит мне, что оно отбрасывает соединение из пула, которым оно управляет. Я предполагаю, что он все же создает новое соединение, и добавляет его на место того, которое он отбросил.
- Это то, что он делает?
- Это делает это без сбоя соединения?
Я не думаю, что наши микросервисы держат какие-либо сессии открытыми. Соединения устанавливаются с дальнего конца к нашим службам, которые обеспечивают результат, а затем соединение закрывается. Таким образом, тест обрабатывает соединения способом, отличным от использования служб. Есть ли способ заставить библиотеку запросов не использовать пул и выполнять работу по настройке и разрыву всех подключений, сделанных через него, каждый раз?
- Есть ли какая-то причина, по которой мы не хотели бы тестировать таким образом?
- Если предпочтительнее тестировать с пулом соединений, как мне предвидеть разницу в нагрузке, если это не делается в производственной среде?