Java 软件测试中网络流量的模拟/模拟器

Java 软件测试中网络流量的模拟/模拟器,java,testing,protocols,mocking,Java,Testing,Protocols,Mocking,要求: 我希望有一个软件能够: 以“学习模式”运行我的应用程序 记录任何网络流量 创建请求-响应组合的数据库(例如http) 在“脱机模式”下运行我的应用程序 捕获任何网络流量(例如http),并从请求-响应数据库返回响应 目的: 测试客户机-服务器软件(java),即使服务器未运行或尚未完全实现 解决方案: 我还没有在谷歌上找到这个。也许我找不到合适的关键词 我甚至会自己用java编程。很难实现“任何”协议,但仅http将是一个良好的开端。我必须侵入java.net类,但这是可能的 是否有

要求:

我希望有一个软件能够:

  • 以“学习模式”运行我的应用程序
  • 记录任何网络流量
  • 创建请求-响应组合的数据库(例如http)

  • 在“脱机模式”下运行我的应用程序

  • 捕获任何网络流量(例如http),并从请求-响应数据库返回响应
目的:

测试客户机-服务器软件(java),即使服务器未运行或尚未完全实现

解决方案:

我还没有在谷歌上找到这个。也许我找不到合适的关键词

我甚至会自己用java编程。很难实现“任何”协议,但仅http将是一个良好的开端。我必须侵入java.net类,但这是可能的

是否有任何软件/项目已经做到了这一点?

替代方案不足:

  • 有一种类似的Web服务软件

不确定这是否是您要找的,但我使用WireShark。这是一个网络连接嗅探器,它可以拾取所有数据包并以原始格式显示它们。您可以按目的地、来源、协议等对它们进行排序。我不知道你是否能自动完成它,但是它确实能让你对网络流量有很好的诊断。

< P>我现在正在创建一个NS-3(C++网络仿真器)的java网络模拟器接口,它可以与实时事件一起工作。(尽管我目前正在修复一些bug,并使用TAP代码作为指导正确地实现实时调度)。它允许您使用类似于Java网络代码的接口将单个应用程序创建为类。虽然它基本上是一个离散的模拟器,但我在它上面有一个Berkley socket兼容层,它会一直安排事件,直到获得结果为止(或者您可以以离散的方式编写代码)。如果您想要或希望就此进行合作,请与我联系:)

您看过吗?它是一个负载测试工具,允许您编写脚本,在运行时输入所使用的数据。它可能无法满足您的所有需求,但它是您唯一想到的。

Fiddler可以满足您的需求。
它分析网络流量并具有自动应答器,可在您的请求离开网络适配器之前发送响应。
问题是,它只能根据您的请求将要发送到的url从响应中进行选择。

例如,它不能解析soap请求并相应地进行操作。

WireShark很好。但我没有看到“伪造”回答的选项。但是用它来创建请求-响应会话的模式是个好主意。我没有完全理解NS-3的可能性。它允许将请求与响应匹配吗?它几乎允许您需要做的任何事情。我正在创建一个MMORPG框架,其中包含Java中的一些独特概念和网络节点上所需的应用程序实现,这些应用程序将在有限的带宽需求、数据包丢失、延迟等情况下相互通信。对于您的需求来说,这可能有点复杂。