CN113051172B - 测试脚本的执行方法、装置、计算机设备和存储介质 - Google Patents

测试脚本的执行方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN113051172B
CN113051172B CN202110382793.8A CN202110382793A CN113051172B CN 113051172 B CN113051172 B CN 113051172B CN 202110382793 A CN202110382793 A CN 202110382793A CN 113051172 B CN113051172 B CN 113051172B
Authority
CN
China
Prior art keywords
target
test script
system component
use case
target system
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
CN202110382793.8A
Other languages
English (en)
Other versions
CN113051172A (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.)
Guangzhou Huya Technology Co Ltd
Original Assignee
Guangzhou Huya 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 Guangzhou Huya Technology Co Ltd filed Critical Guangzhou Huya Technology Co Ltd
Priority to CN202110382793.8A priority Critical patent/CN113051172B/zh
Publication of CN113051172A publication Critical patent/CN113051172A/zh
Application granted granted Critical
Publication of CN113051172B publication Critical patent/CN113051172B/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/3688Test management for test execution, e.g. scheduling of test suites
    • 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
    • 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

测试脚本的执行方法、装置、计算机设备和存储介质
技术领域
本发明实施例涉及软件测试技术领域,尤其涉及一种测试脚本的执行方法、装置、计算机设备和存储介质。
背景技术
自动化测试过程中,一般会采用数据驱动测试的模式,将测试脚本与用例参数进行分离,来加强测试脚本的可维护性和可复用性。
数据驱动测试是通过把测试脚本和用例参数分离的手段,让专业的测试人员编写脚本,让没有编程技能的人也可以进行测试脚本的用例参数维护。在这种数据驱动测试模式下,由于用例参数和测试脚本分开存放,可以减少专业测试人员在维护脚本时的工作量,只需要考虑测试逻辑本身即可。
发明人在实现本发明的过程中发现:目前的数据驱动测试在实现参数分离时,都需要测试人员在测试脚本中手动声明参数或变量,在测试脚本运行时,从外部数据系统中读入这些参数或变量并赋值。数据驱动测试的实现过于依赖测试人员的编程技能。此外,很多数据驱动的测试脚本中都包含硬编码的数据,例如,窗口组件中的识别字符串或是不同测试环境中的关键数据等,出现这种情况时,测试脚本很容易由于测试环境的更改而失效,测试脚本的通用性差。
发明内容
本发明实施例提供了一种测试脚本的执行方法、装置、计算机设备和存储介质,以提供一种将测试脚本与用例参数分离的新方式,降低了测试脚本的编写难度,并提高了测试脚本的通用性和可扩展性。
第一方面,本发明实施例提供了一种测试脚本的执行方法,包括:
识别目标测试脚本中包括的至少一项目标系统组件;
查询系统组件规则库,获取与各目标系统组件对应的参数生成规则,并使用查询得到的各参数生成规则,生成与各目标系统组件对应的用例参数;
根据生成的各用例参数,以及与各目标系统组件对应的用例参数处理逻辑,执行目标测试脚本。
第二方面,本发明实施例还提供了一种测试脚本的执行装置,包括:
目标系统组件识别模块,用于识别目标测试脚本中包括的至少一项目标系统组件;
用例参数生成模块,用于查询系统组件规则库,获取与各目标系统组件对应的参数生成规则,并使用查询得到的各参数生成规则,生成与各目标系统组件对应的用例参数;
目标测试脚本执行模块,用于根据生成的各用例参数,以及与各目标系统组件对应的用例参数处理逻辑,执行目标测试脚本。
第三方面,本发明实施例还提供了一种计算机设备,计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例提供的测试脚本的执行方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的测试脚本的执行方法。
本发明实施例的技术方案通过识别目标测试脚本中包括的至少一项目标系统组件;查询系统组件规则库,获取与各目标系统组件对应的参数生成规则,并使用查询得到的各参数生成规则,生成与各目标系统组件对应的用例参数;根据生成的各用例参数,以及与各目标系统组件对应的用例参数处理逻辑,执行目标测试脚本的技术手段,提供了一种可靠的、将测试脚本与用例参数分离的新方式,降低了测试脚本的编写难度,提高了测试脚本的通用性和可扩展性。测试人员不再需要过多的关注测试方法的具体实现细节,即使是没有较高编程技能的测试人员也可以完成测试脚本的编写。
附图说明
图1是本发明实施例一中的一种测试脚本的执行方法的流程图;
图2是本发明实施例二中的一种测试脚本的执行方法的流程图;
图3是本发明实施例三中的一种测试脚本的执行方法的流程图;
图4是本发明实施例四中的一种测试脚本的执行装置的结构示意图;
图5本发明实施例五中的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本发明实施例一提供的一种测试脚本的执行方法的流程图,本实施例可适用于通过执行测试脚本对待测软件产品进行用例测试的情况。该方法可以由测试脚本的执行装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可以集成在用于提供自动化测试服务的计算机设备中(例如,各种智能终端或者服务器等)。如图1所示,该方法包括:
S110、识别目标测试脚本中包括的至少一项目标系统组件。
其中,所述目标测试脚本是指用于对某一应用软件进行功能测试的可执行文件。在该目标测试脚本中,包含有对一个或者多个系统组件的引用或者声明。
在本实施例中,可以预先构建了一项或者多项系统组件,以供编写测试脚本的测试人员在构建测试脚本时,直接在测试脚本中声明并使用。
典型的,可以由具有较高编程技能的编程人员,编写并封装得到多个系统组件后,建立与每个系统组件分别对应的识别标识,并为每个系统组件增加组件功能说明。当测试人员需要针对某一个测试软件编写测试脚本时,可以在查询各个系统组件的功能说明后,将所需要使用的系统组件的识别标识加入至测试脚本中的对应位置即可。此时,测试人员完全不需要构建并添加系统组件所需的,具体的用例参数,也完全不需要清楚理解系统组件内部逻辑的具体的实现细节。
在本实施例中,所述系统组件可以是指需要结合输入的用例参数,实现设定测试逻辑的结构体(也可以称为逻辑代码段)。相应的,测试人员在构建测试脚本时,无需关注一个结构体中所需添加的,具体的用例参数,或者是一个结构体所执行的,具体的测试逻辑,只需要关注需要在测试脚本执行到什么阶段时,去触发执行与一个系统组件匹配的测试逻辑段即可。
也即,在本实施例中,测试人员在构建测试脚本时,只要指定所需的输入用例参数的逻辑代码段在测试脚本中的执行位置,无需真正的掌握这段逻辑代码段的具体实现细节,以及用例参数在该逻辑代码段中的添加位置。
作为示例而非限定,所述目标系统组件可以为HTTP(Hypertext TransferProtocol,超文本传输协议)接口调用组件、数据库接口调用组件、以及RPC(RemoteProcedure Call,远程过程调用)组件等,本实施例对此并不进行限制。
具体的,HTTP接口调用组件可以用于实现HTTP请求功能。通过调用HTTP方法,传入所需的header或者body等诸多参数可以完成一次HTTP调用;数据库接口调用组件可以用于实现数据库的读写请求功能。通过调用数据库接口向数据库传入各种读写参数,可以实现一次数据库接口调用;RPC组件可以用于实现设备A上的程序调用设备B上的子程序的功能。通过向RPC接口传入各种调用参数,可以实现具体的远程过程调用功能。
在本实施例的一个可选的实施方式中,识别目标测试脚本中包括的至少一项目标系统组件的方式可以为:将所述目标测试脚本中的每项测试语句中包括的各个字段分别与各系统组件的识别标识进行匹配,并根据匹配结果,获取目标测试脚本中包括的各项目标系统组件;
或者,可以预先规定测试人员在生成测试脚本时,在声明或者引用系统组件的位置增加一个匹配的识别标签。相应的,识别目标测试脚本中包括的至少一项目标系统组件的方式还可以为:在所述目标测试脚本中,搜索识别标签,并根据对识别标签的搜索结果,获取目标测试脚本中包括的各项目标系统组件。
在本实施例的另一个可选的实施方式中,识别目标测试脚本中包括的至少一项目标系统组件的方式还可以为:
生成与所述目标测试脚本对应的抽象语法树;对抽象语法树中的各树节点进行遍历解析,获取至少一项目标系统组件。
其中,抽象语法树,简称语法树,是源代码语法结构的一种抽象表示。它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。抽象语法树并不会表示出真实语法出现的每一个细节,比如说,嵌套括号被隐含在树的结构中,并没有以节点的形式呈现。
抽象语法树并不依赖于源语言的语法,也就是说语法分析阶段所采用的上下文无文文法。通过在由目标测试脚本确定的抽象语法树中遍历解析各个树节点,同样可以获取该目标测试脚本中包括的各个目标系统组件。
S120、查询系统组件规则库,获取与各目标系统组件对应的参数生成规则,并使用查询得到的各参数生成规则,生成与各目标系统组件对应的用例参数。
在本实施例中,预先构建与每个系统组件分别对应的参数生成规则,并将各个系统组件的参数生成规则均存储在一个统一的系统组件规则库中。
其中,一个参数生成规则,用于生成与一个系统组件对应的全部用例参数。
在本实施例中,通过分析测试脚本中包括的系统组件,可以自动获取与不同系统组件分别对应的用例参数,真正意义上的实现了测试脚本和用例参数的分离。测试人员完全不需要获知一个系统组件所需的参数是如何填充至测试脚本中的什么位置的,仅仅从整体上把控测试脚本所需测试的应用功能即可。
在本实施例中,可以由具有较高编程技能的编程人员首先编程得到与每个系统组件分别对应的参数生成规则,以保证以一定的随机性获取与系统组件匹配的用例参数。
在一个具体的例子中,HTTP接口调用组件所需的用例参数包括:至少一项请求头部(header)参数,和至少一项请求体(body)参数。请求头部参数和请求体参数均具有预设的参数格式。相应的,可以在参数生成规则中定义请求头部参数和请求体参数的生成规则,使得每次调用该参数生成规则生成请求头部参数和请求体参数时,所生成的用例参数既具有随机性,又能满足对请求头部参数和请求体参数的格式要求。
S130、根据生成的各用例参数,以及与各目标系统组件对应的用例参数处理逻辑,执行目标测试脚本。
如前所述,系统组件为结合输入的用例参数,实现设定测试逻辑的结构体。因此,一个系统组件对应一个用例参数处理逻辑。通过将用例参数对应填充至匹配的用例参数处理逻辑,并相应执行该用例参数处理逻辑,可以相应实现与系统组件匹配的测试逻辑。
其中,目标测试脚本中既可能包括需要正常执行的第一类执行语句(第一类执行语句中不包括目标系统组件的识别标识),也可能包括需要跳转执行用例参数处理逻辑的第二类执行语句(第二类执行语句中包括有一个或者多个目标系统组件的识别标识)。因此,在目标测试脚本的执行过程中,需要进行区别的执行控制处理,以达到最终的脚本执行效果。
本发明实施例的技术方案通过识别目标测试脚本中包括的至少一项目标系统组件;查询系统组件规则库,获取与各目标系统组件对应的参数生成规则,并使用查询得到的各参数生成规则,生成与各目标系统组件对应的用例参数;根据生成的各用例参数,以及与各目标系统组件对应的用例参数处理逻辑,执行目标测试脚本的技术手段,提供了一种可靠的、将测试脚本与用例参数分离的新方式,降低了测试脚本的编写难度,提高了测试脚本的可扩展性。测试人员不再需要过多的关注测试方法的具体实现细节,即使是没有较高编程技能的测试人员也可以完成测试脚本的编写。
实施例二
图2是本发明实施例二中的一种测试脚本的执行方法的流程图,本实施例以上述实施例为基础进行细化,在本实施例中,将根据生成的各用例参数,以及与各目标系统组件对应的用例参数处理逻辑,执行目标测试脚本,具体化为:依次获取所述目标测试脚本中包括的一条脚本语句作为当前执行语句;检测所述当前执行语句中是否包括目标系统组件:若是,则获取与检测到的目标系统组件匹配的用例参数和用例参数处理逻辑;根据获取的用例参数和用例参数处理逻辑,生成跳转执行代码,并执行所述跳转执行代码;返回执行依次获取所述目标测试脚本中包括的一条脚本语句作为当前执行语句的操作,直至完全对所述目标测试脚本中全部脚本语句的处理。相应的,本实施例的方法可以包括:
S210、生成与目标测试脚本对应的抽象语法树。
可选的,可以使用各类语法分析器对目标测试脚本进行解析处理,生成与目标测试脚本对应的抽象语法树。
S220、对抽象语法树中的各树节点进行遍历解析,获取至少一项目标系统组件。
S230、查询系统组件规则库,获取与各目标系统组件对应的参数生成规则,并使用查询得到的各参数生成规则,生成与各目标系统组件对应的用例参数。
在本实施例中,在执行目标测试脚本之前,需要进行预处理操作,实时生成目标测试脚本所需的各项用例参数,上述用例参数用于在目标测试脚本的实际执行过程中,进行动态赋值以及动态调用。
S240、依次获取所述目标测试脚本中包括的一条脚本语句作为当前执行语句。
S250、检测所述当前执行语句中是否包括目标系统组件:若是,执行S260;否则,执行S270。
其中,可以通过将当前执行语句中的各项内容与各系统组件的识别标识匹配的方式,或者在当前执行语句中检测识别标签的方式,检测当前执行语句中是否包括目标系统组件。
如果当前执行语句中包括目标系统组件,则需要从目标测试脚本的当前执行位置暂停,跳转执行与该目标系统组件匹配的用例参数处理逻辑,并在上述用例参数处理逻辑执行后,重新返回至当前执行语句的下一条脚本语句进行继续执行,以保证不破坏整个测试脚本的执行逻辑。
如果该当前执行语句中不包括目标系统组件,则可以按照现有的脚本执行逻辑对该当前执行语句进行处理后,顺序过渡至当前执行语句后的下一条脚本语句继续执行。
S260、获取与检测到的目标系统组件匹配的用例参数和用例参数处理逻辑,执行S280。
S270、执行所述当前执行语句后,执行S290。
S280、根据获取的用例参数和用例参数处理逻辑,生成跳转执行代码,并执行所述跳转执行代码后,执行S290。
在本实施例中,如果当前执行语句中包括有目标系统组件,则可以首先获取与该目标系统组件分别对应的用例参数和用例参数处理逻辑。
其中,用例参数处理逻辑,包括有至少一项待填充区域,而上述待填充区域用于填充预处理过程中所生成的各项用例参数。在完成用例参数填充后,可以将用例参数处理逻辑生成用于实现设定测试功能的跳转执行代码。
相应的,在本实施例的一个可选的实施方式中,根据获取的用例参数和用例参数处理逻辑,生成跳转执行代码的方式,可以包括:
将所述用例参数填充至所述用例参数处理逻辑中匹配的待填充区域中,生成所述跳转执行代码。
需要再次说明的是,在生成并执行该跳转执行代码后,无需在对当前执行语句进行任何处理,可以直接跳转执行当前执行语句的下一脚本语句,重复执行S240-S280的操作,直至完成对所述目标测试脚本中全部脚本语句的处理。
其中,目标测试脚本在实际运行时,需要对目标测试脚本进行运行时的动态赋值,并进行动态方法的调用。这个过程的实现细节对于测试人员是不可见的,这样极大的降低了测试人员的理解成本。
S290、判断是否完成对所述目标测试脚本中全部脚本语句的处理:若是,结束流程,否则,返回执行S240。
本发明实施例的技术方案通过识别目标测试脚本中包括的至少一项目标系统组件;查询系统组件规则库,获取与各目标系统组件对应的参数生成规则,并使用查询得到的各参数生成规则,生成与各目标系统组件对应的用例参数;根据生成的各用例参数,以及与各目标系统组件对应的用例参数处理逻辑,执行目标测试脚本的技术手段,提供了一种可靠的、将测试脚本与用例参数分离的新方式,降低了测试脚本的编写难度,并提高了测试脚本的可扩展性。测试人员不再需要过多的关注测试方法的具体实现细节,即使是没有较高编程技能的测试人员也可以完成测试脚本的编写。
本发明实施例提供的基于语法树分析的测试脚本与用例参数分离的实现方案,在系统分析测试脚本,并自动获取测试脚本中所需使用的用例参数后,在测试脚本的实际执行过程中,实现了对用例参数的动态赋值和对用例参数处理逻辑的动态调用,完成了整个自动化测试流程,实现了对测试用例的完整执行。整体方案实用性强、扩展性强,对测试人员个人技能习惯要求不高,在极大的降低人力成本的同时,提升了测试脚本的生成效率。
实施例三
图3是本发明实施例三中的一种测试脚本的执行方法的流程图,本实施例以上述实施例为基础进行细化,在本实施例中,具体限定了使用查询得到的各参数生成规则,生成与各目标系统组件对应的用例参数的具体实现方式,相应的,本实施例的方法可以包括:
S310、识别目标测试脚本中包括的至少一项目标系统组件。
S320、依次获取一个目标系统组件作为当前处理组件。
S330、根据与所述当前处理组件对应的参数生成规则,生成与所述当前处理组件对应的目标用例参数。
S340、将所述目标用例参数写入至目标文件中,并在所述目标文件中建立所述目标用例参数与所述目标系统组件之间的对应关系。
在本实施例中,在对目标测试脚本进行预处理,生成与每个目标系统组件分别对应的目标用例参数后,可以将每个目标用例参数分别写入至一个统一的目标文件中,并在该目标文件中,指明了目标用例参数与所述目标系统组件之间的对应关系。
这样设置的好处在于:在后续对目标测试脚本的执行过程中,可以快速定位目标测试脚本中与每个目标系统组件分别对应的目标用例参数,进而可以快速实现对用例参数处理逻辑的赋值和执行,以进一步提供目标测试脚本的执行速度和执行效率。
可选的,该目标文件的文件格式可以根据实际需要进行预设,例如,CSV(Comma-Separated Values,逗号分隔值)格式、excel格式、数据库文件格式或者文本文件格式等,本实施例对此并不进行限制。
S350、判断是否完成对全部目标系统组件的处理:若是,执行S360;否则,返回执行S320。
S360、根据所述目标文件中,与各所述目标系统组件分别对应的目标用例参数,以及与各目标系统组件分别对应的用例参数处理逻辑,执行所述目标测试脚本。
本发明实施例的技术方案通过识别目标测试脚本中包括的至少一项目标系统组件;查询系统组件规则库,获取与各目标系统组件对应的参数生成规则,并使用查询得到的各参数生成规则,生成与各目标系统组件对应的用例参数;根据生成的各用例参数,以及与各目标系统组件对应的用例参数处理逻辑,执行目标测试脚本的技术手段,提供了一种可靠的、将测试脚本与用例参数分离的新方式,降低了测试脚本的编写难度,提高了测试脚本的可扩展性。测试人员不再需要过多的关注测试方法的具体实现细节,即使是没有较高编程技能的测试人员也可以完成测试脚本的编写。
实施例四
图4是本发明实施例四中的一种测试脚本的执行装置的结构示意图。如图4所示,该测试脚本的执行装置包括:目标系统组件识别模块410、用例参数生成模块420以及目标测试脚本执行模块430。其中:
目标系统组件识别模块410,用于识别目标测试脚本中包括的至少一项目标系统组件;
用例参数生成模块420,用于查询系统组件规则库,获取与各目标系统组件对应的参数生成规则,并使用查询得到的各参数生成规则,生成与各目标系统组件对应的用例参数;
目标测试脚本执行模块430,用于根据生成的各用例参数,以及与各目标系统组件对应的用例参数处理逻辑,执行目标测试脚本。
本发明实施例的技术方案通过识别目标测试脚本中包括的至少一项目标系统组件;查询系统组件规则库,获取与各目标系统组件对应的参数生成规则,并使用查询得到的各参数生成规则,生成与各目标系统组件对应的用例参数;根据生成的各用例参数,以及与各目标系统组件对应的用例参数处理逻辑,执行目标测试脚本的技术手段,提供了一种可靠的、将测试脚本与用例参数分离的新方式,降低了测试脚本的编写难度,提高了测试脚本的通用性和可扩展性。测试人员不再需要过多的关注测试方法的具体实现细节,即使是没有较高编程技能的测试人员也可以完成测试脚本的编写。
在上述各实施例的基础上,目标系统组件识别模块410,可以具体用于:
生成与所述目标测试脚本对应的抽象语法树;
对抽象语法树中的各树节点进行遍历解析,获取至少一项目标系统组件。
在上述各实施例的基础上,目标测试脚本执行模块430,可以具体包括:
当前执行语句获取单元,用于依次获取所述目标测试脚本中包括的一条脚本语句作为当前执行语句;
目标系统组件检测单元,用于检测所述当前执行语句中是否包括目标系统组件:若是,则获取与检测到的目标系统组件匹配的用例参数和用例参数处理逻辑;
跳转执行代码生成单元,用于根据获取的用例参数和用例参数处理逻辑,生成跳转执行代码,并执行所述跳转执行代码;
返回执行单元,用于返回执行依次获取所述目标测试脚本中包括的一条脚本语句作为当前执行语句的操作,直至完全对所述目标测试脚本中全部脚本语句的处理。
在上述各实施例的基础上,目标系统组件检测单元,还可以用于:
在检测所述当前执行语句中是否包括目标系统组件之后,若确定所述当前执行语句中不包括目标系统组件,则执行所述当前执行语句后,返回执行依次获取所述目标测试脚本中包括的一条脚本语句作为当前执行语句的操作,直至完成对所述目标测试脚本中全部脚本语句的处理。
在上述各实施例的基础上,跳转执行代码生成单元,具体可以用于:将所述用例参数填充至所述用例参数处理逻辑中匹配的待填充区域中,生成所述跳转执行代码。
在上述各实施例的基础上,用例参数生成模块420,可以具体用于:
依次获取一个目标系统组件作为当前处理组件,并根据与所述当前处理组件对应的参数生成规则,生成与所述当前处理组件对应的目标用例参数;
将所述目标用例参数写入至目标文件中,并在所述目标文件中建立所述目标用例参数与所述目标系统组件之间的对应关系;
返回执行依次获取一个目标系统组件作为当前处理组件的操作,直至完成对全部目标系统组件的处理;
目标测试脚本执行模块430,具体可以用于:
根据所述目标文件中,与各所述目标系统组件分别对应的目标用例参数,以及与各目标系统组件分别对应的用例参数处理逻辑,执行所述目标测试脚本。
在上述各实施例的基础上,所述目标系统组件可以包括下述至少一项:
超文本传输协议接口调用组件、数据库接口调用组件、以及远程过程调用组件。
本发明实施例所提供的测试脚本的执行装置可执行本发明任意实施例所提供的测试脚本的执行方法,具备执行方法相应的功能模块和有益效果。
实施例五
图5为本发明实施例五提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括处理器50、存储器51、输入装置52和输出装置53;计算机设备中处理器50的数量可以是一个或多个,图5中以一个处理器50为例;计算机设备中的处理器50、存储器51、输入装置52和输出装置53可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器51作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的测试脚本的执行方法对应的程序指令/模块(例如,测试脚本的执行装置中的目标系统组件识别模块410、用例参数生成模块420以及目标测试脚本执行模块430)。处理器50通过运行存储在存储器51中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的测试脚本的执行方法,该方法包括:
识别目标测试脚本中包括的至少一项目标系统组件;
查询系统组件规则库,获取与各目标系统组件对应的参数生成规则,并使用查询得到的各参数生成规则,生成与各目标系统组件对应的用例参数;
根据生成的各用例参数,以及与各目标系统组件对应的用例参数处理逻辑,执行目标测试脚本。
存储器51可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器51可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器51可进一步包括相对于处理器50远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置52可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置53可包括显示屏等显示设备。
实施例六
本发明实施例六还公开了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现一种测试脚本的执行方法,包括:
识别目标测试脚本中包括的至少一项目标系统组件;
查询系统组件规则库,获取与各目标系统组件对应的参数生成规则,并使用查询得到的各参数生成规则,生成与各目标系统组件对应的用例参数;
根据生成的各用例参数,以及与各目标系统组件对应的用例参数处理逻辑,执行目标测试脚本。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是、但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (9)

