【问题标题】:Recording network traffic for test driven development记录网络流量以进行测试驱动开发
【发布时间】:2013-02-19 09:45:29
【问题描述】:

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

【问题讨论】:

    标签: java ruby linux networking


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        1. 开始向服务器加载 SIPP
        2. 开始将 tshark 录制到文件中

        我使用命令行参数让 thsark 持续运行一段时间 - 但是您也可以使用信号来停止 tshark。

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

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

        【讨论】:

          【解决方案4】:

          对于 Java。试试anystub。您可以记录/回放项目中的任何调用

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-03-20
            • 2011-11-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-09-09
            相关资源
            最近更新 更多