CN116955203A - 服务接口的自动化测试方法 - Google Patents

服务接口的自动化测试方法 Download PDF

Info

Publication number
CN116955203A
CN116955203A CN202311017101.5A CN202311017101A CN116955203A CN 116955203 A CN116955203 A CN 116955203A CN 202311017101 A CN202311017101 A CN 202311017101A CN 116955203 A CN116955203 A CN 116955203A
Authority
CN
China
Prior art keywords
target
test
service interface
attribute
test method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311017101.5A
Other languages
English (en)
Inventor
杨广强
张云龙
阮宜龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN202311017101.5A priority Critical patent/CN116955203A/zh
Publication of CN116955203A publication Critical patent/CN116955203A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种服务接口的自动化测试方法。其中,该方法包括:利用服务接口测试类构建目标测试方法以及待测数据对象,其中,目标测试方法包括:目标注解,目标注解包括第一属性和第二属性,待测数据对象为服务接口的入参对象,第一属性用于获取目标数据文件的路径,目标数据文件包含服务接口的测试用例,第二属性用于获取待测数据对象的目标类型,目标类型由服务框架的序列化协议确定;利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果。本发明解决了现有技术提供的服务接口的测试方法将测试数据与测试脚本耦合导致测试方法的可复用性差、测试成本高、测试效率低的技术问题。

Description

