CN117827630A - 一种测试脚本的生成方法和装置 - Google Patents

一种测试脚本的生成方法和装置 Download PDF

Info

Publication number
CN117827630A
CN117827630A CN202211202512.7A CN202211202512A CN117827630A CN 117827630 A CN117827630 A CN 117827630A CN 202211202512 A CN202211202512 A CN 202211202512A CN 117827630 A CN117827630 A CN 117827630A
Authority
CN
China
Prior art keywords
test
interface
script
generating
tested
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
CN202211202512.7A
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.)
Beijing Jingdong Zhenshi Information Technology Co Ltd
Original Assignee
Beijing Jingdong Zhenshi Information Technology 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 Beijing Jingdong Zhenshi Information Technology Co Ltd filed Critical Beijing Jingdong Zhenshi Information Technology Co Ltd
Priority to CN202211202512.7A priority Critical patent/CN117827630A/zh
Publication of CN117827630A publication Critical patent/CN117827630A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种测试脚本的生成方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取待测试的第一对象,所述第一对象为jsf接口、MQ队列或定时任务;利用预设脚本对所述第一对象进行编译,以将所述第一对象封装为接口类型的第二对象;确定出所述第二对象对应的测试接口、以及与所述测试接口对应的调用方法;根据所述调用方法的入参以及预设的测试模板生成与所述测试接口对应的测试脚本,以利用所述测试脚本对所述第二对象进行测试。该实施方式通过对待测试对象进行编译,并在编译过程中执行预设的脚本,以将第一对象封装为接口类型的第二对象,进而可以同时对jsf接口、MQ队列、定时任务三种待测试的第一对象进行测试。

Description

