如何使用cURL执行多个同时请求?

Dan*_* T. 19 curl request

我想用cURL测试服务器上的洪水处理.现在我在Windows命令行上使用它:

curl www.example.com
Run Code Online (Sandbox Code Playgroud)

这将GET在页面一次.我现在想做同样的事情,除了一个请求,我想一次生成至少10个请求.我该怎么做?

小智 32

虽然curl是一种非常有用且灵活的工具,但并不适用于此类用途.还有其他工具可以让您对同一个URL发出多个并发请求.

ab是一种非常简单但有效的此类工具,适用于任何Web服务器(尽管专注于Apache服务器).

Grinder是一个更复杂的工具,可以让您指定许多不同的URL以用于负载测试.这使您可以混合对廉价和昂贵页面的请求,这可能更类似于您网站的标准负载.

  • 谢谢,这有帮助.最后,我创建了一个批处理脚本,它执行我需要的curl,然后另一个批处理脚本多次使用`start cmd/c curl.bat`执行该批处理脚本多次. (4认同)

Ser*_*ron 27

7.68.0curl开始可以并行获取多个url。此示例将从具有 3 个并行连接的文件中获取 url urls.txt

curl --parallel --parallel-immediate --parallel-max 3 --config urls.txt
Run Code Online (Sandbox Code Playgroud)

网址.txt:

url = "example1.com"
url = "example2.com"
url = "example3.com"
url = "example4.com"
url = "example5.com"
Run Code Online (Sandbox Code Playgroud)

  • 对于那些想要检查 POST 方法并发连接的人,以下示例有效:curl --parallel --parallel-immediate --parallel-max 8 -X POST -d "mama=mia" --config urls.txt (5认同)

jcr*_*ada 7

Curl 可能不会自己做,但 bash 可以。

curl -o 1.txt -X GET https://foo & curl -o 2.txt -X GET https://foo
Run Code Online (Sandbox Code Playgroud)

  • 这不会使请求并发,这相当于在循环中运行curl。 (3认同)
  • 是的,它们是并发的:“&”连接器将第一个命令置于“后台”并立即启动第二个命令。不过,它对于洪水测试来说并不能很好地扩展。 (2认同)