CN116680171B - 测试方法、装置、存储介质及电子设备 - Google Patents

测试方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN116680171B
CN116680171B CN202310582369.7A CN202310582369A CN116680171B CN 116680171 B CN116680171 B CN 116680171B CN 202310582369 A CN202310582369 A CN 202310582369A CN 116680171 B CN116680171 B CN 116680171B
Authority
CN
China
Prior art keywords
information
interface
http
target
class
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.)
Active
Application number
CN202310582369.7A
Other languages
English (en)
Other versions
CN116680171A (zh
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.)
Qianhai Feisuan Yunzhi Software Technology Shenzhen Co ltd
Original Assignee
Qianhai Feisuan Yunzhi Software Technology Shenzhen Co 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 Qianhai Feisuan Yunzhi Software Technology Shenzhen Co ltd filed Critical Qianhai Feisuan Yunzhi Software Technology Shenzhen Co ltd
Priority to CN202310582369.7A priority Critical patent/CN116680171B/zh
Publication of CN116680171A publication Critical patent/CN116680171A/zh
Application granted granted Critical
Publication of CN116680171B publication Critical patent/CN116680171B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/368Test management for test version control, e.g. updating test cases to a new software version
    • 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

本公开涉及一种测试方法、装置、存储介质及电子设备,以根据代码自动化生成HTTP测试脚本,并进行根据生成的HTTP测试脚本进行业务测试。该测试方法包括:获取业务系统中待测试的分支代码;确定所述分支代码对应的HTTP接口的接口信息,所述接口信息包括所述HTTP接口的基本信息、入参信息、出参信息以及注解配置信息;基于所述HTTP接口的接口信息生成测试脚本;根据所述测试脚本对所述业务系统进行业务测试。

Description

