我想通过网络服务器进行压力测试。下面是我想要执行的操作。
我的网络服务器上有“u”个不同的 URL。因此我需要并行访问这些 URL,每个 URL 的访问率为每秒“n”次。
什么是最好的工具来做到这一点?
答案1
嘗試httperf
實用。
以下是其使用示例:
httperf --hog --server foo.bar --num-conn 100 --ra 10 --timeout 5 --uri /test
这将以每秒 10 个连接的固定速率向 foo.bar 请求 URI /test 100 次。如果要请求不同的 URI,请使用不同的 --uri 参数以并行模式运行多个 httperf 实例。
答案2
您的标题表明您有 jmeter,我也会这样做。创建一个测试计划,将所有 URL 放在一个随机组中,百分比与您的使用情况统计信息相匹配(如果有,否则只需坚持均匀分布)。然后设置一个用户每 n 秒访问一次页面(取决于每个页面上的文本量,用户将在那里停留 4 到 40 秒),并将其设置为增加到非常大的用户数量。jmeter 的唯一问题是,它有时会在压垮 Web 服务器之前压垮自己的主机。此外,您需要测试的机器和测试所用的机器位于同一 LAN 段上,以消除带宽影响结果的可能性。
答案3
Apache JMeter是一款免费的开源工具,它是最强大的性能测试应用程序之一,它具有 GUI,支持多种协议,具有记录和重放功能,开箱即用的断言和报告工具,可以使用自定义采样器和插件进行扩展,有很多现有的插件(请参阅列表http://jmeter-plugins.org/wiki/Start/拥有庞大的社区。
要以“每秒请求数”指定精确的负载,您可以使用恒定吞吐量定时器