服务接口的自动化测试方法
技术领域
本发明涉及自动化测试技术领域,具体而言,涉及一种服务接口的自动化测试方法。
背景技术
软件系统的服务接口(如Dubbo)定义了软件系统与外部系统或者其他模块之间的通信协议和数据交互方式,能够使得不同系统或者模块之间进行有效的通信和数据共享。随着软件系统的复杂性不断提升,对服务接口进行高效、准确的测试十分必要。然而,目前,现有技术通常采用人工测试方法对服务接口进行测试,或者,现有的服务接口的自动化测试方法中,将测试数据维护在特定类(如@DataProvider类)中,使得测试数据与测试脚本耦合,导致需要编写大量的重复代码,也即,现有的服务接口的测试方法其可复用性与可维护性差、重复劳动导致测试成本高、测试效率低。
由上分析可知,针对上述现有技术提供的服务接口的测试方法将测试数据与测试脚本耦合导致测试方法的可复用性差、测试成本高、测试效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种服务接口的自动化测试方法,以至少解决现有技术提供的服务接口的测试方法将测试数据与测试脚本耦合导致测试方法的可复用性差、测试成本高、测试效率低的技术问题。
根据本发明实施例的一个方面,提供了一种服务接口的自动化测试方法,包括:
利用服务接口测试类构建目标测试方法以及待测数据对象,其中,目标测试方法包括:目标注解,目标注解包括第一属性和第二属性,待测数据对象为服务接口的入参对象,第一属性用于获取目标数据文件的路径,目标数据文件包含服务接口的测试用例,第二属性用于获取待测数据对象的目标类型,目标类型由服务框架的序列化协议确定;利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果。
可选地,服务接口的自动化测试方法还包括:利用服务接口测试类调用预处理方法,对服务接口的测试环境进行预处理。
可选地,服务接口的自动化测试方法还包括:确定目标测试方法是否包含目标注解;响应于目标测试方法未包含目标注解,利用服务接口测试类为目标测试方法构建目标注解,得到更新后的目标测试方法。
可选地,利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果,包括:利用预设反射方式获取目标注解的第一属性和第二属性;基于第一属性,确定目标数据文件的测试用例;基于第二属性,确定待测数据对象;将测试用例和待测数据对象传递至目标测试方法,以执行目标测试方法,得到测试结果。
可选地,基于第一属性,确定目标数据文件的测试用例,包括:利用第一属性获取目标数据文件的路径;根据路径,读取目标数据文件;对目标数据文件进行解析,得到测试用例。
可选地,基于第二属性,确定待测数据对象,包括:利用第二属性获取待测数据对象的目标类型;对目标类型进行解析,得到第一解析结果;对第一解析结果进行反序列化,得到待测数据对象。
可选地,执行目标测试方法,得到测试结果,包括:在目标测试方法执行过程中,获取服务接口的返回值;对返回值进行解析,得到待测数据对象的测试值;对待测数据对象的测试值与预期数据对象的字段值进行断言,得到测试结果。
可选地,服务接口的自动化测试方法还包括:响应于目标数据文件的路径为空,确定目标数据文件存在异常,生成目标数据文件的异常反馈信息。
可选地,服务接口的自动化测试方法还包括:利用服务接口测试类调用目标监听器的监听接口,监听目标测试方法的执行过程;记录执行过程;响应于通过执行过程确定目标测试方法执行异常,利用预设异常解决办法对目标测试方法进行处理。
根据本发明实施例的另一方面,还提供了一种服务接口的自动化测试装置,包括:
构建模块,用于利用服务接口测试类构建目标测试方法以及待测数据对象,其中,目标测试方法包括:目标注解,目标注解包括第一属性和第二属性,待测数据对象为服务接口的入参对象,第一属性用于获取目标数据文件的路径,目标数据文件包含服务接口的测试用例,第二属性用于获取待测数据对象的目标类型,目标类型由服务框架的序列化协议确定;测试模块,用于利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果。
可选地,服务接口的自动化测试装置还包括:预处理模块,用于利用服务接口测试类调用预处理方法,对服务接口的测试环境进行预处理。
可选地,服务接口的自动化测试还包括:更新模块,用于确定目标测试方法是否包含目标注解;响应于目标测试方法未包含目标注解,利用服务接口测试类为目标测试方法构建目标注解,得到更新后的目标测试方法。
可选地,上述测试模块还用于:利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果,包括:利用预设反射方式获取目标注解的第一属性和第二属性;基于第一属性,确定目标数据文件的测试用例;基于第二属性,确定待测数据对象;将测试用例和待测数据对象传递至目标测试方法,以执行目标测试方法,得到测试结果。
可选地,上述测试模块还用于:利用第一属性获取目标数据文件的路径;根据路径,读取目标数据文件;对目标数据文件进行解析,得到测试用例。
可选地,上述测试模块还用于:利用第二属性获取待测数据对象的目标类型;对目标类型进行解析,得到第一解析结果;对第一解析结果进行反序列化,得到待测数据对象。
可选地,上述测试模块还用于:在目标测试方法执行过程中,获取服务接口的返回值;对返回值进行解析,得到待测数据对象的测试值;对待测数据对象的测试值与预期数据对象的字段值进行断言,得到测试结果。
可选地,服务接口的自动化测试装置还包括:生成模块,用于响应于目标数据文件的路径为空,确定目标数据文件存在异常,生成目标数据文件的异常反馈信息。
可选地,服务接口的自动化测试装置还包括:监听模块,用于利用服务接口测试类调用目标监听器的监听接口,监听目标测试方法的执行过程;记录执行过程;响应于通过执行过程确定目标测试方法执行异常,利用预设异常解决办法对目标测试方法进行处理。
根据本发明实施例的又一方面,还提供了一种存储介质,其特征在于,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行权利要求1至9中任意一项服务接口的自动化测试方法。
根据本发明实施例的又一方面,还提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行权利要求1至9中任意一项服务接口的自动化测试方法。
在本发明实施例中,先利用服务接口测试类构建目标测试方法以及待测数据对象,其中,目标测试方法包括:目标注解,目标注解包括第一属性和第二属性,待测数据对象为服务接口的入参对象,第一属性用于获取目标数据文件的路径,目标数据文件包含服务接口的测试用例,第二属性用于获取待测数据对象的目标类型,目标类型由服务框架的序列化协议确定,再利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果,通过为目标测试方法构建能够获取目标数据文件和待测数据对象的目标注解,达到了使测试方法与测试数据分离的目的,从而实现了提高目标测试方法的可复用性与测试效率、降低服务接口的测试成本的技术效果,进而解决了现有技术提供的服务接口的测试方法将测试数据与测试脚本耦合导致测试方法的可复用性差、测试成本高、测试效率低技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种服务接口的自动化测试方法的流程图;
图2是根据本发明实施例的一种可选的服务接口的自动化测试流程的示意图;
图3是根据本发明实施例的一种可选的服务接口的自动化测试装置的结构框图;
图4是根据本发明实施例的另一种可选的服务接口的自动化测试装置的结构框图;
图5是根据本发明实施例的又一种可选的服务接口的自动化测试装置的结构框图;
图6是根据本发明实施例的又一种可选的服务接口的自动化测试装置的结构框图;
图7是根据本发明实施例的又一种可选的服务接口的自动化测试装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种服务接口的自动化测试方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种服务接口的自动化测试方法的流程图,如图1所示,上述图1所示的实施例可以至少包括如下实施步骤,即可以是步骤S101至步骤S102所实现的技术方案。
步骤S101,利用服务接口测试类构建目标测试方法以及待测数据对象,其中,目标测试方法包括:目标注解,目标注解包括第一属性和第二属性,待测数据对象为服务接口的入参对象,第一属性用于获取目标数据文件的路径,目标数据文件包含服务接口的测试用例,第二属性用于获取待测数据对象的目标类型,目标类型由服务框架的序列化协议确定;
步骤S102,利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果。
本发明提供的技术方案中,服务接口可以是Dubbo接口,此处需要说明的是,Dubbo是Java开发的一个分布式服务框架,可以用于分布式服务治理。
上述步骤S101至步骤S102提供的技术方案中,服务接口测试类可以用于控制服务接口的自动化测试的整个过程,其控制过程包括但不限于:实现数据驱动、筛选和调用测试方法、编写和调用测试用例、调用其他功能接口(如监听接口)以辅助自动化测试过程。此处还需要说明的是,该服务接口测试类可以是基于测试下一代(Test Next Generation,TestNG)测试框架的测试类,TestNG可以支持并发测试、参数化测试、测试套件、测试依赖、测试结果报告等功能,该测试框架还提供了多个注解和配置选项,便于编写和管理测试用例。上述目标注解可以由该服务接口测试类构建,同时,利用该服务接口测试类为该目标注解添加上述第一属性和上述第二属性,以通过该目标注解的属性能够获取测试数据(目标数据文件、待测数据对象等)。
上述步骤S101至步骤S102提供的技术方案中,上述目标数据文件的类型可以是但不限于:XML,JSON。此处需要说明的是,本发明提供的服务接口的自动化测试方法可以使用JSON格式的数据文件,JSON格式的数据文件作为数据驱动,其可扩展性和可维护性强。上述待测数据对象可以是服务接口的入参对象,该入参对象可以是Java对象,在Dubbo接口的自动化测试过程中,该入参对象可以包含调用Dubbo接口需要的参数,Dubbo接口需要的参数可以包括但不限于:服务接口名、服务版本号、服务方法名、服务方法的参数类型、服务方法的参数值。
上述步骤S101至步骤S102提供的技术方案中,上述服务框架的序列化协议可以用于将服务接口对象转换为字节流,当服务框架为Dubbo时,其序列化协议可以是Hessian序列化协议。
在本发明实施例中,先利用服务接口测试类构建目标测试方法以及待测数据对象,其中,目标测试方法包括:目标注解,目标注解包括第一属性和第二属性,待测数据对象为服务接口的入参对象,第一属性用于获取目标数据文件的路径,目标数据文件包含服务接口的测试用例,第二属性用于获取待测数据对象的目标类型,目标类型由服务框架的序列化协议确定,再利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果,通过为目标测试方法构建能够获取目标数据文件和待测数据对象的目标注解,达到了使测试方法与测试数据分离的目的,从而实现了提高目标测试方法的可复用性与测试效率、降低服务接口的测试成本的技术效果,进而解决了现有技术提供的服务接口的测试方法将测试数据与测试脚本耦合导致测试方法的可复用性差、测试成本高、测试效率低技术问题。
下面对本发明上述实施例的上述方法进行进一步介绍。
在一种可选的实施例中,服务接口的自动化测试方法还包括:
步骤S103,利用服务接口测试类调用预处理方法,对服务接口的测试环境进行预处理。
上述步骤S103提供的技术方案中,上述预处理方法可以是TestNG测试框架中的OnTestStart方法,该方法可以在测试方法执行之前进行预处理操作,预处理操作可以包括但不限于:初始化测试环境(如创建数据库链接、加载配置文件、启动服务),准备测试数据(如将测试数据插入至数据库、创建临时文件),设置测试上下文(如设置全局变量、注入依赖)。此处还需要说明的是,预处理方法可以减少测试方法中的重复代码,提高测试效率、提升测试方法的可维护性。
以下结合图2对上述方法进行进一步说明。
图2是根据本发明实施例的一种可选的服务接口的自动化测试流程的示意图,如图2所示,在对服务接口进行自动化测试时,先使用自动化测试过程的核心处理类(上述服务接口测试类,命名为AutoInterfaceTest)构建目标注解(@AutoTestData),并为该目标注解增加第一属性value和第二属性clazz,接着,使用OnTestStart预处理方法对服务接口的测试环境进行预处理。
在一种可选的实施例中,服务接口的自动化测试方法还包括:
步骤S1041,确定目标测试方法是否包含目标注解;
步骤S1042,响应于目标测试方法未包含目标注解,利用服务接口测试类为目标测试方法构建目标注解,得到更新后的目标测试方法。
依然如图2所示,在利用预处理方法对服务接口的测试环境进行预处理之后,可以通过Java反射的方式扫描服务接口测试类,以检验测试方法是否包含目标注解,当测试方法包含目标注解时,使用该测试方法对测试数据进行自动化测试;当测试方法未包含目标注解时,使用服务接口测试类为该测试方法构建目标注解,并为目标注解添加第一属性和第二属性,从而得到更新后的测试方法,进而使用更新后的测试方法对测试数据进行测试。
在一种可选的实施例中,在步骤S102中,利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果,包括:
步骤S1011,利用预设反射方式获取目标注解的第一属性和第二属性;
步骤S1012,基于第一属性,确定目标数据文件的测试用例;
步骤S1013,基于第二属性,确定待测数据对象;
步骤S1014,将测试用例和待测数据对象传递至目标测试方法,以执行目标测试方法,得到测试结果。
上述步骤S1011至步骤S1014提供的技术方案中,上述预设反射方式可以是Java反射,此处需要说明的是,Java反射可以在自动化测试过程中动态获取和操作数据,包括但不限于:获取类的信息(如类的属性、方法、构造函数),动态创建对象,动态调用方法,动态访问属性。上述测试结果可以用于确定服务接口的功能是否正常,测试结果可以包括但不限于:服务接口是否成功调用、服务接口的响应时间、服务接口的返回结果、服务接口在不同负载下的性能表现(如吞吐量)、服务接口在不同环境与不同版本下的兼容性。
在一种可选的实施例中,在步骤S1022中,基于第一属性,确定目标数据文件的测试用例,包括:
步骤S1021,利用第一属性获取目标数据文件的路径;
步骤S1022,根据路径,读取目标数据文件;
步骤S1023,对目标数据文件进行解析,得到测试用例。
本发明提供的技术方案中,在对服务接口进行自动化测试前,预先编写JSON格式的数据文件,在该数据文件中,可以定义JSON数据结构,包括请求入参的JSON对象、预期结果的JSON对象,此处需要说明的是,预期结果的JSON对象可以用于与请求入参的JSON对象进行比对,以确定服务接口的请求入参的JSON对象是否测试成功。此处还需要说明的是,JSON数据结构可以是JSON对象数组的格式,一个JSON对象可以作为一条测试用例,一个JSON对象数组文件可以包括一个测试接口对应的多个测试用例。还可以了解到的是,目标数据文件的存储位置可以是:本地文件系统中的预设路径、类路径下的预设目录、数据库、远程文件系统。
本发明提供的技术方案中,对目标数据文件进行解析,得到的测试用例可以包括以下数据:服务接口的名称、服务接口的版本号、服务接口中定义的方法的名称和参数列表、每个方法的参数类型、每个方法的返回值类型。
在一种可选的实施例中,在步骤S1023中,基于第二属性,确定待测数据对象,包括:
步骤S1031,利用第二属性获取待测数据对象的目标类型;
步骤S1032,对目标类型进行解析,得到第一解析结果;
步骤S1033,对第一解析结果进行反序列化,得到待测数据对象。
上述步骤S1031至步骤S1033提供的技术方案中,上述待测数据对象的目标类型可以是待测数据对象的类类型(即class类型),此处需要说明的是,待测数据对象的目标类型也可以由服务框架的序列化协议确定。上述第一解析结果可以包括但不限于:待测数据对象的类型、待测数据对象的数据结果,此处还需要说明的是,待测数据对象的类型可以是但不限于:JSON,待测对象的数据结构可以是但不限于:Map、List、JSONObject。
依然如图2所示,本发明提供的技术方案中,在确定测试方法包含目标注解后,通过Java反射的方式获取目标注解的第一属性和第二属性,进一步地,一方面,可以根据第一属性获取的目标数据文件的路径是否为空,确定是否存在目标数据文件,当目标数据文件的路径非空时,确定目标数据文件存在,进一步地,读取目标数据文件,使用JsonPath对目标数据文件进行解析,得到测试用例的集合。另一方面,在通过Java反射的方式获取目标注解的第一属性和第二属性后,生成代理服务引用,以对目标测试方法进行初始化操作(如确保测试方法支持Dubbo服务的调用),接着,使用JsonPath先对第二属性获取的待测数据对象的目标类型进行解析,再将解析结果进行反序列化,以得到测试方法对象(即待测数据对象)。
在一种可选的实施例中,在步骤S1024中,执行目标测试方法,得到测试结果,包括:
步骤S1051,在目标测试方法执行过程中,获取服务接口的返回值;
步骤S1052,对返回值进行解析,得到待测数据对象的测试值;
步骤S1053,对待测数据对象的测试值与预期数据对象的字段值进行断言,得到测试结果。
上述步骤S1051至步骤S1053提供的技术方案中,上述服务接口的返回值可以包括但不限于:待测数据对象的数据类型、引用类型的对象(如集合对象、Map对象)、服务接口的异常信息。上述待测数据对象的测试值可以是待测数据对象的字段值。
依然如图2所示,本发明提供的技术方案中,在获取到测试用例的集合后,遍历集合中的每个测试用例,再通过Java反射的方式调用包含反序列化后的待测数据对象的测试方法,以将当前测试用例与测试方法绑定,进一步地,执行绑定后的测试方法,并获取测试方法执行过程中服务接口的返回值,接着,可以使用JsonPath先解析服务接口的返回值得到待测数据对象的字段值(测试值),再将待测数据对象的字段值与预期数据对象的字段值进行准确性断言,也即,比较待测数据对象的字段值与预期数据对象的字段值是否一致,当二值一致时,可以确定服务接口的功能正常,反之,确定服务接口的功能异常。以及,在对每个测试用例测试结束后,记录当前测试用例的执行结果。此处需要说明的是,由于不同的测试用例对应的待测数据对象不同,因此,在每次确定测试用例后,均需要通过反射调用测试方法将当前测试用例与包含对应待测数据对象的测试方法绑定。
依然如图2所示,本发明提供的技术方案中,在对每个测试用例测试结束后,判断目标数据文件解析得到的测试用例的集合是否为空,当测试用例的集合为非空时,对利用反射调用的测试方法对下一个测试用例进行测试;当测试用例的集合为空时,确定服务接口的自动化测试过程结束。
在一种可选的实施例中,服务接口的自动化测试方法还包括:
步骤S106,响应于目标数据文件的路径为空,确定目标数据文件存在异常,生成目标数据文件的异常反馈信息。
依然如图2所示,当通过第一属性获取的目标数据文件的路径为空时,确定目标数据文件异常,此时,生成目标数据文件的异常反馈信息(如在显示设备上显示“文件不存在”),以避免服务接口的自动化测试进程长时间卡顿或异常退出,从而提升了服务接口的测试方法的灵活性、提高了服务接口的自动化测试效率。
在一种可选的实施例中,服务接口的自动化测试方法还包括:
步骤S1071,利用服务接口测试类调用目标监听器的监听接口,监听目标测试方法的执行过程;
步骤S1072,记录执行过程;
步骤S1073,响应于通过执行过程确定目标测试方法执行异常,利用预设异常解决办法对目标测试方法进行处理。
上述步骤S1071至步骤S1073提供的技术方案中,上述目标监听器可以是基于TestNG测试框架的监听器,上述监听接口可以是ITestListener接口。此处需要说明的是,在对Dubbo接口进行自动化测试过程中,ITestListener接口可以监听测试方法执行过程中的多种事件,包括但不限于:onStart事件,在测试方法执行开始时触发的事件(如初始化操作);onFinish事件,在测试方法执行结束时触发的事件(如清理操作);onTestStart事件,在测试方法执行之前触发的事件(如预处理操作);onTestSuccess事件,测试方法执行成功时触发的事件,可以记录或处理测试方法执行成功的测试结果;onTestFailure事件,测试方法执行失败时触发的事件,可以记录或处理测试方法执行失败的测试结果。
上述步骤S1071至步骤S1073提供的技术方案中,上述预设异常解决办法可以由技术人员预先设置并存储于测试系统的目标存储位置,该预设异常解决办法可以包括但不限于:记录异常日志、生成并抛出异常通知或异常报警信息、重试测试方法、跳过一个或多个测试流程(如多个测试用例中某个测试用例的测试流程异常且无法继续执行时,跳过当前测试用例的测试流程并执行下一个测试用例的测试流程)、强制执行测试流程(如多个测试用例中某个测试用例的测试流程异常且可以继续执行时,强制继续执行当前测试用例的后续测试流程)。
依然如图2所示,本发明提供的技术方案中,在对服务接口进行自动化测试之前,可以使用核心处理类AutoInterfaceTest调用TestNG的ITestListener接口,使用该监听接口对服务接口的自动化测试全流程进行监听,并记录每个流程的监听结果。当监听到某个测试流程异常时,从测试系统的目标存储位置查询并调用该测试流程对应的异常解决办法,以及时处理测试流程的异常问题、提高服务接口的自动化测试效率。
通过本发明提供的上述可选实施例,可以达到的技术效果为:
(1)构建包含目标注解标记的测试方法,使得测试方法和测试数据分离,提高了测试方法的可复用性与可维护性,提高了测试效率,降低了测试成本;
(2)通过对目标数据文件中的动态参数进行绑定,便于灵活修改请求入参对象的参数,进一步提高了测试效率,同时,提高了测试结果的准确性;
(3)使用反射机制动态调用测试方法,提升了执行测试用例的灵活性;
(4)使用JSON文件作为测试数据的载体,提高了测试数据的可维护性和管理效率。
在本实施例中,还提供了一种视频彩铃系统的交互处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,属于“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本发明实施例的一种可选的服务接口的自动化测试装置的结构框图,如图3所示,该装置包括:
构建模块301,用于利用服务接口测试类构建目标测试方法以及待测数据对象,其中,目标测试方法包括:目标注解,目标注解包括第一属性和第二属性,待测数据对象为服务接口的入参对象,第一属性用于获取目标数据文件的路径,目标数据文件包含服务接口的测试用例,第二属性用于获取待测数据对象的目标类型,目标类型由服务框架的序列化协议确定;
测试模块302,用于利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果。
可选地,图4是根据本发明实施例的另一种可选的服务接口的自动化测试装置的结构框图,如图4所示,该装置除包括图3所示的所有模块外,还包括:预处理模块303,用于利用服务接口测试类调用预处理方法,对服务接口的测试环境进行预处理。
可选地,图5是根据本发明实施例的又一种可选的服务接口的自动化测试装置的结构框图,如图5所示,该装置除包括图4所示的所有模块外,还包括:更新模块304,用于确定目标测试方法是否包含目标注解;响应于目标测试方法未包含目标注解,利用服务接口测试类为目标测试方法构建目标注解,得到更新后的目标测试方法。
可选地,上述测试模块302还用于:利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果,包括:利用预设反射方式获取目标注解的第一属性和第二属性;基于第一属性,确定目标数据文件的测试用例;基于第二属性,确定待测数据对象;将测试用例和待测数据对象传递至目标测试方法,以执行目标测试方法,得到测试结果。
可选地,上述测试模块302还用于:利用第一属性获取目标数据文件的路径;根据路径,读取目标数据文件;对目标数据文件进行解析,得到测试用例。
可选地,上述测试模块302还用于:利用第二属性获取待测数据对象的目标类型;对目标类型进行解析,得到第一解析结果;对第一解析结果进行反序列化,得到待测数据对象。
可选地,上述测试模块302还用于:在目标测试方法执行过程中,获取服务接口的返回值;对返回值进行解析,得到待测数据对象的测试值;对待测数据对象的测试值与预期数据对象的字段值进行断言,得到测试结果。
可选地,图6是根据本发明实施例的又一种可选的服务接口的自动化测试装置的结构框图,如图6所示,该装置除包括图5所示的所有模块外,还包括:生成模块305,用于响应于目标数据文件的路径为空,确定目标数据文件存在异常,生成目标数据文件的异常反馈信息。
可选地,图7是根据本发明实施例的又一种可选的服务接口的自动化测试装置的结构框图,如图7所示,该装置除包括图6所示的所有模块外,还包括:监听模块306,用于利用服务接口测试类调用目标监听器的监听接口,监听目标测试方法的执行过程;记录执行过程;响应于通过执行过程确定目标测试方法执行异常,利用预设异常解决办法对目标测试方法进行处理。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
在本实施例中,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行前述任意一项服务接口的自动化测试方法。
可选地,在本实施例中,上述存储介质可以被设置为用于执行以下步骤的程序:
步骤S1,利用服务接口测试类构建目标测试方法以及待测数据对象,其中,目标测试方法包括:目标注解,目标注解包括第一属性和第二属性,待测数据对象为服务接口的入参对象,第一属性用于获取目标数据文件的路径,目标数据文件包含服务接口的测试用例,第二属性用于获取待测数据对象的目标类型,目标类型由服务框架的序列化协议确定;
步骤S2,利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
在本实施例中,还提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行前述任意一项服务接口的自动化测试方法。
可选地,在本实施例中,上述处理器可以被设置为用于执行以下步骤的程序:
步骤S1,利用服务接口测试类构建目标测试方法以及待测数据对象,其中,目标测试方法包括:目标注解,目标注解包括第一属性和第二属性,待测数据对象为服务接口的入参对象,第一属性用于获取目标数据文件的路径,目标数据文件包含服务接口的测试用例,第二属性用于获取待测数据对象的目标类型,目标类型由服务框架的序列化协议确定;
步骤S2,利用目标测试方法对待测数据对象和测试用例进行测试,得到测试结果。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本发明所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种服务接口的自动化测试方法,其特征在于,包括:
利用服务接口测试类构建目标测试方法以及待测数据对象,其中,所述目标测试方法包括:目标注解,所述目标注解包括第一属性和第二属性,所述待测数据对象为服务接口的入参对象,所述第一属性用于获取目标数据文件的路径,所述目标数据文件包含所述服务接口的测试用例,所述第二属性用于获取所述待测数据对象的目标类型,所述目标类型由服务框架的序列化协议确定;
利用所述目标测试方法对所述待测数据对象和所述测试用例进行测试,得到测试结果。
2.根据权利要求1所述的自动化测试方法,其特征在于,还包括:
利用所述服务接口测试类调用预处理方法,对所述服务接口的测试环境进行预处理。
3.根据权利要求2所述的自动化测试方法,其特征在于,还包括:
确定所述目标测试方法是否包含所述目标注解;
响应于所述目标测试方法未包含所述目标注解,利用所述服务接口测试类为所述目标测试方法构建所述目标注解,得到更新后的目标测试方法。
4.根据权利要求1所述的自动化测试方法,其特征在于,利用所述目标测试方法对所述待测数据对象和所述测试用例进行测试,得到所述测试结果,包括:
利用预设反射方式获取所述目标注解的所述第一属性和所述第二属性;
基于所述第一属性,确定所述目标数据文件的所述测试用例;
基于所述第二属性,确定所述待测数据对象;
将所述测试用例和所述待测数据对象传递至所述目标测试方法,以执行所述目标测试方法,得到所述测试结果。
5.根据权利要求4所述的自动化测试方法,其特征在于,基于所述第一属性,确定所述目标数据文件的所述测试用例,包括:
利用所述第一属性获取所述目标数据文件的所述路径;
根据所述路径,读取所述目标数据文件;
对所述目标数据文件进行解析,得到所述测试用例。
6.根据权利要求4所述的自动化测试方法,其特征在于,基于所述第二属性,确定所述待测数据对象,包括:
利用所述第二属性获取所述待测数据对象的所述目标类型;
对所述目标类型进行解析,得到第一解析结果;
对所述第一解析结果进行反序列化,得到所述待测数据对象。
7.根据权利要求4所述的自动化测试方法,其特征在于,执行所述目标测试方法,得到所述测试结果,包括:
在所述目标测试方法执行过程中,获取服务接口的返回值;
对所述返回值进行解析,得到所述待测数据对象的测试值;
对所述待测数据对象的所述测试值与预期数据对象的字段值进行断言,得到所述测试结果。
8.根据权利要求1所述的自动化测试方法,其特征在于,还包括:
响应于所述目标数据文件的路径为空,确定所述目标数据文件存在异常,生成所述目标数据文件的异常反馈信息。
9.根据权利要求1所述的自动化测试方法,其特征在于,还包括:
利用所述服务接口测试类调用目标监听器的监听接口,监听所述目标测试方法的执行过程;
记录所述执行过程;
响应于通过所述执行过程确定所述目标测试方法执行异常,利用预设异常解决办法对所述目标测试方法进行处理。
10.一种服务接口的自动化测试装置,其特征在于,包括:
构建模块,用于利用服务接口测试类构建目标测试方法以及待测数据对象,其中,所述目标测试方法包括:目标注解,所述目标注解包括第一属性和第二属性,所述待测数据对象为服务接口的入参对象,所述第一属性用于获取目标数据文件的路径,所述目标数据文件包含所述服务接口的测试用例,所述第二属性用于获取所述待测数据对象的目标类型,所述目标类型由服务框架的序列化协议确定;
测试模块,用于利用所述目标测试方法对所述待测数据对象和所述测试用例进行测试,得到测试结果。
11.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至9中任意一项所述服务接口的自动化测试方法。
12.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至9中任意一项所述服务接口的自动化测试方法。
CN202311017101.5A 2023-08-11 2023-08-11 服务接口的自动化测试方法 Pending CN116955203A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311017101.5A CN116955203A (zh) 2023-08-11 2023-08-11 服务接口的自动化测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311017101.5A CN116955203A (zh) 2023-08-11 2023-08-11 服务接口的自动化测试方法