测试方法、装置、存储介质及电子设备
技术领域
本公开涉及计算机技术领域,具体地,涉及一种测试方法、装置、存储介质及电子设备。
背景技术
随着微服务的发展,各类业务系统的软件版本的迭代速度越来越快,周期越来越短,在新版本发布前,都需要进行测试,测试人员在测试每个软件版本时,都需要了解该版本功能的变更,尤其需要了解该版本接口的变更情况,以便准备相应的测试用例和测试脚本。
发明内容
本公开的目的是提供一种测试方法、装置、存储介质及电子设备,以解决现有技术中的技术问题。
根据本公开第一方面,提供一种测试方法,包括:
获取业务系统中待测试的分支代码;
确定所述分支代码对应的HTTP接口的接口信息,所述接口信息包括所述HTTP接口的基本信息、入参信息、出参信息以及注解配置信息;
基于所述HTTP接口的接口信息生成测试脚本;
根据所述测试脚本对所述业务系统进行业务测试。
可选地,所述确定所述分支代码对应的HTTP接口的接口信息,包括:
基于JAVAPARSER工具库中的API接口,对所述分支代码进行解析,得到所述待测试的分支代码的抽象语法树,所述抽象语法树包含所述分支代码的代码数据结构;
对所述抽象语法树进行语法树分析,确定所述分支代码对应的HTTP接口的接口信息。
可选地,所述对所述抽象语法树进行语法树分析,确定所述分支代码对应的HTTP接口的接口信息,包括:
基于所述JAVAPARSER工具库中的VoidVisitorAdapter访问者模式,从所述抽象语法树中获取所述分支代码包括的目标类的类信息,所述类信息包括所述目标类的类名和第一关键字注解信息;
根据所述目标类的类信息,确定所述目标类包括的目标类方法的方法信息,所述方法信息包括所述目标类方法的方法名、方法参数以及第二关键字注解信息;
基于SpringBoot框架,在所述第一关键字注解信息和所述第二关键字注解信息中确定属于HTTP接口的关键字注解信息类型的目标关键字注解信息;
根据所述目标关键字注解信息,确定所述分支代码对应的HTTP接口的接口信息。
可选地,所述根据所述目标关键字注解信息,确定所述分支代码对应的HTTP接口的接口信息,包括:
获取预设的数据库,所述数据库预存有多组HTTP接口与目标关键字注解信息的对应关系;
基于所述数据库,根据所述目标关键字注解信息进行查询,将所述目标关键字注解信息对应的HTTP接口确定为所述分支代码对应的HTTP接口;
根据所述类信息和所述方法信息,确定所述分支代码对应的HTTP接口的接口信息。
可选地,所述基于所述HTTP接口的接口信息生成所述业务系统的测试脚本,包括:
根据所述HTTP接口的接口信息,确定目标转换规则;
通过所述目标转换规则,对所述HTTP接口的接口信息进行转换,以生成所述业务系统的测试脚本。
可选地,在所述确定所述分支代码对应的HTTP接口的接口信息之前,还包括:
确定所述待测试的分支代码未发生改变。
根据本公开第二方面,提供一种测试装置,包括:
获取模块,用于获取业务系统中待测试的分支代码;
确定模块,用于确定所述分支代码对应的HTTP接口的接口信息,所述接口信息包括所述HTTP接口的基本信息、入参信息、出参信息以及注解配置信息;
生成模块,用于基于所述HTTP接口的接口信息生成测试脚本;
测试模块,用于根据所述测试脚本对所述业务系统进行业务测试。
可选地,所述确定模块用于:
基于JAVAPARSER工具库中的API接口,对所述分支代码进行解析,得到所述待测试的分支代码的抽象语法树,所述抽象语法树包含所述分支代码的代码数据结构;
对所述抽象语法树进行语法树分析,确定所述分支代码对应的HTTP接口的接口信息。
根据本公开第三方面,提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述方法的步骤。
根据本公开第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现第一方面所述方法的步骤。
通过上述技术方案,通过获取业务系统中待测试的分支代码,然后确定包括支代码对应的HTTP接口的基本信息、入参信息、出参信息以及注解配置信息在内的接口信息,并基于HTTP接口的接口信息生成测试脚本,最后,根据测试脚本对业务系统中进行业务测试业务系统进行业务测试。如此,可以根据业务系统的源代码自动化生成HTTP测试脚本,并进行根据生成的HTTP测试脚本进行业务测试,提高了HTTP测试脚本的生成效率和测试脚本的准确性,进而提高业务系统的测试效率和准确率。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种测试方法的流程图。
图2是根据另一示例性实施例示出的一种测试方法的流程图。
图3是根据一示例性实施例示出的一种在测试装置的框图。
图4是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
首先应当理解的是,Jmeter工具是当前较为流行的一款开源的接口测试工具,广泛应用于各类服务器、软件系统、软件接口等的性能测试中。测试脚本是接口测试的基础,完整的Jmeter脚本应至少包括测试计划、线程组、外部参数化文件、HTTP请求、请求响应读取、结果报告等内容。同时由于测试需求的多样性及多变性,测试脚本也会随之发生更改。
相关技术中,接口自动化测试脚本的编制通常由测试人员手工编制,由于测试人员的经验和技术能力等存在差异,加之Jmeter工具及脚本中有大量不易掌握的专业术语和技巧,因此手工编写的Jmeter脚本在实际执行接口自动化测试时往往存在诸多错误,进而导致效率低下甚至无法完成预期的测试。且由测试人员手工维护测试用例和测试脚本的方式效率较低也容易出错。
有鉴于此,本公开提供一种测试方法、装置、存储介质及电子设备,以解决上述技术问题。
图1是根据一示例性实施例示出的一种测试方法的流程图。如图1所示,该测试方法可以包括以下步骤:
步骤S11,获取业务系统中待测试的分支代码;
步骤S12,确定分支代码对应的HTTP接口的接口信息,接口信息包括HTTP接口的基本信息、入参信息、出参信息以及注解配置信息;
步骤S13,基于HTTP接口的接口信息生成测试脚本;
步骤S14,根据测试脚本对业务系统进行业务测试。
通过上述技术方案,通过获取业务系统中待测试的分支代码,然后确定包括支代码对应的HTTP接口的基本信息、入参信息、出参信息以及注解配置信息在内的接口信息,并基于HTTP接口的接口信息生成测试脚本,最后,根据测试脚本对业务系统进行业务测试。如此,可以根据业务系统的源代码自动化生成HTTP测试脚本,并进行根据生成的HTTP测试脚本进行业务测试,提高了HTTP测试脚本的生成效率和测试脚本的准确性,进而提高业务系统的测试效率和准确率。
在可能的方式中,确定分支代码对应的HTTP接口的接口信息可以是:
基于JAVAPARSER工具库中的API接口,对分支代码进行解析,得到待测试的分支代码的抽象语法树,抽象语法树包含分支代码的代码数据结构;
对抽象语法树进行语法树分析,确定分支代码对应的HTTP接口的接口信息。
应当理解的是,AST(Abstract Syntax Tree,抽象语法树)是一种数据结构,代表了一种编程语言的抽象语法,通常在编译器中用来解析源代码和生成机器代码。在Java中,AST通常由一个解析器创建,该解析器读取源代码并创建一个树状结构,代表代码的语法和结构。树中的每个节点都代表一个不同的语法结构,比如类、方法或语句等。
示例地,可以使用开源框架JAVAPARSER工具库中的API接口对获取到的源代码进行解析,得到包括源代码的代码数据结构的抽象语法树,其中,抽象语法树中包括源代码的语法结构,比如类、方法或语句等。然后对抽象语法树进行语法树分析,确定分支代码对应的HTTP接口的接口信息。当然,也可以采用其他方式获取待测试的分支代码的抽象语法树,还可以采用其他方式确定源代码的语法结构,本公开实施例对此不作具体限定。
在可能的方式中,对抽象语法树进行语法树分析,确定分支代码对应的HTTP接口的接口信息可以是:
基于JAVAPARSER工具库中的VoidVisitorAdapter访问者模式,从抽象语法树中获取分支代码包括的目标类的类信息,类信息包括目标类的类名和第一关键字注解信息;
根据目标类的类信息,确定目标类包括的目标类方法的方法信息,方法信息包括目标类方法的方法名、方法参数以及第二关键字注解信息;
基于SpringBoot框架,在第一关键字注解信息和第二关键字注解信息中确定属于HTTP接口的关键字注解信息类型的目标关键字注解信息;
根据目标关键字注解信息,确定分支代码对应的HTTP接口的接口信息。
应当理解的是,VoidVisitorAdapter访问者模式是一种将数据结构和数据操作分离的设计模式,指封装一些作用于某种数据结构中的各种元素的操作,访问者模式可以在不改变数据结构的前提下定义作用于这些元素的新操作。访问者模式的基本思想是针对系统中拥有的某些固定类型的对象结构或元素,在其内部提供一个accept()方法用来接受访问者对象的访问。由于不同的访问者对同一元素的访问内容不同,使得相同的元素可以产生不同的元素结果。即不同的访问者可以访问同一个对象里面的不同属性,以得到不同的访问结果。
因此,可以基于JAVAPARSER工具库中的VoidVisitorAdapter访问者模式,从抽象语法树中获取分支代码中的目标类的包括类名和第一关键字注解信息的类信息,然后根据获取到的类信息,确定目标类包括的目标类方法的方法信息,其中,方法信息包括目标类方法的方法名、方法参数以及第二关键字注解信息。
比如可以通过以下代码实现:
示例地,上述关键字注解信息可以是swagger注解信息,例如可以包括以下注解信息:
@API:请求类的说明;
@ApiOperation:方法的说明;
@ApiImplicitParams,@ApiImplicitParam:方法参数的说明;
@ApiResponses,@ApiResponse:方法返回值的说明;
@ApiModel:用于JavaBean上面,表示一个JavaBean(如:响应数据)的信息;
@ApiModelProperty:用在JavaBean类的属性上面,说明属性的含义。
应当说明的是,获取的分支代码包括第一关键字注解信息和第二关键字注解信息,第一关键字注解信息和第二关键字注解信息中包括属于HTTP接口的关键字注解信息类型的关键字注解信息,以及其他类型的关键字注解信息,而SpringBoot框架则包括多种关键字注解。因此,可以基于SpringBoot框架,将第一关键字注解信息和第二关键字注解信息与SpringBoot框架包括的多种关键字注解进行比对,以确定第一关键字注解信息和第二关键字注解信息中包括的属于HTTP接口的关键字注解信息类型的目标关键字注解信息,例如@GetMapping、@PostMapping、@DeleteMapping、@PutMapping,最后根据目标关键字注解信息,确定分支代码对应的HTTP接口的接口信息。
当然,也可以通过其他方式确定第一关键字注解信息和第二关键字注解信息中包括属于HTTP接口的关键字注解信息类型的目标关键字注解信息,还可以基于其他开源框架确定目标关键字注解信息,本公开实施例对此不作具体限定。
在可能的方式中,根据目标关键字注解信息,确定分支代码对应的HTTP接口的接口信息可以是:
获取预设的数据库,数据库预存有多组HTTP接口与目标关键字注解信息的对应关系;
基于数据库,根据目标关键字注解信息进行查询,将目标关键字注解信息对应的HTTP接口确定为分支代码对应的HTTP接口;
根据类信息和方法信息,确定分支代码对应的HTTP接口的接口信息。
示例地,在获取到分支代码中的属于HTTP接口的关键字注解信息类型的目标关键字注解信息后,可以根据目标关键字注解信息定位分支代码中的HTTP接口。因此,可以根据目标关键字注解信息在预设的数据库中进行查询匹配,基于数据库预存的多组HTTP接口与目标关键字注解信息的对应关系,确定目标关键字注解信息对应的HTTP接口,即为分支代码对应的HTTP接口,然后再根据从抽象语法树中获取的类信息和方法信息,确定分支代码对应的HTTP接口的接口信息。本公开实施例对数据库的其他存储内容及数据存储方式均不作具体限定。
在可能的方式中,基于HTTP接口的接口信息生成业务系统的测试脚本可以是:
根据HTTP接口的接口信息,确定目标转换规则;
通过目标转换规则,对HTTP接口的接口信息进行转换,以生成业务系统的测试脚本。
应当理解的是,由于针对不同的HTTP接口以及不同类型、不同复杂程度的源代码,对HTTP接口的接口信息进行转换生成测试脚本的方式存在差异。因此,为了提高转换接口信息,生成测试脚本的效率,本公开提供多种转换规则,在获取HTTP接口的接口信息后,可以根据HTTP接口的接口信息,确定目标转换规则,并通过目标转换规则,对HTTP接口的接口信息进行转换,以生成业务系统的测试脚本。本公开实施例对转换规则的具体内容,以及基于接口信息确定目标转换规则的方式均不作限定。
在另一种可能的方式中,在确定分支代码对应的HTTP接口的接口信息之前,还可以确定待测试的分支代码未发生改变。
示例地,在获取业务系统中待测试的分支代码后,可以将本次获取的分支代码与上一次获取的分支代码或预存的分支代码进行比对,判断待测试的分支代码是否发生改变,在待测试的分支代码未发生改变的情况下,则可以直接根据本次获取的分支代码确定对应的HTTP接口的接口信息。在待测试的分支代码发生改变的情况下,则可以根据重新获取测试需求,并根据重新获取的测试需求和发生改变后的分支代码确定对应的HTTP接口的接口信息。本公开实施例对判断待测试的分支代码是否发生改变的方法不作限定。
图2是根据一示例性实施例示出的一种测试方法的流程图。如图2所示,该测试方法可以包括以下步骤:
步骤S201,获取业务系统中待测试的分支代码。
步骤S202,确定待测试的分支代码未发生改变。
步骤S203,基于JAVAPARSER工具库中的API接口,对分支代码进行解析,得到待测试的分支代码的抽象语法树,抽象语法树包含分支代码的代码数据结构。
步骤S204,基于JAVAPARSER工具库中的VoidVisitorAdapter访问者模式,从抽象语法树中获取分支代码包括的目标类的类信息,类信息包括目标类的类名和第一关键字注解信息。
步骤S205,根据目标类的类信息,确定目标类包括的目标类方法的方法信息,方法信息包括目标类方法的方法名、方法参数以及第二关键字注解信息。
步骤S206,基于SpringBoot框架,在第一关键字注解信息和第二关键字注解信息中确定属于HTTP接口的关键字注解信息类型的目标关键字注解信息。
步骤S207,获取预设的数据库,数据库预存有多组HTTP接口与目标关键字注解信息的对应关系。
步骤S208,基于数据库,根据目标关键字注解信息进行查询,将目标关键字注解信息对应的HTTP接口确定为分支代码对应的HTTP接口。
步骤S209,根据类信息和方法信息,确定分支代码对应的HTTP接口的接口信息。其中,接口信息包括HTTP接口的基本信息、入参信息、出参信息以及注解配置信息。
步骤S210,根据HTTP接口的接口信息,确定目标转换规则。
步骤S211,通过目标转换规则,对HTTP接口的接口信息进行转换,以生成业务系统的测试脚本。
步骤S212,根据测试脚本对业务系统进行业务测试。
通过上述技术方案,通过获取业务系统中待测试的分支代码,然后基于JAVAPARSER工具库中的API接口,对分支代码进行解析,得到待测试的分支代码的抽象语法树,并基于JAVAPARSER工具库中的VoidVisitorAdapter访问者模式,获取分支代码包括的目标类的类信息类方法信息,然后再基于SpringBoot框架机型扫描匹配,以确定支代码对应的HTTP接口的基本信息、入参信息、出参信息以及注解配置信息在内的接口信息,并基于HTTP接口的接口信息生成测试脚本,最后,根据测试脚本对业务系统进行业务测试。如此,可以根据业务系统的源代码自动化生成HTTP测试脚本,并进行根据生成的HTTP测试脚本进行业务测试,提高了HTTP测试脚本的生成效率和测试脚本的准确性,进而提高业务系统的测试效率和准确率。
图3是根据一示例性实施例示出的一种在测试装置的框图。如图3所示,该测试装置300包括获取模块301、确定模块302、生成模块303以及测试模块304。
获取模块301,用于获取业务系统中待测试的分支代码;
确定模块302,用于确定所述分支代码对应的HTTP接口的接口信息,所述接口信息包括所述HTTP接口的基本信息、入参信息、出参信息以及注解配置信息;
生成模块303,用于基于所述HTTP接口的接口信息生成测试脚本;
测试模块304,用于根据所述测试脚本对所述业务系统进行业务测试。
可选地,所述确定模块302用于:
基于JAVAPARSER工具库中的API接口,对所述分支代码进行解析,得到所述待测试的分支代码的抽象语法树,所述抽象语法树包含所述分支代码的代码数据结构;
对所述抽象语法树进行语法树分析,确定所述分支代码对应的HTTP接口的接口信息。
可选地,所述确定模块302用于:
基于所述JAVAPARSER工具库中的VoidVisitorAdapter访问者模式,从所述抽象语法树中获取所述分支代码包括的目标类的类信息,所述类信息包括所述目标类的类名和第一关键字注解信息;
根据所述目标类的类信息,确定所述目标类包括的目标类方法的方法信息,所述方法信息包括所述目标类方法的方法名、方法参数以及第二关键字注解信息;
基于SpringBoot框架,在所述第一关键字注解信息和所述第二关键字注解信息中确定属于HTTP接口的关键字注解信息类型的目标关键字注解信息;
根据所述目标关键字注解信息,确定所述分支代码对应的HTTP接口的接口信息。
可选地,所述确定模块302用于:
获取预设的数据库,所述数据库预存有多组HTTP接口与目标关键字注解信息的对应关系;
基于所述数据库,根据所述目标关键字注解信息进行查询,将所述目标关键字注解信息对应的HTTP接口确定为所述分支代码对应的HTTP接口;
根据所述类信息和所述方法信息,确定所述分支代码对应的HTTP接口的接口信息。
所述生成模块303用于:
根据所述HTTP接口的接口信息,确定目标转换规则;
通过所述目标转换规则,对所述HTTP接口的接口信息进行转换,以生成所述业务系统的测试脚本。
可选地,所述测试装置300还包括确定子模块,所述确定子模块用于:
在所述确定所述分支代码对应的HTTP接口的接口信息之前,确定所述待测试的分支代码未发生改变。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开提供的测试方法的步骤。
本公开还提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行存储器中的计算机程序,以实现本公开提供的测试方法的步骤。
图4是根据一示例性实施例示出的一种电子设备的框图。如图4所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(I/O)接口704,以及通信组件705中的一者或多者。
其中,处理器701用于控制该电子设备700的整体操作,以完成上述的存储方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G、4G、NB-IOT、eMTC、或其他5G等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:Wi-Fi模块,蓝牙模块,NFC模块等等。
在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的测试方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的测试方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的测试方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的测试方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

