CN112231230A - 一种测试用例管理方法、装置、电子设备及存储介质 - Google Patents
一种测试用例管理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112231230A CN112231230A CN202011261712.0A CN202011261712A CN112231230A CN 112231230 A CN112231230 A CN 112231230A CN 202011261712 A CN202011261712 A CN 202011261712A CN 112231230 A CN112231230 A CN 112231230A
- Authority
- CN
- China
- Prior art keywords
- test
- case
- template
- data
- use case
- 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
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/3684—Test management for test design, e.g. generating new test cases
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
技术领域
本发明涉及计算机技术领域,特别涉及一种测试用例管理方法、装置、电子设备及存储介质。
背景技术
在软件开发过程中,通过自动化测试用例(Test Case)的执行可以发现软件中的潜在缺陷,从而可以及时进行修补以减少后期软件开发和维护成本,提升软件的质量。
相关技术中,在自动化测试用例的实现过程中,需要管理大量高度相似的自动化测试用例及测试代码,不仅降低了测试效率,而且测试用例的可维护性差。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种测试用例管理方法、装置、电子设备及存储介质。所述技术方案如下:
一方面,提供了一种测试用例管理方法,所述方法包括:
响应于预设触发事件,获取模板用例;所述模板用例包括测试逻辑和多个测试数据因子,每个测试数据因子对应至少一个状态值,所述多个测试数据因子适用于所述测试逻辑;
确定与所述模板用例的数据格式相匹配的预置正交组合规则;
基于所述预置正交组合规则对所述模板用例中各测试数据因子的状态值进行组合,得到多个第一测试数据;
根据所述测试逻辑以及所述多个第一测试数据,生成与所述多个第一测试数据相对应的多个测试子用例。
另一方面,提供了一种测试用例管理装置,所述装置包括:
模板用例获取模块,用于响应于预设触发事件,获取模板用例;所述模板用例包括测试逻辑和多个测试数据因子,每个测试数据因子对应至少一个状态值,所述多个测试数据因子适用于所述测试逻辑;
组合规则确定模块,用于确定与所述模板用例的数据格式相匹配的预置正交组合规则;
数据因子组合模块,用于基于所述预置正交组合规则对所述模板用例中各测试数据因子的状态值进行组合,得到多个第一测试数据;
测试用例生成模块,用于根据所述测试逻辑以及所述多个第一测试数据,生成与所述多个第一测试数据相对应的多个测试子用例。
作为一个可能的实施方式,所述模板用例还包括模板描述信息;所述装置还包括:
第一确定模块,用于根据所述模板描述信息确定用例分类标识和用例描述;
第二确定模块,用于确定所述多个测试子用例的子用例标识;
关联关系建立模块,用于根据所述用例分类标识、用例描述和子用例标识,建立所述模板用例与所述多个测试子用例之间的关联关系。
作为一个可能的实施方式,所述关联关系建立模块包括:
第一定义模块,用于根据所述用例分类标识定义用于存储所述模板用例的第一目录;
第二定义模块,用于根据所述用例描述定义用于存储所述多个测试子用例的第二目录;
建立子模块,用于将所述第二目录作为所述第一目录的下级目录,建立所述模板用例与所述多个测试子用例之间的关联关系。
作为一个可能的实施方式,所述模板描述信息还包括所述多个测试子用例的执行策略标识;所述建立子模块,具体用于:将所述执行策略标识作为所述多个测试子用例的执行策略标签;将所述第二目录作为所述第一目录的下级目录,并根据所述执行策略标签建立所述模板用例与所述多个测试子用例之间的关联关系。
作为一个可能的实施方式,所述装置还包括:
存储模块,用于按照所述关联关系存储所述模板用例和所述多个测试子用例。
作为一个可能的实施方式,所述装置还包括:
第一获取模块,用于获取适用于所述测试逻辑的多个第二测试数据;
提取模块,用于确定所述多个第二测试数据中的关键测试参数,提取所述关键测试参数在各第二测试数据中的参数值;
因子确定模块,用于将所述关键测试参数作为所述测试数据因子,所述关键测试参数在各第二测试数据中的参数值作为所述测试数据因子的状态值;
数据格式确定模块,用于确定待生成的模板用例的目标数据格式;
第一格式转换模块,用于将所述测试逻辑、所述测试数据因子以及所述测试数据因子对应的状态值转换为所述目标数据格式,得到第一目标格式数据;
模板用例生成模块,用于根据所述第一目标格式数据生成所述模板用例。
作为一个可能的实施方式,所述模板用例生成模块包括:
第二获取模块,用于获取模板描述信息,所述模板描述信息包括用例分类标识、用例描述和执行策略标识;
第二格式转换模块,用于将所述模板描述信息转换为所述目标数据格式,得到第二目标格式数据;
生成子模块,用于根据所述第一目标格式数据和所述第二目标格式数据,生成所述模板用例。
另一方面,提供了一种电子设备,包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现上述测试用例管理方法。
另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如上述的测试用例管理方法。
另一方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的各种可选实现方式中提供的测试用例管理方法。
本发明实施例通过响应于预设触发事件获取模板用例,并确定与该模板用例的数据格式相匹配的预置正交组合规则,基于该预置正交组合规则对模板用例中各个测试数据因子的状态值进行组合得到多个第一测试数据,进而根据模板用例中的测试逻辑和上述多个第一测试数据生成与该多个第一测试数据一一对应的多个测试子用例,从而可以一个模板用例覆盖N个测试子用例,而且模板用例中的多个测试数据因子之间相互独立,基于该模板用例得到的N个测试子用例之间也相互独立可并发执行,在提高测试用例可维护性的同时还有利于大大提高测试效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种实施环境的示意图;
图2是本发明实施例提供的一种测试用例管理方法的流程示意图;
图3是本发明实施例提供的一种模板用例的示意图;
图4是本发明实施例提供的另一种测试用例管理方法的流程示意图;
图5是本发明实施例提供的表征该模板用例与多个测试子用例之间关联关系的用例信息表;
图6是本发明实施例提供的基于图3所示模板用例生成的多个测试子用例的用例执行结果的示意图;
图7是本发明实施例提供的第二测试数据的部分内容示意图;
图8是本发明实施例提供的一种测试用例管理装置的结构框图;
图9是本发明实施例提供的一种电子设备的硬件结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
相关技术中,自动化测试用例的实现方式一般包括聚合用例方式和拆分用例方式。其中,聚合用例是一个测试用例对应一个测试逻辑,一个测试用例中包含N组测试数据,遍历该N组测试数据执行该测试逻辑,N组测试数据全部执行成功则认为该测试用例通过,也即在聚合用例中测试数据串行执行,一组测试数据执行失败则该测试用例中的所有测试数据均需重测。拆分用例是N组测试数据执行同一个测试逻辑,一个测试用例对应一组测试数据,一组测试数据执行成功时其对应的测试用例认为通过,也即拆分用例方式中针对N组测试数据需要管理N个测试用例,且各测试用例之间无关联。可见,相关技术在在自动化测试用例的实现过程中,需要管理大量高度相似的自动化测试用例及测试代码,不仅降低了测试效率,而且测试用例的可维护性差。
鉴于此,本发明实施例提供一种测试用例管理方法,该方法通过响应于预设触发事件获取模板用例,并确定与该模板用例的数据格式相匹配的预置正交组合规则,基于该预置正交组合规则对模板用例中各个测试数据因子的状态值进行组合得到多个第一测试数据,进而根据模板用例中的测试逻辑和上述多个第一测试数据生成与该多个第一测试数据一一对应的多个测试子用例,从而可以一个模板用例覆盖N个测试子用例,而且模板用例中的多个测试数据因子之间相互独立,基于该模板用例得到的N个测试子用例之间也相互独立可并发执行,在提高测试用例可维护性的同时还有利于大大提高测试效率。
请参阅图1,其所示为本发明实施例提供的一种实施环境示意图,该实施环境可以包括代码管理仓库110、测试平台120和后台数据库130。
代码管理仓库110可以但不限于是Git仓库,Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目,本发明实施例中,代码管理仓库110可以用于管理测试人员编写和维护的模板用例。
测试平台120可以通过有线或无线通信方式与代码管理仓库110和后台数据库130进行直接或者间接地连接。具体的,测试平台120可以在模板用例提交至代码管理仓库110时,响应于代码管理仓库110中模板用例的更新获取模板用例,测试平台120可以对该模板用例进行解析生成多个相互独立的测试子用例以及用来表征该多个测试子用例与模板用例之间关联关系的用例信息,并将该用例信息发送给后台数据库130,由后台数据库130根据该用例信息对该多个测试子用例和模板用例进行关联性存储。
实际应用中,代码管理仓库110、测试平台120和后台数据库130均可以是一个是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,本发明在此不做限制。
云计算(cloud computing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。按照逻辑功能划分,在IaaS(Infrastructure as a Service,基础设施即服务)层上可以部署PaaS(Platform as aService,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、web容器等。SaaS为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
请参阅图2,其所示为本发明实施例提供的一种测试用例管理方法的流程示意图,该方法可以应用于图1所示的系统。需要说明的是,本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的系统或产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。具体的如图2所示,所述方法可以包括:
S201,响应于预设触发事件,获取模板用例。
其中,模板用例可以包括测试逻辑和多个测试数据因子,每个测试数据因子在模板用例中都对应有至少一个状态值,上述多个测试数据因子适用于所述测试逻辑。该多个测试数据因子是指能影响被测系统运行结果的相互独立的因素,各测试数据因子可以指向被测系统的特定测试点,状态值是测试数据因子对应的取值。测试逻辑包括为达到验证测试点目的的至少一个测试步骤。
请参阅图3,其所示为本发明实施例提供的一种模板用例的示意图,该模板用例为Json数据格式,其中包括4个相互独立的测试数据因子:domains(域名)、connection(连接类型)、schemas(请求协议)和methods(请求方法)。其中,测试数据因子domains对应的状态值为test_hymsvr,测试数据因子connection对应的状态值为short和long,测试数据因子schemas对应的状态值为http和https,测试数据因子methods对应的状态值为GET和HEAD。该模板用例中的测试逻辑包括两个测试步骤,第一个测试步骤为发送指定url的请求验证请求返回状态码是否符合预期,第二个测试步骤为发送相同的请求验证请求返回状态码是否符合预期。该模板用例中的4个测试数据因子都适用于上述的测试逻辑,也即该4个测试数据因子适用于同一套测试逻辑。
在一个可能的实施方式中,预设触发事件可以是代码管理仓库中模板用例的更新事件。具体的,当代码管理仓库中的模板用例发生更新时,代码管理仓库可以向测试平台发送模板更新消息,该消息中可以携带发生更新的模板用例的标识信息。测试平台接收到该模板更新消息后,可以解析该消息进而得到发生更新的模板用例的标识信息,并基于该标识信息从代码管理仓库拉取发生更新的模板用例。可以理解的,模板用例的更新事件可以包括新增模板用例以及修改模板用例。
S203,确定与所述模板用例的数据格式相匹配的预置正交组合规则。
本发明实施例中,模板用例的数据格式由测试人员在编写模板用例时确定,例如模板用例的数据格式可以包括Json数据格式和Python数据格式。当模板用例的数据格式为Python数据格式时,所对应的自动化测试框架可以为pyunit测试框架;当模板用例的数据格式为Json数据格式时,所对应的自动化测试框架可以为KeyWord测试框架。
由于模板用例在不同的数据格式下所对应的自动化测试框架不同,因此,本发明实施例中,针对不同数据格式的模板用例预先配置与各数据格式一一对应的预置正交组合规则,各数据格式对应的预置正交组合规则符合该数据格式对应采用的自动化测试框架,预置正交组合规则可以通过正交测试工具基于正交表来实现。例如,Json数据格式对应的预设正交组合规则可以是符合KeyWord测试框架的正交组合规则;Python数据格式对应的预设正交组合规则可以是符合pyunit测试框架的正交组合规则。
具体的实施中,对获取的模板用例先确定该模板用例的数据格式,并基于该数据格式确定与其相匹配的预置正交组合规则。以Json数据格式对应的预设正交组合规则是符合KeyWord测试框架的正交组合规则为例,若当前模板用例的数据格式为Json数据格式,则可以将符合KeyWord测试框架的预置正交组合规则作为与当前模板用例相匹配的预置正交组合规则。
S205,基于所述预置正交组合规则对所述模板用例中各测试数据因子的状态值进行组合,得到多个第一测试数据。
具体的,在基于预置正交组合规则对模板用例中各测试数据因子的状态值进行组合时可以使用正交表,正交表中列的个数为模板用例中测试数据因子的数量,正交表中行的个数为第一测试数据的数量,而各测试数据因子对应的状态值的数量可以作为该正交表的水平数。以图3所示的模板用例为例,该模板用例中的测试数据因子和相应的状态值可以表1表示如下:
表1
其中,因子表示测试数据因子;状态表示测试数据因子的状态值。测试数据因子A只有一个状态值A1:test_hymsvr,测试数据因子B有两个状态值分别为B1:short和B2:long,测试数据因子C有两个状态值分别为C1:http和C2:https,测试数据因子D有两个状态值分别为D1:GET和D2:HEAD。
那么,基于以上表1正交组合之后可以构造生成如下表2中的测试数据集:
表2
其中,因子表示测试数据因子,编号表示第一测试数据编号,也即图3中模板用例中各测试数据因子的状态值正交组合后可以得到8个相互独立、完全不同的测试数据,本发明实施例中将正交组合构造得到的测试数据称之为第一测试数据。
S207,根据所述测试逻辑以及所述多个第一测试数据,生成与所述多个第一测试数据相对应的多个测试子用例。
具体的,可以提取模板用例中的测试逻辑,然后针对多个第一测试数据中的每个第一测试数据,结合该测试逻辑生成与各第一测试数据一一对应的测试子用例。
以图3所示的模板用例为例,最终可以生成与表2中各测试数据编号一一对应的测试子用例,每个测试子用例承载一个表2中的第一测试数据。由于模板用例中各测试数据因子之间是相互独立的,因此该步骤生成的各测试子用例之间也是相互独立的,也即可以单个测试子用例精确调试,也可以将所有测试子用例并发执行。
图6提供的是基于图3所示模板用例生成的多个测试子用例的用例执行结果的示意图,由该图可见,基于同一模板用例生成的多个测试子用例之间相互独立可以并发执行以及单独调试,8个测试子用例并发执行的执行耗时为4秒,相较于串行执行耗时为8*4=32秒,本发明实施例大大提高了测试效率。
由本发明实施例的上述技术方案可见,本发明实施例可以一个模板用例覆盖N个测试子用例,无需管理大量高度相似的自动化测试用例及测试代码,节省了测试工作量,而且模板用例中的多个测试数据因子之间相互独立,基于该模板用例得到的N个测试子用例之间也相互独立可并发执行,从而在提高测试用例可维护性的同时还有利于大大提高测试效率。在实际的应用中还可以通过丰富模板用例中的测试数据因子,实现由一个模板用例生成更多个测试子用例。
实际应用中,基于预置正交组合规则构造得到的各测试子用例是分散的、相互之间没有关联性,容易出现因正交组合导致测试子用例爆炸式增长而无法分类,进而导致测试子用例可读性差、维护成本高的问题。为了避免上述问题的出现,本发明实施例的模板用例中还定义了模板描述信息,该模板描述信息包括用例分类标识和用例描述,其中,用例分类标识用于指示模板用例所对应的多个测试子用例的用例类别,用例描述用于指示模板用例对应的多个测试子用例的测试目的概要。
请继续参阅图3所示模板用例的示意图,该模板用例中以“case_tag”定义了用例分类标识,即用例分类标识为“cache”;以“case_desc”定义了用例描述,即用例描述为“请求返回404,默认缓存10s”。
可以理解的,模板用例中还可以根据实际需要定义模板描述信息包含更多的信息,如模板描述信息还可以“case_name”定义用例名称“default 404cache”以及以“signs”定义用例执行策略标识“parallel”等等,本发明实施例对此不作具体限定。
基于此,作为一个可能的实施方式,如图4提供的另一种测试用例管理方的流程示意图,在步骤S207生成与多个第一测试数据相对应的多个测试子用例之后,该方法还可以包括:
S209,根据模板用例中的模板描述信息确定用例分类标识和用例描述。
以图3所示的模板用例为例,可以通过识别定义用例分类标识的“case_tag”以得到当前模板用例中用例分类标识为“cache”,通过识别定义用例描述的“case_desc”以得到当前模板用例中用例描述为“请求返回404,默认缓存10s”。
S211,确定所述多个测试子用例的子用例标识。
子用例标识用于唯一标识某个模板用例对应的一个测试子用例。示例性的,由于测试子用例与构造的第一测试数据一一对应,可以根据正交结果中第一测试数据标识得到承载该测试数据的测试子用例的子用例标识。
S213,根据所述用例分类标识、用例描述和子用例标识,建立所述模板用例与所述多个测试子用例之间的关联关系。
具体的,可以根据用例分类标识定义用于存储当前模板用例的第一目录,根据用例描述定义用于存储多个测试子用例的第二目录,并将第二目录作为第一目录的下级目录,建立模板用例与多个测试子用例之间的关联关系。
为了增强测试子用例的可读性并提高测试效率,在模板描述信息中还可以包括多个测试子用例的执行策略标识,该执行策略标识用于标识各测试子用例的执行方式,一般执行方式可以包括串行执行和并行执行,如图3所示模板用例示意图中以“signs”定义了执行策略标识为“parallel”,即并发执行。那么,在步骤S213建立模板用例与多个测试子用例之间的关联关系时,还可以将执行策略标识作为多个测试子用例的执行策略标签,为每个测试子用例打上该执行策略标签,也即在将第二目录作为第一目录的下级目录建立关联关系的同时可以根据执行策略标识来建立该关联关系,如此测试平台可根据执行策略标签采用并发或串行的执行策略。
示例性的,上述建立的模板用例与多个测试子用例之间的关联关系可以信息表的形式体现。仍以图3所示模板用例为例,如图5所示为表征该模板用例与多个测试子用例之间关联关系的用例信息表,该用例信息表中根据用例分类标识“cache”定义了用于存储模板用例的第一目录为“cache”,根据用例描述“请求返回404,默认缓存10s”定义了第一目录的下级目录“cache/请求返回404,默认缓存10s”即第二目录用于存储多个测试子用例,另外,还根据执行策略标识“parallel”为每个测试子用例打上了执行策略标签即图5中的“用例标签”,测试平台可以根据该执行策略标签采用并发的执行策略。
可以理解的,实际应用中,用于表征模板用例与多个测试子用例之间关联关系的用例信息表还可以根据实际需要包含其他的一些信息,如执行命令脚本以及用于区分模板用例与测试子用例的标签等等。
作为一个具体的实施方式,在建立模板用例与多个测试子用例之间的关联关系之后,还可以按照该关联关系存储模板用例和多个测试子用例,可以理解的此处的存储包括对已有模板用例和多个测试子用例的更新。以上述的用例信息表为例,可以将该用例信息表以及相应的模板用例和多个测试子用例发送给后台数据库,由后台数据库按照该用例信息表创建“cache”目录以及其下一级目录“cache/请求返回404,默认缓存10s”,并将模板用例存储到“cache”目录,将该模板用例对应的多个测试子用例存储到“cache/请求返回404,默认缓存10s”目录下。后续测试人员可以通过测试平台的前端查看该后台数据库中的测试子用例,并选择相应的测试子用例执行,以及查看用例执行结果。如图6所示,模板用例关联的多个测试子用例并行执行,多个测试子用例的执行总耗时等于单个测试子用例的执行耗时,而且用例执行结果基于模板用例与多个测试子用例之间的关联关系进行展示,使得多个测试子用例的执行结果之前具有了关联性。
本发明实施例在解析模板用例生成承载不同测试数据的多个测试子用例后,还进一步建立了模板用例与多个测试子用例之间的从属关系,从而以模板用例为桥梁建立了多个测试子用例之间的关联性,不仅让各测试子用例可读性增强易于理解,而且降低了维护成本。
作为一个可能的实施方式,在步骤S201之前,该方法还可以包括生成模板用例,具体的,生成模板用例可以包括以下步骤:
获取适用于所述测试逻辑的多个第二测试数据,也即该多个第二测试数据均适用于该测试逻辑。
确定所述多个第二测试数据中的关键测试参数,提取所述关键测试参数在各第二测试数据中的参数值。其中,关键测试参数是指能影响被测系统运行结果的相互独立的参数,以图7所展示的第二测试数据的部分内容为例,关键测试参数可以包括“connection”、“method”、“Host”和“schema”,各关键测试参数在该第二测试数据中的参数值分别为“long”、“GET”、“test_hymdm”和“https”。
示例性的,在具体确定关键测试参数时,可以比对多个第二测试数据以确定该多个第二测试数据之间的差异数据内容,该差异数据内容是指测试参数相同而该测试参数所对应的参数值不同,进而可以根据差异数据内容中的测试参数得到关键测试参数。例如,可以将差异数据内容中所涉及的所有测试参数均作为关键测试参数,也可以根据实际的测试经验,从差异数据内容所包含的测试参数中选取对被测系统运行结果产生较大影响的测试参数作为关键测试参数。
将上述关键测试参数作为测试数据因子,每个关键测试参数在各第二测试数据中的参数值作为相应测试数据因子的状态值。
确定待生成的模板用例的目标数据格式。示例性的,目标数据格式可以是Json数据格式或者Python数据格式等,测试人员可以根据实际需要选择模板用例对应的目标数据格式。
将所述测试逻辑、所述测试数据因子以及所述测试数据因子对应的状态值转换为所述目标数据格式,得到第一目标格式数据。以目标数据格式是Json数据格式为例,可以依据Json数据格式对上述的测试逻辑、测试数据因子以及测试数据因子对应的状态值进行转换,进而可以得到符合Json数据格式的第一目标格式数据。
根据所述第一目标格式数据生成所述模板用例,从而得到目标数据格式的模板用例。
作为一个可能的实施方式,在根据第一目标格式数据生成模板用例时,还可以根据实际需要获取模板描述信息,该模板描述信息可以包括用例分类标识、用例描述和执行策略标识,并将模板描述信息转换为上述的目标数据格式以得到第二目标格式数据,承接上述的目标数据格式是Json数据格式的例子,可以在获取到模板描述信息后依据Json数据格式对该模板描述信息进行转换以得到符合Json数据格式的第二目标格式数据,进而可以根据第一目标格式数据和第二目标格式数据生成模板用例。
需要说明的是,上述用于生成模板用例的多个第二测试数据与本发明实施例由模板用例生成的多个第一测试数据可以相同也可以不同,一般由模板用例生成的多个第一测试数据中包含该多个第二测试数据,也即多个第一测试数据的数量一般远大于多个第二测试数据的数量,从而可以最少的工作量构造出更加丰富的测试子用例,提高测试效率。
与上述几种实施例提供的测试用例管理方法相对应,本发明实施例还提供一种测试用例管理装置,由于本发明实施例提供的测试用例管理装置与上述几种实施例提供的测试用例管理方法相对应,因此前述测试用例管理方法的实施方式也适用于本实施例提供的测试用例管理装置,在本实施例中不再详细描述。
请参阅图8,其所示为本发明实施例提供的一种测试用例管理装置的结构示意图,该装置具有实现上述方法实施例中测试用例管理方法的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。如图8所示,该装置可以包括:
模板用例获取模块810,用于响应于预设触发事件,获取模板用例;所述模板用例包括测试逻辑和多个测试数据因子,每个测试数据因子对应至少一个状态值,所述多个测试数据因子适用于所述测试逻辑;
组合规则确定模块820,用于确定与所述模板用例的数据格式相匹配的预置正交组合规则;
数据因子组合模块830,用于基于所述预置正交组合规则对所述模板用例中各测试数据因子的状态值进行组合,得到多个第一测试数据;
测试用例生成模块840,用于根据所述测试逻辑以及所述多个第一测试数据,生成与所述多个第一测试数据相对应的多个测试子用例。
作为一个可能的实施方式,所述模板用例还包括模板描述信息;所述装置还可以包括:
第一确定模块,用于根据所述模板描述信息确定用例分类标识和用例描述;
第二确定模块,用于确定所述多个测试子用例的子用例标识;
关联关系建立模块,用于根据所述用例分类标识、用例描述和子用例标识,建立所述模板用例与所述多个测试子用例之间的关联关系。
作为一个可能的实施方式,所述关联关系建立模块可以包括:
第一定义模块,用于根据所述用例分类标识定义用于存储所述模板用例的第一目录;
第二定义模块,用于根据所述用例描述定义用于存储所述多个测试子用例的第二目录;
建立子模块,用于将所述第二目录作为所述第一目录的下级目录,建立所述模板用例与所述多个测试子用例之间的关联关系。
作为一个可能的实施方式,所述模板描述信息还包括所述多个测试子用例的执行策略标识;所述建立子模块,具体用于:将所述执行策略标识作为所述多个测试子用例的执行策略标签;将所述第二目录作为所述第一目录的下级目录,并根据所述执行策略标签建立所述模板用例与所述多个测试子用例之间的关联关系。
作为一个可能的实施方式,所述装置还可以包括:
存储模块,用于按照所述关联关系存储所述模板用例和所述多个测试子用例。
作为一个可能的实施方式,所述装置还包括:
第一获取模块,用于获取适用于所述测试逻辑的多个第二测试数据;
提取模块,用于确定所述多个第二测试数据中的关键测试参数,提取所述关键测试参数在各第二测试数据中的参数值;
因子确定模块,用于将所述关键测试参数作为所述测试数据因子,所述关键测试参数在各第二测试数据中的参数值作为所述测试数据因子的状态值;
数据格式确定模块,用于确定待生成的模板用例的目标数据格式;
第一格式转换模块,用于将所述测试逻辑、所述测试数据因子以及所述测试数据因子对应的状态值转换为所述目标数据格式,得到第一目标格式数据;
模板用例生成模块,用于根据所述第一目标格式数据生成所述模板用例。
作为一个可能的实施方式,所述模板用例生成模块包括:
第二获取模块,用于获取模板描述信息,所述模板描述信息包括用例分类标识、用例描述和执行策略标识;
第二格式转换模块,用于将所述模板描述信息转换为所述目标数据格式,得到第二目标格式数据;
生成子模块,用于根据所述第一目标格式数据和所述第二目标格式数据,生成所述模板用例。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本发明实施例的测试用例管理装置可以一个模板用例覆盖N个测试子用例,而且模板用例中的多个测试数据因子之间相互独立,基于该模板用例得到的N个测试子用例之间也相互独立可并发执行,在提高测试用例可维护性的同时还有利于大大提高测试效率。
本发明实施例提供了一种电子设备,该电子设备包括处理器和存储器,该存储器中存储有至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现如上述方法实施例所提供的测试用例管理方法。
存储器可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行各种功能应用以及测试用例管理。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需的应用程序等;存储数据区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
本发明实施例所提供的方法实施例可以在计算机终端、服务器或者类似的运算装置中执行。图9是本发明实施例提供的运行一种测试用例管理方法的电子设备的硬件结构框图,如图9所示,该电子设备的内部结构可包括但不限于:处理器、网络接口及存储器。其中,电子设备内的处理器、网络接口及存储器可通过总线或其他方式连接,在本说明书实施例所示图9中以通过总线连接为例。
其中,处理器(或称CPU(Central Processing Unit,中央处理器))是电子设备的计算核心以及控制核心。网络接口可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等)。存储器(Memory)是电子设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器可以是高速RAM存储设备,也可以是非不稳定的存储设备(non-volatile memory),例如至少一个磁盘存储设备;可选的还可以是至少一个位于远离前述处理器的存储装置。存储器提供存储空间,该存储空间存储了电子设备的操作系统,可包括但不限于:Windows系统(一种操作系统),Linux(一种操作系统),Android(安卓,一种移动操作系统)系统、IOS(一种移动操作系统)系统等等,本发明对此并不作限定;并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。在本说明书实施例中,处理器加载并执行存储器中存放的一条或一条以上指令,以实现上述方法实施例提供的测试用例管理方法。
本发明的实施例还提供了一种计算机可读存储介质,该存储介质可设置于电子设备之中以保存用于实现一种测试用例管理方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述方法实施例提供的测试用例管理方法。
本发明的实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的各种可选实现方式中提供的测试用例管理方法。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种测试用例管理方法,其特征在于,所述方法包括:
响应于预设触发事件,获取模板用例;所述模板用例包括测试逻辑和多个测试数据因子,每个测试数据因子对应至少一个状态值,所述多个测试数据因子适用于所述测试逻辑;
确定与所述模板用例的数据格式相匹配的预置正交组合规则;
基于所述预置正交组合规则对所述模板用例中各测试数据因子的状态值进行组合,得到多个第一测试数据;
根据所述测试逻辑以及所述多个第一测试数据,生成与所述多个第一测试数据相对应的多个测试子用例。
2.根据权利要求1所述的测试用例管理方法,其特征在于,所述模板用例还包括模板描述信息;在所述生成与所述多个第一测试数据相对应的多个测试子用例之后,所述方法还包括:
根据所述模板描述信息确定用例分类标识和用例描述;
确定所述多个测试子用例的子用例标识;
根据所述用例分类标识、用例描述和子用例标识,建立所述模板用例与所述多个测试子用例之间的关联关系。
3.根据权利要求2所述的测试用例管理方法,其特征在于,所述根据所述用例分类标识、用例描述和子用例标识,建立所述模板用例与所述多个测试子用例之间的关联关系包括:
根据所述用例分类标识定义用于存储所述模板用例的第一目录;
根据所述用例描述定义用于存储所述多个测试子用例的第二目录;
将所述第二目录作为所述第一目录的下级目录,建立所述模板用例与所述多个测试子用例之间的关联关系。
4.根据权利要求3所述的测试用例管理方法,其特征在于,所述模板描述信息还包括所述多个测试子用例的执行策略标识;所述将所述第二目录作为所述第一目录的下级目录,建立所述模板用例与所述多个测试子用例之间的关联关系包括:
将所述执行策略标识作为所述多个测试子用例的执行策略标签;
将所述第二目录作为所述第一目录的下级目录,并根据所述执行策略标签建立所述模板用例与所述多个测试子用例之间的关联关系。
5.根据权利要求2或3所述的测试用例管理方法,其特征在于,在建立所述模板用例与所述多个测试子用例之间的关联关系之后,所述方法还包括:
按照所述关联关系存储所述模板用例和所述多个测试子用例。
6.根据权利要求1所述的测试用例管理方法,其特征在于,在响应于预设触发事件,获取模板用例之前,所述方法还包括:
获取适用于所述测试逻辑的多个第二测试数据;
确定所述多个第二测试数据中的关键测试参数,提取所述关键测试参数在各第二测试数据中的参数值;
将所述关键测试参数作为所述测试数据因子,所述关键测试参数在各第二测试数据中的参数值作为所述测试数据因子的状态值;
确定待生成的模板用例的目标数据格式;
将所述测试逻辑、所述测试数据因子以及所述测试数据因子对应的状态值转换为所述目标数据格式,得到第一目标格式数据;
根据所述第一目标格式数据生成所述模板用例。
7.根据权利要求6所述的测试用例管理方法,其特征在于,所述根据所述第一目标格式数据生成所述模板用例包括:
获取模板描述信息,所述模板描述信息包括用例分类标识、用例描述和执行策略标识;
将所述模板描述信息转换为所述目标数据格式,得到第二目标格式数据;
根据所述第一目标格式数据和所述第二目标格式数据,生成所述模板用例。
8.一种测试用例管理装置,其特征在于,所述装置包括:
模板用例获取模块,用于响应于预设触发事件,获取模板用例;所述模板用例包括测试逻辑和多个测试数据因子,每个测试数据因子对应至少一个状态值,所述多个测试数据因子适用于所述测试逻辑;
组合规则确定模块,用于确定与所述模板用例的数据格式相匹配的预置正交组合规则;
数据因子组合模块,用于基于所述预置正交组合规则对所述模板用例中各测试数据因子的状态值进行组合,得到多个第一测试数据;
测试用例生成模块,用于根据所述测试逻辑以及所述多个第一测试数据,生成与所述多个第一测试数据相对应的多个测试子用例。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由所述处理器加载并执行以实现如权利要求1~7中任一项所述的测试用例管理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现如权利要求1~7任一项所述的测试用例管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011261712.0A CN112231230A (zh) | 2020-11-12 | 2020-11-12 | 一种测试用例管理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011261712.0A CN112231230A (zh) | 2020-11-12 | 2020-11-12 | 一种测试用例管理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112231230A true CN112231230A (zh) | 2021-01-15 |
Family
ID=74123594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011261712.0A Pending CN112231230A (zh) | 2020-11-12 | 2020-11-12 | 一种测试用例管理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231230A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051171A (zh) * | 2021-04-08 | 2021-06-29 | 平安国际智慧城市科技股份有限公司 | 接口测试方法、装置、设备及存储介质 |
CN113535565A (zh) * | 2021-07-19 | 2021-10-22 | 工银科技有限公司 | 一种接口用例生成方法、装置、设备、介质和程序产品 |
CN114328276A (zh) * | 2022-03-10 | 2022-04-12 | 北京车智赢科技有限公司 | 测试用例生成方法和装置,显示测试用例的方法和装置 |
CN116089187A (zh) * | 2022-12-30 | 2023-05-09 | 摩尔线程智能科技(北京)有限责任公司 | 一种gpu测试系统、电子设备和存储介质 |
-
2020
- 2020-11-12 CN CN202011261712.0A patent/CN112231230A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051171A (zh) * | 2021-04-08 | 2021-06-29 | 平安国际智慧城市科技股份有限公司 | 接口测试方法、装置、设备及存储介质 |
CN113051171B (zh) * | 2021-04-08 | 2024-04-02 | 深圳赛安特技术服务有限公司 | 接口测试方法、装置、设备及存储介质 |
CN113535565A (zh) * | 2021-07-19 | 2021-10-22 | 工银科技有限公司 | 一种接口用例生成方法、装置、设备、介质和程序产品 |
CN114328276A (zh) * | 2022-03-10 | 2022-04-12 | 北京车智赢科技有限公司 | 测试用例生成方法和装置,显示测试用例的方法和装置 |
CN114328276B (zh) * | 2022-03-10 | 2022-05-20 | 北京车智赢科技有限公司 | 测试用例生成方法和装置,显示测试用例的方法和装置 |
CN116089187A (zh) * | 2022-12-30 | 2023-05-09 | 摩尔线程智能科技(北京)有限责任公司 | 一种gpu测试系统、电子设备和存储介质 |
CN116089187B (zh) * | 2022-12-30 | 2024-02-02 | 摩尔线程智能科技(北京)有限责任公司 | 一种gpu测试系统、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112231230A (zh) | 一种测试用例管理方法、装置、电子设备及存储介质 | |
CN107370786B (zh) | 一种基于微服务架构的通用信息管理系统 | |
CN109542791B (zh) | 一种基于容器技术的程序大规模并发评测方法 | |
US10496532B1 (en) | Automatically reconfiguring a performance test environment | |
CN111708702A (zh) | 模拟测试方法、客户端、服务端、系统与可读存储介质 | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN111866099B (zh) | 镜像文件的下载方法、装置、系统、设备及存储介质 | |
CN111200523B (zh) | 中台系统配置方法、装置、设备及存储介质 | |
CN108540351B (zh) | 分布式大数据服务的自动化测试方法 | |
CN112379869A (zh) | 一种标准化开发训练平台 | |
CN104899134A (zh) | 域名注册服务器自动化测试系统和方法 | |
CN111984505A (zh) | 一种运维数据采集引擎及采集方法 | |
CN117608845A (zh) | 任务批处理方法、装置、终端设备以及存储介质 | |
CN116450353A (zh) | 处理器核匹配方法、装置、电子设备及存储介质 | |
CN115712571A (zh) | 一种交互服务测试、装置、计算机设备及存储介质 | |
CN114416596A (zh) | 一种测试应用的方法、装置、计算机设备及存储介质 | |
CN116263659A (zh) | 数据处理方法、装置、计算机程序产品、设备及存储介质 | |
CN116414594A (zh) | 故障树更新方法、装置、计算机设备和存储介质 | |
CN108989074A (zh) | 程序升级方法和程序升级装置 | |
CN107465762B (zh) | 一种分布式存储系统的测试方法及系统 | |
CN113067878A (zh) | 信息采集方法、装置、设备、介质及程序产品 | |
CN113434382A (zh) | 数据库性能监控方法、装置、电子设备及计算机可读介质 | |
CN110737662A (zh) | 一种数据分析方法、装置、服务器及计算机存储介质 | |
CN110674119A (zh) | 数据处理方法、系统与计算机可读存储介质 | |
CN116401319B (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 |