我有一个使用Apache Storm创建的拓扑。我创建了不同的螺栓和喷口以执行各种活动。但是,我计划创建一个自动测试套件来测试拓扑的功能。
如果您做了类似的事情或向我建议可以帮助我实现目标的工具/语言,是否可以帮助我?目前,我的拓扑是在Java中。
答案 0 :(得分:0)
最快的测试将是单元测试。如果您可以通过与Storm的API分离的方式来编写大多数业务逻辑,则可以将测试编写为常规JUnit测试,也许可以使用Mockito或类似的工具来对协作者进行存根。基本上就是您的标准Java单元测试。
对于集成测试,需要检查您是否正确使用了Storm,或者需要对拓扑进行完整的端到端测试,可以查看testing_image
类,它可以帮助您开始org.apache.storm.Testing
。 https://github.com/xumingming/storm-lib/blob/master/src/jvm/storm/TestingApiDemo.java中有一些示例。基本思想是在与测试相同的JVM中启动Storm,然后将拓扑部署到其中。
从2.0.0版开始,有一个LocalCluster
构建器类,使从Java实例化LocalCluster
变得更加容易。
只想了解LocalCluster
提供的内容:
LocalCluster
或FixedTupleSpout
。有关如何使用FeederSpout
的其他示例,您可以在https://github.com/apache/storm/blob/8f49e06998abb4dfc50f51d78b6784ebd04844fb/storm-core/test/jvm/org/apache/storm/integration/TopologyIntegrationTest.java看一下我们自己的一些集成测试。请忽略在这些测试中连接拓扑的方式,您应该只在自己的测试中使用LocalCluster
。