Claims (6)

1.一种测试方法,其特征在于,包括:
获取业务系统中待测试的分支代码;
确定所述分支代码对应的HTTP接口的接口信息,所述接口信息包括所述HTTP接口的基本信息、入参信息、出参信息以及注解配置信息;
基于所述HTTP接口的接口信息生成测试脚本;
根据所述测试脚本对所述业务系统进行业务测试;
所述确定所述分支代码对应的HTTP接口的接口信息,包括:
基于JAVAPARSER工具库中的API接口,对所述分支代码进行解析,得到所述待测试的分支代码的抽象语法树,所述抽象语法树包含所述分支代码的代码数据结构;
基于所述JAVAPARSER工具库中的VoidVisitorAdapter访问者模式,从所述抽象语法树中获取所述分支代码包括的目标类的类信息,所述类信息包括所述目标类的类名和第一关键字注解信息,所述VoidVisitorAdapter访问者模式是一种将数据结构和数据操作分离的设计模式;
根据所述目标类的类信息,确定所述目标类包括的目标类方法的方法信息,所述方法信息包括所述目标类方法的方法名、方法参数以及第二关键字注解信息;
基于SpringBoot框架,在所述第一关键字注解信息和所述第二关键字注解信息中确定属于HTTP接口的关键字注解信息类型的目标关键字注解信息;
根据所述目标关键字注解信息,确定所述分支代码对应的HTTP接口的接口信息;
所述根据所述目标关键字注解信息,确定所述分支代码对应的HTTP接口的接口信息,包括:
获取预设的数据库,所述数据库预存有多组HTTP接口与目标关键字注解信息的对应关系;
基于所述数据库,根据所述目标关键字注解信息进行查询,将所述目标关键字注解信息对应的HTTP接口确定为所述分支代码对应的HTTP接口;
根据所述类信息和所述方法信息,确定所述分支代码对应的HTTP接口的接口信息。
2.根据权利要求1所述的方法,其特征在于,所述基于所述HTTP接口的接口信息生成所述业务系统的测试脚本,包括:
根据所述HTTP接口的接口信息,确定目标转换规则;
通过所述目标转换规则,对所述HTTP接口的接口信息进行转换,以生成所述业务系统的测试脚本。
3.根据权利要求1所述的方法,其特征在于,在所述确定所述分支代码对应的HTTP接口的接口信息之前,还包括:
确定所述待测试的分支代码未发生改变。
4.一种测试装置,其特征在于,包括:
获取模块,用于获取业务系统中待测试的分支代码;
确定模块,用于确定所述分支代码对应的HTTP接口的接口信息,所述接口信息包括所述HTTP接口的基本信息、入参信息、出参信息以及注解配置信息;基于JAVAPARSER工具库中的API接口,对所述分支代码进行解析,得到所述待测试的分支代码的抽象语法树,所述抽象语法树包含所述分支代码的代码数据结构;基于所述JAVAPARSER工具库中的VoidVisitorAdapter访问者模式,从所述抽象语法树中获取所述分支代码包括的目标类的类信息,所述类信息包括所述目标类的类名和第一关键字注解信息,所述VoidVisitorAdapter访问者模式是一种将数据结构和数据操作分离的设计模式;根据所述目标类的类信息,确定所述目标类包括的目标类方法的方法信息,所述方法信息包括所述目标类方法的方法名、方法参数以及第二关键字注解信息;基于SpringBoot框架,在所述第一关键字注解信息和所述第二关键字注解信息中确定属于HTTP接口的关键字注解信息类型的目标关键字注解信息;根据所述目标关键字注解信息,确定所述分支代码对应的HTTP接口的接口信息;获取预设的数据库,所述数据库预存有多组HTTP接口与目标关键字注解信息的对应关系;基于所述数据库,根据所述目标关键字注解信息进行查询,将所述目标关键字注解信息对应的HTTP接口确定为所述分支代码对应的HTTP接口;根据所述类信息和所述方法信息,确定所述分支代码对应的HTTP接口的接口信息;
生成模块,用于基于所述HTTP接口的接口信息生成测试脚本;
测试模块,用于根据所述测试脚本对所述业务系统进行业务测试。
5.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-3中任一项所述方法的步骤。
6.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-3中任一项所述方法的步骤。
CN202310582369.7A 2023-05-22 2023-05-22 测试方法、装置、存储介质及电子设备 Active CN116680171B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310582369.7A CN116680171B (zh) 2023-05-22 2023-05-22 测试方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310582369.7A CN116680171B (zh) 2023-05-22 2023-05-22 测试方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN116680171A CN116680171A (zh) 2023-09-01
CN116680171B true CN116680171B (zh) 2024-03-08

