基于中间人报文劫持的异常场景测试方法与系统与流程

文档序号:33464098发布日期:2023-03-15 05:57阅读:55来源:国知局
基于中间人报文劫持的异常场景测试方法与系统与流程

1.本发明涉及微服务架构的软件系统测试领域,具体地,涉及基于中间人报文劫持的异常场景测试方法与系统。


背景技术:

2.随着互联网的高速发展,传统的单体应用已经无法很好地适应不断变化的业务需求,单体应用逐步向分布式微服务架构迁移。分布式微服务架构的变迁对系统测试带来了极大的挑战,应用系统的复杂性也从系统内部转移到系统之间。测试人员除了需要很好地理解系统的业务功能外,还需要关注微服务架构下的跨系统、跨服务间的异常调用以及对应异常场景的处理逻辑是否正确。
3.专利文献cn111782519a公开了一种测试方法、装置和电子设备,其优先从测试环境中调用微服务的测试版本;如果测试环境中不存在微服务的测试版本,则再从公共环境中调用微服务的公共版本,以避免公共环境和测试环境的隔离,避免将全量的微服务部署至测试环境中。
4.但是,基于复杂微服务架构的软件系统测试,专利文献cn111782519a想要模拟某个服务节点、网络节点的故障,以及各服务之间业务、数据异常等场景,则需要耗费大量的人力、物力,通过修改代码、修改部署文件或者配置挡板等方式来构造测试人员想要的异常场景,效率低下且难以覆盖全面。


技术实现要素:

5.针对现有技术中的缺陷,本发明的目的是提供一种基于中间人报文劫持的异常场景测试方法与系统。
6.根据本发明提供的一种基于中间人报文劫持的异常场景测试方法,包括:
7.代理转发步骤:将应用系统发生跨服务远程调用过程中的请求报文,透明转发至中间人报文劫持节点;
8.报文匹配过滤处理步骤:在中间人报文劫持节点中,对匹配命中过滤规则的请求报文,根据处理规则进行处理,模拟业务异常情况。
9.优选地,还包括:
10.异常处理逻辑验证步骤:验证被测系统在发生所述业务异常情况时,被测系统中应用系统的应用服务的处理逻辑是否符合业务预期结果,作为测试验证结果。
11.其中,所述被测系统是分布式微服务架构下的系统。
12.优选地,在所述报文匹配过滤处理步骤中未命中匹配所述过滤规则的请求报文不做任何处理,通过所述代理转发步骤向目标节点继续透明转发,正常场景并发执行异常场景的测试。
13.优选地,所述报文匹配过滤处理步骤,包括:
14.报文超时处理步骤:根据配置的超时时间,劫持相关请求报文到指定超时时间后,
向目标节点中的目标应用系统透明转发,模拟被测系统超时的异常场景;
15.报文丢弃处理步骤:将劫持的请求报文直接丢弃,不向目标节点透明转发,模拟目标节点中的目标应用系统未接收到请求报文的异常情况;
16.报文字段修改处理步骤:根据配置的字段替换信息或增删字段内容,对请求报文替换组装后,向目标节点中的目标应用系统转发,模拟业务层面报文异常的异常场景;
17.报文重复发送处理步骤:根据配置的重复发送次数,将请求报文连续多次向目标节点中的目标应用系统发送,模拟被测系统的重发异常场景。
18.优选地,在所述代理转发步骤中,针对应用系统间通过域名进行服务远程调用,通过配置dns域名解析或者本地域名解析的方式,将应用系统间的请求报文透明转发至中间人报文劫持节点,以使得中间人报文劫持节点对所有跨服务间的业务请求报文的实时捕获;采用的方式为:
19.方式a:通过在应用系统中配置本地hosts文件域名解析的方式,新增远程调用服务域名到中间人报文劫持节点ip的映射,将应用系统请求报文代理转发至中间人报文劫持节点;或者是
20.方式b:对使用公共配置文件进行服务间调用地址管理的情况,通过修改配置文件中的服务调用地址为中间人报文劫持节点地址;或者是,对配置中心服务进行服务间调用地址管理的情况,通过修改配置服务中的服务调用地址为中间人报文劫持节点地址。
21.根据本发明提供的一种基于中间人报文劫持的异常场景测试系统,包括:
22.代理转发模块:将应用系统发生跨服务远程调用过程中的请求报文,透明转发至中间人报文劫持节点;
23.报文匹配过滤处理模块:在中间人报文劫持节点中,对匹配命中过滤规则的请求报文,根据处理规则进行处理,模拟业务异常情况。
24.优选地,还包括:
25.异常处理逻辑验证模块:验证被测系统在发生所述业务异常情况时,被测系统中应用系统的应用服务的处理逻辑是否符合业务预期结果,作为测试验证结果。
26.其中,所述被测系统是分布式微服务架构下的系统。
27.优选地,在所述报文匹配过滤处理模块中未命中匹配所述过滤规则的请求报文不做任何处理,通过所述代理转发模块向目标节点继续透明转发,正常场景并发执行异常场景的测试。
28.优选地,所述报文匹配过滤处理模块,包括:
29.报文超时处理模块:根据配置的超时时间,劫持相关请求报文到指定超时时间后,向目标节点中的目标应用系统透明转发,模拟被测系统超时的异常场景;
30.报文丢弃处理模块:将劫持的请求报文直接丢弃,不向目标节点透明转发,模拟目标节点中的目标应用系统未接收到请求报文的异常情况;
31.报文字段修改处理模块:根据配置的字段替换信息或增删字段内容,对请求报文替换组装后,向目标节点中的目标应用系统转发,模拟业务层面报文异常的异常场景;
32.报文重复发送处理模块:根据配置的重复发送次数,将请求报文连续多次向目标节点中的目标应用系统发送,模拟被测系统的重发异常场景。
33.优选地,在所述代理转发模块中,针对应用系统间通过域名进行服务远程调用,通
过配置dns域名解析或者本地域名解析的方式,将应用系统间的请求报文透明转发至中间人报文劫持节点,以使得中间人报文劫持节点对所有跨服务间的业务请求报文的实时捕获;采用的方式为:
34.方式a:通过在应用系统中配置本地hosts文件域名解析的方式,新增远程调用服务域名到中间人报文劫持节点ip的映射,将应用系统请求报文代理转发至中间人报文劫持节点;或者是
35.方式b:对使用公共配置文件进行服务间调用地址管理的情况,通过修改配置文件中的服务调用地址为中间人报文劫持节点地址;或者是,对配置中心服务进行服务间调用地址管理的情况,通过修改配置服务中的服务调用地址为中间人报文劫持节点地址。
36.与现有技术相比,本发明具有如下的有益效果:
37.1、本发明在应用代码无侵入、应用服务无需特殊部署的前提下实现了各种复杂的异常场景的构造与测试。
38.2、本发明通过采用中间人报文劫持技术,通过域名映射的方式,将各服务节点之间的应用报文透明转发到中间人报文劫持节点中,通过规则配置的方式精准过滤匹配指定请求报文,高效灵活地对应用报文做透明转发、延时转发、丢弃以及报文内容替换等行为,通过多样化的配置方式实现了各服务节点之间网络、服务异常以及业务异常等场景的模拟构造。
39.3、本发明中间人报文劫持节点支持报文协议数据匹配以及报文业务数据字段级别的匹配来实现精确的测试隔离,确保针对特定报文构造的异常不会影响到其他报文的正常转发,从而实现正常场景与异常场景的并行测试,同时,也可以通过异常场景的配置是否开启,实现正常场景与异常场景的对比验证。
附图说明
40.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
41.图1为本发明的模块原理示意图。
42.图2为本发明的方法时序示意图。
具体实施方式
43.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
44.本发明属于一种基于中间人报文劫持的异常场景测试系统,用于在系统测试、业务验证过程中构造各类复杂的异常测试场景。在应用服务器发生跨服务远程调用过程中,通过域名映射的方式将原本转发给目标服务节点的报文代理转发到中间人报文劫持节点中,中间人报文劫持节点劫持到请求报文后,可以根据配置好的处理规则灵活地对应用报文做透明转发、延时转发、丢弃以及报文内容替换、重复发送等行为,在对应用服务代码无侵入的前提下实现了测试过程中对应用服务故障的模拟以及复杂异常场景的构造。
45.基本实施例
46.根据本发明提供的一种基于中间人报文劫持的异常场景测试系统,系统整体架构示意图如图1所示,包括:
47.代理转发模块:将应用系统发生跨服务远程调用过程中的请求报文,透明转发至中间人报文劫持节点;在所述代理转发模块中,针对应用系统间通过域名进行服务远程调用,通过配置dns域名解析或者本地域名解析的方式,将应用系统间的请求报文透明转发至中间人报文劫持节点,以使得中间人报文劫持节点对所有跨服务间的业务请求报文的实时捕获;采用的方式为:方式a:通过在应用系统中配置本地hosts文件域名解析的方式,新增远程调用服务域名到中间人报文劫持节点ip的映射,将应用系统请求报文代理转发至中间人报文劫持节点;或者是方式b:对使用公共配置文件进行服务间调用地址管理的情况,通过修改配置文件中的服务调用地址为中间人报文劫持节点地址;或者是,对配置中心服务进行服务间调用地址管理的情况,通过修改配置服务中的服务调用地址为中间人报文劫持节点地址。
48.报文匹配过滤处理模块:在中间人报文劫持节点中,对匹配命中过滤规则的请求报文,根据处理规则进行处理,模拟业务异常情况;在所述报文匹配过滤处理模块中未命中匹配所述过滤规则的请求报文不做任何处理,通过所述代理转发模块向目标节点继续透明转发,正常场景并发执行异常场景的测试。所述报文匹配过滤处理模块,包括:报文超时处理模块:根据配置的超时时间,劫持相关请求报文到指定超时时间后,向目标节点中的目标应用系统透明转发,模拟被测系统超时的异常场景;报文丢弃处理模块:将劫持的请求报文直接丢弃,不向目标节点透明转发,模拟目标节点中的目标应用系统未接收到请求报文的异常情况;报文字段修改处理模块:根据配置的字段替换信息或增删字段内容,对请求报文替换组装后,向目标节点中的目标应用系统转发,模拟业务层面报文异常的异常场景;报文重复发送处理模块:根据配置的重复发送次数,将请求报文连续多次向目标节点中的目标应用系统发送,模拟被测系统的重发异常场景。
49.异常处理逻辑验证模块:验证被测系统在发生所述业务异常情况时,被测系统中应用系统的应用服务的处理逻辑是否符合业务预期结果,作为测试验证结果。其中,所述被测系统是分布式微服务架构下的系统。
50.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
51.优选例与变化例
52.本发明还提供一种基于中间人报文劫持的异常场景测试方法,本领域技术人员可以通过执行所述基于中间人报文劫持的异常场景测试方法的步骤流程实现所述基于中间人报文劫持的异常场景测试系统,即可以将所述基于中间人报文劫持的异常场景测试方法理解为所述基于中间人报文劫持的异常场景测试系统的优选实施方式。具体地,所述基于
中间人报文劫持的异常场景测试方法,包括:
53.步骤s1:在应用服务器发生跨服务远程调用过程中,应用系统间通过域名进行服务远程调用;通过配置dns域名解析或者本地域名解析的方式,实现应用系统间的请求报文透明转发至中间人报文劫持节点,从而实现中间人报文劫持节点对所有跨服务间的业务请求报文的实时捕获。
54.所述步骤s1包括如下两种情况:
55.步骤s1.1a:通过在应用系统中配置本地hosts文件域名解析的方式,新增远程调用服务域名到中间人报文劫持节点ip的映射,实现应用系统请求报文代理转发至中间人报文劫持节点;或者是
56.步骤s1.1b:使用公共配置文件(property文件等)或者配置中心服务(阿波罗apollo配置等)进行服务间调用地址管理的,可以通过修改配置文件或配置服务中的服务调用地址为中间人报文劫持节点地址,实现应用系统请求报文代理转发至中间人报文劫持节点。
57.步骤s2:相关人员可以登录中间人报文劫持节点,通过配置请求报文的过滤规则和处理规则,实现请求报文的各种异常场景模拟。所述步骤s2包括:
58.步骤s2.1:中间人报文劫持节点支持多条件过滤规则配置,针对每个请求报文,可以根据请求报文的报文字段配置单个或者多个过滤条件,多个过滤条件通过and、or、not关键字进行与、或、非组合配置,可以精准过滤待处理的请求报文,同时不影响未命中过滤条件的接口进行正常业务处理。
59.步骤s2.2:针对被过滤筛选出来的请求报文,可以根据业务异常场景配置不同的处理规则,主要包括请求报文超时(delay)、请求报文丢弃(drop)、请求报文字段替换(replace)、报文字段添加(add)、报文字段删除(delete)、请求报文重复发送(repeat)等不同的处理方法,实现请求报文的异常场景实时模拟。
60.步骤s2.3:对于复杂业务场景的异常模拟,中间人报文劫持节点支持多个接口报文组合联动配置,并可以通过增加处理规则的逻辑,扩展除上面已支持的处理规则外的其他处理逻辑。
61.步骤s2.4:完成过滤规则、处理规则的配置后,通过中间人报文劫持节点加载相关配置,即刻生效,无需重启相关服务。
62.步骤s2.5:针对已配置规则,可以在中间人报文劫持节点通过开启、关闭按钮,将异常场景的配置设置为有效、无效,快速实现正常场景、异常场景对比测试。
63.步骤s3:完成步骤s1、步骤s2的部署配置后,用户通过前端或者接口报文工具发起测试,请求流量透明转发至中间人报文劫持节点,中间人报文劫持节点根据步骤s2中的过滤规则和处理规则,劫持命中规则的报文进行相应业务异常处理,未命中规则的报文向后继续透明转发,不做任何处理,保证正常场景可以并发执行测试验证。
64.步骤s4:步骤s3中需要进行异常处理的请求报文,根据配置的处理规则进行相关处理,同时支持异常场景处理逻辑的动态扩展;所述步骤s4包括如下几种测试设计场景:
65.步骤s4.1:针对报文超时处理规则,根据配置的超时时间,劫持相关报文到指定超时时间后,向后透明转发至目标应用服务系统,模拟被测系统超时后的处理逻辑是否正确。
66.步骤s4.2:针对报文丢弃处理规则,将劫持的报文直接丢弃,不向后透明转发,模
拟目标应用系统未接收到请求报文的异常,验证报文丢弃后的处理逻辑是否正确。
67.步骤s4.3:针对报文字段修改处理规则,根据配置的字段替换信息或增删字段内容,对请求报文替换组装后,向后转发至目标应用服务系统,制造业务层面的报文异常,比如:异常码修改、错误码修改、金额修改等,模拟被测系统业务逻辑异常后的处理流程是否正确。
68.步骤s4.4:针对报文重复发送处理规则,根据配置的重复发送次数,将请求报文连续多次向目标应用系统发送,模拟系统的防重发、幂等等异常处理处理是否正常、生效。
69.步骤s4.5:除了上述已支持的异常处理规则,中间人报文劫持节点也支持通过新增处理规则的逻辑,扩展其他相关的跨服务异常场景。
70.步骤s5:根据各种异常场景的模拟,验证被测系统在发生各类异常情况下,应用服务的处理逻辑是否符合业务预期结果,根据测试验证情况,进行相关的异常处理逻辑优化改进,提升分布式微服务架构下的服务异常处理能力,保证系统的可用性和可靠性。
71.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1