如何在Java中设计http压力测试器

时间:2014-03-13 10:42:15

标签: java multithreading http asynchronous threadpool

我想针对网址尽可能多地提出请求,并希望了解最佳方法。

要求触发GET请求和读取响应。

我开始只是创建一个同步执行get和blocks的runnable。然后我将带有循环的那些转储到一个固定的线程池执行器中。使用100个线程运行它将导致每秒200个请求。

我也研究了像http://hc.apache.org/httpcomponents-asyncclient-4.0.x/这样的异步库,但是运行这些库会导致很多期货永远不会返回。

像NIO或异步库这样的东西可以帮助提高吞吐量吗?或者我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:1)

Apache提供了一个名为JMeter的免费开源工具。它专为HTTP负载测试而设计,并提供

  • 通过嵌入式HTTP Proxy Server进行快速测试开发的记录和重放功能
  • Assertions - 确保响应时间不超过合理值,检查响应内容,返回代码,消息等。
  • Listeners - 构建有助于分析负载测试结果的表格和图形。
  • 已经有一些扩展基本功能的plugins
  • 支持使用许多受支持的语言(如JavaScript或Beanshell
  • )编写脚本

希望这可以帮助您进行测试,并节省您重新发明轮子的宝贵时间,从而生产出更好的产品。