接口测试脚本生成方法、装置、设备及存储介质与流程

文档序号:28056024发布日期:2021-12-17 22:14阅读:112来源:国知局
接口测试脚本生成方法、装置、设备及存储介质与流程

1.本发明涉及计算机技术领域,具体涉及一种接口测试脚本生成方法、装置、设备及存储介质。


背景技术:

2.现有技术中大部分的企业在进行dubbo接口自动化测试时,还是通过手工的方式来完成测试脚本的设计输出,通常业务服务都会有大量的接口,这样就需要大量的人力投入才能完成接口自动化脚本的设计工作。而大部分企业都着重于业务测试,没有足够的资源专门投入接口自动化测试,导致自动化缺失,这样每次在功能测试和回归测试时就需要投入一定的人力进行,会直接影响到功能测试和回归测试的效率,甚至造成时间不足测试不到位的情况。
3.接口自动化脚本设计主要有以下困难:一、接口量太大,需要投入大量的人力才能完成测试脚本的设计,人力成本很高。二、有些接口太复杂需要的输入太多,人工设计容易出错。三、为了以后的拓展性,需要设计的脚本是标准化的并能够在多套环境都可以执行成功。四、脚本设计中有大部分的工作是重复的,迫切需要自动化的机制来完成脚本的设计工作。
4.目前已经有很多成熟的自动化测试框架,但是这些框架只提供了基本的自动化能力,适用于实际业务场景的自动化脚本还需要人工来完成,没有更细化的功能来帮助测试人员快速完成自动化脚本的设计。


技术实现要素:

5.本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明第一方面提出一种接口测试脚本生成方法,包括:
6.获取待测试接口的日志文件以及待测试接口的接口信息;
7.解析所述接口信息得到接口信息解析结果,解析所述日志文件得到日志文件解析结果;
8.基于所述接口信息解析结果创建测试主体生成方法类和生成待测试接口的接口配置文件;
9.基于所述接口信息解析结果和所述日志文件解析结果构造测试请求输入参数对象类;
10.根据所述测试主体生成方法类、所述待测试接口的接口配置文件和所述测试请求输入参数对象类生成接口测试脚本。
11.进一步地,所述基于所述接口信息解析结果和所述日志文件解析结果构造测试请求输入参数对象类,包括:
12.构造输入参数对象,生成代码片段;
13.将所述接口信息解析结果和所述日志文件解析结果插入到所述代码片段中,得到
所述测试请求输入参数对象类。
14.进一步地,所述接口信息包括接口名称和方法名称,所述接口信息解析结果包括接口的请求输入参数的类型、包名称部分、导入包部分、参数构造方法体和至少一个注释部分。
15.进一步地,所述日志文件解析结果包括待测试接口的请求输入参数值。
16.进一步地,所述基于所述接口信息解析结果创建测试主体生成方法类和生成待测试接口的接口配置文件,包括:
17.根据所述接口信息解析结果得到接口返回结果类;
18.基于所述接口返回结果类创建接口测试主体方法,得到所述测试主体生成方法类。
19.进一步地,所述接口信息包括接口名称和方法名称;所述接口信息解析结果包括包名称部分、导入包部分、至少一个注释部分、api资源注入部分、前置处理部分和测试方法类。
20.进一步地,所述基于所述接口信息解析结果创建测试主体生成方法类和生成待测试接口的接口配置文件,包括:
21.根据所述接口信息解析结果获取待测试接口请求的配置信息;
22.将所述待测试接口请求的配置信息写入预设的接口配置文件,得到所述待测试接口的接口配置文件。
23.本发明第二方面提出一种接口测试脚本生成装置,包括:
24.获取模块,用于获取待测试接口的日志文件以及待测试接口的接口信息;
25.解析模块,用于解析所述接口信息得到接口信息解析结果,解析所述日志文件得到日志文件解析结果;
26.测试主体创建模块,用于基于所述接口信息解析结果创建测试主体生成方法类;
27.配置文件生成模块,用于基于所述接口信息解析结果生成待测试接口的接口配置文件;
28.输入参数构造模块,用于基于所述接口信息解析结果和所述日志文件解析结果构造测试请求输入参数对象类;
29.脚本生成模块,用于根据所述测试主体生成方法类、所述待测试接口的接口配置文件和所述测试请求输入参数对象类生成接口测试脚本。
30.本发明第三方面提出一种设备,所述设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如本发明第一方面所述的接口测试脚本生成方法。
31.本发明第四方面提出一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如本发明第一方面所述的接口测试脚本生成方法。
32.实施本发明具有以下有益效果:
33.本发明实施例通过对待测试接口的日志文件和待测试接口的接口信息进行解析,自动完成测试请求输入参数的构造、测试请求主体方法的创建以及往待测试接口的接口配
置文件里增加接口请求的配置信息,实现了一种整个接口测试脚本的自动化创建的方法,有利于提升软件测试人员设计测试脚本的效率,同时有效避免人为开发过程中因人为因素导致的代码错误或偏差,降低了接口测试脚本设计过程中的出错率。
34.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
35.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
36.图1是本发明实施例提供的接口测试脚本生成方法的原理图;
37.图2是本发明实施例提供的接口测试脚本生成方法的流程图;
38.图3是本发明实施例提供的步骤s130的一个流程图;
39.图4是本发明实施例提供的步骤s130的另一个流程图;
40.图5是本发明实施例提供的步骤s140的流程图;
41.图6是本发明实施例提供的接口测试脚本生成装置的结构框图。
具体实施方式
42.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。
43.实施例
44.接口测试是测试系统组件间接口的一种测试,主要用于测试系统与外部其他系统之间的接口,以及系统内部各个模块之间的接口。测试的重点是要检查接口参数传递的正确性,接口功能实现的正确性,输出结果的正确性,以及对各种异常情况的容错处理的完整性和合理性。接口测试,能够提早发现bug,符合质量控制前移的理念,同时接口测试低成本高效益,因为接口测试可以自动化并且是持续集成的。
45.dubbo接口是基于dubbo框架的一种网络接口,dubbo框架是一款高性能、轻量级的开源java rpc框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。随着dubbo框架的广泛应用,经常会遇到dubbo接口的接口测试,目前dubbo接口的接口测试一般通过人工编写测试代码,然后运行该测试代码以获取测试结果。这类技术方案,在待测dubbo接口的参数非常多有几十上百的时候,需要耗费大量的时间和精力,测试效率低下,同时,如果遇到参数有对应的父类参数的情况下还可以出现遗漏参数的情况。
46.一般完成一个接口自动化测试脚本需要完成以下三个步骤:一、完成测试请求输
入参数的构造,生成methodutil.java文件。二、完成测试请求主体方法的创建,生成testmethod.java。三、往dubbo配置文件dubbo