1.一种测试脚本的执行方法,其特征在于,包括:
识别目标测试脚本中包括的至少一项目标系统组件;
查询系统组件规则库,获取与各目标系统组件对应的参数生成规则,并使用查询得到的各参数生成规则,生成与各目标系统组件对应的用例参数;
根据生成的各用例参数,以及与各目标系统组件对应的用例参数处理逻辑,执行目标测试脚本,包括:
依次获取所述目标测试脚本中包括的一条脚本语句作为当前执行语句;
检测所述当前执行语句中是否包括目标系统组件:若是,则获取与检测到的目标系统组件匹配的用例参数和用例参数处理逻辑;
根据获取的用例参数和用例参数处理逻辑,生成跳转执行代码,并执行所述跳转执行代码;
返回执行依次获取所述目标测试脚本中包括的一条脚本语句作为当前执行语句的操作,直至完全对所述目标测试脚本中全部脚本语句的处理。
2.根据权利要求1所述的方法,其特征在于,识别目标测试脚本中包括的至少一项目标系统组件,包括:
生成与所述目标测试脚本对应的抽象语法树;
对抽象语法树中的各树节点进行遍历解析,获取至少一项目标系统组件。
3.根据权利要求1所述的方法,其特征在于,在检测所述当前执行语句中是否包括目标系统组件之后,还包括:
若否,则执行所述当前执行语句后,返回执行依次获取所述目标测试脚本中包括的一条脚本语句作为当前执行语句的操作,直至完成对所述目标测试脚本中全部脚本语句的处理。
4.根据权利要求1所述的方法,其特征在于,根据获取的用例参数和用例参数处理逻辑,生成跳转执行代码,包括:
将所述用例参数填充至所述用例参数处理逻辑中匹配的待填充区域中,生成所述跳转执行代码。
5.根据权利要求1-4任一项所述的方法,其特征在于,使用查询得到的各参数生成规则,生成与各目标系统组件对应的用例参数,包括:
依次获取一个目标系统组件作为当前处理组件,并根据与所述当前处理组件对应的参数生成规则,生成与所述当前处理组件对应的目标用例参数;
将所述目标用例参数写入至目标文件中,并在所述目标文件中建立所述目标用例参数与所述目标系统组件之间的对应关系;
返回执行依次获取一个目标系统组件作为当前处理组件的操作,直至完成对全部目标系统组件的处理;
根据生成的各用例参数,以及与各目标系统组件对应的用例参数处理逻辑,执行目标测试脚本,包括:
根据所述目标文件中,与各所述目标系统组件分别对应的目标用例参数,以及与各目标系统组件分别对应的用例参数处理逻辑,执行所述目标测试脚本。
6.根据权利要求1所述的方法,其特征在于,所述目标系统组件包括下述至少一项:
超文本传输协议接口调用组件、数据库接口调用组件、以及远程过程调用组件。
7.一种测试脚本的执行装置,其特征在于,包括:
目标系统组件识别模块,用于识别目标测试脚本中包括的至少一项目标系统组件;
用例参数生成模块,用于查询系统组件规则库,获取与各目标系统组件对应的参数生成规则,并使用查询得到的各参数生成规则,生成与各目标系统组件对应的用例参数;
目标测试脚本执行模块,用于根据生成的各用例参数,以及与各目标系统组件对应的用例参数处理逻辑,执行目标测试脚本;
所述目标测试脚本执行模块,具体包括:
当前执行语句获取单元,用于依次获取所述目标测试脚本中包括的一条脚本语句作为当前执行语句;
目标系统组件检测单元,用于检测所述当前执行语句中是否包括目标系统组件:若是,则获取与检测到的目标系统组件匹配的用例参数和用例参数处理逻辑;
跳转执行代码生成单元,用于根据获取的用例参数和用例参数处理逻辑,生成跳转执行代码,并执行所述跳转执行代码;
返回执行单元,用于返回执行依次获取所述目标测试脚本中包括的一条脚本语句作为当前执行语句的操作,直至完全对所述目标测试脚本中全部脚本语句的处理。
8.一种测试脚本的执行设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
9.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-6中任一项所述的方法。
CN202110382793.8A 2021-04-09 2021-04-09 测试脚本的执行方法、装置、计算机设备和存储介质 Active CN113051172B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110382793.8A CN113051172B (zh) 2021-04-09 2021-04-09 测试脚本的执行方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110382793.8A CN113051172B (zh) 2021-04-09 2021-04-09 测试脚本的执行方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN113051172A CN113051172A (zh) 2021-06-29
CN113051172B true CN113051172B (zh) 2023-10-13

