Apache storm Apache Storm 1.1.0

Apache storm Apache Storm 1.1.0,apache-storm,Apache Storm,我有一个使用ApacheStorm创建的拓扑。我已经创建了不同的螺栓和喷口,以执行各种活动。但是,我计划创建一个自动化测试套件,用于测试拓扑的功能 如果你做过类似的事情,能给我一些帮助吗?或者给我推荐一种工具/语言来帮助我实现它?目前,我的拓扑结构是Java。最快的测试将是单元测试。如果您可以以与Storm的API分离的方式编写大部分业务逻辑,那么您可以将测试作为常规JUnit测试来编写,可以使用Mockito或存根协作者的类似工具。基本上是您的标准Java单元测试 对于需要检查是否正确使用St

我有一个使用ApacheStorm创建的拓扑。我已经创建了不同的螺栓和喷口,以执行各种活动。但是,我计划创建一个自动化测试套件,用于测试拓扑的功能


如果你做过类似的事情,能给我一些帮助吗?或者给我推荐一种工具/语言来帮助我实现它?目前,我的拓扑结构是Java。

最快的测试将是单元测试。如果您可以以与Storm的API分离的方式编写大部分业务逻辑,那么您可以将测试作为常规JUnit测试来编写,可以使用Mockito或存根协作者的类似工具。基本上是您的标准Java单元测试

对于需要检查是否正确使用Storm或需要对拓扑进行完整的端到端测试的集成测试,可以查看
org.apache.Storm.testing
类,该类帮助您启动
LocalCluster
。这里有一些例子。基本思想是在与测试相同的JVM中启动Storm,然后将拓扑部署到其中

从2.0.0开始,有一个
LocalCluster
builder类,使得从Java实例化
LocalCluster
更加容易

只是想了解一下
LocalCluster
提供了什么:

  • 可以在与测试相同的过程中运行拓扑
  • 您可以启用元组跟踪,这会使集群跟踪所有组件发出的所有元组。例如,这允许您断言某个元组是从某个组件发出的
  • 让您用短棒替换喷口。这可以让您轻松地将特定元组注入拓扑,例如使用
    FixedTupleSpout
    federspout
  • 允许您断言哪些元组已确认/失败
  • 一些存根喷口是可完成的喷口,这意味着它们有一个API来指示Storm何时发出并确认/失败了所有元组。例如,这可以让您在测试中启动拓扑,并要求Storm运行它,直到处理完所有元组。这使得编写非脆弱的测试变得更容易,因为您不需要知道完成元组处理需要多长时间

有关如何使用
LocalCluster
的其他示例,您可以在上查看我们自己的一些集成测试。请忽略这些测试中拓扑的连接方式,您应该在自己的测试中使用
TopologyBuilder

Hi@Stig Rohdeøssing,谢谢。这真的很有帮助。