Publications (1)

Publication Number Publication Date
CN116955203A true CN116955203A (zh) 2023-10-27

Family

ID=88452985

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311017101.5A Pending CN116955203A (zh) 2023-08-11 2023-08-11 服务接口的自动化测试方法

Country Status (1)

Country Link
CN (1) CN116955203A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117234944A (zh) * 2023-11-09 2023-12-15 天津华来科技股份有限公司 一种基于pytest的接口自动化测试方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117234944A (zh) * 2023-11-09 2023-12-15 天津华来科技股份有限公司 一种基于pytest的接口自动化测试方法
CN117234944B (zh) * 2023-11-09 2024-01-30 天津华来科技股份有限公司 一种基于pytest的接口自动化测试方法

Similar Documents

Publication Publication Date Title
US11379348B2 (en) System and method for performing automated API tests
US7877732B2 (en) Efficient stress testing of a service oriented architecture based application
US9111019B2 (en) Modeling and testing interactions between components of a software system
US8612806B2 (en) Systems and methods for recording user interactions within a target application
US7739282B1 (en) Method and system for tracking client software use
US10540266B2 (en) Method and system for testing software based system
US8627302B2 (en) Sampling based runtime optimizer for efficient debugging of applications
US20050055688A1 (en) Integrated rapid install system for generic software images
US20080320071A1 (en) Method, apparatus and program product for creating a test framework for testing operating system components in a cluster system
JP2006018827A (ja) スマート・ユーザ・インターフェース記録および再生フレームワーク
CN110765018B (zh) 接口自动化测试方法及设备
US20090193397A1 (en) Method and apparatus for facilitating diagnostic logging for software components
CN113760704A (zh) Web UI的测试方法、装置、设备以及存储介质
CN112241360A (zh) 一种测试用例生成方法、装置、设备及存储介质
CN116955203A (zh) 服务接口的自动化测试方法
CN113535326A (zh) 一种基于高通量测序数据的计算流程调度系统
CN117370203A (zh) 自动化测试方法、系统、电子设备及存储介质
CN112650688A (zh) 自动化回归测试方法、关联设备以及计算机程序产品
CN116010244A (zh) 自动化测试方法、装置、电子设备及存储介质
US20050034120A1 (en) Systems and methods for cooperatively building public file packages
CN111813662A (zh) 用户行为驱动的可持续集成的测试方法、装置和设备
CN110908918A (zh) 针对多个相互依赖的node.js模块的单元测试方法及装置
CN113467975B (zh) 一种解耦的程序开发方法及系统
CN115708070A (zh) 一种接口自动化测试方法及装置
US20060004535A1 (en) Creation and storage of simulated application-instrument communications

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination