【发布时间】:2019-06-01 16:23:16
【问题描述】:
我有一个使用 Apache Storm 创建的拓扑。我已经创建了不同的螺栓和喷嘴来执行各种活动。不过,我正计划创建一个自动化测试套件来测试拓扑的功能。
如果您做过类似的事情或向我推荐一种可以帮助我实现它的工具/语言,可以帮助我吗?目前,我的拓扑是 Java。
【问题讨论】:
标签: apache-storm
我有一个使用 Apache Storm 创建的拓扑。我已经创建了不同的螺栓和喷嘴来执行各种活动。不过,我正计划创建一个自动化测试套件来测试拓扑的功能。
如果您做过类似的事情或向我推荐一种可以帮助我实现它的工具/语言,可以帮助我吗?目前,我的拓扑是 Java。
【问题讨论】:
标签: apache-storm
最快的测试将是单元测试。如果您可以以与 Storm 的 API 分离的方式编写大部分业务逻辑,则可以将测试编写为常规 JUnit 测试,可能使用 Mockito 或类似的存根协作者工具。基本上是您的标准 Java 单元测试。
对于需要检查是否正确使用 Storm 或需要对拓扑进行完整端到端测试的集成测试,您可以查看 org.apache.storm.Testing 类,它可以帮助您启动 @987654324 @。 https://github.com/xumingming/storm-lib/blob/master/src/jvm/storm/TestingApiDemo.java 有一些示例。基本思路是在与测试相同的 JVM 中启动 Storm,然后将拓扑部署到其中。
从 2.0.0 开始,有一个 LocalCluster 构建器类,使从 Java 实例化 LocalCluster 变得更容易。
只是想知道LocalCluster 提供什么:
FixedTupleSpout 或FeederSpout。有关如何使用LocalCluster 的其他示例,您可以在https://github.com/apache/storm/blob/8f49e06998abb4dfc50f51d78b6784ebd04844fb/storm-core/test/jvm/org/apache/storm/integration/TopologyIntegrationTest.java 上查看我们自己的一些集成测试。请忽略这些测试中拓扑的连接方式,您应该在自己的测试中使用TopologyBuilder。
【讨论】: