CN111651360B - 测试方法、测试装置、电子设备及介质 - Google Patents
测试方法、测试装置、电子设备及介质 Download PDFInfo
- Publication number
- CN111651360B CN111651360B CN202010515415.8A CN202010515415A CN111651360B CN 111651360 B CN111651360 B CN 111651360B CN 202010515415 A CN202010515415 A CN 202010515415A CN 111651360 B CN111651360 B CN 111651360B
- Authority
- CN
- China
- Prior art keywords
- job
- steps
- operations
- flow assembly
- row
- 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
Images
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/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/3664—Environments for testing or debugging software
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
本公开提供了一种测试方法。所述测试方法包括:获取待测试的M个第一作业,其中M为大于等于1的整数;从一个所述第一作业中提取出需要保留的作业步以形成一个第二作业,其中,对于M个所述第一作业分别形成对应的M个所述第二作业;组装M个所述第二作业得到流程组装作业;以及执行所述流程组装作业,以对M个所述第一作业进行测试。本公开还提供了一种测试装置、电子设备及介质。
Description
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种测试方法、测试装置、电子设备及介质。
背景技术
在主机系统的批量业务的适应性验收测试中,由于全量执行批量业务往往需要时间较长。为了满足具体业务功能多场景灵活测试以及测试周期的要求,通常会从批量业务的作业中提取出必要的作业步形成短流程批量,然后对短流程批量进行测试,以此方式可以节省测试时间。
由于短流程批量涉及的多个作业步可能是从多个不同的原始作业中提取出来的。现有技术总,实施短流程批量的测试方案需要人工进行大量的作业步提取操作(也可以称之为作业步裁剪)。而且在获得短流程批量后还需要人工进行作业提交,并且在提交短流程批量中的每个作业之前还需要手动查询其前项作业的执行状态确保已经正常完成。这样需要消耗大量的人工精力和操作时间,且人工操作容易出现差错而且增加重复操作或补救操作。
发明内容
有鉴于此,本公开实施例提供了一种可以全自动短流程批量测试的测试方法、测试装置、电子设备及介质。
本公开实施例的一个方面提供了一种测试方法。所述测试方法包括:获取待测试的M个第一作业,其中M为大于等于1的整数;从一个所述第一作业中提取出需要保留的作业步以形成一个第二作业,其中,对于M个所述第一作业分别形成对应的M个所述第二作业;组装M个所述第二作业得到流程组装作业;以及执行所述流程组装作业,以对M个所述第一作业进行测试。
根据本公开的实施例,所述方法还包括获取作业裁剪信息,其中所述作业裁剪信息包括每个所述第一作业中需要保留的作业步。则,所述从一个所述第一作业中提取出需要保留的作业步以形成一个第二作业包括:从每个所述第一作业中,按照所述作业裁剪信息提取出需要保留的作业步,以形成与每个所述第一作业对应的所述第二作业。
根据本公开的实施例,所述从一个所述第一作业中按照所述作业裁剪信息提取出需要保留的作业步以形成一个所述第二作业包括:读取所述第一作业的文件;提取所述第一作业的文件中第一行到第一个作业步所在行的前一行的内容,作为所述第二作业的作业头;从所述第一作业的文件中所述第一个作业步所在行及其后的内容中提取出R个裁剪作业步;以及将R个所述裁剪作业步输出为所述第二作业的R个作业步。其中,所述从所述第一作业的文件中所述第一个作业步所在行及其后的内容中提取出R个裁剪作业步包括:将与R个作业步名其中之一匹配上的作业步的起始行,到下一个作业步的起始行的前一行的内容提取为一个所述裁剪作业步,其中,该R个作业步名为所述作业裁剪信息中设置的所述第一作业中需要保留的作业步的名称,R为大于等于1的整数。
根据本公开的实施例,所述方法还包括获取作业排程信息,所述作业排程信息包括M个所述第二作业的作业顺序序列。则,所述组装M个所述第二作业得到流程组装作业包括:按照所述作业顺序序列对M个所述第二作业进行组装,得到所述流程组装作业。
根据本公开的实施例,所述作业排程信息还包括所述流程组装作业的执行环境。所述组装M个所述第二作业得到流程组装作业,包括根据所述流程组装作业的执行环境,生成所述流程组装作业的作业头。
根据本公开的实施例,所述组装M个所述第二作业得到流程组装作业包括:判断每个所述第二作业是否为分批次作业;当一个所述第二作业为分批次作业时,在所述流程组装作业中对所述第二作业添加触发所述第二作业并行执行的第一自动执行工具;以及当一个所述第二作业不是分批次作业时,在所述流程组装作业中对所述第二作业添加触发所述第二作业单个执行的第二自动执行工具。
根据本公开的实施例,所述执行所述流程组装作业包括:提交所述流程组装作业;执行所述流程组装作业中排序在第一位的所述第二作业;对于所述流程组装作业中排序在第一位之后的每个所述第二作业,在确定当前待执行的所述第二作业的前项作业执行完成后,执行该当前待执行的所述第二作业。
本公开实施例的另一方面提供了一种测试装置。所述测试装置包括获取模块、提取模块、组装模块以及执行模块。获取模块用于获取待测试的M个第一作业,其中M为大于等于1的整数。提取模块用于从一个所述第一作业中提取出需要保留的作业步以形成一个第二作业,其中,对于M个所述第一作业分别形成对应的M个所述第二作业。组装模块用于组装M个所述第二作业得到流程组装作业。执行模块用于执行所述流程组装作业,以对M个所述第一作业进行测试。
根据本公开的实施例,所述获取模块还用于获取作业裁剪信息,其中所述作业裁剪信息包括每个所述第一作业中需要保留的作业步。所述提取模块还用于从每个所述第一作业中,按照所述作业裁剪信息提取出需要保留的作业步,以形成与每个所述第一作业对应的所述第二作业。
根据本公开的实施例,所述提取模块还用于读取所述第一作业的文件;提取所述第一作业的文件中第一行到第一个作业步所在行的前一行的内容,作为所述第二作业的作业头;从所述第一作业的文件中所述第一个作业步所在行及其后的内容中提取出R个裁剪作业步;以及将R个所述裁剪作业步输出为所述第二作业的R个作业步。其中,所述从所述第一作业的文件中所述第一个作业步所在行及其后的内容中提取出R个裁剪作业步包括:将与所述作业裁剪信息中所述第一作业需要保留的作业步的作业步名匹配上的作业步的起始行,到下一个作业步的起始行的前一行的内容提取为一个所述裁剪作业步,其中,R为大于等于1的整数。
根据本公开的实施例,所述获取模块还用于获取作业排程信息,所述作业排程信息包括M个所述第二作业的作业顺序序列。所述组装模块还用于按照所述作业顺序序列对M个所述第二作业进行组装,得到所述流程组装作业。
根据本公开的实施例,所述作业排程信息还包括所述流程组装作业的执行环境。所述组装模块还用于根据所述流程组装作业的执行环境,生成所述流程组装作业的作业头。
根据本公开的实施例,所述组装模块还用于:判断每个所述第二作业是否为分批次作业;当一个所述第二作业为分批次作业时,在所述流程组装作业中对所述第二作业添加触发所述第二作业并行执行的第一自动执行工具;以及当一个所述第二作业不是分批次作业时,在所述流程组装作业中对所述第二作业添加触发所述第二作业单个执行的第二自动执行工具。
根据本公开的实施例,所述执行模块还用于提交所述流程组装作业;执行所述流程组装作业中排序在第一位的所述第二作业;对于所述流程组装作业中排序在第一位之后的每个所述第二作业,在确定当前待执行的所述第二作业的前项作业执行完成后,执行该当前待执行的所述第二作业。
本公开实施例的另一方面提供了一种电子设备。所述电子设备包括一个或多个存储器、以及一个或多个处理器。所述存储器上存储有计算机可执行指令。所述处理器执行所述指令,以实现如上所述的方法。
本公开实施例的另一方面提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行如上所述的方法。
本公开实施例的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
上述一个或多个实施例具有如下优点或益效果:可以至少部分地解决短流程批量测试方案存在的人工操作费时费力且容易出错的问题,并可以实现作业步自动裁剪并自动执行短流程批量测试的技术效果。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的测试方法的流程构思示意;
图2示意性示出了根据本公开实施例的测试方法的流程图;
图3示意性示出了根据本公开另一实施例的测试方法的流程图;
图4示意性示出了根据本公开实施例的从第一作业中提取需要保留的作业步的流程图;
图5示意性示出了根据本公开实施例的得到流程组装作业的流程图;
图6示意性示出了根据本公开实施例的执行流程组装作业的流程图;
图7示意性示出了根据本公开实施例的测试装置的框图;
图8示意性示出了根据本公开另一实施例的测试装置的框图;
图9示意性示出了图8所示的测试装置中主机作业自动剪裁装置的工作流程图;
图10示意性示出了图8所示的测试装置中主机作业流程组装装置的工作流程图;以及
图11示意性示出了根据本公开实施例的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
本公开实施例针对现有技术中主机系统短流程批量测试方案存在的人工操作费时费力且容易出错的问题,提供一种可以自动实现作业步准确裁剪以形成短流程批量,并可以自动执行短流程批量测试的测试方法、测试装置、电子设备及介质。
具体地,本公开实施例的测试方法包括首先获取待测试的M个第一作业,然后从一个第一作业中提取出需要保留的作业步以形成一个第二作业,从而对于M个第一作业分别形成对应的M个第二作业,接着组装M个第二作业得到流程组装作业,最后执行流程组装作业,以对M个第一作业进行测试。其中M为大于等于1的整数。
图1示意性示出了根据本公开实施例的测试方法的流程构思示意。
如图1所示,作业库101为需要进行测试的批量业务,其中,包括了M个第一作业,例如第一作业1、第二作业2、...、以及第一作业M。其中,每个作业包括一个或多个作业步。例如,第一作业1包括作业步11、作业步12、...、和作业步1n。
当对作业库101中的批量业务进行测试时,如果全批量测试,即将第一作业1、第二作业2、...、以及第一作业M逐个在主机系统中完整运行一遍,需要花费大量的时间。而实质上在测试时对于每个作业真正关心的可能仅有每个作业中的部分作业步的执行情况。例如,对于第一作业1可能仅关心作业步13和作业步1n这两个作业步的执行结果是否正确。那么可以从第一作业1中提取出作业步13和1n这两个作业步,构成第二作业1。然后在测试时执行第二作业1来实现对第一作业1的测试,可以使得测试的时间以及测试使用的资源大大缩减,同时还能够满足测试的要求。例如,一个理财作业包括有认购、赎回、分红、到期等多个作业步,而这几个作业步之间的数据和执行又都相对独立时,若测试时中仅关心认购和分红的处理是否正确,则可以将认购和分红这两个作业步提取出来形成新的作业,并仪对该新的作业进行测试,就可以达到对该理财作业进行测试的目的。
基于此,本公开实施例在获取到作业库101的M个第一作业后,可以从每个第一作业中提取出需要测试的作业步,得到对应的第二作业,从而形成M个第二作业,例如第二作业1、第二作业2、...、以及第二作业M。其中,每个第二作业中的作业步的数量相比与对应的第一作业的作业步的数量明显减少。例如,第二作业1中仅包括了作业步13和作业步1n。然后再将M个第二作业组装成流程组装作业102,并将流程组装作业102提交主机系统进行测试,从而实现对作业库101中的批量业务的测试。
根据本公开的一实施例,为了对M个第一作业进行自动裁剪(即,从各个第一作业中提取需要保留的作业步),可以预先设置或者基于用户输入得到作业裁剪信息(例如,作业裁剪列表),然后将每个第一作业的文件中与作业裁剪信息中的作业步名相匹配的作业步的文本内容提取出来。
根据本公开的一实施例,在将M个第二作业组装成流程组装作业102时,可以根据预先设置或者基于用户输入的作业排程信息对M个第二作业进行组装。
需要说明的是,图1中示例中第二作业1、第二作业2、...、以及第二作业M中每个第二作业仅包括了两个作业步仅是示例性而非限定性的,在实际应用中M个第二作业中不同第二作业所包含的作业步的个数彼此没有关系,是根据各个作业中需要保留以进行测试的作业步来确定的。
图2示意性示出了根据本公开实施例的测试方法的流程图。
如图2所示,根据本公开实施例该测试方法可以包括操作S210~操作S240。
在操作S210,获取待测试的M个第一作业,其中M为大于等于1的整数。
在操作S220,从一个第一作业中提取出需要保留的作业步以形成一个第二作业,其中,对于M个第一作业分别形成对应的M个第二作业。
在操作S230,组装M个第二作业得到流程组装作业102。
在操作S240,执行流程组装作业102,以对M个第一作业进行测试。例如,通过REXX(Restructured extended executor,一种脚本语言)脚本触发流程组装作业102的自动执行。
以此方式,可以对M个第一作业进行自动裁剪,形成短流程测试用的流程组装作业102,再对流程组装作业102进行测试,可以缩短对全批量业务测试的时间,而且可以通过脚本运行流程组装作业自动执行测试,可以有效减少人工操作费时费力且容易出错的问题。
图3示意性示出了根据本公开另一实施例的测试方法的流程图。
如图3所示,根据本公开实施例该测试方法可以包括操作S310~操作S240。
在操作S310,获取作业裁剪信息,该作业裁剪信息包括每个第一作业中需要保留的作业步。该作业裁剪信息例如可以呈现为作业裁剪列表,在该作业裁剪列表中可以设置有对应于每个第一作业中需要保留的作业步的作业步名。
在操作S320,获取作业排程信息。作业排程信息例如可以呈现为作业排程列表。
在一些实施例中,作业排程信息可以包括M个第二作业的作业顺序序列。在另一些实施例中,作业排程信息还包括流程组装作业102的执行环境。该执行环境例如可以包括执行该流程组装作业102的硬件资源信息(例如,在哪台或哪几台设备上执行该流程组装作业102)等。
然后在操作S210,获取待测试的M个第一作业,M为大于等于1的整数。
接着在操作S221,从每个第一作业中,按照作业裁剪信息提取出需要保留的作业步,以形成与每个第一作业对应的第二作业。操作S221为前述操作S220的一个具体实施例。例如,从每个第一作业提取出作业裁剪信息中设置的与第一作业中需要保留的作业步的作业步名匹配的作业步,并将提取到的作业步组合成第二作业。
再然后在操作S231,按照操作S320中获得的作业排程信息将M个第二作业进行组装,得到流程组装作业102。
例如,若作业排程信息包括M个第二作业的作业顺序序列,则按照作业顺序序列对M个第二作业进行组装,得到流程组装作业102。
又例如,若作业排程信息包括流程组装作业102的执行环境,则可以根据流程组装作业102的执行环境,生成流程组装作业102的作业头。例如,当使用Cobol语言来撰写作业文件时,流程组装作业102的作业头就是Cobol语言定义的流程组装作业102的标识部。这样就可以将流程组装作业102一次性提交处理。
最后在操作S240,执行该流程组装作业102,以对M个第一作业进行测试。通过REXX脚本触发流程组装作业102的自动执行。
需要说明的是,图3中示意的操作S310和操作S320与其他操作之间的顺序仅是一种示例,在实际应用中只要操作S310在操作S221之前,以及操作S320在操作S231之前执行即可。
图4示意性示出了根据本公开实施例的操作S221中从第一作业中提取需要保留的作业步的流程图。
如图4所示,根据本公开实施例操作S221可以包括操作S401~操作S404。
在操作S401,读取第一作业的文件。
在操作S402,提取第一作业的文件中第一行到第一个作业步所在行的前一行的内容,作为第二作业的作业头。
在操作S403,从第一作业的文件中第一个作业步所在行及其后的内容中提取出R个裁剪作业步。具体地,将与R个作业步名其中之一匹配上的作业步的起始行,到下一个作业步的起始行的前一行的内容提取为一个裁剪作业步,其中,该R个作业步名为作业裁剪信息中设置的第一作业中需要保留的作业步的名称,R为大于等于1的整数。
例如,假设以Cobol语言撰写第一作业的文件。在操作S402中从第1行开始扫描第一作业的文件。逐行扫描并找到第一个匹配到′EXEC′关键字的行,并标记该行的行数为N,将N-1行之前的文本内容输出为第二作业的作业头。其中,′EXEC′关键字为Cobol语言中用来声明作业步的关键词。
然后,在操作S403中读取作业裁剪信息中设置的第一作业中需要保留的R个作业步名,将前述记录的第N行为标记更新为初始行,继续扫描该第一作业的文件,逐行扫描并对找到第一个既能匹配到′EXEC′关键字,又能匹配到R个作业步名其中之一的行,将该行的行数重新记录为N。然后继续扫描该文件找到下一个匹配到′EXEC′关键字的行,并记录该行的数记录为M。接着将第N行到第M行之前的文本内容提取为一个裁剪作业步。
接着将前述第M行的标记更新为第N行。循环寻找下一个既能匹配到匹配到′EXEC′关键字,又能匹配到R个作业步名其中之一的行,并记录行数为M,再次将第N行到第M行之前的文本内容提取为一个裁剪作业步。以此方式,不断循环直到扫描完第一作业的文件,最终从第一作业的文件中提取出R个裁剪作业步。
在操作S404,将R个裁剪作业步输出为第二作业的R个作业步,从而形成第二作业。
图5示意性示出了根据本公开实施例的操作S230得到流程组装作业的流程图。
如图5所示,根据本公开的实施例操作S230可以包括操作S501~操作S503。
在操作S501,判断每个第二作业是否为分批次作业。若是,则执行操作S502;若否,则执行操作S503。
分批次作业是可以通过一系列相同的操作处理不同的数据,并将针对不同数据的处理结果合并得到最终结果的作业。例如一个作业要对数据表中第1~1000行的数据进行操作,可以分10个批次并行执行,每个批次执行100行。
操作S501中的判断依据可以根据工程实际中设置的规范来确定。例如,可以根据作业名中是否含有特定字符、或者是否为按照特定规律进行命名,或者作业步中的特定字段的信息来识别是否为分批次作业。
在操作S502,当一个第二作业为分批次作业时,在流程组装作业中对第二作业添加触发第二作业并行执行的第一自动执行工具。这样,当流程组装作业102被提交后,运行到该第二作业时会自动调用该第一自动执行工具,通过该第一自动执行工具可以触发第二作业的各个批次并行执行,并在全部执行完毕后返回统一的执行结果。
在操作S503,当一个第二作业不是分批次作业时,在流程组装作业102中对第二作业添加触发第二作业单个执行的第二自动执行工具。这样,当流程组装作业102被提交后,运行到该第二作业时会自动调用该第二自动执行工具,通过该第二自动执行工具可以触发第二作业单个执行,并在执行完毕后返回执行结果。
图6示意性示出了根据本公开实施例的操作S240执行流程组装作业的流程图。
如图6所示,根据本公开实施例操作S240可以包括操作S601~操作S603。
在操作S601,提交流程组装作业102。
在操作S602,执行流程组装作业102中排序在第一位的第二作业。
在操作S603,对于流程组装作业102中排序在第一位之后的每个第二作业,在确定当前待执行的第二作业的前项作业执行完成后,执行该当前待执行的第二作业。
例如,在执行一个第二作业之前先查询其前一个的第二作业是否执行完成,若完成则开始执行;若未完成则继续等待;若前一个第二作业故障,则中端执行。这样,当前项作业都正常结束后才开始执行后项作业,若出现任一作业中断情况则流程组装作业102整体中断。以此方式,克服了现有技术中需要人工手动查询前项作业是否执行成功、以及手动触发后项作业执行的麻烦,提高了测试的自动化效率。
图7示意性示出了根据本公开实施例的测试装置700的框图。
如图7所示,测试装置700包括获取模块710、提取模块720、组装模块730以及执行模块740。该测试装置700可以用于实现参考图2~图6所描述的方法。
具体地,获取模块710例如可以执行操作S210,用于获取待测试的M个第一作业,其中M为大于等于1的整数。
提取模块720例如可以执行操作S220,用于从一个第一作业中提取出需要保留的作业步以形成一个第二作业,其中,对于M个第一作业分别形成对应的M个第二作业。
组装模块730例如可以执行操作S30,用于组装M个第二作业得到流程组装作业102。
执行模块740例如可以执行操作S240用于执行流程组装作业102,以对M个第一作业进行测试。
根据本公开的实施例,获取模块710例如还可以执行操作S310,用于获取作业裁剪信息,其中作业裁剪信息包括每个第一作业中需要保留的作业步。相应地,提取模块720例如具体可以执行操作S221,用于从每个第一作业中,按照作业裁剪信息提取出需要保留的作业步,以形成与每个第一作业对应的第二作业。
更具体地,根据本公开的实施例提取模块720例如还可以执行操作S401~操作S404,用于读取第一作业的文件,提取第一作业的文件中第一行到第一个作业步所在行的前一行的内容,作为第二作业的作业头,从第一作业的文件中第一个作业步所在行及其后的内容中提取出R个裁剪作业步,以及将R个裁剪作业步输出为第二作业的R个作业步。其中,上述从第一作业的文件中第一个作业步所在行及其后的内容中提取出R个裁剪作业步包括:将与作业裁剪信息中第一作业需要保留的作业步的作业步名匹配上的作业步的起始行,到下一个作业步的起始行的前一行的内容提取为一个裁剪作业步,其中,R为大于等于1的整数。
根据本公开的实施例,获取模块710例如还可以执行操作S320,用于获取作业排程信息,作业排程信息包括M个第二作业的作业顺序序列。根据本公开的实施例,作业排程信息还包括流程组装作业102的执行环境。
相应地,组装模块730例如可以执行操作S231,用于按照作业顺序序列对M个第二作业进行组装,得到流程组装作业102,和/或根据流程组装作业102的执行环境,生成流程组装作业102的作业头。
根据本公开的实施例,组装模块730例如可以执行操作S501、以及操作S502或操作S503,还用于判断每个第二作业是否为分批次作业:当一个第二作业为分批次作业时,在流程组装作业102中对第二作业添加触发第二作业并行执行的第一自动执行工具;或者当一个第二作业不是分批次作业时,在流程组装作业102中对第二作业添加触发第二作业单个执行的第二自动执行工具。
根据本公开的实施例,执行模块740例如可以执行操作S601~操作S603,用于提交流程组装作业102,执行流程组装作业102中排序在第一位的第二作业,以及对于流程组装作业102中排序在第一位之后的每个第二作业,在确定当前待执行的第二作业的前项作业执行完成后,执行该当前待执行的第二作业。
以下再结合图8~图10的一个应用实例对本公开实施例进行示例性说明,可以理解,图8~图10仅是本公开实施例的应用示例的一个示意,不对本公开的方案构成任何限定。
图8示意性示出了根据本公开另一实施例的测试装置800的框图。
如图8所示,根据本公开的实施例测试装置800可以包括流程导入装置810、主机作业自动裁剪装置820、主机作业流程组装装置830、以及作业执行装置840。
流程导入装置810根据用户输入待测试的批量业务信息,调用主机作业自动裁剪装置820中设置的作业裁剪信息(例如,作业裁剪列表)和主机作业流程组装装置830中设置的作业排程信息(例如,作业排程列表)(操作S210)。
结合图1,用户输入待测试的批量业务信息可以包括作业库101、作业库101所包含的M个第一作业的作业名,每个第一作业包括的作业步名和每个第一作业的执行环境等信息。
主机作业自动裁剪装置820可以对用户配置的M个第一作业按作业裁剪列表中设置的需保留的作业步进行自动裁剪,在指定作业库生成裁剪后的待执行作业(即,第二作业)(操作S220)。
主机作业流程组装装置830根据作业排程列表中设置的的作业排程顺序生成流程组装作业102(操作S230)。
作业执行装置840可以通过REXX脚本触发流程组装作业102的执行。当前项作业都正常结束后才开始执行后项作业,若出现任一作业中断情况则流程组装作业102整体中断(操作S240)。
图9示意性示出了图8所示的测试装置中主机作业自动剪裁装置820的工作流程图。
如图9所示,主机作业自动剪裁装置820的工作流程可以包括步骤S1101~步骤S1108。
步骤S1101:读入输入参数,包括:作业库(例如,作业库101)、可带通配符的作业名,以及作业裁剪列表。可带通配符的作业名便于快速搜索到需要测试的第一作业。
步骤S1102:在作业库101中模糊匹配输入作业名,取到所有要裁剪的M个第一作业所形成的作业列表。
步骤S1103:读取上述作业列表。若该作业列表中有待裁剪作业,则循环调用步骤S1104~S1107进行单个作业的裁剪,直到将作业列表中所有待裁剪作业处理完毕,循环结束后调用步骤S1108。
步骤S1104:从第1行开始扫描作业文件,逐行扫描文件找到第一个匹配到′EXEC′关键字的行,并将该行的行数记录为N,将第N-1行之前的文本内容记录到待输出文件作为作业头。其中,′EXEC′关键字为Cobol语言中用来声明作业步的关键词。
步骤S1105:获取作业裁剪列表中当前裁剪的作业中需要保留的作业步名,然后循环调用步骤S106的作业步裁剪操作,循环结束后调用步骤S1107。
步骤S1106:将记录的第N行更新为起始行,并从该起始行开始继续扫描该作业文件,逐行扫描并找到第一个既能匹配到需要保留的作业步名,又能匹配到′EXEC′关键字的行,比将该行的行数标记为N。并继续扫描文件找到下一个匹配到′EXEC′关键字的行,并将该行标记为M。将第N行到第M行之前的文本内容记录到第二作业。然后,将第M行的标记更新为第N行,重复步骤S1106继续扫描作业文件,直到将当前作业文件扫描完成,并输出待执行作业(即,第二作业)
步骤S1107:将第二作业输出到指定作业库(与作业库101不同的另一作业库,主机作业流程组装装置830执行此作业库中的作业实体)。
步骤S1108:完成全部作业裁剪,调用主机作业流程组装装置830。
图10示意性示出了图8所示的测试装置中主机作业流程组装装置830的工作流程图。
如图10所示,该主机作业流程组装装置830的工作流程可以包括步骤S1201~步骤S1207。
步骤S1201:导入第二作业执行顺序清单,其中包括作业顺序序列和执行环境。根据执行环境生成流程组装作业102的作业头。根据作业顺序序列将第二作业进行组装,其中,可以根据作业顺序序列读取排在第一位的第二作业并调用步骤S1202。
步骤S1202:判断步骤S1201读取的第二作业是否为分批次作业。若是则调用步骤S203,若不是则调用步骤S204。
步骤S1203:若步骤S1201中读取的第二作业为分批次作业,则按分批次作业并行执行工具模板,在流程组装作业102中追加生成执行作业步。分批次作业并行执行工具可将配置于其中的作业一并触发,并在这些作业全部执行完毕后返回统一的执行结果。
步骤S1204:若步骤S1201中读取的第二作业不是分批次作业,则按不分批次作业单个执行工具模板在流程组装作业102中追加生成执行作业步。不分批次作业单个执行工具可将配置于其中的作业单个触发,并在执行完毕后返回执行结果。
步骤S1205:循环读取作业顺序序列中下一个第二作业。如有则重复步骤S1202至S1204:如无则调用步骤S1206
步骤S1206:输出流程组装作业102到指定作业库中。
步骤S1207:REXX脚本命令提交该流程组装作业102。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获取模块710、提取模块720、组装模块730、执行模块740、流程导入装置810、主机作业自动裁剪装置820、主机作业流程组装装置830、以及作业执行装置840中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获取模块710、提取模块720、组装模块730、执行模块740、流程导入装置810、主机作业自动裁剪装置820、主机作业流程组装装置830、以及作业执行装置840中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获取模块710、提取模块720、组装模块730、执行模块740、流程导入装置810、主机作业自动裁剪装置820、主机作业流程组装装置830、以及作业执行装置840中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图11示意性示出了根据本公开实施例的电子设备1100的方框图。图11示出的电子设备1100仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图11所示,根据本公开实施例的电子设备1100包括处理器1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储部分1108加载到随机访问存储器(RAM)1103中的程序而执行各种适当的动作和处理。处理器1101例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1101还可以包括用于缓存用途的板载存储器。处理器1101可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1103中,存储有电子设备1100操作所需的各种程序和数据。处理器1101、ROM 1102以及RAM 1103通过总线1104彼此相连。处理器1101通过执行ROM 1102和/或RAM1103中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1102和RAM 1103以外的一个或多个存储器中。处理器1101也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1100还可以包括输入/输出(I/O)接口1105,输入/输出(I/O)接口1105也连接至总线1104。系统1100还可以包括连接至I/O接口1105的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被处理器1101执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1102和/或RAM 1103和/或ROM 1102和RAM 1103以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。电应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (8)
1.一种测试方法,包括:
获取待测试的M个第一作业,其中M为大于等于1的整数;
获取作业裁剪信息,所述作业裁剪信息包括每个所述第一作业中需要保留的作业步;
从一个所述第一作业中提取出需要保留的作业步以形成一个第二作业,其中,对于M个所述第一作业分别形成对应的M个所述第二作业;
组装M个所述第二作业得到流程组装作业;以及
执行所述流程组装作业,以对M个所述第一作业进行测试;
其中,所述从一个所述第一作业中按照所述作业裁剪信息提取出需要保留的作业步以形成一个所述第二作业包括:
读取所述第一作业的文件;
提取所述第一作业的文件中第一行到第一个作业步所在行的前一行的内容,作为所述第二作业的作业头;
从所述第一作业的文件中所述第一个作业步所在行及其后的内容中提取出R个裁剪作业步,包括:将与R个作业步名其中之一匹配上的作业步的起始行,到下一个作业步的起始行的前一行的内容提取为一个所述裁剪作业步,其中,该R个作业步名为所述作业裁剪信息中设置的所述第一作业中需要保留的作业步的名称,R为大于等于1的整数;以及
将R个所述裁剪作业步输出为所述第二作业的R个作业步。
2.根据权利要求1所述的方法,其中,
所述方法还包括:获取作业排程信息,所述作业排程信息包括M个所述第二作业的作业顺序序列;
则,所述组装M个所述第二作业得到流程组装作业包括:按照所述作业顺序序列对M个所述第二作业进行组装,得到所述流程组装作业。
3.根据权利要求2所述的方法,其中,所述作业排程信息还包括所述流程组装作业的执行环境;所述组装M个所述第二作业得到流程组装作业包括:
根据所述流程组装作业的执行环境,生成所述流程组装作业的作业头。
4.根据权利要求1~3任意一项所述的方法,其中,所述组装M个所述第二作业得到流程组装作业包括:
判断每个所述第二作业是否为分批次作业;
当一个所述第二作业为分批次作业时,在所述流程组装作业中对所述第二作业添加触发所述第二作业并行执行的第一自动执行工具;以及
当一个所述第二作业不是分批次作业时,在所述流程组装作业中对所述第二作业添加触发所述第二作业单个执行的第二自动执行工具。
5.根据权利要求1~3任意一项所述的方法,其中,所述执行所述流程组装作业包括:
提交所述流程组装作业;
执行所述流程组装作业中排序在第一位的所述第二作业;
对于所述流程组装作业中排序在第一位之后的每个所述第二作业,在确定当前待执行的所述第二作业的前项作业执行完成后,执行该当前待执行的所述第二作业。
6.一种测试装置,包括:
获取模块,用于获取待测试的M个第一作业和作业裁剪信息,其中M为大于等于1的整数,所述作业裁剪信息包括每个所述第一作业中需要保留的作业步;
提取模块,用于从一个所述第一作业中提取出需要保留的作业步以形成一个第二作业,其中,对于M个所述第一作业分别形成对应的M个所述第二作业;
组装模块,用于组装M个所述第二作业得到流程组装作业;以及
执行模块,用于执行所述流程组装作业,以对M个所述第一作业进行测试;
其中,所述提取模块还用于:
读取所述第一作业的文件;
提取所述第一作业的文件中第一行到第一个作业步所在行的前一行的内容,作为所述第二作业的作业头;
从所述第一作业的文件中所述第一个作业步所在行及其后的内容中提取出R个裁剪作业步,包括:将与R个作业步名其中之一匹配上的作业步的起始行,到下一个作业步的起始行的前一行的内容提取为一个所述裁剪作业步,其中,该R个作业步名为所述作业裁剪信息中设置的所述第一作业中需要保留的作业步的名称,R为大于等于1的整数;以及
将R个所述裁剪作业步输出为所述第二作业的R个作业步。
7.一种电子设备,包括:
一个或多个存储器,其上存储有计算机可执行指令;
一个或多个处理器,所述处理器执行所述指令,以实现根据权利要求1~5中任一项所述的方法。
8.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010515415.8A CN111651360B (zh) | 2020-06-08 | 2020-06-08 | 测试方法、测试装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010515415.8A CN111651360B (zh) | 2020-06-08 | 2020-06-08 | 测试方法、测试装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111651360A CN111651360A (zh) | 2020-09-11 |
CN111651360B true CN111651360B (zh) | 2023-07-07 |
Family
ID=72352812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010515415.8A Active CN111651360B (zh) | 2020-06-08 | 2020-06-08 | 测试方法、测试装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111651360B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407970A (zh) * | 2014-11-06 | 2015-03-11 | 国云科技股份有限公司 | 一种新型软件测试用例设计编写方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10348606B2 (en) * | 2017-05-05 | 2019-07-09 | Dell Products L.P. | Method and system for providing a platform for testing of processes over server communications protocols |
-
2020
- 2020-06-08 CN CN202010515415.8A patent/CN111651360B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407970A (zh) * | 2014-11-06 | 2015-03-11 | 国云科技股份有限公司 | 一种新型软件测试用例设计编写方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111651360A (zh) | 2020-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110457260B (zh) | 文件处理方法、装置、设备及计算机可读存储介质 | |
CN108920135B (zh) | 一种自定义业务生成方法、装置、计算机设备及存储介质 | |
CN108255620B (zh) | 一种业务逻辑处理方法、装置、业务服务器及系统 | |
CN110399294A (zh) | 测试用例生成方法、装置、计算机设备和存储介质 | |
EP2963546A1 (en) | Method for achieving software development transaction and electronic device | |
CN111061733B (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN109710402A (zh) | 处理资源获取请求的方法、装置、计算机设备和存储介质 | |
CN112423135B (zh) | 视频回放的信息处理方法、装置、计算机设备和存储介质 | |
CN110059002B (zh) | 测试数据的生成方法、测试设备、存储介质及装置 | |
CN113448869B (zh) | 测试用例生成的方法、装置、电子设备及计算机可读介质 | |
JP4786998B2 (ja) | ソフトウェア再利用部品管理システム | |
CN110716866A (zh) | 代码质量扫描方法、装置、计算机设备及存储介质 | |
CA3157678A1 (en) | Method and apparatus for automatically testing visual report tool based on vuex | |
CN113138757A (zh) | 前端代码自动生成方法、装置、服务器、系统及介质 | |
US11393232B2 (en) | Extracting values from images of documents | |
CN113448862A (zh) | 软件版本测试方法、装置及计算机设备 | |
CN110531977B (zh) | 仪器的自动化控制方法、装置、计算机设备和存储介质 | |
CN118113271A (zh) | 基于大模型的代码生成方法、系统、终端及介质 | |
CN111651360B (zh) | 测试方法、测试装置、电子设备及介质 | |
CN110196952B (zh) | 程序代码的搜索处理方法、装置、设备及存储介质 | |
CN110825646A (zh) | 测试用例生成方法、接口测试方法、装置和电子设备 | |
CN114721943A (zh) | 测试范围的确定方法和装置 | |
CN110968500A (zh) | 一种测试用例的执行方法及装置 | |
CN114996758A (zh) | 一种数据脱敏方法、装置及电子设备 | |
CN111400245B (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 |