《Storm实时数据处理》一2.7 为日志流集群创建集成测试
本节书摘来华章计算机《Storm实时数据处理》一书中的第2章 ,第2.7节,(澳)Quinton Anderson 著 卢誉声 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。
2.7 为日志流集群创建集成测试
在交付过程中,集成测试扮演着非常重要的角色。集成测试的类型有很多。通常来说,单元集成测试和Topology集成测试不仅是持续集成构建周期的组成部分,还是对部署集群集成测试的必要功能性风格的补充。我们在这里展示的集成测试方法本质上和第1章中的集成测试方法没什么区别,但这里却复杂很多,所以有必要多作些解释。
2.7.1 实战
我们先来创建单元测试。
Step01 使用Eclipse,在项目的单元测试源代码目录中的storm.cookbook.log包里创建一个名为IntegrationTestTopology的JUnit 4单元测试用例。添加一个setup方法,该方法会在初始化类之前被调用:
Step02 接下来创建setup方法中所有被调用的初始化方法,我们先来初始化嵌入式版本的Cassandra:
Step03 然后初始化本地嵌入式Elastic Search实例:
Step04 最后,初始化需要测试的Topology:
Step05 这样我们就准备好了所有测试Topology所需的工具。另外,我们还需要在测试结束时销毁这些对象和结构体,在测试套件中增加一个AfterClass方法:
Step06 然后实现好测试用例就可以大功告成了:
2.7.2 解析
该测试用例通过创建嵌入式Topology集群实例来实现集成测试功能,其中两个实例分别叫做Cassandra和Elastic Search。然后我们所做的工作就与之前的集成测试一样,将测试数据添加到输入通道,通过Topology来处理这些日志记录,并验证搜索引擎中的记录,以及计数器自增状态正确与否。
该测试相比普通的单元测来说需要花费更多时间,因此不应该将它们包含到你的标准Maven构建当中。但这个测试有必要作为你在本地开发工作过程当中的重要一环,并在持续集成服务器上进一步进行验证。