Family

ID=76519272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110382793.8A Active CN113051172B (zh) 2021-04-09 2021-04-09 测试脚本的执行方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN113051172B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113887186A (zh) * 2021-09-23 2022-01-04 南京海泰医疗信息系统有限公司 一种电子病历内置脚本及其生成方法与执行方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326121A (zh) * 2016-08-22 2017-01-11 上海亿账通互联网科技有限公司 测试脚本的自动生成方法及终端
CN110221948A (zh) * 2019-04-18 2019-09-10 深圳壹账通智能科技有限公司 测试脚本生成方法、装置、计算机装置及存储介质
CN110232014A (zh) * 2019-02-25 2019-09-13 上海蔚来汽车有限公司 业务流程自动化测试方法、装置、控制器及介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106326121A (zh) * 2016-08-22 2017-01-11 上海亿账通互联网科技有限公司 测试脚本的自动生成方法及终端
CN110232014A (zh) * 2019-02-25 2019-09-13 上海蔚来汽车有限公司 业务流程自动化测试方法、装置、控制器及介质
CN110221948A (zh) * 2019-04-18 2019-09-10 深圳壹账通智能科技有限公司 测试脚本生成方法、装置、计算机装置及存储介质

Also Published As

Publication number Publication date
CN113051172A (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
CN106294673B (zh) 一种用户自定义规则实时解析日志数据的方法与系统
US8745641B1 (en) Automatic verification and anomaly detection in a representational state transfer (REST) application programming interface
WO2018082562A1 (zh) 页面数据编译的方法、页面渲染的方法、装置及存储介质
US11281862B2 (en) Significant correlation framework for command translation
US20150026666A1 (en) Analysis system, analysis method, and computer program product
CN113900958A (zh) 测试用例脚本的生成方法、系统、介质及电子设备
CN110673854A (zh) Sas语言编译方法、装置、设备及可读存储介质
CN110727429B (zh) 一种前端页面的生成方法、装置及设备
CN108664546B (zh) Xml数据结构转换方法和装置
CN111427784B (zh) 一种数据获取方法、装置、设备及存储介质
CN113051172B (zh) 测试脚本的执行方法、装置、计算机设备和存储介质
CN113238740A (zh) 代码生成方法、代码生成装置、存储介质及电子设备
CN108694120B (zh) 测试服务组件的方法和装置
CN112506778A (zh) Web用户界面自动化测试方法、装置、设备和存储介质
CN111580821A (zh) 脚本绑定方法、装置、电子设备及计算机可读存储介质
CN109359055B (zh) 一种数据测试的方法和设备
CN110362317B (zh) 一种代码转换方法、装置和存储介质
CN113051173B (zh) 测试流程的编排执行方法、装置、计算机设备和存储介质
CN112346991B (zh) 一种接口测试脚本的生成方法及装置
CN114168366A (zh) 基于swagger实现前端请求发送处理的方法、装置、处理器及其计算机可读存储介质
CN110413518B (zh) 控件对象库的生成方法及生成装置和计算机可读存储介质
CN114895914A (zh) 日志输出代码的生成方法、装置、电子设备及存储介质
CN114064601B (zh) 存储过程转换方法、装置、设备和存储介质
CN114065197A (zh) 调用序列生成方法、装置、电子设备、存储介质及产品
CN113807077A (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