分布式系统自动化解决方案
上一篇 /
下一篇 2014-07-25 10:50:41
/ 个人分类:测试技术
目前大多数
互联网公司后台系统都是基于分布式实现,这种系统一条请求消息一般经过多个服务器处理之后才回返回给客户端,这里面的消息流程非常复杂繁琐,针对这样的系统,我们的自动化该怎么去实现呢?以下提供几套方案,每套方案都有各自的优缺点。
1.采用mock
server的形式来实现各个进程的
自动化测试,对于分布式系统中的任何一个进程都是有固定的输入和输出,那么测试人员就可以针对每个进程的输入和输出开发一个mock server进程,该进程提供给被测进程一个固定的输入(测试case),然后检查给被测进程输出是否和预期相同,这种测试方式对测试人员的开发能力和理解能相当较高,
工作量也非常的巨大,后期维护成本也比较高。优点是测试粒度比较精细,覆盖的范围较广,测试进程和被测进程分布在同一台服务器上,免去了测试代码夸机器检测的过程。
2.以被测系统为一个盒的形式来进行测试,前面有说被测试系统是一个分布式系统,那么这种方式就存在一个问题,测试程序给被测系统发送协议之后,被测系统是否在每个环节都处理正确,会不会出现在中间的某个进程处理失败,而又由于某种原因导致返回给客户端的消息正确呢?这就需要测试程序去到系统中的每一个进程检查一些测试点,而这些进程又是分布在不同的机器上的,因此我们需要也需要一种分布式系统来支撑这种测试。当然这种系统业内很早就有人开发出来了,笔者在这里推荐一个工具STAF,该工具只需要在被测系统的每台机器上部署一个守护进程即可像在本地执行命令一样来check远程命令。后续我还会详细介绍STAF在分布系统中测试的应用。
当然针对分布式系统的集成测试还有很多测试方案,也欢迎各位将自己用的比较好的方案分享给我。
收藏
举报
TAG: