一种自动生成测试挡板的系统及方法与流程

文档序号:27491965发布日期:2021-11-22 14:48阅读:366来源:国知局
一种自动生成测试挡板的系统及方法与流程

1.本发明涉及软件测试技术领域,尤其涉及一种自动生成测试挡板的系统及方法。


背景技术:

2.目前的银行业务开发涉及多种前端系统,这些前端系统经常需要与外部系统(比如其他公司的系统)进行交互;在前端系统项目初次开展时,会与外部系统共同进行联调测试,并且上线验证。但是项目上线后,若因为内部原因涉及的改造,需要外部系统配合联调时,因为外部系统并无改造,对方不一定有足够的时间与条件进行调试。
3.这种情况下,现有的技术方案一般是由测试人员根据测试案例设置测试挡板,模拟外部系统的调用返回结果。但是该方案十分依赖测试挡板的准确性,及测试人员撰写测试挡板的能力,而在实际中,这种方案耗费人力资源很大,而且经常存在测试挡板考虑不全,返回数据与实际存在差异的情况,使用这种挡板测试部分场景相关问题可能无法在测试阶段发现,从而漏至线上引发生产问题。


技术实现要素:

4.本发明的目的在于提供一种自动生成测试挡板的系统及方法,由系统保存的联调数据自动生成挡板的测试数据,测试内容真实全面,能够弥补由测试人员考虑不足等人为原因而造成的场景遗漏,从而避免因未进行联调测试而产生的生产问题。
5.本发明通过下述技术方案实现:
6.一种自动生成测试挡板的系统,包括存储模块和生成模块;
7.所述存储模块,用于存储外部接口的调试数据;所述调试数据为所述外部接口在联调环境和/或生产环境中传输的入参数据与返回数据;
8.所述生成模块,用于将所述调试数据导入到测试环境的数据库中,以生成所述测试挡板。
9.优选地,还包括第一开关模块,当所述第一开关模块打开时,所述调试数据可存入所述存储模块。
10.优选地,还包括第二开关模块,当所述第二开关模块打开时,所述存储模块中的调试数据导入到测试环境的数据库中,以生成所述测试挡板。
11.优选地,所述存储模块包括获取单元、解析单元以及存储单元;
12.所述获取单元,用于获取所述外部接口的调试数据;
13.所述解析单元,用于将所述调试数据解析为json的结构化数据;
14.所述存储单元,用于存储所述结构化数据。
15.优选地,所述存储单元设置为文档型数据库。
16.优选地,还包括注解模块,所述注解模块用于对需要生成测试挡板的外部接口进行标记。
17.优选地,所述注解模块设置为spring注解。
18.一种自动生成测试挡板的方法,包括以下步骤:
19.s1:存储外部接口的调试数据;所述调试数据为所述外部接口在联调环境和/或生产环境中传输的入参数据与返回数据;
20.s2:将所述调试数据导入到测试环境的数据库中,以生成所述测试挡板。
21.优选地,所述s1包括以下子步骤:
22.s11:获取所述外部接口的调试数据;
23.s12:将所述调试数据解析为json的结构化数据后进行保存。
24.优选地,还包括注解步骤,所述注解步骤用于对需要生成测试挡板的外部接口进行标记。
25.本发明与现有技术相比,具有如下的优点和有益效果:
26.1、由系统保存的联调数据自动生成挡板的测试数据,测试内容真实全面,能够弥补由测试人员考虑不足等人为原因而造成的场景遗漏,从而避免因未进行联调测试而产生的生产问题;
27.2、挡板加在系统的接口方法上,应用系统可根据自身情况进行调整,因此可以兼容所有的通讯调用方式,包括http\https\socket\dubbo\g

rpc等各种通讯协议或框架,使用范围广;
28.3、使用spring注解及mongodb文档型数据库来完成挡板数据生产,对代码侵入性低,接入方便,且不干扰正常的业务代码逻辑。
附图说明
29.此处所说明的附图用来提供对本发明实施例的进一步理解,构成本技术的一部分,并不构成对本发明实施例的限定。在附图中。
30.图1为本发明存储调试数据的流程示意图;
31.图2为本发明调用调试数据的流程示意图。
具体实施方式
32.为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
33.实施例
34.一种自动生成测试挡板的系统,包括存储模块和生成模块;
35.存储模块,用于存储外部接口的调试数据;调试数据为外部接口在联调环境和/或生产环境中传输的入参数据与返回数据;
36.具体地,本实施例中的存储模块包括获取单元、解析单元以及存储单元;
37.获取单元,用于获取外部接口的调试数据;
38.解析单元,用于将调试数据解析为json的结构化数据;
39.存储单元,用于存储结构化数据。作为优选地,本实施例中的存储单元设置为更适合保存结构化数据的文档型数据库。
40.生成模块,用于将调试数据导入到测试环境的数据库中,以生成测试挡板。
41.在需要与外部系统进行频繁交互的大型分布式系统中,系统内部改造后,需要与外部系统进行联调测试通过后才能上线,但每次内部系统改造后不一定能够协调外部系统一起进行联调测试,因此需要使用测试挡板来与大型分布式系统完成联调测试;但测试挡板为人工设置,依赖于测试人员的能力,因此测试挡板与真实联调结果会存在一定差异。基于此,本技术提供了一种自动生成测试挡板的系统,通过该系统可以将内部系统与外部系统在首次联调过程中或真实生产环境中的业务数据自动生成测试挡板,以供后续内部系统改造后测试使用,提高测试可靠性,降低因未联调测试,或挡板数据不全而导致的生产问题。
42.具体地,考虑到外部系统与内部系统的联调测试数据不一定全部有用,因此在本实施例中,还设置有第一开关模块,在内部系统与外部系统进行首次联调时,或内部系统与外部系统在真实生产环境中进行交互时,打开第一开关模块,从而将真实的联调测试数据保存至存储模块。由于内部系统与外部系统在真实交互过程中能涵盖各式各样的情况,因此,通过将联调测试数据保存下来并在后续外部系统不方便测试时,调用该数据进行测试可以更加准确的模拟外部系统的响应,提高测试可靠性。作为优选地,可以将第一开关模块设置在存储模块中。
43.进一步地,考虑到内部系统并不是一直处于改造状态,为了随用随取存储单元中的调试数据,在本实施例中,还设置有第二开关模块,用于实现存储单元与外部系统的切换。具体地,当需要使用存储单元中的调试数据时,则打开第二开关模块,此时存储单元与内部系统导通,从而将存储单元中的调试数据导入到测试环境的数据库中,生成测试挡板;当第二开关模块关闭时,此时外部系统与内部系统导通,外部系统与内部系统直接进行数据交互。作为优选地,可以将第一开关模块设置在存储模块中
44.进一步地,由于分布式系统与外部系统的接口有很多,而不是所有的接口都需要生成测试挡板进行联调测试,基于此,为了对需要测试的外部接口进行标注,在本实施例中,还设置有注解模块,用于对需要生成测试挡板的外部接口进行注解标记。作为优选的,本实施例中的注解模块设置为spring注解,spring注解对代码侵入性低,接入方便,不干扰正常的业务代码逻辑。
45.一种自动生成测试挡板的方法,包括以下步骤:
46.s1:存储外部接口的调试数据;调试数据为外部接口在联调环境和/或生产环境中传输的入参数据与返回数据;
47.具体地,s1包括以下子步骤:
48.s11:获取外部接口的调试数据;
49.s12:将调试数据解析为json的结构化数据后进行保存;
50.s2:将调试数据导入到测试环境的数据库中,以生成测试挡板。
51.在需要与外部系统进行频繁交互的大型分布式系统中,系统内部改造后,需要与外部系统进行联调测试通过后才能上线,但每次内部系统改造后不一定能够协调外部系统一起进行联调测试,因此需要使用测试挡板来与大型分布式系统完成联调测试;但测试挡板为人工设置,依赖于试人测员的能力,因此测试挡板与真实联调结果会存在一定差异。基于此,本技术提供了一种自动生成测试挡板的方法,在本方法中提出将内部系统与外部系统在首次联调过程中或真实生产环境中的业务数据进行保存,以供后续内部系统改造后测
试使用,从而提高测试可靠性,降低因未联调测试,或挡板数据不全而导致的生产问题。
52.进一步地,考虑到分布式系统与外部系统的接口有很多,而不是所有的接口都需要与分布式系统进行联调测试,基于此,为了对需要进行联调测试的外部接口进行标注,在本实施例中,还设置有注解步骤,用于对需要生成测试挡板的外部接口进行注解标记。作为优选的,由于spring注解对代码侵入性低,接入方便,不干扰正常的业务代码逻辑,因此本实施例中采用spring注解对接口进行标记。
53.以下以具体的实例来对本技术做进一步说明:
54.如图1和图2所示,假设外部系统为systemb,与外部系统systemb进行交互的系统为systema,systema中的存储模块为mongodb数据库,mongodb数据库中的第一开关模块设置为mockgenerator,第二开关模块设置为usemock;系统systema与系统systemb的接口有n个,其中只有1个接口interface_loan需要在联调测试中用到,因此,为了收集接口interface_loan的数据,在systema与系统systemb首次联调前,先对接口interface_loan添加标签进行注解,在本实施例中使用spring注解@autogeneratemock(mockgenerator=true),其中,值得说明的是,不同应用系统可根据自身实现情况修改注解。然后在systema真实与系统systemb联调测试或生产环境开展业务时,将开关mockgenerator设置为打开,系统自动调用并记录接口interface_loan的入参数据(系统systema传输至系统systemb的数据)与返回数据(系统systemb返回至系统systema的数据),并将其解析为json的结构化数据保存在mongodb数据库。
55.当systema改造后且外部系统不便进行联调测试时,则打开开关usemock,使得mongodb数据库与systema系统导通,从而将mongodb数据库存储的调试数据导入到测试环境的数据库中,以生成挡板mock,systema系统根据入参参数查询mongodb数据库中的挡板数据记录,并将已保存好的返回数据取出,模拟为系统systemb的返回数据进行返回,从而实现挡板功能;当关闭开关usemock时,则systema系统与systemb系统导通,systema系统直接调用与systemb系统通信的接口interface_loan。
56.在本方案中,由系统保存的联调数据自动生成挡板的测试数据,测试内容真实全面,能够弥补由测试人员考虑不足等人为原因而造成的场景遗漏,从而避免因未进行联调测试而产生的生产问题。
57.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1