jmeter - 用于负载测试的重播日志 - 是否有任何工具可以模拟请求之间的实际用户时间?

标签 jmeter load-testing performance-testing apachebench

我需要使用模拟用户负载对站点进行负载测试。为此,我打算记录普通用户给定的 10 分钟使用情况的 Web 服务器日志,并使用它在多个并发线程上重放以模拟实际负载。

以下是我看过并拒绝的工具:

Apache 基准测试...可以对其进行编程,以通过哑请求访问服务器...但无法模拟用户负载。

HTTPerf - 可以将用户日志作为输入来模拟普通用户,但仅使用日志中的请求 URL...而不是请求时间。

Tsung - 与 HTTPerf 相同的问题...我可以记录用户 session ...但我仍然必须对用户“思考”时间进行编程...

JMeter 可以将用户 session 日志作为输入。不知道它是否可以模拟用户 session ,包括“思考”时间。

总之...有很多工具可以为我提供“日志重播”,但它们似乎都只是使用日志来收集请求 URL 来模拟用户 session 。他们实际上都没有使用时间戳来模拟真实用户和他们的“思考”时间。

  1. JMeter 似乎是我唯一没有尝试过的工具。 JMeter能解决这个问题吗?
  2. 通过在我的服务器日志上使用 sed/awk 并创建一个 ruby​​ 脚本来解析请求 URL 和“思考”时间,然后启动并发线程,这个问题是否更容易解决?

也欢迎任何其他建议。

最佳答案

有一个类似的问题 - 需要一个工具来重播生产服务器的日志,保持所有间隙不变。另外,想要操作一些 http header 。

作为系统管理员,首先使用 ab 在 bash 上编写脚本。速度不是那么快吗?

如果 Jmeter 易于使用,那就太棒了。

因此,最终编写了自己的工具通过重放日志来进行负载测试。 它是用 ruby 编写的。考虑到任何重放日志的工具大部分时间都花在网络 io 等待上,而不是在 cpu 上,所以 ruby​​ GIL 应该不成问题。 它是多线程的,按原样重播日志,尊重日志条目之间的间隙(如果您有一些:)

如果您正在运行 varnish,您还可以使用 varnishncsa 实时重播。 可以上github获取:https://github.com/maxchk/grad

希望这会有所帮助。

关于jmeter - 用于负载测试的重播日志 - 是否有任何工具可以模拟请求之间的实际用户时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10379316/

相关文章:

http - 在 Jmeter 中同时运行的最大线程数是多少?

unit-testing - 减少测试带宽

c# - .NET 库运行 web 性能测试

windows - JMeter 负载测试 - HttpHostConnectException : Connection refused: connect on windows server 2012

javascript - 有没有办法设置 JQuery 的 $.POST ajax 速记调用的内容类型?

java - 为什么在通过 jmeter 运行脚本后出现套接字关闭错误?

Hadoop 基准测试/性能测试

javascript - 为什么 Firefox 执行 Javascript 的速度比其他浏览器快得多

java - JMeter 无法读取自定义 search_paths 目录

load - 分布式非 GUI 模式下的 Jmeter 2.13 关机问题