【发布时间】:2013-02-19 09:45:29
【问题描述】:
我 ruby 有很棒的 https://github.com/vcr/vcr gem,但只适用于 ruby HTTP 库。是否有可用于记录和播放网络流量的工具,但从系统级别,或者至少在 java 中?如果没有,您能否给我一个概念证明如何创建这样的工具(仅适用于 linux)?
【问题讨论】:
标签: java ruby linux networking
我 ruby 有很棒的 https://github.com/vcr/vcr gem,但只适用于 ruby HTTP 库。是否有可用于记录和播放网络流量的工具,但从系统级别,或者至少在 java 中?如果没有,您能否给我一个概念证明如何创建这样的工具(仅适用于 linux)?
【问题讨论】:
标签: java ruby linux networking
您可以使用TCPRelay 播放以libpcap 格式捕获的网络数据包。 如果你使用像 sip 这样的协议,你可以使用Sipp,其他选项是使用mts-project。
【讨论】:
结帐betamax。它是 JVM 的 VCR 端口。
【讨论】:
我使用wireshark...,它有一个命令行版本,叫做tshark。您可以通过 yum install wireshark-gnome 在 centos 上安装它(wireshark 会安装 gui,但 wireshark-gnome 会将它广告到您的 /bin 并为您提供 tshark。)
我使用 Jenkins CI 运行我的所有测试...例如,我经常使用 VOIP/SIP 测试...所以我有一个运行时的 jenkins 工作:
我使用命令行参数让 thsark 持续运行一段时间 - 但是您也可以使用信号来停止 tshark。
您可以设置 tshark 进行数据包捕获并拾取所有内容,或仅过滤某些层,例如仅 RTP 或仅 SIP 等。
如果您不想使用 Jenkins 来管理它,您可以通过 Ruby 或任何脚本语言以编程方式调用 tshark...只需使用 Ruby 打开并运行应用程序...例如:Running command line commands within Ruby script
【讨论】:
对于 Java。试试anystub。您可以记录/回放项目中的任何调用
【讨论】: