解决方案:
<!--[if !supportLists]-->1. <!--[endif]-->自动的对hsf服务注入异常.
<!--[if !supportLists]-->2. <!--[endif]-->执行已有的接口测试集,通过正常测试脚本在mock hsf服务的环境下运行,来研究系统对异常的处理能力。
<!--[if !supportLists]-->3. <!--[endif]-->对错误进行分析,找出容错方面的问题.
方案结构图如下:
<!--[endif]-->
实现细节:
方案中测试集的调度,结果报表输出等内容非本文的重点,不在这里详述了,重点来描述一下如何实现HSF mock对象的自动切入.
<!--[if !supportLists]-->1. <!--[endif]-->改写HSF的类HSFSpringConsumerBean,定义HSFProxyFactory来实现HSFSpringConsumerBean的功能。示例代码如下:
<!--[endif]-->
<!--[if !supportLists]-->2. <!--[endif]-->在测试脚本的bean配置中增加BeanFactoryPostProcessor接口的实现类HsfMockProcess,用来修改ApplicationContext,把容器中的HSFSpringConsumerBean配置替换成HSFProxyFactory.示例代码如下:
<!--[endif]-->
<!--[if !supportLists]-->3. <!--[endif]-->接下去只要运行mvn命令,选择你希望mock的hsf服务,就可以在错误注入的情况下运行测试集了。mvn test –DmockHsfName=****
总结:
利用已有的测试脚本,再通过自动注入想要的对象,我们可以以最小成本达到“故障演练”的目的.但是考虑到依赖的服务量n比较大,脚本量m也比较大,实际在运行过程中需要考虑不同的调度策略,以及m*n集合如何展示,如何更有效&更清晰得报表显示等问题,在本文中就不一一阐述了,对这块内容感兴趣的同学可以联系我,后续我们一起来完善…
相关文章: