CN113360365B - 一种流程测试方法和流程测试系统 - Google Patents
一种流程测试方法和流程测试系统 Download PDFInfo
- Publication number
- CN113360365B CN113360365B CN202010145411.5A CN202010145411A CN113360365B CN 113360365 B CN113360365 B CN 113360365B CN 202010145411 A CN202010145411 A CN 202010145411A CN 113360365 B CN113360365 B CN 113360365B
- Authority
- CN
- China
- Prior art keywords
- flow
- node
- script
- client
- executed
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 104
- 238000010998 test method Methods 0.000 title claims abstract description 27
- 238000013515 script Methods 0.000 claims abstract description 160
- 230000000007 visual effect Effects 0.000 claims description 55
- 238000012795 verification Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 9
- 238000000034 method Methods 0.000 abstract description 57
- 230000008569 process Effects 0.000 description 49
- 238000010586 diagram Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000026676 system process Effects 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012800 visualization Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002411 adverse Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000010979 ruby Substances 0.000 description 1
- 229910001750 ruby Inorganic materials 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
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.一旦规则或流程发生修改,需要技术人员对代码进行多次修改,增加了开发维护,且提高了开发维护成本。
发明内容
有鉴于此,本发明实施例提供一种流程测试方法和流程测试系统,能够将复杂的流程从硬编码中解耦出来,方便及时跟踪流程测试情况。
为实现上述目的,根据本发明实施例的一个方面,提供了一种流程测试方法。
本发明实施例的一种流程测试方法包括:
响应于客户端的测试请求,根据所述测试请求携带的流程标识获取所述流程脚本;
执行所述流程脚本,并获取系统流程中的已执行流程节点的节点信息以及流程执行结果;其中,所述系统流程基于流程脚本创建得到;
将所述流程执行结果和所述已执行流程节点的节点信息返回至客户端,以在客户端展示流程执行节点路径。
可选地,所述流程脚本包括可视化流程脚本和可执行流程脚本;以及
所述系统流程的创建,包括:
接收客户端的可视化流程脚本;其中,所述可视化流程脚本包含流程标识、各个流程节点的节点信息、分支条件和流程节点之间的节点关系;
获取客户端中配置的所述可视化流程脚本对应的预设流程,并对所述预设流程进行流程校验;
在流程校验通过后,将所述可视化流程脚本解析为可执行流程脚本,并存储所述可执行流程脚本;
创建可视化的系统流程,并向客户端返回创建结果。
可选地,执行所述流程脚本,并获取所述系统流程的已执行流程节点的节点信息以及流程执行结果,包括:
执行所述可执行流程脚本,并根据当前流程节点的节点执行结果和所述分支条件确定下一流程节点;
获取已执行流程节点的节点信息;其中,所述节点信息包括节点标识、调用地址以及节点的请求参数与响应参数;
在执行最后一个流程节点后,获取最后一个流程节点的节点执行结果作为流程执行结果。
为实现上述目的,根据本发明实施例的又一方面,提供了一种流程测试系统。
本发明实施例的一种流程测试系统包括:流程管理器、流程测试器、流程执行器和节点跟踪器,其中:
所述流程管理器用于基于流程脚本创建得到系统流程;
所述流程测试器用于响应于客户端的测试请求,根据所述测试请求携带的流程标识获取所述流程脚本,以及将所述系统流程的流程执行结果和已执行流程节点的节点信息返回至客户端;
所述流程执行器用于执行所述流程脚本,获取所述系统流程中的流程执行结果,并向所述流程测试器返回;
所述节点跟踪器用于接收并记录所述流程执行器发送的所述系统流程中已执行流程节点的节点信息。
可选地,所述流程管理器还用于:
接收客户端的可视化流程脚本;其中,所述可视化流程脚本包含流程标识、各个流程节点的节点信息、分支条件和所述流程节点之间的节点关系;
获取客户端中配置的所述可视化流程脚本对应的预设流程,并对所述预设流程进行流程校验;
在流程校验通过后,将所述可视化流程脚本解析为可执行流程脚本,并存储所述可执行流程脚本;
创建可视化的系统流程,并向客户端返回创建结果。
可选地,还包括接口调用器,所述流程执行器还用于:
将所述节点跟踪器与所述系统流程建立关联;以及
调用所述接口调用器获取所述系统流程中当前流程节点的节点执行结果;
根据所述节点执行结果和所述分支条件确定下一流程节点;
将所述已执行流程节点的节点信息发送至所述节点跟踪器;其中,所述节点信息包括节点标识以及节点的请求参数与响应参数。
可选地,所述流程测试器还用于:
接收客户端的测试请求;其中,所述测试请求携带有流程标识;
根据所述流程标识向所述流程管理器获取所述可执行流程脚本。
可选地,所述流程测试器还用于:
从所述节点跟踪器获取所述已执行流程节点的节点信息;以及
在执行最后一个流程节点后,从流程执行器获取最后一个流程节点的节点执行结果作为流程执行结果;
将所述流程执行结果和所述已执行流程节点的节点信息返回至客户端,以在客户端展示流程执行节点路径。
为实现上述目的,根据本发明实施例的又一方面,提供了一种流程测试的电子设备。
本发明实施例的一种流程测试的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种流程测试方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读存储介质。
本发明实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种流程测试方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用响应于客户端的测试请求,根据测试请求携带的流程标识获取流程脚本;执行流程脚本,并获取系统流程中的流程执行结果以及已执行流程节点的节点信息;将流程执行结果和已执行流程节点的节点信息返回至客户端,以在客户端展示流程执行节点路径的技术手段,所以克服了产生大量的冗余代码,代码复用率低,开发维护,且提高了开发维护成本的技术问题,进而达到将复杂的流程从硬编码中解耦出来,方便及时跟踪流程测试情况的技术效果。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的流程测试方法的主要步骤的示意图;
图2是根据本发明实施例的流程测试系统的主要模块的示意图;
图3是根据本发明一个可参考实施例的流程测试方法的创建系统流程的示意图;
图4是根据本发明一个可参考实施例的流程测试方法的测试系统流程的示意图;
图5是根据本发明实施例的流程测试方法的应用示意图;
图6是根据本发明实施例的流程测试方法的流程执行成功的示意图;
图7是根据本发明实施例的流程测试方法的流程执行失败的示意图;
图8是本发明实施例可以应用于其中的示例性系统架构图;
图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
对于规则或流程类业务,由于大部分规则或流程类业务逻辑繁琐,相应地,流程配置也比较繁琐,若配置流程不经严谨的测试极易出错,无法保证流程正确性,影响业务运行,造成不可估量的损失和负面影响。例如,信贷风控管理或自动化审批的实现。
目前,在实现规则或流程类业务时,主要由技术人员直接通过硬编码预设定完成,这种实现方式虽然简单直接,但至少存在如下问题:
1.流程测试或业务执行等过程中会调用外部多个不同的数据接口,且不同业务可能会调用相同的外部数据接口,硬编码的方式会产生大量的冗余代码,代码复用率低;
2.一旦规则或流程发生修改,需要技术人员对代码进行多次修改,增加了开发维护,且提高了开发维护成本。
为此,本发明实施例的流程测试方法提出,利用流程脚本将复杂的流程从硬编码中解耦出来,在流程测试时,通过获取已执行流程节点的节点信息以及流程执行结果,完成可视化流程配置,方便及时跟踪流程测试情况。
图1是根据本发明实施例的流程测试方法的主要步骤的示意图。
如图1所示,本发明实施例的流程测试方法主要包括以下步骤:
步骤S101:响应于客户端的测试请求,根据测试请求携带的流程标识获取流程脚本。
由于接口是流程的组成最小组成单元,一个流程可以由多个接口构成,不同流程可以复用同一接口。基于此,可以利用流程脚本将复杂的流程从硬编码中解耦出来,并根据业务需求进行配置、修改、测试、发布、下线等操作。
流程脚本包括可视化流程脚本和可执行流程脚本,其中,可视化流程脚本是一种约定好的结构体脚本,可以是树形结构、也可以是数组,其可以包含流程标识、各个流程节点的节点信息、分支条件和流程节点之间的节点关系等,每个流程节点是一个接口,节点信息即接口的信息,节点信息主要包括节点标识、调用地址、以及节点的请求参数与响应参数等信息;可执行流程脚本是各类语法规则引擎能够执行的代码脚本,是一种类似于java源代码格式的一种脚本,可以使用的语法规则引擎包括但不限于QLExpress、Groovy和SimpleEL。QLExpress引擎是一个轻量级的类java语法规则引擎,作为一个嵌入式规则引擎在业务系统中使用。让业务规则定义简便而不失灵活。让业务人员就可以定义业务规则。支持标准的JAVA语法,还可以支持自定义操作符号、操作符号重载、函数定义、宏定义、数据延迟加载等。Groovy是一种基于JVM的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性。Simple EL是一个表达式解析引擎。它将表达式解析分成四个部分:预处理、编译、缓存和执行。这四个步骤任意一部分都可以替换,类似设计模式中的Template Method。SimpleEL将表达式处理成Java Source,调用Tools.jar的Javac API动态编译,缓存编译后反射得到的实例,使得表达式的解析速度和Java静态编译的速度接近。
用户可以通过客户端发起对系统流程的测试,即通过客户端向流程测试系统发送测试请求,该测试请求中携带有流程标识,流程测试系统可以根据流程标识获取对应的可执行流程脚本。
步骤S102:执行流程脚本,并获取系统流程的已执行流程节点的节点信息以及流程执行结果。
在创建系统流程时存储的流程脚本,在进行测试时执行,从而了解系统流程的运行情况,在执行流程脚本的过程中,采集已执行流程节点的节点信息以及流程执行结果。其中,流程执行结果是最后一个执行的流程节点的节点执行结果。
利用流程脚本可以将复杂的流程从硬编码中解耦出来,并根据业务需求进行可视化的配置、修改、测试、发布、下线等操作,例如创建可视化的系统流程。
在本发明实施例中,系统流程的创建可以采用以下方式实现:接收客户端的可视化流程脚本;获取客户端中配置的可视化流程脚本对应的预设流程,并对预设流程进行流程校验;在流程校验通过后,将可视化流程脚本解析为可执行流程脚本,并存储可执行流程脚本;创建可视化的系统流程,并向客户端返回创建结果。
用户通过客户端的流程引擎前端页面,根据不同业务需求将接口编排成特定的流程(即系统流程)并保存,当用户触发流程保存操作时,客户端将可视化脚本传给后端(即流程测试系统),流程测试系统开始执行上述的解析等操作,完成系统流程的创建。其中,流程引擎中是一种流程编辑工具,流程引擎前端页面即流程创建页面。
解析可视化流程脚本前的流程校验,是判断系统流程是否符合要求,主要校验依据包括但不限于检查是否存在环、是否有流程开始结束节点、流程节点类型是否合法等异常情况,若检验失败,则返回给客户端异常错误信息;若校验通过,则在脚本解析(即将可视化流程脚本解析成qlexpress引擎等能够执行的可执行流程脚本)后进行保存,并返回给客户端流程创建成功响应。
在本发明实施例中,步骤S102可以采用以下方式实现:执行可执行流程脚本,并根据当前流程节点的节点执行结果和分支条件确定下一流程节点;获取已执行流程节点的节点信息;在执行最后一个流程节点后,获取最后一个流程节点的节点执行结果作为流程执行结果。
在执行可执行流程脚本时,是逐一检验各个流程节点的接口的过程,在执行当前流程节点后能够得到当前流程节点的节点执行结果,根据该节点执行结果和流程脚本的分支条件可以确定下一流程节点,直至按预设流程执行完最后一个流程节点,最后一个流程节点没有对应的分支(即下一个流程节点)。其中,节点执行结果可以是节点执行成功或节点执行失败,或者,还可以是是否满足指定条件。分支条件即节点执行成功或满足特定条件时下一执行的是哪一流程节点、节点执行失败或不满足特定条件时下一执行的是哪一流程节点,例如,当节点2节点执行成功时执行节点3,当节点2节点执行失败时则执行节点5;或者当用户年龄大于某一阈值,执行节点3,否则执行节点5等。
步骤S103:将流程执行结果和已执行流程节点的节点信息返回至客户端,以在客户端展示流程执行节点路径。
通过步骤S102得到的流程执行结果和已执行流程节点的节点信息,能够直观地向用户展示流程测试,还可以可视化地展示流程执行节点路径,客户端的可视化展示可以采用现有的技术或工具实现,本发明实施例不予赘述。
根据本发明实施例的流程测试方法可以看出,因为采用响应于客户端的测试请求,根据测试请求携带的流程标识获取流程脚本;执行流程脚本,并获取系统流程中的流程执行结果以及已执行流程节点的节点信息;将流程执行结果和已执行流程节点的节点信息返回至客户端,以在客户端展示流程执行节点路径的技术手段,所以克服了产生大量的冗余代码,代码复用率低,开发维护,且提高了开发维护成本的技术问题,进而达到将复杂的流程从硬编码中解耦出来,方便及时跟踪流程测试情况的技术效果。
图2是根据本发明实施例的流程测试系统的主要模块的示意图。
如图2所示,本发明实施例的流程测试系统200主要包括:流程管理器201、流程测试器202、流程执行器203和节点跟踪器204。
该流程测试系统200应用本发明实施例的流程测试方法,其中,流程管理器201和流程测试器202可以直接与客户端交互,响应客户端发起的创建或测试系统流程,流程执行器203和节点跟踪器204主要用于执行具体的测试。具体地:
流程管理器201用于基于流程脚本创建得到系统流程;
流程测试器202用于响应于客户端的测试请求,根据测试请求携带的流程标识获取流程脚本;
流程执行器203用于执行流程脚本,获取系统流程中的流程执行结果,并向流程测试器202返回;
节点跟踪器204用于接收并记录流程执行器203发送的系统流程中已执行流程节点的节点信息;以及
流程测试器202还用于将系统流程的流程执行结果和已执行流程节点的节点信息返回至客户端。
在本发明实施例中,流程脚本包括可视化流程脚本和可执行流程脚本,其中,可视化流程脚本是一种约定好的结构体脚本,可以是树形结构、也可以是数组;可执行流程脚本是各类语法规则引擎能够执行的代码脚本,是一种类似于java源代码格式的一种脚本。可视化流程脚本和可执行流程脚本可以包含流程标识、各个流程节点的节点信息、分支条件和流程节点之间的节点关系等,每个流程节点是一个接口,节点信息即接口的信息,节点信息主要包括节点标识、调用地址、以及节点的请求参数与响应参数等信息,利用流程脚本可以将复杂的流程从硬编码中解耦出来。可执行流程脚本可以用于后续的测试系统流程。
在本发明实施例中,流程管理器201还可以用于:
接收客户端的可视化流程脚本;
获取客户端中配置的可视化流程脚本对应的预设流程,并对预设流程进行流程校验;
在流程校验通过后,将可视化流程脚本解析为可执行流程脚本,并存储可执行流程脚本;
创建可视化的系统流程,并向客户端返回创建结果。
用户通过客户端的流程引擎前端页面,根据不同业务需求将接口编排成特定的系统流程并保存,当用户触发流程保存操作时,客户端将可视化流程脚本传给后端(即流程管理器201),流程管理器201开始执行上述的解析等操作,从而完成系统流程的创建。其中,流程引擎中是一种流程编辑工具,流程引擎前端页面即流程创建页面。
解析可视化流程脚本前的流程校验,是判断系统流程是否符合要求,主要校验依据包括但不限于检查是否存在环、是否有流程开始结束节点、流程节点类型是否合法等异常情况。流程管理器201只有在可视化流程脚本对应的预设流程通过流程校验后,才对可视化流程脚本进行解析,并完成后续可视化的系统流程创建。
在本发明实施例中,流程测试系统200还可以包括接口调用器(图中并未示出),接口调用器能够在执行可执行流程脚本的过程中,获取系统流程中的每个流程节点执行后的节点执行结果,其中,节点执行结果可以是节点执行成功或节点执行失败,或者,还可以是是否满足指定条件。
在本发明实施例中,流程执行器203还可以用于:
将节点跟踪器204与系统流程建立关联;以及
调用接口调用器获取系统流程中当前流程节点的节点执行结果;
根据节点执行结果和分支条件确定下一流程节点;
将已执行流程节点的节点信息发送至节点跟踪器204。
在流程执行器203执行可执行流程脚本时,是逐一检验各个流程节点的接口的过程,在执行当前流程节点后能够得到当前流程节点的节点执行结果(即接口执行结果),根据该节点执行结果和流程脚本的分支条件可以确定下一流程节点,直至按预设流程执行完最后一个流程节点,最后一个流程节点没有对应的分支(即下一个流程节点)。其中,节点执行结果可以是节点执行成功或节点执行失败,或者,还可以是是否满足指定条件,分支条件即节点执行成功时下一执行的是哪一流程节点、节点执行失败时下一执行的是哪一流程节点。
将节点跟踪器204与系统流程建立关联,即表示在流程执行器203中对节点跟踪器204进行注册,使节点跟踪器204能够接收到系统流程中各个流程节点的执行情况,并记录已执行流程节点的节点信息。
在本发明实施例中,流程测试器202还可以用于:
接收客户端的测试请求;
根据流程标识向流程管理器201获取可执行流程脚本。
在创建系统流程后,用户还可以通过客户端发起对系统流程的测试,即通过客户端向流程测试器202发送测试请求,该测试请求中携带有流程标识,流程测试器202可以根据流程标识向流程管理器201获取可执行流程脚本。其中,测试请求携带有流程标识。
在本发明实施例中,流程测试器202还可以用于:
从节点跟踪器204获取已执行流程节点的节点信息;以及
在执行最后一个流程节点后,从流程执行器203获取最后一个流程节点的节点执行结果作为流程执行结果;
将流程执行结果和已执行流程节点的节点信息返回至客户端,以在客户端展示流程执行节点路径。
流程测试系统200在完成对系统流程的测试后,利用流程测试器202收集流程执行结果和已执行流程节点的节点信息,并将这些信息返回给客户端,以在客户端直观地向用户展示流程测试,还可以可视化地展示流程执行节点路径,客户端的可视化展示可以采用现有的技术或工具实现,本发明实施例不予赘述。
根据本发明实施例的流程测试系统可以看出,因为采用响应于客户端的测试请求,根据测试请求携带的流程标识获取流程脚本;执行流程脚本,并获取系统流程中的流程执行结果以及已执行流程节点的节点信息;将流程执行结果和已执行流程节点的节点信息返回至客户端,以在客户端展示流程执行节点路径的技术手段,所以克服了产生大量的冗余代码,代码复用率低,开发维护,且提高了开发维护成本的技术问题,进而达到将复杂的流程从硬编码中解耦出来,方便及时跟踪流程测试情况的技术效果。
如图3所示,将本发明实施例的流程测试方法应用于本发明实施例的流程测试系统,在创建系统流程时可参考以下流程:
步骤S301:流程管理器接收客户端的可视化流程脚本;其中,可视化流程脚本包含流程标识、各个流程节点的节点信息、分支条件、流程节点之间的节点关系;
步骤S302:流程管理器获取用户在流程引擎配置的预设流程:
用户通过客户端的流程引擎前端页面,根据不同业务需求将接口编排成特定的系统流程并保存,该可视化流程对应于可视化流程脚本;
步骤S303:流程管理器基于预设流程对可视化流程脚本进行流程校验;
步骤S304:在流程校验通过后,流程管理器将可视化流程脚本解析为可执行流程脚本,并存储可执行流程脚本;
步骤S305:流程管理器创建可视化的系统流程,并向客户端返回创建结果。
如图4所示,将本发明实施例的流程测试方法应用于本发明实施例的流程测试系统,在测试系统流程时可参考以下流程:
步骤S401:流程测试器接收客户端的测试请求;其中,测试请求携带有流程标识;
步骤S402:流程测试器根据流程标识向流程管理器获取可执行流程脚本,并将可执行流程脚本发送至流程执行器;
步骤S403:流程执行器对节点跟踪器进行注册;
步骤S404:流程执行器执行可执行流程脚本;
步骤S405:流程执行器通过接口调用器获取流程节点的节点执行结果,并根据节点执行结果和分支条件确定下一执行的流程节点;
步骤S406:流程执行器向节点跟踪器发送已执行流程节点的节点信息,节点跟踪器记录已执行流程节点的节点信息;
步骤S407:流程执行器向流程测试器返回流程执行结果,
步骤S408:流程测试器从节点跟踪器获取已执行流程节点的节点信息,并将流程执行结果和已执行流程节点的节点信息返回至客户端,以在客户端可视化展示流程执行节点路径。
为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。
以金融业的信贷风控管理系统为例,通过流程引擎系统将复杂多变的流程从硬编码中解耦出来,即业务人员可根据业务需求进行风控流程(即系统流程)可视化配置、修改、测试、发布、下线等操作。为保障信贷风控流程的正确性,需对配置的流程进行全面测试。为了方便流程配置人员及时跟踪流程测试情况,在流程测试过程中,实时展示流程中各节点执行状态和调用情况,帮助配置人员及时发现流程问题。
如图5所示,详细的流程测试执行步骤如下:
1.配置人员在流程引擎前端页面创建流程并保存,此时客户端会调用流程管理器新建流程。客户端生成可视化脚本(即可视化流程脚本)并发送给流程管理器,流程管理器获取到可视化流程脚本后对流程合法性进行分析校验(即流程校验),检验失败,则返回给客户端异常错误信息;校验成功,则对脚本进行解析(即将可视化流程脚本解析成qlexpress引擎可执行的可执行流程脚本)后进行保存,并返回给客户端流程创建成功响应;可视化流程脚本是前后端约定的流程脚本结构,后端将前端传来的流程脚本解析成qlexpress引擎等可以执行的脚本;流程校验一般是校验系统流程中是否存在环、是否有流程开始结束节点、流程节点类型是否合法等异常情况;
需要说明的是,创建流程的过程为:用户通过客户端的流程创建界面创建可视化流程,并在前端(即客户端)生成可视化流程脚本,后端(即流程测试系统)将可视化流程脚本解析成可执行流程脚本并保存,即完成了可视化的系统流程创建;
2.流程创建成功后,用户可以通过前端的页面发起流程测试请求(即测试请求),此时,会调用流程测试器对流程进行测试。流程测试器收到流程测试请求后,根据流程id(即流程标识)向流程管理器获取可执行流程脚本(即可执行脚本),若获取失败则向客户端返回异常错误信息;若获取脚本成功则流程执行器会对节点跟踪器进行注册,将节点跟踪器与系统流程建立关联,以便节点跟踪器实时收到流程节点执行情况,然后调用流程执行器执行可执行流程脚本;
此外,可视化流程脚本还可以是能够在前端与后端进行通讯,并进行流程图回显的脚本;
3.流程执行器收到流程测试器的流程执行请求后,使用qlexpress引擎执行可执行流程脚本,执行过程中通过调用接口调用器(即流程接口节点)获取流程节点的节点执行结果(即接口执行结果),同时向节点跟踪器通知流程节点执行情况,流程节点跟踪器记录已执行流程节点的节点信息(即流程执行节点信息);流程执行器获取到已执行流程节点的节点信息后,根据流程分支设置条件判断下一执行节点,重复该过程直到流程执行到结束节点,最后将最后一个接口的出参结果(即最后一个流程节点的节点执行结果)作为流程执行结果,并返回给流程测试器;
流程中的每个节点对应一个接口,响应信息就是接口的返回结果信息,节点信息包括节点id、节点的请求参数与响应参数,流程执行结果即流程执行到最后一个节点后返回的结果;
4.流程测试器获取流程执行结果后,请求节点跟踪器获取流程执行节点信息(即已执行流程节点的节点信息),并将流程执行结果和流程执行节点信息一并返回给客户端;
5.客户端收到流程测试器返回的数据后,展示流程执行结果,并可视化展示流程执行节点路径,以便配置人员即时对新建流程进行测试验证:
在流程执行结束后,通过流程测试器将流程执行结果和流程执行节点等相关信息返回给客户端,最后客户端展示流程执行结果,并在流程中展示各节点执行情况,如图6和图7所示,分别展示了流程执行成和流程失败的流程执行示意图,其中空心节点为执行成功节点(如图6中的节点1),星标节点为执行失败节点(如图7中的节点6),实心节点为未调用节点(如图6中的节点3),空心节点之间或空心节点与星标节点之间的箭头为流程执行路径。通过流程执行示意图,用户可以清晰地对配置的系统流程进行全方位测试,通过设置不同的流程输入参数对各分支、各节点进行完全测试,以保证发布系统流程的准确性、健壮性和可靠性。
图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等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括流程管理器、流程测试器、流程执行器和节点跟踪器。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,节点跟踪器还可以被描述为“接收并记录流程执行器发送的系统流程中已执行流程节点的节点信息的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:步骤S101:响应于客户端的测试请求,根据测试请求携带的流程标识获取流程脚本;步骤S102:执行流程脚本,并获取系统流程中的已执行流程节点的节点信息以及流程执行结果;步骤S103:将流程执行结果和已执行流程节点的节点信息返回至客户端,以在客户端展示流程执行节点路径。
根据本发明实施例的技术方案,因为采用响应于客户端的测试请求,根据测试请求携带的流程标识获取流程脚本;执行流程脚本,并获取系统流程中的流程执行结果以及已执行流程节点的节点信息;将流程执行结果和已执行流程节点的节点信息返回至客户端,以在客户端可视化展示流程执行节点路径的技术手段,所以克服了产生大量的冗余代码,代码复用率低,开发维护,且提高了开发维护成本的技术问题,进而达到将复杂的流程从硬编码中解耦出来,方便及时跟踪流程测试情况的技术效果。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (10)
1.一种流程测试方法,其特征在于,包括:
响应于客户端的测试请求,根据所述测试请求携带的流程标识获取流程脚本;
执行所述流程脚本,并获取系统流程中的已执行流程节点的节点信息以及流程执行结果;其中,所述系统流程基于流程脚本创建得到;所述流程脚本包括可视化流程脚本和可执行流程脚本,所述可执行流程脚本由所述可视化流程脚本解析得到,所述可视化流程脚本包含流程标识、各个流程节点的节点信息、分支条件和流程节点之间的节点关系;
将所述流程执行结果和所述已执行流程节点的节点信息返回至客户端,以在客户端展示流程执行节点路径。
2.根据权利要求1所述的流程测试方法,其特征在于,所述系统流程的创建,包括:
接收客户端的可视化流程脚本;
获取客户端中配置的所述可视化流程脚本对应的预设流程,并对所述预设流程进行流程校验;
在流程校验通过后,将所述可视化流程脚本解析为可执行流程脚本,并存储所述可执行流程脚本;创建可视化的系统流程,并向客户端返回创建结果。
3.根据权利要求2所述的流程测试方法,其特征在于,执行所述流程脚本,并获取所述系统流程中的已执行流程节点的节点信息以及流程执行结果,包括:
执行所述可执行流程脚本,并根据当前流程节点的节点执行结果和所述分支条件确定下一流程节点;
获取已执行流程节点的节点信息;其中,所述节点信息包括节点标识、调用地址以及节点的请求参数与响应参数;
在执行最后一个流程节点后,获取最后一个流程节点的节点执行结果作为流程执行结果。
4.一种流程测试系统,其特征在于,包括流程管理器、流程测试器、流程执行器和节点跟踪器,其中:
所述流程管理器用于基于流程脚本创建得到系统流程;所述流程脚本包括可视化流程脚本和可执行流程脚本,所述可执行流程脚本由所述可视化流程脚本解析得到,所述可视化流程脚本包含流程标识、各个流程节点的节点信息、分支条件和流程节点之间的节点关系;
所述流程测试器用于响应于客户端的测试请求,根据所述测试请求携带的流程标识获取所述流程脚本,以及将所述系统流程的流程执行结果和已执行流程节点的节点信息返回至客户端;
所述流程执行器用于执行所述流程脚本,获取所述系统流程中的流程执行结果,并向所述流程测试器返回;
所述节点跟踪器用于接收并记录所述流程执行器发送的所述系统流程中已执行流程节点的节点信息。
5.根据权利要求4所述的流程测试系统,其特征在于,所述流程管理器还用于:
接收客户端的可视化流程脚本;
获取客户端中配置的所述可视化流程脚本对应的预设流程,并对所述预设流程进行流程校验;
在流程校验通过后,将所述可视化流程脚本解析为可执行流程脚本,并存储所述可执行流程脚本;创建可视化的系统流程,并向客户端返回创建结果。
6.根据权利要求5所述的流程测试系统,其特征在于,还包括接口调用器,所述流程执行器还用于:
将所述节点跟踪器与所述系统流程建立关联;以及
调用所述接口调用器获取所述系统流程中当前流程节点的节点执行结果;
根据所述节点执行结果和所述分支条件确定下一流程节点;
将所述已执行流程节点的节点信息发送至所述节点跟踪器;其中,所述节点信息包括节点标识以及节点的请求参数与响应参数。
7.根据权利要求5所述的流程测试系统,其特征在于,所述流程测试器还用于:
接收客户端的测试请求;其中,所述测试请求携带有流程标识;
根据所述流程标识向所述流程管理器获取所述可执行流程脚本。
8.根据权利要求5所述的流程测试系统,其特征在于,所述流程测试器还用于:
从所述节点跟踪器获取所述已执行流程节点的节点信息;以及
在执行最后一个流程节点后,从流程执行器获取最后一个流程节点的节点执行结果作为流程执行结果;
将所述流程执行结果和所述已执行流程节点的节点信息返回至客户端,以在客户端展示流程执行节点路径。
9.一种流程测试的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-3中任一所述的流程测试方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-3中任一所述的流程测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010145411.5A CN113360365B (zh) | 2020-03-03 | 2020-03-03 | 一种流程测试方法和流程测试系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010145411.5A CN113360365B (zh) | 2020-03-03 | 2020-03-03 | 一种流程测试方法和流程测试系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113360365A CN113360365A (zh) | 2021-09-07 |
CN113360365B true CN113360365B (zh) | 2024-04-05 |
Family
ID=77523452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010145411.5A Active CN113360365B (zh) | 2020-03-03 | 2020-03-03 | 一种流程测试方法和流程测试系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113360365B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115098093B (zh) * | 2022-08-24 | 2022-12-02 | 湖南云畅网络科技有限公司 | 一种数据流程表达式处理方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404696A (zh) * | 2008-11-03 | 2009-04-08 | 中兴通讯股份有限公司 | 可视化业务流程跟踪方法和系统、业务流程处理系统 |
CN104461855A (zh) * | 2013-09-22 | 2015-03-25 | 腾讯科技(北京)有限公司 | 一种Web自动化测试方法、系统及装置 |
CN104834595A (zh) * | 2015-02-15 | 2015-08-12 | 网易(杭州)网络有限公司 | 一种可视化自动测试方法及系统 |
CN109254917A (zh) * | 2018-08-31 | 2019-01-22 | 百度在线网络技术(北京)有限公司 | 用于测试信息流系统的方法和装置 |
CN109933315A (zh) * | 2019-02-26 | 2019-06-25 | 广州衡昊数据科技有限公司 | 一种图形化的业务处理系统和方法 |
CN110032571A (zh) * | 2019-04-18 | 2019-07-19 | 腾讯科技(深圳)有限公司 | 业务流程处理方法、装置、存储介质及计算设备 |
CN112306851A (zh) * | 2019-08-01 | 2021-02-02 | 北京京东尚科信息技术有限公司 | 一种自动化测试方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7392165B2 (en) * | 2002-10-21 | 2008-06-24 | Fisher-Rosemount Systems, Inc. | Simulation system for multi-node process control systems |
-
2020
- 2020-03-03 CN CN202010145411.5A patent/CN113360365B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101404696A (zh) * | 2008-11-03 | 2009-04-08 | 中兴通讯股份有限公司 | 可视化业务流程跟踪方法和系统、业务流程处理系统 |
CN104461855A (zh) * | 2013-09-22 | 2015-03-25 | 腾讯科技(北京)有限公司 | 一种Web自动化测试方法、系统及装置 |
CN104834595A (zh) * | 2015-02-15 | 2015-08-12 | 网易(杭州)网络有限公司 | 一种可视化自动测试方法及系统 |
CN109254917A (zh) * | 2018-08-31 | 2019-01-22 | 百度在线网络技术(北京)有限公司 | 用于测试信息流系统的方法和装置 |
CN109933315A (zh) * | 2019-02-26 | 2019-06-25 | 广州衡昊数据科技有限公司 | 一种图形化的业务处理系统和方法 |
CN110032571A (zh) * | 2019-04-18 | 2019-07-19 | 腾讯科技(深圳)有限公司 | 业务流程处理方法、装置、存储介质及计算设备 |
CN112306851A (zh) * | 2019-08-01 | 2021-02-02 | 北京京东尚科信息技术有限公司 | 一种自动化测试方法和装置 |
Non-Patent Citations (2)
Title |
---|
Creating Flows;Metaflow;https://docs.metaflow.org/metaflow/basics;全文 * |
基于activiti的强大java工作流引擎,可视化开发工作流;湘北智造;https://www.jianshu.com/p/bdb5571013b4;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113360365A (zh) | 2021-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108415832B (zh) | 接口自动化测试方法、装置、设备及存储介质 | |
CN109977012B (zh) | 系统的联调测试方法、装置、设备及计算机可读存储介质 | |
CN109684188B (zh) | 测试方法和装置 | |
CN112463729B (zh) | 数据文件的入库方法、装置、电子设备和介质 | |
CN111309343A (zh) | 一种开发部署方法及装置 | |
CN111221727B (zh) | 测试方法、装置、电子设备和计算机可读介质 | |
CN115391228A (zh) | 精准测试方法、装置、设备及介质 | |
CN113360365B (zh) | 一种流程测试方法和流程测试系统 | |
CN110795331A (zh) | 软件测试的方法和装置 | |
CN117632710A (zh) | 测试代码的生成方法、装置、设备及存储介质 | |
CN112988578A (zh) | 一种自动化测试方法和装置 | |
CN113407229B (zh) | 用于生成离线脚本的方法及装置 | |
CN113434382A (zh) | 数据库性能监控方法、装置、电子设备及计算机可读介质 | |
CN112084114A (zh) | 用于测试接口的方法和装置 | |
CN113127362A (zh) | 对象测试方法、对象测试装置、电子设备及可读存储介质 | |
CN113297081A (zh) | 一种持续集成流水线的执行方法和装置 | |
CN113392002A (zh) | 一种测试系统构建方法、装置、设备及存储介质 | |
CN108170557B (zh) | 用于输出信息的方法和装置 | |
CN113886216A (zh) | 接口测试和工具配置方法、装置、电子设备和存储介质 | |
CN112395194A (zh) | 一种接入测试平台的方法和装置 | |
CN112948269B (zh) | 信息处理方法、信息处理装置、电子设备及可读存储介质 | |
CN112783753B (zh) | 流数据处理系统的测试方法和装置 | |
CN114064484A (zh) | 接口测试方法、装置、电子设备及可读存储介质 | |
CN116894129A (zh) | 链接有效性检测方法、装置、设备及可读存储介质 | |
CN114461268A (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 |