【问题标题】:How to send concurrent 10,000 post request using python?如何使用 python 发送并发 10,000 个 post 请求?
【发布时间】:2012-11-10 21:00:33
【问题描述】:

我开发了 REST 服务器。我托管了我的虚拟机 nginx 服务器。现在我想通过每秒发送 10,000 个并发请求来进行基准测试。那么有什么解决方案吗?

【问题讨论】:

    标签: python testing load-testing performance-testing


    【解决方案1】:

    locust 将完成这项工作。由于使用了用于生成负载的线程,JMeter 最终将无法承受巨大的负载。

    Locust 使用 gevent - 没有线程,限制更少。

    使用 locust ,如果一台机器的硬件不够用,甚至可以从 cluster 生成负载。

    【讨论】:

      【解决方案2】:

      尝试使用gevent

      使用gevent.monkey.patch_all 对所有内容进行猴子补丁,编写使用 urllib2.urlopen 进行查询的函数并将其生成为 greenlet 10000 次。

      但是我怀疑您是否可以使用 Python 每秒执行 10000 个请求(但我认为您应该尝试一下)。

      如果工具无关紧要,您只需要执行没有任何逻辑的简单 POST 请求,请尝试使用Apache Benchmark 而不是 Python。

      【讨论】:

        【解决方案3】:

        您可以通过编程方式创建线程并通过每个线程获取 url,但不确定是否可以创建 10,000 个请求。

        【讨论】:

          【解决方案4】:

          每秒 10,000 次?你需要很多机器才能做到这一点。

          编写一个可以串行 POST 请求的客户端,然后在多台机器上复制它。

          【讨论】:

          • 是否存在像 Apache 基准标记工具这样发送太多并发请求的工具?但我不想使用它,因为我想捕获 REST 客户端的响应。
          • 查看 JMeter。它可以运行您的测试,但您仍需要多个实例才能达到该负载。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-17
          • 2014-09-18
          • 1970-01-01
          • 2012-07-04
          • 2011-08-04
          • 2011-07-15
          相关资源
          最近更新 更多