尽快发送HTTP请求

时间:2009-08-13 15:34:50

标签: networking curl

为了测试我的程序,我希望尽可能快地发送大约50个http请求。目前我正在使用bash脚本调用curl&发送每个请求,如

curl "http://my.host.com/test.php?param=1" &
curl "http://my.host.com/test.php?param=2" &
curl "http://my.host.com/test.php?param=100" &

但似乎不够快。我想因为每个curl调用将首先建立一个tcp连接,如果连接只建立一次,性能可以提高。还有其他工具可以有效地发送请求吗?

6 个答案:

答案 0 :(得分:6)

Apache附带了一个名为“ab”的程序用于基准测试。在网上,您可以使用许多压力测试应用程序。

答案 1 :(得分:3)

在PHP中(当然也在CURL中)有something really nice

在google.com上进行1000次常规GET大约需要16秒,大约每秒63次请求

答案 2 :(得分:3)

运行在同一台机器上的Apache JMeter可能非常快。

答案 3 :(得分:1)

不要使用bash。使用任何其他脚本语言(Perl,Python,无论如何),然后创建单个连接并尽快收听请求。对于奖励积分,启动多个线程,以便测试您的程序处理同时连接的能力!

答案 4 :(得分:1)

JMeterload test apache的好方法。

从他们的网站:

  

Apache JMeter是开源的   软件,100%纯Java桌面   应用程序旨在加载测试   功能行为和措施   性能。它原来是   设计用于测试Web应用程序   但后来扩展到其他测试   功能

     

我该怎么办?

     

Apache JMeter可用于测试   静态和动态的表现   资源(文件,Servlets,Perl   脚本,Java对象,数据库和   查询,FTP服务器等)。它可以   用来模拟一个重负荷   服务器,网络或对象来测试它   力量或整体分析   不同负载下的性能   类型。你可以用它做一个   性能或图形分析   测试您的服务器/脚本/对象   重负荷下的行为。

答案 5 :(得分:1)

尽管你背景所有下载的事实,这仍然没有执行的原因是操作系统仍然必须加载curl(从缓存但仍然),为它创建一个进程,解析参数等。

您需要能够并行发送N个请求而无需启动新进程的内容。