CN113051173B - 测试流程的编排执行方法、装置、计算机设备和存储介质 - Google Patents

测试流程的编排执行方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN113051173B
CN113051173B CN202110396820.7A CN202110396820A CN113051173B CN 113051173 B CN113051173 B CN 113051173B CN 202110396820 A CN202110396820 A CN 202110396820A CN 113051173 B CN113051173 B CN 113051173B
Authority
CN
China
Prior art keywords
flow
sub
target
target sub
statement
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
CN202110396820.7A
Other languages
English (en)
Other versions
CN113051173A (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 CN202110396820.7A priority Critical patent/CN113051173B/zh
Publication of CN113051173A publication Critical patent/CN113051173A/zh
Application granted granted Critical
Publication of CN113051173B publication Critical patent/CN113051173B/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/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

测试流程的编排执行方法、装置、计算机设备和存储介质
技术领域
本发明实施例涉及软件测试技术领域,尤其涉及一种测试流程的编排执行方法、装置、计算机设备和存储介质。
背景技术
伴随着计算机技术的高速发展和互联网应用的日益普及,需要测试人员进行测试的业务流程复杂度越来越高。同时,业务上的历史包袱重或全景不清晰等问题,测试人员对业务的理解成本更加高昂。因此,在进行具体业务的测试脚本编写前,需要理解并整合多项前置业务。通过测试流程编排,将各种前置业务加入至当前测试流程中,可以使得测试人员只需要关注自己的业务,不用关注具体的前置业务,达到降低业务理解成本,提升整体测试效率的目的。
目前,主流的测试流程编排工具都需要是通过界面编排实现,基于接口请求,可以通过简单的前置后置脚本处理数据。在对不同测试流程进行编排时,需要将对应的测试流程手动加载至编排工具提供的编排调度器中,例如循环调度器或者分支调度器,基于上述各调度器的组合执行,实现整个测试流程。
发明人在实现本发明的过程中发现,在进行复杂的测试流程编排时,需要测试人员付出极高的学习成本熟悉编排工具后,才可以完成流程编排,人力成本高,流程编排的效率低下。
发明内容
本发明实施例提供了一种测试流程的编排执行方法、装置、计算机设备和存储介质,在低代码构建脚本文件的前提下,实现复杂的测试流程的编排。
第一方面,本发明实施例提供了一种测试流程的编排执行方法,包括:
执行目标测试脚本中的各项脚本语句;
在检测到执行至目标测试脚本中的目标子流程调用语句时,获取与目标子流程调用语句匹配的目标子流程标识以及目标子流程编排类型;
获取与目标子流程编排类型匹配的目标子流程调度器,并通过目标子流程调度器执行与目标子流程标识匹配的子流程代码;
在确定目标子流程调度器完成对子流程代码的执行时,继续执行目标测试脚本,直至完成对目标测试脚本中全部脚本语句的处理。
第二方面,本发明实施例还提供了一种测试流程的编排执行装置,包括:
脚本语句执行模块,用于执行目标测试脚本中的各项脚本语句;
关键信息获取模块,用于在检测到执行至目标测试脚本中的目标子流程调用语句时,获取与目标子流程调用语句匹配的目标子流程标识以及目标子流程编排类型;
子流程代码执行模块,用于获取与目标子流程编排类型匹配的目标子流程调度器,并通过目标子流程调度器执行与目标子流程标识匹配的子流程代码;
继续执行模块,用于在确定目标子流程调度器完成对子流程代码的执行时,继续执行目标测试脚本,直至完成对目标测试脚本中全部脚本语句的处理。
第三方面,本发明实施例还提供了一种计算机设备,计算机设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本发明任意实施例提供的测试流程的编排执行方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的测试流程的编排执行方法。
本发明实施例的技术方案通过在用于写入主流程的目标测试脚本中,以低代码的形式写入需要进行编排的子流程标识以及子流程编排类型,进而可以在目标测试脚本的执行过程中,动态调用与子流程编排类型匹配的子流程调度器对相应的子流程代码进行处理,可以在脚本文件执行过程中,进行动态的子流程编排的效果。本发明实施例的技术方案提供了一种在低代码构建脚本文件的前提下,实现复杂的测试流程的编排的新方式,测试人员可以通过简单的代码逻辑实现复杂子流程的编排,测试脚本的拓展性、复用性更强,并大大降低了测试人员的学习成本。
附图说明
图1是本发明实施例一中的一种测试流程的编排执行方法的流程图;
图2是本发明实施例二中的一种测试流程的编排执行方法的流程图;
图3是本发明实施例三中的一种测试流程的编排执行方法的流程图;
图4是本发明实施例四中的一种测试流程的编排执行装置的结构示意图;
图5本发明实施例五中的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1是本发明实施例一提供的一种测试流程的编排执行方法的流程图,本实施例可适用于通过执行测试脚本对待测软件产品进行测试的情况。该方法可以由测试流程的编排执行装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可以集成在用于提供自动化测试服务的计算机设备中(例如,各种智能终端或者服务器等)。如图1所示,该方法包括:
S110、执行目标测试脚本中的各项脚本语句。
在本实施例中,测试脚本是指用于对某一应用软件进行功能测试的可执行文件。而目标测试脚本是指当前待执行的测试脚本。在该目标测试脚本中包括有多项脚本语句,通过对上述各脚本语句的顺次执行,可以实现该目标测试脚本的测试需求。
其中,测试人员可以根据实际的测试需求,编写得到该目标测试脚本。同时,如前所述,测试人员在进行具体业务的测试脚本编写时,一般需要理解并整合多项前置业务,例如,一个目标测试脚本的测试需求是对应用程序中的功能X进行测试,但是,该功能X需要在应用程序的功能A和功能B均启动执行后,才可以进行测试。相应的,本次测试虽然仅针对功能C,但是需要在目标测试脚本中增加用于启动功能A和功能B的两项前置业务。
在本实施例中,测试人员可以直接在该目标测试脚本中,构建用于实现核心测试功能的主流程,如果在主流程的正常执行需要引入一项或者多项前置业务,则可以通过简单的原生逻辑控制语句,在主流程中的对应位置处加入用于实现前置业务的子流程的标识信息,并同时定义主流程与子流程,或者子流程之间的流程编排关系(子流程编排类型),例如,顺序、分支或者循环等。以实现对复杂测试流程的编排。
S120、在检测到执行至目标测试脚本中的目标子流程调用语句时,获取与目标子流程调用语句匹配的目标子流程标识以及目标子流程编排类型。
在本实施例中,子流程调用语句是指测试脚本中包括的,用于实现在主流程中调用子流程的脚本语句。目标子流程调用语句是指在目标测试脚本中当前识别到的子流程调用语句。测试人员可以通过编写特定的子流程调用语句的方式,实现在目标测试脚本所定义的主流程中引入需要前置执行的子流程。
基于在目标测试脚本中识别出的目标子流程调用语句,可以解析得到测试人员需要引入(或者说调用)的子流程(也即,目标子流程标识),以及该子流程与主流程之间的编排关系(也即,目标子流程编排类型)。
其中,所述目标子流程调用语句可以是指由设定语法规则构成的脚本语句。相应的,可以通过预设的语法识别规则,在目标测试脚本中识别出目标子流程调用语句;或者,该目标子流程调用语句可以是指包括有预设关键词的脚本语句。相应的,可以通过预设关键词识别的方式,在目标测试脚本中识别出目标子流程调用语句。
在本实施例的一个可选的实施方式中,检测执行至目标测试脚本中的目标子流程调用语句,可以包括:
获取当前待执行脚本语句,并判断所述当前待执行脚本语句中是否包括子流程调用关键词;若是,则确定所述当前待执行脚本语句为所述目标子流程调用语句。
在一个具体的例子中,可以通过“runFlow(子流程标识)”结构定义对一个子流程的调用。相应的,在获取到当前待执行脚本语句后,可以首先识别当前待执行脚本语句中是否包括“runFlow”关键词,若包括,则确定当前待执行脚本语句为所述目标子流程调用语句;若不包括,则确定该当前待执行脚本语句为目标测试脚本中用于实现主流程功能的一条普通语句,进而直接执行该当前待执行脚本语句即可。
在本实施例中,在确定当前执行至目标测试脚本中的目标子流程调用语句时,需要在目标子流程调用语句中获取匹配的目标子流程标识以及目标子流程编排类型,进而,可以按照该目标子流程编排类型,动态将与该目标子流程标识对应的子流程进行编排执行。
其中,该目标子流程编排类型具体是指当前需要调用执行的子流程与目标测试脚本中其他需要执行的子流程或者主流程之间的逻辑关系。上述目标子流程编排类型可以为顺序编排类型、分支编排类型或者循环编排类型等,本实施例对此并不进行限定。
具体的,当子流程A的目标子流程编排类型为顺序编排类型时,该子流程A会被用于执行顺序编排子流程的子流程调度器A执行,以实现对子流程A的无条件调用并执行;当子流程B的目标子流程编排类型为分支编排类型时,该子流程B会被用于执行分支编排子流程的子流程调度器B执行,以实现对子流程B的有条件的调用并执行;当子流程C的目标子流程编排类型为循环编排类型时,该子流程C会被用于执行循环编排子流程的子流程调度器C执行,以实现对子流程C的循环多次调用并执行。
S130、获取与目标子流程编排类型匹配的目标子流程调度器,并通过目标子流程调度器执行与目标子流程标识匹配的子流程代码。
在本实施例中,可以预先建立不同子流程编排类型与不同子流程调度器之间的对应关系,例如,顺序编排类型与用于执行顺序编排子流程的子流程调度器之间的对应关系,以及分支编排类型与用于执行分支编排子流程的子流程调度器之间的对应关系等。
相应的,在从目标子流程调用语句中识别出目标子流程编排类型以及目标子流程标识后,可以调取与该目标子流程编排类型匹配的目标子流程调度器,并通过目标子流程调度器执行与目标子流程标识匹配的子流程代码。
在本实施例的一个可选的实施方式中,通过目标子流程调度器执行与目标子流程标识匹配的子流程代码的方式可以为:
通过目标子流程调度器从子流程库中获取与所述目标子流程标识匹配的目标流程抽象模型;通过目标子流程调度器动态加载,并实例化所述目标流程抽象模型,形成与所述目标流程抽象模型匹配的子流程代码;通过目标子流程调度器执行所述子流程代码。
在本实施例中,可以预先构建子流程库,该子流程库中存储有与多个子流程分别对应的多个流程抽象模型,所述流程抽象模型可以理解为将用户输入的字符类型的子流程测试脚本,通过语法编译器,编译得到可以被系统执行的类对象。
在本实施例中,可以将每一项可能会被前置执行的子流程抽象成一套统一的可执行的流程抽象模型(也可以称为类对象),如果需要在测试人员当前编写的目标测试脚本中进行子流程的嵌套执行,只需要通过匹配的目标子流程调度器将匹配的目标流程抽象模型实例化为子流程代码并执行,可以实现对相应子流程的嵌套执行。
其中,所谓将子流程抽象成一套统一的可执行的流程抽象模型,是指可以预先构建一个统一的抽象模板,然后针对每个子流程的具体流程内容对应更新该统一的抽象模板,得到各个可执行的流程抽象模型。
可选的,可以在这个统一的抽象模板中定义前置,执行,后置,异常处理四个模块,通过对上述抽象模板中上述四个模块的更新,可以得到与每个子流程分别对应的流程抽象模型。可选的,与一个流程抽象模型对应的子流程代码在执行过程中,按照前置模块、执行模块、后置模块这样的顺序执行。如果在子流程代码的执行过程中出现执行异常,子流程代码会捕获异常并传入异常处理模块,由测试人员预先定义好的处理逻辑对异常信息进行处理。
在一个具体的例子中,与该统一的抽象模板对应的一个可选的伪代码结构如下所示:
这样设置的好处在于:测试人员可以通过统一的抽象模板构建与多个子流程分别对应的流程抽象模型,并相应加入至子流程库,以实现各个流程抽象模型的规整化管理和使用。
S140、在确定目标子流程调度器完成对子流程代码的执行时,继续执行目标测试脚本,直至完成对目标测试脚本中全部脚本语句的处理。
在本实施例中,在目标子流程调度器完成对子流程代码的执行后,说明了在与目标测试脚本对应的主流程中完成了对一个子流程的嵌套执行。进而,可以重新返回至主流程中的后一脚本语句进行继续执行,直至完成对整个目标测试脚本的执行。
本发明实施例的技术方案通过在用于写入主流程的目标测试脚本中,以低代码的形式写入需要进行编排的子流程标识以及子流程编排类型,进而可以在目标测试脚本的执行过程中,动态调用与子流程编排类型匹配的子流程调度器对相应的子流程代码进行处理,可以在脚本文件执行过程中,进行动态的子流程编排的效果。本发明实施例的技术方案提供了一种在低代码构建脚本文件的前提下,实现复杂的测试流程的编排的新方式,测试人员可以通过简单的代码逻辑实现复杂子流程的编排,测试脚本的拓展性、复用性更强,并大大降低了测试人员的学习成本。
实施例二
图2是本发明实施例二中的一种测试流程的编排执行方法的流程图,本实施例以上述实施例为基础进行细化,在本实施例中,将获取与目标子流程调用语句匹配的目标子流程标识以及目标子流程编排类型的方式进行了进一步细化。相应的,本实施例的方法可以包括:
S210、执行目标测试脚本中的各项脚本语句。
S220、在检测到执行至目标测试脚本中的目标子流程调用语句时,获取子流程调用关键词在所述目标子流程调用语句中的位置。
S230、在所述目标子流程调用语句中定位子流程标识识别区域。
S240、在所述子流程标识识别区域内,获取所述目标子流程标识。
在本实施例中,测试人员通过使用子流程调用关键词,构建子流程调用语句。
在一个具体的例子中,可以通过在子流程调用语句中引用或者声明runFlow(String flowId,String flowAlias)”的方式,定义对一个子流程的嵌套执行。
在上述例子中,“runFlow”为子流程调用关键词,如果在当前待执行脚本语句中识别到“runFlow”,可以基于该“runFlow”在所述目标子流程调用语句中的位置,定位该“runFlow”相邻的后一括号中的内容,作为子流程标识识别区域,进而在该括号内识别得到目标子流程标识。
可选的,如果一个子流程在目标测试脚本中仅被嵌套执行一次,则可以通过runFlow(String flowId)的方式,构建匹配的目标子流程调用语句。相应的,可以直接从上述子流程标识识别区域提取出全部内容,作为该目标子流程标识。如果一个子流程在目标测试脚本中需要被嵌套执行多次,则可以通过runFlow(String flowId,flowAlias)的方式,构建匹配的目标子流程调用语句。以实现显式的为子流程赋予别名进行区分。相应的,可以直接从上述子流程标识识别区域提取出首个字符串作为该目标子流程标识。
S250、在目标子流程调用语句中识别原生逻辑控制语句。
在本实施例中,所述原生逻辑控制语句具体是指在编程语言中普遍使用的,用于实现不同代码执行逻辑的编程语句,例如,用于实现分支执行逻辑的if-else语句,或者用于实现循环执行逻辑的while语句等。
在本实施例中,发明人创造性的发现了原生代码中的原生逻辑控制语句与用于实现不同流程编排逻辑的子流程调度器之间的近似对应关系。进而提出了一种以低代码的方式,使用一项或者多项原生逻辑控制语句,将至少一个嵌套流程与整个主流程之间的编排关系,简单、直接的写入至目标测试脚本中。
通过上述设置,测试人员不需要很多的学习成本,即可快速掌握对多个嵌套流程的编排方式,后续的操作虽然需要调用对应的目标子流程调度器对相应的子流程代码进行动态加载执行,但是上述操作对测试人员隐藏,测试人员仅仅需要使用原生逻辑控制语句表达出各种多变的编排逻辑即可,大大减少了测试人员的学习成本和学习时间,从另一个层面提高了应用程序的测试效率。
相应的,在识别得到目标子流程调用语句之后,可以根据测试人员在该目标子流程调用语句中对原生逻辑控制语句的使用情况,确定目标子流程编排类型。
S260、根据对原生逻辑控制语句的识别结果,获取目标子流程编排类型。
在本实施例的一个可选的实施方式中,根据对原生逻辑控制语句的识别结果,获取目标子流程编排类型的方式可以为下述至少一项:
如果确定在目标子流程调用语句中识别出if-else语句或者switch-case语句,则确定所述目标子流程编排类型为分支编排类型;
如果确定在目标子流程调用语句中识别出for语句、while语句或者do-while语句,则确定所述目标子流程编排类型为循环编排类型;
如果确定在所述目标子流程调用语句中未识别出任一原生逻辑控制语句,则确定所述目标子流程编排类型为顺序编排类型。
在一个具体的例子中,目标测试文件中编写的主流程伪代码结构如下所示:
在上述伪代码示例中,首先定义目标测试文件中的主流程为“Demo”,在上述代码的第五行中使用目标子流程调用语句“pf.sys.runFlow(’FlowA”)”顺序运行子流程“FlowA”,同时根据运行结果如果等于0,则运行子流程“FlowB”;如果不等于0,则运行子流程“FlowC”,子流程“FlowC”会被循环执行直到其结果等于false。在这个代码样例中,“FlowA”、“FlowB”、“FlowC”和定义的主流程“Demo”均使用统一的抽象模型。
通过上述例子可以看出,通过在目标测试文件中使用非常简单的代码表达(低代码形式),即可实现非常丰富和复杂的多流程编排,只要在识别出目标子流程调用语句中进一步识别出相应的原生逻辑控制语句,即可根据识别确定出匹配的目标子流程编排类型,并相应调用匹配的目标子流程调度器执行子流程代码。
S270、获取与目标子流程编排类型匹配的目标子流程调度器,并通过目标子流程调度器执行与目标子流程标识匹配的子流程代码。
S280、在确定目标子流程调度器完成对子流程代码的执行时,继续执行目标测试脚本,直至完成对目标测试脚本中全部脚本语句的处理。
本发明实施例的技术方案通过在用于写入主流程的目标测试脚本中,以低代码的形式写入需要进行编排的子流程标识以及子流程编排类型,进而可以在目标测试脚本的执行过程中,动态调用与子流程编排类型匹配的子流程调度器对相应的子流程代码进行处理,可以在脚本文件执行过程中,进行动态的子流程编排的效果。本发明实施例的技术方案提供了一种在低代码构建脚本文件的前提下,实现复杂的测试流程的编排的新方式,测试人员可以通过简单的代码逻辑实现复杂子流程的编排,测试脚本的拓展性、复用性更强,并大大降低了测试人员的学习成本。
实施例三
图3是本发明实施例三中的一种测试流程的编排执行方法的流程图,本实施例以上述实施例为基础进行细化,在本实施例中,具体限定了测试流程的编排执行方法的整体实现流程,相应的,本实施例的方法可以包括:
S310、通过测试流程执行器依次获取目标测试脚本中的一项脚本语句,作为当前待执行脚本语句。
在本实施例中,可以进一步构建用于执行目标测试脚本中用于实现主流程功能的普通语句的测试流程执行器,以实现主流程和各个嵌套子流程执行过程的隔离,进一步提高整个目标测试脚本执行可移植性和可复用性。
S320、通过测试流程执行器检测所述当前待执行脚本语句是否为目标子流程调用语句:若是,则执行S330;否则,执行S380。
S330、通过测试流程执行器将当前脚本执行状态信息保存于执行栈中,执行S340。
在本实施例中,如果确定执行至目标测试文件中包括的目标子流程调用语句时,需要将主流程的当前脚本执行状态信息进行保存,并在上述目标子流程调用语句执行完毕后,重新获取该当前脚本执行状态信息,以进行目标测试文件的继续执行。
S340、通过测试流程执行器获取与目标子流程调用语句匹配的目标子流程标识以及目标子流程编排类型,执行S350。
S350、通过测试流程执行器获取与目标子流程编排类型匹配的目标子流程调度器。执行S360。
S360、通过目标子流程调度器执行与目标子流程标识匹配的子流程代码,执行S370。
S370、在通过测试流程执行器确定目标子流程调度器完成对子流程代码的执行时,从所述执行栈获取所述当前脚本执行状态信息,执行S380。
S380、通过测试流程执行器判断是否完成对目标测试脚本中全部脚本语句的处理:若是,结束流程,否则,返回执行S310。
本发明实施例的技术方案通过在用于写入主流程的目标测试脚本中,以低代码的形式写入需要进行编排的子流程标识以及子流程编排类型,进而可以在目标测试脚本的执行过程中,动态调用与子流程编排类型匹配的子流程调度器对相应的子流程代码进行处理,可以在脚本文件执行过程中,进行动态的子流程编排的效果。本发明实施例的技术方案提供了一种在低代码构建脚本文件的前提下,实现复杂的测试流程的编排的新方式,测试人员可以通过简单的代码逻辑实现复杂子流程的编排,测试脚本的拓展性、复用性更强,并大大降低了测试人员的学习成本。
实施例四
图4是本发明实施例四中的一种测试流程的编排执行装置的结构示意图。如图4所示,该测试流程的编排执行装置包括:脚本语句执行模块410、关键信息获取模块420、子流程代码执行模块430以及继续执行模块440。其中:
脚本语句执行模块410,用于执行目标测试脚本中的各项脚本语句。
关键信息获取模块420,用于在检测到执行至目标测试脚本中的目标子流程调用语句时,获取与目标子流程调用语句匹配的目标子流程标识以及目标子流程编排类型。
子流程代码执行模块430,用于获取与目标子流程编排类型匹配的目标子流程调度器,并通过目标子流程调度器执行与目标子流程标识匹配的子流程代码。
继续执行模块440,用于在确定目标子流程调度器完成对子流程代码的执行时,继续执行目标测试脚本,直至完成对目标测试脚本中全部脚本语句的处理。
本发明实施例的技术方案通过在用于写入主流程的目标测试脚本中,以低代码的形式写入需要进行编排的子流程标识以及子流程编排类型,进而可以在目标测试脚本的执行过程中,动态调用与子流程编排类型匹配的子流程调度器对相应的子流程代码进行处理,可以在脚本文件执行过程中,进行动态的子流程编排的效果。本发明实施例的技术方案提供了一种在低代码构建脚本文件的前提下,实现复杂的测试流程的编排的新方式,测试人员可以通过简单的代码逻辑实现复杂子流程的编排,测试脚本的拓展性、复用性更强,并大大降低了测试人员的学习成本。
在上述各实施例的基础上,关键信息获取模块420,可以具体用于:
获取当前待执行脚本语句,并判断所述当前待执行脚本语句中是否包括子流程调用关键词;
若是,则确定所述当前待执行脚本语句为所述目标子流程调用语句。
在上述各实施例的基础上,关键信息获取模块420,可以具体用于:
根据所述子流程调用关键词在所述目标子流程调用语句中的位置,在所述目标子流程调用语句中定位子流程标识识别区域;
在所述子流程标识识别区域内,获取所述目标子流程标识。
在上述各实施例的基础上,关键信息获取模块420,可以具体包括:
原生逻辑控制语句识别单元,用于在目标子流程调用语句中识别原生逻辑控制语句;
目标子流程编排类型获取单元,用于根据对原生逻辑控制语句的识别结果,获取目标子流程编排类型。
在上述各实施例的基础上,目标子流程编排类型获取单元,可以具体用于执行下述至少一项:
如果确定在目标子流程调用语句中识别出if-else语句或者switch-case语句,则确定所述目标子流程编排类型为分支编排类型;
如果确定在目标子流程调用语句中识别出for语句、while语句或者do-while语句,则确定所述目标子流程编排类型为循环编排类型;
如果确定在所述目标子流程调用语句中未识别出任一原生逻辑控制语句,则确定所述目标子流程编排类型为顺序编排类型。
在上述各实施例的基础上,子流程代码执行模块430,可以具体用于:
通过目标子流程调度器从子流程库中获取与所述目标子流程标识匹配的目标流程抽象模型;
通过目标子流程调度器动态加载,并实例化所述目标流程抽象模型,形成与所述目标流程抽象模型匹配的子流程代码;
通过目标子流程调度器执行所述子流程代码。
在上述各实施例的基础上,脚本语句执行模块410可以具体用于:通过测试流程执行器执行目标测试脚本中的各项脚本语句;
关键信息获取模块420,可以具体用于:通过测试流程执行器在检测到执行至目标测试脚本中的目标子流程调用语句时,将当前脚本执行状态信息保存于执行栈中,并获取与目标子流程调用语句匹配的目标子流程标识以及目标子流程编排类型;
继续执行模块440,可以具体用于:在通过测试流程执行器确定目标子流程调度器完成对子流程代码的执行时,从所述执行栈获取所述当前脚本执行状态信息,并继续执行所述目标子流程调用语句的后一脚本语句,直至完成对目标测试脚本中全部脚本语句的处理。
本发明实施例所提供的测试流程的编排执行装置可执行本发明任意实施例所提供的测试流程的编排执行方法,具备执行方法相应的功能模块和有益效果。
实施例五
图5为本发明实施例五提供的一种计算机设备的结构示意图,如图5所示,该计算机设备包括处理器50、存储器51、输入装置52和输出装置53;计算机设备中处理器50的数量可以是一个或多个,图5中以一个处理器50为例;计算机设备中的处理器50、存储器51、输入装置52和输出装置53可以通过总线或其他方式连接,图5中以通过总线连接为例。
存储器51作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的测试流程的编排执行方法对应的程序指令/模块(例如,测试流程的编排执行装置中的脚本语句执行模块410、关键信息获取模块420、子流程代码执行模块430以及继续执行模块440)。处理器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.根据权利要求2所述的方法,其特征在于,获取与目标子流程调用语句匹配的目标子流程标识,包括:
根据所述子流程调用关键词在所述目标子流程调用语句中的位置,在所述目标子流程调用语句中定位子流程标识识别区域;
在所述子流程标识识别区域内,获取所述目标子流程标识。
4.根据权利要求1所述的方法,其特征在于,获取与目标子流程调用语句匹配的目标子流程编排类型,包括:
在目标子流程调用语句中识别原生逻辑控制语句;
根据对原生逻辑控制语句的识别结果,获取目标子流程编排类型。
5.根据权利要求4所述的方法,其特征在于,根据对原生逻辑控制语句的识别结果,获取目标子流程编排类型,包括下述至少一项:
如果确定在目标子流程调用语句中识别出if-else语句或者switch-case语句,则确定所述目标子流程编排类型为分支编排类型;
如果确定在目标子流程调用语句中识别出for语句、while语句或者do-while语句,则确定所述目标子流程编排类型为循环编排类型;
如果确定在所述目标子流程调用语句中未识别出任一原生逻辑控制语句,则确定所述目标子流程编排类型为顺序编排类型。
6.根据权利要求1-5任一项所述的方法,其特征在于,执行目标测试脚本中的各项脚本语句,包括:
通过测试流程执行器执行目标测试脚本中的各项脚本语句;
在检测到执行至目标测试脚本中的目标子流程调用语句时,获取与目标子流程调用语句匹配的目标子流程标识以及目标子流程编排类型,包括:
通过测试流程执行器在检测到执行至目标测试脚本中的目标子流程调用语句时,将当前脚本执行状态信息保存于执行栈中,并获取与目标子流程调用语句匹配的目标子流程标识以及目标子流程编排类型;
在确定目标子流程调度器完成对子流程代码的执行时,继续执行目标测试脚本,直至完成对目标测试脚本中全部脚本语句的处理,包括:
在通过测试流程执行器确定目标子流程调度器完成对子流程代码的执行时,从所述执行栈获取所述当前脚本执行状态信息,并继续执行所述目标子流程调用语句的后一脚本语句,直至完成对目标测试脚本中全部脚本语句的处理。
7.一种测试流程的编排执行装置,其特征在于,包括:
脚本语句执行模块,用于执行目标测试脚本中的各项脚本语句;
关键信息获取模块,用于在检测到执行至目标测试脚本中的目标子流程调用语句时,获取与目标子流程调用语句匹配的目标子流程标识以及目标子流程编排类型;
子流程代码执行模块,用于获取与目标子流程编排类型匹配的目标子流程调度器,并通过目标子流程调度器执行与目标子流程标识匹配的子流程代码;
继续执行模块,用于在确定目标子流程调度器完成对子流程代码的执行时,继续执行目标测试脚本,直至完成对目标测试脚本中全部脚本语句的处理;
所述子流程代码执行模块,具体用于:通过目标子流程调度器从子流程库中获取与所述目标子流程标识匹配的目标流程抽象模型;通过目标子流程调度器动态加载,并实例化所述目标流程抽象模型,形成与所述目标流程抽象模型匹配的子流程代码;通过目标子流程调度器执行所述子流程代码。
8.一种计算机设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
9.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-6中任一项所述的方法。
CN202110396820.7A 2021-04-13 2021-04-13 测试流程的编排执行方法、装置、计算机设备和存储介质 Active CN113051173B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110396820.7A CN113051173B (zh) 2021-04-13 2021-04-13 测试流程的编排执行方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110396820.7A CN113051173B (zh) 2021-04-13 2021-04-13 测试流程的编排执行方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN113051173A CN113051173A (zh) 2021-06-29
CN113051173B true CN113051173B (zh) 2024-04-19

Family

ID=76519304

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110396820.7A Active CN113051173B (zh) 2021-04-13 2021-04-13 测试流程的编排执行方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN113051173B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115170062A (zh) * 2022-06-22 2022-10-11 壹沓科技(上海)有限公司 自动化流程开发方法、装置及设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014115189A1 (en) * 2013-01-28 2014-07-31 Nec Corporation Method and system for transforming specification scripts to program code
CN107480893A (zh) * 2017-08-18 2017-12-15 浪潮软件股份有限公司 一种流程编排方法及装置
CN110347598A (zh) * 2019-07-10 2019-10-18 上海达梦数据库有限公司 一种测试脚本生成方法、装置、服务器及存储介质
CN111831573A (zh) * 2020-07-27 2020-10-27 中国工商银行股份有限公司 代码分支覆盖情况的确定方法、装置、计算机系统和介质
CN112181823A (zh) * 2020-09-25 2021-01-05 建信金融科技有限责任公司 测试脚本的执行方法、装置、服务器、电子设备及介质
CN112306884A (zh) * 2020-11-10 2021-02-02 广州华多网络科技有限公司 程序测试控制、执行方法及其相应的装置、设备、介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014115189A1 (en) * 2013-01-28 2014-07-31 Nec Corporation Method and system for transforming specification scripts to program code
CN107480893A (zh) * 2017-08-18 2017-12-15 浪潮软件股份有限公司 一种流程编排方法及装置
CN110347598A (zh) * 2019-07-10 2019-10-18 上海达梦数据库有限公司 一种测试脚本生成方法、装置、服务器及存储介质
CN111831573A (zh) * 2020-07-27 2020-10-27 中国工商银行股份有限公司 代码分支覆盖情况的确定方法、装置、计算机系统和介质
CN112181823A (zh) * 2020-09-25 2021-01-05 建信金融科技有限责任公司 测试脚本的执行方法、装置、服务器、电子设备及介质
CN112306884A (zh) * 2020-11-10 2021-02-02 广州华多网络科技有限公司 程序测试控制、执行方法及其相应的装置、设备、介质

Also Published As

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

Similar Documents

Publication Publication Date Title
CA2915619C (en) Method and apparatus for customized software development kit (sdk) generation
CN109002510B (zh) 一种对话处理方法、装置、设备和介质
CN110442396B (zh) 应用程序启动方法及装置、存储介质及电子设备
CN109992498B (zh) 测试用例的生成方法及系统、计算机系统
WO2020233369A1 (zh) 基于模拟端口改进软件集成系统的方法及相关设备
CN112104709B (zh) 智能合约的处理方法、装置、介质及电子设备
CN107451062B (zh) 一种用户界面遍历测试方法、装置、服务器、存储介质
CN113900958A (zh) 测试用例脚本的生成方法、系统、介质及电子设备
CN110825440B (zh) 指令执行方法和装置
CN108595331B (zh) 异步接口的测试方法、介质、装置和计算设备
CN103995778A (zh) 一种基于事件和动作的脚本文件生成方法及其装置
US20190147104A1 (en) Method and apparatus for constructing artificial intelligence application
CN113051173B (zh) 测试流程的编排执行方法、装置、计算机设备和存储介质
CN116360735A (zh) 一种表单生成方法、装置、设备和介质
CN110221840B (zh) 应用程序的功能实现方法及装置、设备及存储介质
CN115994085A (zh) 代码覆盖率的测试处理方法、装置、设备及存储介质
CN110704099B (zh) 联盟链的构建方法、装置和电子设备
CN113590179B (zh) 插件检测方法、装置、电子设备及存储介质
CN113051172B (zh) 测试脚本的执行方法、装置、计算机设备和存储介质
CN115167822A (zh) 分支代码合并方法、装置、设备和存储介质
CN115080113A (zh) 项目代码检测方法和装置、可读存储介质、电子设备
CN114741294A (zh) 一种页面的调试方法、装置、设备及存储介质
CN110825461B (zh) 数据处理方法和装置
CN113342678A (zh) 一种接口自动化测试方法、装置、电子设备和存储介质
CN113391795A (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