【问题标题】:testing application server response [closed]测试应用程序服务器响应[关闭]
【发布时间】:2011-04-10 14:31:52
【问题描述】:

我的应用程序有两个完全独立的应用程序服务器。 例如,他们以各种模式相互交谈。 A 将文件放入文件夹 B 监听并读取文件,在新文件夹中创建响应文件 A 拿起“响应”文件。

与 JMS 相同: 发布某事 B 会倾听并回复

现在,我只想用应用程序 A 对此进行测试,以便在我的真实应用程序 A 创建文件或主题时触发某种模拟 B 的动态存根。

有什么框架可以支持这个吗?

我看到了 Mactor,但它看起来像一个死项目,还有其他建议吗?

【问题讨论】:

  • 你会模拟从A看到的文件系统吗?
  • 正确。我想要某种模拟器引擎来复制 B 完成的复杂工作。
  • 然后考虑在 A 中模拟文件系统访问。
  • 是的,但是由于在应用程序 A 中发送文件的流程和从应用程序 B 接收文件的流程断开连接,理想情况下,我想一起模拟 B,而不是专门模拟这部分流量或其他。所以它更多的是端到端测试而不是单元测试。
  • 为了便于管理,您应该重新考虑在真正的 A 和模拟的非 A 之间划分的位置。看来您想要在实时文件系统中使用模拟 B。我建议有一个模拟文件系统+B。

标签: java unit-testing open-source continuous-integration


【解决方案1】:

您应该能够基于 B 的真实代码为 B 创建一个模拟服务器。我将使用它来创建您的模拟实例以进行测试。

【讨论】:

  • 提出 B 是个问题。这并不总是可能的,这就是为什么我想要某种模拟 B 的动态存根。
  • 除了启动一个完整的 B 实例之外,您能否运行一个缩减版本,可能与 A 或另一个免费主机在同一主机上。
  • 没有。它归第二家公司所有,我对此没有控制权。
【解决方案2】:

为了解决这个要求,与我们无法控制的外部系统进行相对良好的集成测试。我们使用了 Jmeter。 Jmeter 能够监听 JMS 资源,等待请求并对其采取行动,我们使用一组存根来表示真实系统的逻辑。

【讨论】:

    【解决方案3】:

    我不确定您为什么需要一个框架。您需要能够从 JUnit(或其他)测试中驱动文件和 JMS,但这是一个简单的编码问题。

    然后您可以编写执行以下操作的测试:

    1. 在A的输入目录下创建文件
    2. 等待文件出现在 A 的输出目录中
    3. 验证文件内容

    对于更复杂的一系列交互,只需将序列扩展为更多的操作 - 等待 - 验证周期。

    也许您认为您需要一个可以对来自 A 的不同事件做出反应的框架,这样您就不需要显式地编写交互序列。我会说这是一个坏主意。测试应该是一个明确的序列,所以它在做什么是很清楚的。

    【讨论】:

      猜你喜欢
      • 2015-01-19
      • 1970-01-01
      • 2010-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-18
      • 1970-01-01
      相关资源
      最近更新 更多