如何对分布式系统进行测试
>> 问题摘要
目前分布式系统在产品上的应用比较多,相对而言分布式系统运行环境比较复杂。分布式的一些特点,例如,网络化、开放性、动态性、实时性,使得测试难度加大很多。当前,分布式系统测试的方法比较零散,其中有一些测试方法还有待提高。
>> 问题背景
有以下三个方面研究:异步测试工具、时序控制方法、数据正确性和完整性验证。异步测试工具,在分布式中异步通信较常见,对这块的测试希望更加方便,向自动化方式发展。分布式的数据库存储量是惊人的,对其中数据的正确性完整性的测试尤其重要,同时因为数据量很大,希望能够在处理速度上进行优化,尽可能在短时间内完成处理。
分布式测试环境的初始状态是确定的、已知的,但随着系统的运行,各种动态实体在环境中变化,同时对环境产生影响,使得环境也发生某些变化,这种动态变化带来了不确定性。分布式测试系统必须具有处理这种不确定性的能力。
>> 当前的研究和技术现状
使用系统级别测试,组建大规模的测试集群模拟线上环境,可以在模拟环境中进行压力负载、性能仿真和功能业务联调等方面的测试,以发现在小规模环境中无法发现的问题。
在环境异常场景,利用断链路、容错机制重连机制模拟丢包异常情况;使用模拟和录制回放等手段重现重包问题。利用异步测试框架模拟异步时序混乱情况。对于资源类异常、磁盘读写失败、磁盘满、内存分配失败、带宽