[发明专利]基于Redis数据库的微服务自动化测试方法有效
申请号: | 201910433753.4 | 申请日: | 2019-05-23 |
公开(公告)号: | CN110147326B | 公开(公告)日: | 2023-05-26 |
发明(设计)人: | 李家鹏 | 申请(专利权)人: | 四川新网银行股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 成都智言知识产权代理有限公司 51282 | 代理人: | 濮云杉 |
地址: | 610094 四川省成都市成都*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 redis 数据库 微服 自动化 测试 方法 | ||
本发明涉及基于Redis数据库的微服务自动化测试方法,包括:A.对需要被远程服务调用的AOP方法设置Mock注解,在所述的Mock注解类中包括有用于获取Redis数据库中数据的参数key,以及该AOP方法对应的远程服务名,所述的远程服务名用于标记该AOP方法是否允许被Mock测试;B.设置与类签名相关联的Remote注解类,用于标记在该类中包含有远程调用的方法;C.设置用于拦截所有远程调用AOP方法的拦截类,根据被调用的AOP方法是否允许被Mock测试的判断,返回相应不同的结果。本发明能够使微服务可以进行动态的Mock测试,大幅度提高了测试的灵活性并显著降低了开发测试程序的成本和难度。
技术领域
本发明涉及应用程序组件的测试方法,具体的讲是基于Redis数据库的微服务自动化测试方法。
背景技术
在互联网分布式技术领域中,微服务的架构模式已经逐步占据主流地位。在将应用模块拆分成微服务后,服务之间的依赖与协作网络变的错综复杂,如何提高存在外部依赖的微服务的可测性,这将直接影响到软件交付的周期与质量。
在现有的微服务测试技术中,常采用开发接口挡板程序的方式来解决外部的依赖问题。但是使用挡板程序本身存在很大的局限性。首先,挡板程序本身不够灵活,调用挡板程序返回的结果是静态结果,无法根据不同输入返回特定应答。第二,当被测微服务的接口发生变化时,挡板程序需要做针对性的修改升级,在开发初期,接口的改动频率是很高的。第三,挡板程序需要单独部署,需要占用硬件资源。因此需要提出提出一种新的测试方法来解决目前存在的上述问题。
发明内容
本发明提供了一种基于Redis数据库的微服务自动化测试方法,以轻量化的结构使微服务可以进行动态的Mock测试,提高测试的灵活性并降低开发测试程序的成本和难度。
本发明基于Redis数据库的微服务自动化测试方法,包括:
A.对需要被远程服务调用的AOP方法(面向切面编程,OOP的延伸)设置Mock注解,在所述的Mock注解类中包括有用于获取Redis数据库中数据的参数key,以及该AOP方法对应的远程服务名,所述的远程服务名用于标记该AOP方法是否允许被Mock测试;
B.设置与类签名相关联的Remote注解类,用于标记在该类中包含有远程调用的方法;
C.设置用于拦截所有远程调用AOP方法的拦截类,根据被调用的AOP方法是否允许被Mock测试的判断,返回相应不同的结果。
Redis数据库是一种支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。Mock测试是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法,如:股票行情,天气预报等。
本发明的方法采用Java注解方式得以实现,对代码的侵入性低,实现简单。采用AOP技术实现的测试接口/类,可以像插件一样随时添加或删除,且不影响正常业务逻辑的执行。并且Mock测试的粒度可以设计的非常细,可以精确到服务方法的级别,场景使用更加灵活。
具体的,步骤C中将远程调用AOP方法的请求拦截后所述的判断包括:
C1.AOP方法允许被Mock测试的情况:当前所调用的AOP方法所在的类,有步骤B所述的Remote注解,并且该方法有Mock注解时,根据Mock注解中的key值以及调用方法的请求参数,动态拼接成一个key,根据此key在Redis数据库中获取结果,并将结果序列化成业务逻辑所需的Mock对象返回。Redis数据库的Key值设计采用动态拼接方式,使用固定前缀+真实请求参数进行生成,由此可以Mock测试所有场景的结果;
C2.AOP方法不允许被Mock测试的情况:当前所调用的AOP方法不含Mock注解,或该AOP方法对应的类名不在允许被Mock测试的配置列表中时,直接执行远程调用逻辑,并将得到的真实要使用的内部对象返回。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川新网银行股份有限公司,未经四川新网银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910433753.4/2.html,转载请声明来源钻瓜专利网。