Family

ID=87781660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310582369.7A Active CN116680171B (zh) 2023-05-22 2023-05-22 测试方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN116680171B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8028276B1 (en) * 2007-06-29 2011-09-27 Oracle America, Inc. Method and system for generating a test file
CN111190807A (zh) * 2018-11-14 2020-05-22 杭州萤石软件有限公司 一种埋点测试方法及设备
CN111782526A (zh) * 2020-06-30 2020-10-16 北京同邦卓益科技有限公司 一种接口测试方法、装置、电子设备及存储介质
CN113268265A (zh) * 2021-06-18 2021-08-17 深圳前海微众银行股份有限公司 字典数据提取方法、装置、设备及存储介质
CN113326208A (zh) * 2021-08-03 2021-08-31 深圳市维度数据科技股份有限公司 接口测试方法及设备
CN113505068A (zh) * 2021-07-09 2021-10-15 杭州遥望网络科技有限公司 一种http接口自动化测试方法、装置、设备及存储介质
CN113778848A (zh) * 2021-01-29 2021-12-10 北京沃东天骏信息技术有限公司 测试代码生成方法、装置、计算机系统及介质
CN114546879A (zh) * 2022-03-17 2022-05-27 南京大学 一种面向随机测试生成工具的冗余检测与去除方法
WO2022134915A1 (zh) * 2020-12-25 2022-06-30 中兴通讯股份有限公司 一种接口测试方法、计算机设备及计算机可读存储介质
CN115470152A (zh) * 2022-11-02 2022-12-13 平安银行股份有限公司 测试代码生成方法、测试代码生成装置以及存储介质
CN115904989A (zh) * 2022-12-05 2023-04-04 中信银行股份有限公司 一种接口测试方法、装置、设备及可读存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8028276B1 (en) * 2007-06-29 2011-09-27 Oracle America, Inc. Method and system for generating a test file
CN111190807A (zh) * 2018-11-14 2020-05-22 杭州萤石软件有限公司 一种埋点测试方法及设备
CN111782526A (zh) * 2020-06-30 2020-10-16 北京同邦卓益科技有限公司 一种接口测试方法、装置、电子设备及存储介质
WO2022134915A1 (zh) * 2020-12-25 2022-06-30 中兴通讯股份有限公司 一种接口测试方法、计算机设备及计算机可读存储介质
CN113778848A (zh) * 2021-01-29 2021-12-10 北京沃东天骏信息技术有限公司 测试代码生成方法、装置、计算机系统及介质
CN113268265A (zh) * 2021-06-18 2021-08-17 深圳前海微众银行股份有限公司 字典数据提取方法、装置、设备及存储介质
CN113505068A (zh) * 2021-07-09 2021-10-15 杭州遥望网络科技有限公司 一种http接口自动化测试方法、装置、设备及存储介质
CN113326208A (zh) * 2021-08-03 2021-08-31 深圳市维度数据科技股份有限公司 接口测试方法及设备
CN114546879A (zh) * 2022-03-17 2022-05-27 南京大学 一种面向随机测试生成工具的冗余检测与去除方法
CN115470152A (zh) * 2022-11-02 2022-12-13 平安银行股份有限公司 测试代码生成方法、测试代码生成装置以及存储介质
CN115904989A (zh) * 2022-12-05 2023-04-04 中信银行股份有限公司 一种接口测试方法、装置、设备及可读存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Automatic Generation of Effective Unit Tests based on Code Behaviour;Andrea Fornaia等;《2020 IEEE 29th International Conference on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE)》;20210201;213-218 *
一种基于对象序列图的组件交互协议设计方法;魏俊 等;《软件学报》;20070731(第07期);996-1006 *
基于低代码开发范式的Web Service生成方法;朱绍宏 等;《广西师范大学学报(自然科学版)》;20220630;第40卷(第06期);82-97 *