config.xml里增加接口请求的配置信息。目前这三项工作都是通过手工来完成的,因此需要大量的人力投入,并且脚本出错率高,运行时需要多轮调试才能跑通。
47.图1是本发明实施例提供的接口测试脚本生成方法的原理图,具体的如图1所示,按照上述的完成接口自动化测试脚本需要完成的步骤,本发明实施例提供的一种基于应用日志分析的dubbo接口测试脚本自动生成工具可以包括3个模块:文件配置模块、输入参数构造模块和测试方法创建模块。
48.其中,文件配置模块用于根据用户输入的接口,自动往dubbo消费配置文件里写入测试接口的配置信息。输入参数构造模块用于根据用户输入的接口和方法名称,解析到接口的请求入参类型,再根据日志文件获取和解析接口的请求入参值,然后构造出请求入参对象类。测试方法创建模块用于根据用户输入的接口和方法名称,解析接口返回结果类,自动创建接口测试主体方法。
49.该接口测试脚本自动生成工具通过这三个模块来完成整个测试脚本的自动化生成,除输入需要测试的接口信息外,测试脚本的生成过程几乎不需要人为介入,大大减少测试人员的工作量、提升软件测试人员设计测试脚本的效率,也降低了出错率,标准化地完成接口测试脚本的设计工作。最后由用户通过运行测试主体方法类来成功执行接口自动化测试。本发明提供的接口测试脚本生成方法具有操作便捷、学习成本低的特点,测试人员能够快速完成dubbo接口测试脚本的设计,生成标准化的、样式风格统一的接口测试脚本,并且该方法可以应用于dubbo接口、http接口等多种类型的接口测试脚本自动生成,可应用于测试部门的多种业务线的接口测试脚本生成,满足企业具体的自动化脚本设计需求。
50.图2是本发明实施例提供的接口测试脚本生成方法的流程图,本说明书提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或服务器产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,方法可以包括如下步骤:
51.s110:获取待测试接口的日志文件以及待测试接口的接口信息;
52.其中,接口信息可以是从dubbo接口文档中获取的,也可以是根据用户输入得到的。
53.具体的,接口信息包括待测试接口的通信协议,通信协议可以是http协议(hypertext transfer protocol,超文本传输协议),也可以是dubbo协议,dubbo协议是本领域技术人员知晓的基于http协议的网络传输协议。
54.具体的,接口信息包括待测试接口使用的接口地址,接口地址是指应用程序接口所在的服务器的地址,接口地址可以包括接口名称和方法名称。根据实际需要,接口信息还可以包括端口号等。
55.s120:解析接口信息得到接口信息解析结果,解析日志文件得到日志文件解析结果;由于输入参数的构造都是自动解析的,能够避免人为设置出错。
56.s130:基于接口信息解析结果创建测试主体生成方法类和生成待测试接口的接口
配置文件;
57.s140:基于接口信息解析结果和日志文件解析结果构造测试请求输入参数对象类;
58.s150:根据测试主体生成方法类、待测试接口的接口配置文件和测试请求输入参数对象类生成接口测试脚本。
59.需要说明的是,本发明可以以图2所示顺序或不同顺序执行这些动作。并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。例如,步骤s130和s140可以同时进行也可以先后进行,步骤s130中基于接口信息解析结果创建测试主体生成方法类的动作与步骤s130中基于接口信息解析结果生成待测试接口的接口配置文件的动作可以同时进行也可以先后进行。
60.接口信息解析结果包括接口的请求输入参数的类型、包名称部分、导入包部分、至少一个注释部分和参数构造方法体。
61.具体地,日志文件解析结果包括待测试接口的请求输入参数值。
62.图3是本发明实施例提供的步骤s130的一个流程图,具体的如图3所示,在一个实施例中,步骤s130包括如下步骤:
63.s1311:根据接口信息解析结果得到接口返回结果类;
64.其中,接口信息解析结果包括包名称package部分、导入包import部分、至少一个注释部分、api资源注入@resource部分和前置处理@beforeclass部分。该至少一个注释部分包括脚本作者注释部分和文件创建日期注释部分。接口信息解析结果中的多个部分可以以任意顺序逐步生成,也可以同步生成。
65.s1312:基于接口返回结果类创建接口测试主体方法,得到测试主体生成方法类,在待测试接口为dubbo接口时,该测试主体生成方法类可以是testmethod.java文件。
66.图4是本发明实施例提供的步骤s130的另一个流程图,具体的如图4所示,在一个实施例中,步骤s130包括如下步骤:
67.s1321:根据接口信息解析结果获取待测试接口请求的配置信息;其中,配置信息可以是接口订阅信息,例如<dubbo:reference id=xx interface=xx/>。
68.s1322:将待测试接口请求的配置信息写入预设的接口配置文件,得到待测试接口的接口配置文件。
69.图5是本发明实施例提供的步骤s140的流程图,具体的如图5所示,在一个实施例中,步骤s140包括如下步骤:
70.s141:构造输入参数对象,生成代码片段;
71.s142:将接口信息解析结果和日志文件解析结果插入到代码片段中,得到测试请求输入参数对象类;在待测试接口为dubbo接口时,该测试请求输入参数对象类可以是methodutil.java文件。
72.具体的,接口信息包括接口名称和方法名称;接口信息解析结果包括包名称package部分、导入包import部分和至少一个注释部分。该至少一个注释部分包括脚本作者注释
73.部分和文件创建日期注释部分。接口信息解析结果中的多个部分可以以任意顺序逐步生成,也可以同步生成。
74.图6是本发明实施例提供的接口测试脚本生成装置的结构框图,具体的如图6所示,本发明实施例提出一种接口测试脚本生成装置包括如下模块:
75.获取模块201,用于获取待测试接口的日志文件以及待测试接口的接口信息;
76.解析模块202,用于解析接口信息得到接口信息解析结果,解析日志文件得到日志文件解析结果;
77.测试主体创建模块203,用于基于接口信息解析结果创建测试主体生成方法类;
78.配置文件生成模块204,用于基于接口信息解析结果生成待测试接口的接口配置文件;
79.输入参数构造模块205,用于基于接口信息解析结果和日志文件解析结果构造测试请求输入参数对象类;
80.脚本生成模块206,用于根据测试主体生成方法类、待测试接口的接口配置文件和测试请求输入参数对象类生成接口测试脚本。
81.本发明的实施例还提供了一种设备,设备包括处理器和存储器,存储器中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如方法实施例中的接口测试脚本生成方法。
82.本发明的实施例还提供了一种存储介质,所述存储介质可设置于服务器之中以保存用于实现方法实施例中的接口测试脚本生成方法相关的至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、该至少一段程序、该代码集或指令集由该处理器加载并执行以实现上述方法实施例提供的接口测试脚本生成方法。
83.可选地,在本实施例中,上述存储介质可以位于计算机网络的多个网络服务器中的至少一个网络服务器。可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
84.由上述本发明提供的接口测试脚本生成方法、装置、设备或存储介质的实施例可见,本发明实施例通过对待测试接口的日志文件和待测试接口的接口信息进行解析,自动完成测试请求输入参数的构造、自动完成测试请求主体方法的创建、自动完成往dubbo配置文件里增加接口请求的配置信息,实现了一种整个接口测试脚本的自动化创建的方法,有利于提升软件测试人员设计测试脚本的效率,也降低了接口测试脚本设计过程中的出错率。
85.需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
86.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和服务器实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
87.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
88.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1