本节书摘来华章计算机《Storm实时数据处理》一书中的第1章 ,第1.9节,(澳)Quinton Anderson 著 卢誉声 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1.9 实现集成测试
由于环境和使用者的差异,集成测试可能会代表多种不同的概念。在本书中,集成测试指的是根据事先定义的输入和输出点,通过端到端的方法测试本地集群Topology的方法。这样就能确保在部署到实际的集群环境之前对Topology进行完整的功能性验证。
1.9.1 实战
Step01 在src/test/java目录下的storm.cookbook包中创建IntegrationTestTopology类。我们在这里添加一个“测试Bolt”类,以便于搭建本地Topology:
Step02 然后,定义一组成对数组作为所需的参数:
Step03 这样我们就可以根据这些参数编写测试逻辑了:
1.9.2 解析
该集成测试首先会创建本地集群,然后通过Redis将输入数据添加到集群中,这个过程与实际Web服务器的工作原理一致。然后它会把预先定义好的“测试Bolt”连接到Topology结构的末尾,这样我们就能接收所有输出的Tuple并与期望值比较。
一旦TestBolt的值提交到了集群,在测试过程中就再也不能访问它了。所以只能通过数据持久化手段访问这些输出数据。TestBolt会把收到的Tuple数据持久化存储在Redis上,这样测试用例就可以读取并验证这些值了。TestBolt的代码逻辑如下所示:
然后读取这些值,并与我们所期望的值进行比较: