记录测试驱动开发的网络流量

时间:2013-02-19 09:45:29

标签: java ruby linux networking

我知道有很棒的https://github.com/vcr/vcr gem,但只适用于ruby HTTP库。是否有可用于记录和播放网络流量的工具,但是从系统级别,或者至少在java中?如果没有,你能给我一个概念证明如何创建这样的工具(仅适用于linux)?

4 个答案:

答案 0 :(得分:2)

您可以使用TCPRelay播放以libpcap格式捕获的网络数据包。 如果您使用的是sip等协议,则可以使用Sipp,其他选项是使用mts-project

答案 1 :(得分:1)

结帐betamax。它是JVM的VCR端口。

答案 2 :(得分:0)

我使用wireshark ...它有一个名为tshark的命令行版本。你可以通过yum install wireshark-gnome在centos上安装它(wireshark将安装gui,但wireshark-gnome将它广告到你的/ bin并给你tshark。)

我使用Jenkins CI运行我的所有测试...例如,我使用VOIP / SIP测试很多...所以我有一个jenkins工作,当运行时:

  1. 启动SIPP加载到服务器
  2. 启动tshark录制到文件
  3. 我使用命令行参数来保持thsark运行一段时间 - 但是你也可以使用信号来停止tshark。

    您可以设置tshark进行数据包捕获并拾取所有内容,或仅过滤某些层,例如仅限RTP或仅限SIP等。

    如果您不想使用Jenkins来管理它,您可以通过Ruby或任何脚本语言以编程方式调用tshark ...只需使用Ruby打开并运行应用程序......如:Running command line commands within Ruby script

答案 3 :(得分:0)

for Java。试试anystub。您可以在项目中记录/回放任何调用