希望有人能够帮助解决这个问题。
简短版本:我希望用Python构建我自己的网站压力测试器。
为什么呢?因为我觉得它:)我不是在寻找预先构建的解决方案[即funkload或JMeter]。作为编程练习,这似乎是一件有趣的事情。我也认为学习如何做我想做的事情在以后的其他情况下可能会有用。
我想要它做什么?随着时间的推移,我打算让它变得更复杂,但我的第一个目标很简单:在尽可能短的时间内尽可能多地提出请求。我每秒拍摄300-500个请求。
我尝试了很多不同的方法。最有希望的两个是:
有没有人有任何想法或建议?如果我能够以某种方式获得响应的大小而实际上没有被强制读取它,那将是完美的。我想知道的是,我实际上正在获得正确的字节数。数据是什么并不重要。
或者,如果这不是Python中的一个选项,那么说实话,我会尝试任何人都有的建议。我和Twister一起玩过,但没有达到比我已经看过线程更高的速度。
无论如何 - 任何帮助都会很棒。谢谢!
答案 0 :(得分:4)
我建议您尝试gevent。它可以非常简单地完成这项任务,因为你编写的代码看起来是同步的,并使用像urllib2这样的python stdlib。它将非常快,因为它具有较低的内存开销(仅支付您使用的费用)并且它使用快速轮询系统调用IO。 This code example非常接近你想要的。你需要为每个核心运行一个gevent worker。
答案 1 :(得分:0)
我建议你使用pycurl,libcurl的Python绑定。它有自己的非同步事件循环非常快。
如果您不能按原样使用它,还有一个简化的实现包装器,您可以调整它。
请参阅Pycopia项目的WWW.client模块(我维护)。