Also Published As

Publication number Publication date
CN116680171A (zh) 2023-09-01

Similar Documents

Publication Publication Date Title
CN108427646B (zh) 基于Appium的安卓App自动化测试框架构建方法和装置
CN111026645B (zh) 用户界面自动化测试方法、装置、存储介质及电子设备
CN112765023B (zh) 测试用例生成方法、装置
US10977161B2 (en) Automatic intelligent cloud service testing tool
CN111309317A (zh) 一种实现数据可视化的代码自动化方法和装置
CN111814449B (zh) 表单解析方法、装置、设备及存储介质
CN111181805A (zh) 一种基于测试用例的微服务测试挡板生成方法及系统
CN115904989A (zh) 一种接口测试方法、装置、设备及可读存储介质
CN111580821B (zh) 脚本绑定方法、装置、电子设备及计算机可读存储介质
CN114238151A (zh) 一种软件测试方法、装置、电子设备及存储介质
CN113778897A (zh) 接口的自动测试方法、装置、设备及存储介质
CN117493188A (zh) 接口测试方法及装置、电子设备及存储介质
CN112286784B (zh) 一种测试用例生成方法、装置、服务器及存储介质
CN116680171B (zh) 测试方法、装置、存储介质及电子设备
CN117407312A (zh) 应用测试方法、装置、计算机设备及存储介质
CN113886221B (zh) 测试脚本生成方法、装置、存储介质及电子设备
CN115268861B (zh) 自定义组件的引入方法、系统、设备和存储介质
CN111078529A (zh) 客户端写入模块测试方法、装置、电子设备
CN113821496B (zh) 数据库迁移方法、系统、设备及计算机可读存储介质
CN116069324A (zh) 一种基于Vue的动态表单构建方法及装置
US8954307B1 (en) Chained programming language preprocessors for circuit simulation
CN115495362A (zh) 生成测试代码的方法、装置、存储介质及计算机设备
CN115292178A (zh) 测试数据搜索方法、装置、存储介质以及终端
CN111736924A (zh) 基于Lua脚本接入数采仪的方法、装置、设备及介质
CN111339035A (zh) 一种目标数据的查询方法、装置、计算机设备和存储介质

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
GR01 Patent grant
GR01 Patent grant