一种测试脚本的生成方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种测试脚本的生成方法和装置。
背景技术
在现有的接口测试过程中,可以通过手动编写代码或者利用自动化测试工具进行简单接口的测试,当利用自动化测试工具例如swagger和postman进行测试时,无法对MQ消息队列以及定时任务等消息中间件进行测试,测试范围受限。同时在面对不同的业务场景时,需要研发人员手动进行业务场景的参数配置,无法支持自动化的业务场景测试过程。
发明内容
有鉴于此,本发明实施例提供一种测试脚本的生成方法和装置,通过对待测试对象进行编译,并在编译过程中执行预设的脚本,以将第一对象封装为接口类型的第二对象,进而可以同时对jsf接口、MQ队列、定时任务三种待测试的第一对象进行测试。在封装成为第二对象后,通过确定出第二对象对应的测试接口、以及与所述测试接口对应的调用方法,进而自动化生成对应的测试脚本,以利用测试脚本对第二对象进行测试。
为实现上述目的,根据本发明实施例的一个方面,提供了一种测试脚本的生成方法。
本发明实施例的一种测试脚本的生成方法包括:获取待测试的第一对象,所述第一对象为jsf接口、MQ队列或定时任务;利用预设脚本对所述第一对象进行编译,以将所述第一对象封装为接口类型的第二对象;确定出所述第二对象对应的测试接口、以及与所述测试接口对应的调用方法;根据所述调用方法的入参以及预设的测试模板生成与所述测试接口对应的测试脚本,以利用所述测试脚本对所述第二对象进行测试。
可选地,所述测试模板为多个,各个测试模板对应于不同的测试功能;所述根据所述入参以及所述测试模板生成与所述测试接口对应的测试脚本,包括:分别将所述入参输入具备不同测试功能的多个测试模板,得到与每个所述测试模板分别对应的测试脚本。
可选地,所述第二对象对应于多个测试接口;获取测试框架,并从所述测试框架中确定与所述测试接口对应的历史测试接口,以及不存在对应历史测试接口的目标测试接口;根据所述目标测试接口对应的目标测试脚本对所述目标测试接口进行测试;根据所述目标测试接口的测试结果以及所述历史测试接口的测试结果,确定所述第二对象的测试结果。
可选地,在所述根据所述调用方法的入参以及预设的测试模板生成与所述测试接口对应的测试脚本之后,还包括:将所述目标测试接口以及与所述目标测试接口对应的测试脚本存储至所述测试框架中。
可选地,所述获取待测试的第一对象,包括:实时监听所述测试框架对应的代码仓库;当监听到所述代码仓库存在新的测试代码时,从所述测试代码中获取所述待测试的第一对象。
可选地,该方法还包括:根据业务场景和所述入参,衍生出与所述业务场景对应的场景入参;根据所述场景入参以及具备场景测试功能的测试模板,生成在所述业务场景下与所述测试接口对应的测试脚本。
可选地,该方法还包括:确定与所述调用方法对应的一个或多个入参的类型;将所述入参的类型输入随机对象生成器,生成与一个或多个所述类型对应的入参。
可选地,将所述入参的格式由json格式转换为yaml格式。
为实现上述目的,根据本发明实施例的又一方面,提供了一种测试脚本的生成装置。
本发明实施例的一种测试脚本的生成装置包括:获取模块,用于获取待测试的第一对象,所述第一对象为jsf接口、MQ队列或定时任务;封装模块,用于利用预设脚本对所述第一对象进行编译,以将所述第一对象封装为接口类型的第二对象;确定模块,用于确定出所述第二对象对应的测试接口、以及与所述测试接口对应的调用方法;生成模块,用于根据所述调用方法的入参以及预设的测试模板生成与所述测试接口对应的测试脚本,以利用所述测试脚本对所述第二对象进行测试。
为实现上述目的,根据本发明实施例的又一方面,提供了一种生成测试脚本的电子设备。
本发明实施例的一种生成测试脚本的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种测试脚本的生成方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读存储介质。
本发明实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种测试脚本的生成方法。
上述发明中的一个实施例具有如下优点或有益效果:通过对待测试对象进行编译,并在编译过程中执行预设的脚本,以将第一对象封装为接口类型的第二对象,进而可以同时对jsf接口、MQ队列、定时任务三种待测试的第一对象进行测试。在封装成为第二对象后,通过确定出第二对象对应的测试接口、以及与所述测试接口对应的调用方法,进而自动化生成对应的测试脚本,以利用测试脚本对第二对象进行测试。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的一种测试脚本的生成方法的主要步骤的示意图;
图2是根据本发明实施例的获取调用方法的入参的主要步骤的示意图;
图3是根据本发明实施例的生成测试脚本的主要步骤的示意图;
图4是根据本发明实施例的另一种测试脚本的生成方法的主要步骤的示意图;
图5是根据本发明实施例的获取待测试的第一对象的主要步骤的示意图;
图6是根据本发明实施例的一种测试脚本的具体生成方法的主要步骤的示意图;
图7是根据本发明实施例的测试脚本的生成装置的主要模块的示意图;
图8是本发明实施例可以应用于其中的示例性系统架构图;
图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
图1是根据本发明实施例的测试脚本的生成方法的主要步骤的示意图。
如图1所示,本发明实施例的测试脚本的生成方法主要包括以下步骤:
步骤S101:获取待测试的第一对象,第一对象为jsf接口、MQ队列或定时任务;
步骤S102:利用预设脚本对待测试对象进行编译,以将第一对象封装为接口类型的第二对象;
步骤S103:确定出第二对象对应的测试接口、以及与测试接口对应的调用方法;
步骤S104:根据调用方法的入参以及预设的测试模板生成与测试接口对应的测试脚本,以利用测试脚本对第二对象进行测试。
其中,第一对象为多种不同类型的待测试对象,包括jsf接口、MQ队列或定时任务。由于MQ队列或定时任务本身属于消息中间件,并不是接口类型,因此现有技术中的自动化测试工具无法对其进行测试,本发明实施例通过将多种第一对象进行编译并封装成接口类型的第二对象,使得消息中间件同样可以以接口触发的方式来触发测试脚本的执行。
步骤S102中的预设脚本是一段包含人为预先编写代码的java脚本,可以在对第一对象的编译过程中执行,将预先编写代码加入到第一对象的脚本文件中,生成第二对象的脚本文件,从而实现将第一对象封装为接口类型的第二对象。
在步骤S103中,针对每个第二对象,可以包含多个对应的测试接口,以及与各个测试接口分别对应的一个或多个调用方法,在一种可选的实施例中,调用方法与测试接口一一对应,即调用方法只能存在于单一的测试接口中。例如第二对象中包括两个测试接口,其中测试接口1对应有调用方法1、调用方法2和调用方法3,那么测试接口2中则不能再对应有调用方法1、2、3,可以对应有其他调用方法,例如调用方法5和调用方法6。
对于步骤S103,在一种可选的实施例中,通过扫描第二对象的脚本文件,例如XML配置文件、指定文件夹等,进行关键字策略提取,以获得测试接口的名称,进而根据接口名称确定出第二对象对应的测试接口。在进一步可选的实施例中,在关键字策略中可以包括关键字筛选策略以过滤掉接口中不需要的调用方法。例如,对于第一对象为jsf接口的情况,可以根据对应的第二对象的脚本文件中是否包括注解方法@deprecated来进行筛选,当存在该注解方法时,认为当前方法已过期。再例如,对于任何一种第一对象,可以通过配置黑名单的方式进行调用方法的过滤,其中黑名单可以是调用方法的方法名,也可以是方法名中的一部分,例如方法名中包括“export”的调用方法。通过根据关键字筛选策略对测试接口中的调用方法进行过滤,可以在各种业务场景下,针对实际需要的接口以及调用方法进行测试脚本的自动化生成,针对性强,效率高。
在进一步可选的实施例中,第二对象对应的测试接口以及与测试接口分别对应的调用方法可以以清单文件的形式进行存储,以作为后续自动化测试的输入。对于清单文件,可以以键名-键值的json文件作为存储格式,其中,键名为测试接口的名称,键值为测试接口对应的调用方法的名称,例如"键名1":["调用方法1","调用方法2","调用方法3"]。需要说明的是,对于json文件来说,以每个调用方法作为一个存储文件,通过上述存储方式,可以将第二对象对应的测试接口以及各个测试接口分别对应的调用方法都存储成了可以作为后续自动化测试输入的脚本数据,也就是入参,便于后续的自动化生成测试脚本的过程。
对于步骤S104中的测试模板,可以根据实际业务需求设置为一个或多个。在一种可选的实施例中,测试模板为多个且各个测试模板对应于不同的测试功能,步骤S104则进一步包括:分别将入参输入具备不同测试功能的多个测试模板,得到与每个测试模板分别对应的测试脚本。
其中,测试模板可以按照实际业务需求进行数量的确定,在进一步可选的实施例中,各个测试模板对应于不同的调用层级,即多个测试模板之间为包含关系。示例性地,假设设置三个测试模板,可以分别为实现层、接口层和方法层,其中方法层用于对测试接口抵用方法的调用,接口层用于对多个方法组成的集合进行触发,实现层用于结合业务场景对测试接口进行调用,并对结果进行校验。也就是说,仅有方法层的测试模板的输入为调用方法的入参,接口层的输入为方法层的入参名称,实现层的输入则为接口层的入参名称。通过设置多个不同调用层级的测试模板,可以实现不同层级测试脚本的自动化生成,以便于后续利用不同层级的测试脚本对测试接口的不同功能进行分别测试。
在步骤S104中,为了获取调用方法的入参,在一种可选的实施例中,如图2所示,可以包括:
步骤S201:确定与调用方法对应的一个或多个入参的类型;
步骤S201:将入参的类型输入随机对象生成器,生成与一个或多个所述类型对应的入参。
其中,可以根据测试接口的清单文件进行遍历,通过遍历清单文件中的调用方法,通过java反射可以获取到与各个调用方法分别对应的一个或多个入参的类型,入参的类型例如int类型、class类型、list类型等。常用的随机对象生成器例如适用于java文件的EasyRandom工具,可以通过预先的配置规则,生成对应于入参类型的随机入参,生成的入参通常为基础类型,例如数字类型、字符串类型等。
在得到了对应于入参类型的随机入参后,在一种可选的实施例中,将全量的入参对应与调用方法同步存储至清单文件中,这样即可通过清单文件获取到第二对象用于生成测试脚本的全部信息,即第二对象所包括的测试接口、与测试接口对应的调用方法、以及在各个调用方法下分别对应的入参。
在获取到入参后,即可根据入参和测试模板进行测试脚本的自动化生成过程,在一种可选的实施例中,对于实现层模板来说,自动化过程如图3所示,可以包括:
步骤S301:根据业务场景和入参,衍生出与业务场景对应的场景入参;
步骤S302:根据场景入参以及具备场景测试功能的测试模板,生成在业务场景下与测试接口对应的测试脚本。
其中,可以根据不同的业务场景,衍生出适用于不同业务场景的不同场景入参,有针对性地生成业务场景下的测试脚本,提高了后续测试脚本的测试效率和准确性。
需要说明的是,实现层的场景数据通常以yaml格式进行存储,因此在一种可选的实施例中,在根据业务场景和入参衍生出与业务场景对应的场景入参之前,先将入参的格式由json格式转换为yaml格式。对于yaml格式的文件来说,一个测试接口对应存储在一个文件中,相比于json格式将一个调用方法存储在一个文件来说,可以明显减少存储文件的数量,节省存储空间。
在一种可选的实施例中,当第二对象对应于多个测试接口时,如图4所示,本发明实施例提供的测试脚本的生成方法还包括:
步骤S401:获取测试框架,并从测试框架中确定与测试接口对应的历史测试接口,以及不存在对应历史测试接口的目标测试接口;
步骤S402:根据目标测试接口对应的目标测试脚本对目标测试接口进行测试;
步骤S403:根据目标测试接口的测试结果以及历史测试接口的测试结果,确定第二对象的测试结果。
其中,测试框架用于存储一个或多个测试模板以及历史测试接口,每当针对一个测试接口生成了对应的测试脚本后,将该测试接口存入测试框架作为历史测试接口,同时将与历史测试接口对应的测试脚本进行存储,便于后续针对同一接口进行测试时,可以直接调用对应的测试脚本以及测试结果,而无需再次根据相同的测试接口进行自动化生成。
因此,只需针对不存在对应历史测试接口的目标测试接口进行测试,生成目标测试接口的测试结果,再根据目标测试接口的测试结果以及历史测试接口的测试结果,即可确定第二对象的测试结果。示例性地,当且仅当第二对象对应的全部测试接口的测试结果为测试测试成功时,第二对象对应的测试结果为测试成功。在第二对象对应的测试结果为测试失败时,测试结果中可以包括测试失败的测试接口以及失败原因。
在进一步可选的实施例中,在根据调用方法的入参以及预设的测试模板生成与测试接口对应的测试脚本之后,还包括:将目标测试接口以及与目标测试接口对应的测试脚本存储至所述测试框架中。通过将目标测试结果对应的测试脚本不断存储,可以实现测试框架的不断更新和扩充,方便后续测试脚本的调取和查询。
在一种可选的实施例中,步骤S101中获取待测试的第一对象的过程,可以如图5所示,包括:
步骤S501:实时监听测试框架对应的代码仓库;
步骤S502:当监听到代码仓库存在新的测试代码时,从测试代码中获取待测试的第一对象。
其中,代码仓库用于存储编程人员所编写的测试代码,每当需要针对一个第一对象生成对应的测试脚本时,编程人员就会编写新的测试代码放入代码仓库,因此通过实时监听代码仓库,可以及时获取到待测试的第一对象,并及时进行测试脚本的生成。
在一种可选的实施例中,在生成测试脚本后,可以利用服务器运行python的自动化测试脚本,执行利用测试脚本对第二对象进行测试的过程。
需要说明的是,本发明中对第一对象进行封装的过程、根据第二对象生成测试脚本的过程、以及利用测试脚本对第二对象进行测试的过程,可以由同一服务器运行,也可以由不同的服务器运行,本发明在此不做限定。
图6示出了本发明实施例中一种测试脚本的具体生成方法,如图6所示,包括:
步骤S601:实时监听测试框架对应的代码仓库;
步骤S602:当监听到代码仓库存在新的测试代码时,从测试代码中获取待测试的第一对象;第一对象为jsf接口、MQ队列或定时任务;
步骤S603:利用预设脚本对第一对象进行编译,以将第一对象封装为接口类型的第二对象;
步骤S604:扫描第二对象的脚本文件,确定出第二对象对应的测试接口、以及与测试接口对应的调用方法;
步骤S605:利用关键字筛选策略对调用方法进行筛选,得到目标调用方法;
步骤S606:确定与目标调用方法对应的一个或多个入参的类型;
步骤S607:将入参的类型输入随机对象生成器,生成与一个或多个类型对应的入参;
步骤S608:根据目标调用方法的入参以及预设的测试模板生成与测试接口对应的测试脚本,以利用测试脚本对第二对象进行测试。
根据本发明实施例的测试脚本的生成方法,通过对待测试对象进行编译,并在编译过程中执行预设的脚本,以将第一对象封装为接口类型的第二对象,进而可以同时对jsf接口、MQ队列、定时任务三种待测试的第一对象进行测试。在封装成为第二对象后,通过确定出第二对象对应的测试接口、以及与所述测试接口对应的调用方法,进而自动化生成对应的测试脚本,以利用测试脚本对第二对象进行测试。
图7是根据本发明实施例的测试脚本的生成装置的主要模块的示意图。
如图7所示,本发明实施例的测试脚本的生成装置700包括:
获取模块701,用于获取待测试的第一对象,所述第一对象为jsf接口、MQ队列或定时任务;
封装模块702,用于利用预设脚本对所述第一对象进行编译,以将所述第一对象封装为接口类型的第二对象;
确定模块703,用于确定出所述第二对象对应的测试接口、以及与所述测试接口对应的调用方法;
生成模块704,用于根据所述调用方法的入参以及预设的测试模板生成与所述测试接口对应的测试脚本,以利用所述测试脚本对所述第二对象进行测试。
在本发明一种可选的实施例中,所述测试模板为多个,各个测试模板对应于不同的测试功能;所述生成模块704还用于,分别将所述入参输入具备不同测试功能的多个测试模板,得到与每个所述测试模板分别对应的测试脚本。
在本发明一种可选的实施例中,所述第二对象对应于多个测试接口;所述获取模块701还用于,获取测试框架,并从所述测试框架中确定与所述测试接口对应的历史测试接口,以及不存在对应历史测试接口的目标测试接口;所述装置还包括:测试模块,用于根据所述目标测试接口对应的目标测试脚本对所述目标测试接口进行测试;根据所述目标测试接口的测试结果以及所述历史测试接口的测试结果,确定所述第二对象的测试结果。
在本发明一种可选的实施例中,所述装置还包括存储模块,用于在所述根据所述调用方法的入参以及预设的测试模板生成与所述测试接口对应的测试脚本之后,将所述目标测试接口以及与所述目标测试接口对应的测试脚本存储至所述测试框架中。
在本发明一种可选的实施例中,所述获取模块701还用于实时监听所述测试框架对应的代码仓库;当监听到所述代码仓库存在新的测试代码时,从所述测试代码中获取所述待测试的第一对象。
在本发明一种可选的实施例中,所述生成模块704还用于,根据业务场景和所述入参,衍生出与所述业务场景对应的场景入参;根据所述场景入参以及具备场景测试功能的测试模板,生成在所述业务场景下与所述测试接口对应的测试脚本。
在本发明一种可选的实施例中,所述生成模块704还用于,确定与所述调用方法对应的一个或多个入参的类型;将所述入参的类型输入随机对象生成器,生成与一个或多个所述类型对应的入参。
在本发明一种可选的实施例中,所述生成模块704还用于,将所述入参的格式由json格式转换为yaml格式。
根据本发明实施例的测试脚本的生成装置,通过对待测试对象进行编译,并在编译过程中执行预设的脚本,以将第一对象封装为接口类型的第二对象,进而可以同时对jsf接口、MQ队列、定时任务三种待测试的第一对象进行测试。在封装成为第二对象后,通过确定出第二对象对应的测试接口、以及与所述测试接口对应的调用方法,进而自动化生成对应的测试脚本,以利用测试脚本对第二对象进行测试。
图8示出了可以应用本发明实施例的测试脚本的生成方法或测试脚本的生成装置的示例性系统架构800。
如图8所示,系统架构800可以包括终端设备801、802、803,网络804和服务器805。网络804用以在终端设备801、802、803和服务器805之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备801、802、803通过网络804与服务器805交互,以接收或发送数据等。终端设备801、802、803上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备801、802、803可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器805可以是提供各种服务的服务器,例如对用户利用终端设备801、802、803所发送的待测试第一对象的脚本文件提供支持的后台管理服务器。后台管理服务器可以对接收到的待测试第一对象的脚本文件等数据进行分析等处理,并将处理结果(例如生成的测试脚本)反馈给终端设备。
需要说明的是,本发明实施例所提供的测试脚本的生成方法一般由服务器805执行,相应地,测试脚本的生成装置一般设置于服务器805中。
应该理解,图8中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图9,其示出了适于用来实现本发明实施例的终端设备的计算机系统900的结构示意图。图9示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图9所示,计算机系统900包括中央处理单元(CPU)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有系统900操作所需的各种程序和数据。CPU 901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)第一接口905也连接至总线904。
以下部件连接至I/O第一接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络第一接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O第一接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(CPU)901执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括获取模块、封装模块、确定模块和生成模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,获取模块还可以被描述为“用于获取待测试的第一对象的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取待测试的第一对象,所述第一对象为jsf接口、MQ队列或定时任务;利用预设脚本对所述第一对象进行编译,以将所述第一对象封装为接口类型的第二对象;确定出所述第二对象对应的测试接口、以及与所述测试接口对应的调用方法;根据所述调用方法的入参以及预设的测试模板生成与所述测试接口对应的测试脚本,以利用所述测试脚本对所述第二对象进行测试。
根据本发明实施例的技术方案,通过对待测试对象进行编译,并在编译过程中执行预设的脚本,以将第一对象封装为接口类型的第二对象,进而可以同时对jsf接口、MQ队列、定时任务三种待测试的第一对象进行测试。在封装成为第二对象后,通过确定出第二对象对应的测试接口、以及与所述测试接口对应的调用方法,进而自动化生成对应的测试脚本,以利用测试脚本对第二对象进行测试。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种测试脚本的生成方法,其特征在于,包括:
获取待测试的第一对象,所述第一对象为jsf接口、MQ队列或定时任务;
利用预设脚本对所述第一对象进行编译,以将所述第一对象封装为接口类型的第二对象;
确定出所述第二对象对应的测试接口、以及与所述测试接口对应的调用方法;
根据所述调用方法的入参以及预设的测试模板生成与所述测试接口对应的测试脚本,以利用所述测试脚本对所述第二对象进行测试。
2.根据权利要求1所述的方法,其特征在于,所述测试模板为多个,各个测试模板对应于不同的测试功能;所述根据所述入参以及所述测试模板生成与所述测试接口对应的测试脚本,包括:
分别将所述入参输入具备不同测试功能的多个测试模板,得到与每个所述测试模板分别对应的测试脚本。
3.根据权利要求1所述的方法,其特征在于,所述第二对象对应于多个测试接口;
获取测试框架,并从所述测试框架中确定与所述测试接口对应的历史测试接口,以及不存在对应历史测试接口的目标测试接口;
根据所述目标测试接口对应的目标测试脚本对所述目标测试接口进行测试;
根据所述目标测试接口的测试结果以及所述历史测试接口的测试结果,确定所述第二对象的测试结果。
4.根据权利要求3所述的方法,其特征在于,在所述根据所述调用方法的入参以及预设的测试模板生成与所述测试接口对应的测试脚本之后,还包括:
将所述目标测试接口以及与所述目标测试接口对应的测试脚本存储至所述测试框架中。
5.根据权利要求4所述的方法,其特征在于,所述获取待测试的第一对象,包括:
实时监听所述测试框架对应的代码仓库;
当监听到所述代码仓库存在新的测试代码时,从所述测试代码中获取所述待测试的第一对象。
6.根据权利要求2所述的方法,其特征在于,还包括:
根据业务场景和所述入参,衍生出与所述业务场景对应的场景入参;
根据所述场景入参以及具备场景测试功能的测试模板,生成在所述业务场景下与所述测试接口对应的测试脚本。
7.根据权利要求1所述的方法,其特征在于,还包括:
确定与所述调用方法对应的一个或多个入参的类型;
将所述入参的类型输入随机对象生成器,生成与一个或多个所述类型对应的入参;
和/或,
将所述入参的格式由json格式转换为yaml格式。
8.一种测试脚本的生成装置,其特征在于,包括:
获取模块,用于获取待测试的第一对象,所述第一对象为jsf接口、MQ队列或定时任务;
封装模块,用于利用预设脚本对所述第一对象进行编译,以将所述第一对象封装为接口类型的第二对象;
确定模块,用于确定出所述第二对象对应的测试接口、以及与所述测试接口对应的调用方法;
生成模块,用于根据所述调用方法的入参以及预设的测试模板生成与所述测试接口对应的测试脚本,以利用所述测试脚本对所述第二对象进行测试。
9.一种生成测试脚本的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一所述的方法。
CN202211202512.7A 2022-09-29 2022-09-29 一种测试脚本的生成方法和装置 Pending CN117827630A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211202512.7A CN117827630A (zh) 2022-09-29 2022-09-29 一种测试脚本的生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211202512.7A CN117827630A (zh) 2022-09-29 2022-09-29 一种测试脚本的生成方法和装置

