将复制的TCP流量记录为负载测试

时间:2013-01-31 05:43:09

标签: load load-testing

我想知道是否有办法以这样的方式记录网络流量,我可以用它来重复“重放”相同的负载,以便在已知的实时负载下进行优化测试。

5 个答案:

答案 0 :(得分:1)

也许tcpcopy是您正在寻找的工具。

答案 1 :(得分:0)

尝试使用WireShark这是一款功能强大的网络诊断工具。但是这个工具没有内置功能来重放流量。

IHMO根据你的技术简单地重建所有请求是没有意义的,你可以摧毁一切。所以要小心修改数据。它可能会产生无意义的回应并抛出错误。

答案 2 :(得分:0)

有很多方法可以做到这一点 - 但这种方法实际上只适用于静态内容。由于提供静态内容的系统的性能通常是众所周知的并且可以很好地扩展,因此没有理由以这种方式进行负载测试。 IIRC,多年前有一种负载测试产品作为硬件出售。不过,我多年来没有碰过它们。

只能以这种方式测试静态网站的原因是,在更典型的交互式网站中,单个会话无法完全按照记录的方式进行重播。每个用户每次迭代都会改变许多HTTP消息。例如:Cookie,内容过期和最后修改的标头以及URL查询参数中的其他值,表单字段和AJAX请求,这些是应用程序在许多并发用户之间管理会话状态所必需的。

顺便说一句,配置所有这些字段以发送正确的值是使用HTTP捕获和重放的负载测试工具(几乎所有这些)的最大挑战。为单个会话执行此操作可能很困难。这样做是为了大量捕获来自许多用户的网络流量,这提高了标准。

答案 3 :(得分:0)

Jmeter和Grinder都有一个录音代理,允许播放可以播放的HTTP录音。虽然您可能需要更改请求以解析先前请求中的任何所需动态数据。那说记录/回放是HTTP流量构建的一个很好的起点。此外,根据您的问题,Grinder有一个TCP录制代理(具有HTTP选项),因此您可以真正获得详细的流量。 - http://grinder.sourceforge.net/g3/tcpproxy.html

答案 4 :(得分:0)

将此作为另一种选择,因为它尚未列在此处: https://github.com/buger/gor

Gor旨在专门针对您要求的HTTP以及" pro"版本将处理HTTPS。 Gor内置于Go,具有许多高级功能:https://gortool.com/

它是开源的,有一个" pro"版本提供一些附加功能。