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