Publications (1)

Publication Number Publication Date
CN117827630A true CN117827630A (zh) 2024-04-05

Family

ID=90512001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211202512.7A Pending CN117827630A (zh) 2022-09-29 2022-09-29 一种测试脚本的生成方法和装置

Country Status (1)

Country Link
CN (1) CN117827630A (zh)

Similar Documents

Publication Publication Date Title
CN113076153B (zh) 一种接口调用方法和装置
CN112445860B (zh) 一种处理分布式事务的方法和装置
CN111414154A (zh) 前端开发的方法、装置、电子设备和存储介质
US11734057B2 (en) Method and apparatus for processing a service of an abnormal server
CN111488286B (zh) 一种Android模块独立开发的方法及装置
CN112860538B (zh) 基于线上日志进行接口回归测试的方法和装置
CN110275701B (zh) 数据处理方法、装置、介质和计算设备
CN111797008A (zh) 移动端埋点数据的自动验证方法、设备和存储介质
CN118170629A (zh) 一种自动化测试方法和装置
CN111488268A (zh) 自动化测试的调度方法和调度装置
CN117827630A (zh) 一种测试脚本的生成方法和装置
CN113407229B (zh) 用于生成离线脚本的方法及装置
CN112306723B (zh) 一种应用于小程序的运行信息获取方法和装置
CN112783903B (zh) 生成更新日志的方法和装置
CN114070889A (zh) 配置方法、流量转发方法、设备、存储介质及程序产品
CN113760727A (zh) 一种接口回归测试方法和装置
CN113434382A (zh) 数据库性能监控方法、装置、电子设备及计算机可读介质
CN113448652A (zh) 一种请求处理方法和装置
CN113342633B (zh) 一种性能测试方法和装置
CN113515437B (zh) 调试接口的方法和装置
CN113449496B (zh) 一种自动生成维修单据的方法和装置
CN112783665B (zh) 接口补偿的方法和装置
CN113688152B (zh) 一种系统功能自校验方法和装置
CN113127259B (zh) 数据部署方法、装置、设备及存储介质
CN117311804A (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