Я пытаюсь создать имитатор веб-трафика, используя aiohttp
. Следующий пример кода делает асинхронно 10k запросов. Я хочу знать, сколько из них происходит одновременно, поэтому я могу сказать, что это моделирует пользователей 10k, запрашивающих веб-сайт одновременно.Как определить количество запросов в секунду с помощью aiohttp?
Как определить количество одновременных сетевых запросов или как определить, сколько запросов в секунду производится с помощью aiohttp? Есть ли способ отладить/профилировать количество одновременных запросов в реальном времени?
Есть ли лучший способ моделирования имитатора веб-трафика с использованием любого другого языка программирования?
import asyncio
import aiohttp
async def fetch(session, url):
with aiohttp.Timeout(10, loop=session.loop):
async with session.get(url) as response:
return await response.text()
async def run(r):
url = "http://localhost:3000/"
tasks = []
# Create client session that will ensure we dont open new connection
# per each request.
async with aiohttp.ClientSession() as session:
for i in range(r):
html = await fetch(session, url)
print(html)
# make 10k requests per second ?? (not confident this is true)
number = 10000
loop = asyncio.get_event_loop()
loop.run_until_complete(run(number))