我 ruby 有很棒的https://github.com/vcr/vcr gem,但仅适用于 ruby HTTP 库。是否有可用于记录和播放网络流量的工具,但从系统级别,或者至少在 java 中?如果没有,你能给我证明如何创建这样的工具(仅适用于 linux)吗?
4 回答
您可以使用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 工作:
- 开始 SIPP 加载到服务器
- 开始 tshark 录制到文件
我使用命令行参数来保持 thsark 运行一段时间 - 但是您也可以使用信号来停止 tshark。
您可以设置 tshark 进行数据包捕获并拾取所有内容,或仅过滤某些层,例如仅 RTP 或仅 SIP 等。
如果您不想使用 Jenkins 来管理它,您可以通过 Ruby 或任何脚本语言以编程方式调用 tshark...只需使用 Ruby 打开并运行应用程序...例如:在 Ruby 脚本中运行命令行命令
对于 Java。尝试任何存根。您可以记录/回放项目中的任何调用