2
我正在尝试使用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))