CN115328816A - 测试用例管理方法、装置、计算设备及存储介质 - Google Patents

测试用例管理方法、装置、计算设备及存储介质 Download PDF

Info

Publication number
CN115328816A
CN115328816A CN202211264506.4A CN202211264506A CN115328816A CN 115328816 A CN115328816 A CN 115328816A CN 202211264506 A CN202211264506 A CN 202211264506A CN 115328816 A CN115328816 A CN 115328816A
Authority
CN
China
Prior art keywords
case
test
label
test case
acquiring
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.)
Granted
Application number
CN202211264506.4A
Other languages
English (en)
Other versions
CN115328816B (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.)
Uniontech Software Technology Co Ltd
Original Assignee
Uniontech Software 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 Uniontech Software Technology Co Ltd filed Critical Uniontech Software Technology Co Ltd
Priority to CN202211264506.4A priority Critical patent/CN115328816B/zh
Publication of CN115328816A publication Critical patent/CN115328816A/zh
Application granted granted Critical
Publication of CN115328816B publication Critical patent/CN115328816B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Abstract

本发明公开了一种测试用例管理方法、装置、计算设备及存储介质,涉及测试技术领域。计算设备的标签存储文件中包括每个测试用例的用例标识、以及与用例标识相关联的一个或多个标签,每个标签分别对应一种测试场景,该方法包括:响应于测试用例执行命令,获取所有测试用例,并将每个测试用例的用例对象存放在缓存;对于每个测试用例,从用例对象中获取用例标识,基于用例标识从标签存储文件中获取所述测试用例的一个或多个标签,并回写到测试用例的用例对象中,得到标签用例集;根据测试用例执行命令中的标签语法,从标签用例集中筛选出一个或多个待执行测试用例。根据本发明的技术方案,能实现根据不同的测试场景,精确筛选出待执行的测试用例。

Description

测试用例管理方法、装置、计算设备及存储介质
技术领域
本发明涉及测试技术领域,尤其涉及一种测试用例管理方法、测试用例管理装置、计算设备及存储介质。
背景技术
自动化测试是把人工测试行为转化为机器执行的一种过程。通常,在设计了测试用例之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的对比信息。在此过程中,为了节省人力、时间、硬件资源,提高测试效率,引入了自动化测试的概念。
在自动化测试工程实践中,由于自动化测试用例量巨大,为避免执行周期过长,针对不同的测试策略往往不进行全量执行。例如,在 UI 自动化测试中,执行一次全量用例时间可能耗费几个工作日,在提倡持续集成持续发布的大环境下,这样的耗时通常是不可接受的。因此,需要在不同的测试场景下,执行与测试场景相对应的自动化测试用例。例如,对于冒烟测试或者回归测试,只执行其对应范围内的测试用例集。
现有技术中,为了将测试用例区分开来,第一种方法是将归属不同测试场景的用例按照不同的目录进行划分,例如,对于冒烟测试用例,将所有自动化用例脚本放到一个smoke目录下,这样,在跑冒烟测试用例时,只需执行 smoke目录下的所有用例。这种方案的可维护性差,而且,由于不同测试场景的用例可能是重复的,一个测试用例可能存在于多个目录下,导致会产生较多重复代码;另外,每次批量执行用例的时候都需要指定到具体的目录,操作复杂。
现有技术中的第二种方法是将不同的测试用例命名按照不同的关键词命名。例如,冒烟测试用例命名为 test_smoke_1,回归测试用例命名为 test_regression_1,这样在跑冒烟测试用例的时候,只需收集到所有包含smoke关键词的用例执行即可。这种方案的可维护性差,且测试用例的命名较长,导致可读性差。
基于此,如何根据不同的测试场景,精确筛选出要执行的自动化测试用例,亟待解决。
为此,需要一种测试用例管理方法,以解决上述方案中存在的问题。
发明内容
为此,本发明提供一种测试用例管理方法及测试用例管理装置,以解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供一种测试用例管理方法,在计算设备中执行,所述计算设备中包括标签存储文件,所述标签存储文件中包括每个测试用例的用例标识、以及与所述用例标识相关联的一个或多个标签,每个所述标签分别对应一种测试场景,所述方法包括:响应于测试用例执行命令,获取所有测试用例,并将每个测试用例的用例对象存放在缓存;对于每个测试用例,从所述用例对象中获取用例标识,基于所述用例标识,从标签存储文件中获取所述测试用例的一个或多个标签,并回写到所述测试用例的用例对象中,得到标签用例集;根据所述测试用例执行命令中的标签语法,从所述标签用例集中筛选出一个或多个待执行测试用例。
可选地,在根据本发明的测试用例管理方法中,根据所述测试用例执行命令中的标签语法,从所述标签用例集中筛选出一个或多个待执行测试用例,包括:判断所述测试用例执行命令中是否传入标签语法;如果是,则确定所述标签语法中包含的预定标签、或者不包含的预定标签,并从所述标签用例集中,筛选出相应的一个或多个待执行测试用例。
可选地,在根据本发明的测试用例管理方法中,所述用例对象中包含测试用例名称,所述测试用例名称中包含用例标识;从所述用例对象中获取用例标识,包括:从所述用例对象中获取测试用例名称,从所述测试用例名称中获取用例标识。
可选地,在根据本发明的测试用例管理方法中,每个所述标签存储文件分别对应一个测试模块。
可选地,在根据本发明的测试用例管理方法中,从标签存储文件中获取所述测试用例的一个或多个标签,包括:从用例对象中获取测试用例名称,从测试用例名称中获取关键字、用例标识;基于所述关键字,获取所述测试用例对应的测试模块的标签存储文件;基于所述用例标识,从所述测试用例对应的测试模块的标签存储文件中,获取所述测试用例的一个或多个标签。
可选地,在根据本发明的测试用例管理方法中,还包括:如果所述测试用例执行命令中未传入标签语法,则执行所有测试用例。
可选地,在根据本发明的测试用例管理方法中,所述测试场景包括验收测试、冒烟测试、回归测试。
根据本发明的一个方面,提供一种测试用例管理装置,驻留在计算设备中,所述计算设备中包括标签存储文件,所述标签存储文件中包括每个测试用例的用例标识、以及与所述用例标识相关联的一个或多个标签,每个所述标签分别对应一种测试场景,所述装置包括:获取模块,适于响应于测试用例执行命令,获取所有测试用例,并将每个测试用例的用例对象存放在缓存;写入模块,适于对于每个测试用例,从所述用例对象中获取用例标识,基于所述用例标识,从标签存储文件中获取所述测试用例的一个或多个标签,并回写到所述测试用例的用例对象中,得到标签用例集;筛选模块,适于根据所述测试用例执行命令中的标签语法,从所述标签用例集中筛选出一个或多个待执行测试用例。
根据本发明的一个方面,提供一种计算设备,包括:至少一个处理器;存储器,存储有程序指令,其中,程序指令被配置为适于由上述至少一个处理器执行,所述程序指令包括用于执行如上所述的测试用例管理方法的指令。
根据本发明的一个方面,提供一种存储有程序指令的可读存储介质,当该程序指令被计算设备读取并执行时,使得该计算设备执行如上所述的测试用例管理方法。
根据本发明的技术方案,提供了一种测试用例管理方法,基于标签存储文件存储每个测试用例的用例标识及与用例标识相关联的一个或多个标签,每个标签分别对应一种测试场景。其中,在接收到测试用例执行命令后,响应于测试用例执行命令,获取所有测试用例,并将每个测试用例的用例对象存放在缓存,这里的用例对象中包含测试用例名称。对于每个测试用例,从测试用例的用例对象中获取用例标识,基于用例标识从标签存储文件中获取测试用例的一个或多个标签,并回写到测试用例的用例对象中,得到标签用例集。最后,可以根据测试用例执行命令中的标签语法,从标签用例集中筛选出一个或多个待执行测试用例并执行。根据本发明的技术方案,通过为每个测试用例添加与适用的测试场景相对应的标签,并基于标签存储文件对标签进行集中化管理,这样便于对测试用例的标签进行扩展和执行,而且,能实现根据不同的测试场景,精确筛选出待执行的测试用例。其中,根据标签语法来筛选测试用例,可以更加灵活地筛选测试用例。此外,本发明避免了为代码添加标签而造成的重复代码,也避免了对标签进行维护时对代码的误操作风险。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的计算设备100的示意图;
图2、图3分别示出了根据本发明一个实施例的测试用例管理方法200的流程图;
图4示出了根据本发明一个实施例的测试用例管理装置400的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的计算设备100的示意图。如图1所示,在基本配置中,计算设备100包括至少一个处理单元102和系统存储器104。根据一个方面,取决于计算设备的配置和类型,处理单元102可以实现为处理器。系统存储器104包括但不限于易失性存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪速存储器、或者这样的存储器的任何组合。根据一个方面,系统存储器104中包括操作系统105。
根据一个方面,操作系统105例如适合于控制计算设备100的操作。此外,示例结合图形库、其他操作系统、或任何其他应用程序而被实践,并且不限于任何特定的应用或系统。在图1中通过在虚线内的那些组件示出了该基本配置。根据一个方面,计算设备100具有额外的特征或功能。例如,根据一个方面,计算设备100包括额外的数据存储设备(可移动的和/或不可移动的),例如磁盘、光盘、或者磁带。这样额外的存储在图1中是由可移动存储设备109和不可移动存储设备110示出的。
如在上文中所陈述的,根据一个方面,在系统存储器104中存储有程序模块103。根据一个方面,程序模块103可以包括一个或多个应用程序,本发明不限制应用程序的类型,例如应用程序可以包括:电子邮件和联系人应用程序、文字处理应用程序、电子表格应用程序、数据库应用程序、幻灯片展示应用程序、绘画或计算机辅助应用程序、网络浏览器应用程序等。
在根据本发明的实施例中,程序模块103中可以包括测试用例管理装置400,测试用例管理装置400被配置为执行本发明的测试用例管理方法200。
根据一个方面,可以在包括分立电子元件的电路、包含逻辑门的封装或集成的电子芯片、利用微处理器的电路、或者在包含电子元件或微处理器的单个芯片上实践示例。例如,可以经由其中在图1中所示出的每个或许多组件可以集成在单个集成电路上的片上系统(SOC)来实践示例。根据一个方面,这样的SOC设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元、以及各种应用功能,其全部作为单个集成电路而被集成(或“烧”)到芯片基底上。当经由SOC进行操作时,可以经由在单个集成电路(芯片)上与计算设备100的其他组件集成的专用逻辑来对在本文中所描述的功能进行操作。还可以使用能够执行逻辑操作(例如AND、OR和NOT)的其他技术来实践本发明的实施例,所述其他技术包括但不限于机械、光学、流体、和量子技术。另外,可以在通用计算机内或在任何其他任何电路或系统中实践本发明的实施例。
根据一个方面,计算设备100还可以具有一个或多个输入设备112,例如键盘、鼠标、笔、语音输入设备、触摸输入设备等。还可以包括输出设备114,例如显示器、扬声器、打印机等。前述设备是示例并且也可以使用其他设备。计算设备100可以包括允许与其他计算设备118进行通信的一个或多个通信连接116。合适的通信连接116的示例包括但不限于:RF发射机、接收机和/或收发机电路;通用串行总线(USB)、并行和/或串行端口。
如在本文中所使用的术语计算机可读介质包括计算机存储介质。计算机存储介质可以包括以任何用于存储信息(例如,计算机可读指示、数据结构、或程序模块103)的方法或技术来实现的易失性的和非易失性的、可移动的和不可移动的介质。系统存储器104、可移动存储设备109、和不可移动存储设备110都是计算机存储介质的示例(即,存储器存储)。计算机存储介质可以包括随机存取存储器(RAM) 、只读存储器(ROM) 、电可擦只读存储器(EEPROM)、闪速存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储、盒式磁带、磁带、磁盘存储器或其他磁存储设备、或者可用于存储信息并且可以由计算设备100访问的任何其他制品。根据一个方面,任何这样的计算机存储介质都可以是计算设备100的一部分。计算机存储介质不包括载波或其他经传播的数据信号。
根据一个方面,通信介质是由计算机可读指令、数据结构、程序模块103、或者经调制的数据信号(例如,载波或其他传输机制)中的其他数据实施的,并且包括任何信息传递介质。根据一个方面,术语“经调制的数据信号”描述了具有一个或多个特征集或者以将信息编码在信号中的方式改变的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、射频(RF)、红外线的、以及其他无线介质之类的无线介质。
在根据本发明的实施例中,计算设备100被配置为执行根据本发明的测试用例管理方法200。计算设备100包括一个或多个处理器、以及存储有程序指令的一个或多个可读存储介质,当程序指令被配置为由一个或多个处理器执行时,使得计算设备执行本发明实施例中的测试用例管理方法200。
根据本发明的一个实施例,计算设备100的测试用例管理装置400被配置为执行根据本发明的测试用例管理方法200。其中,测试用例管理装置400中包含用于执行本发明的测试用例管理方法200的多条程序指令,这些程序指令可以指示处理器执行根据本发明的测试用例管理方法200。
图2、图3分别示出了根据本发明一个实施例的测试用例管理方法200的流程图。方法200适于在计算设备(前述计算设备100)的测试用例管理装置400中执行。
需要说明的是,在本发明的实施例中,对于每个测试用例,可以针对测试用例适用的测试场景,来为该测试用例添加与测试场景相对应的标签。应当指出,每个测试用例分别可以适用于一种或多种测试场景,基于此,可以为每个测试用例分别添加一个或多个标签。可以理解,当多个测试用例均适用于同一种测试场景时,多个测试用例可以被添加相同的标签。
在本发明的实施例中,计算设备100中包括标签存储文件,标签存储文件中包括每个测试用例的用例标识、以及与用例标识相关联的一个或多个标签。每个标签分别对应一种测试场景。
在一个实施例中,测试场景例如包括验收测试、冒烟测试、回归测试等。但,应当指出,本发明不受限于测试场景的具体类型。
如图2和图3所示,方法200包括步骤210~230。
在步骤210中,当接收到测试用例执行命令时,响应于测试用例执行命令,获取所有测试用例,并将每个测试用例的用例对象存放在缓存。也就是说,将每个测试用例以对象的形式存放在缓存中,测试用例的对象即用例对象。
这里,每个测试用例的用例对象中包含相应的测试用例名称。也即,初步存放在缓存中的用例对象中包含测试用例名称。
在一个实施例中,当接收到测试用例执行命令时,可以从计算设备100的存储设备(例如不可移动存储设备110、可移动存储设备109)中读取所有测试用例。
需要说明的是,测试用例包括唯一的用例标识。在一个实施例中,测试用例可以是以“test_关键字_用例标识”的格式命名的文件,换言之,测试用例名称(即,测试用例的文件名)的格式为“test_关键字_用例标识”,可见,测试用例名称中包含关键字、用例标识等信息。这样,在步骤210中,通过搜索以“test”开头的文件,可以获取到所有测试用例。随后,可以将每个测试用例以对象(用例对象)的形式存放在缓存中,这里初步存放的测试用例的用例对象中包含测试用例名称(对应case)。用例对象如下所示:
object(case="test_xxx_001", mark=[])
object(case="test_xxx_002", mark=[])
object(case="test_xxx_003", mark=[])
随后,在步骤220中,对于每个测试用例,从测试用例的用例对象中获取用例标识,基于该用例标识从标签存储文件中获取测试用例的一个或多个标签,并将获取到的测试用例的一个或多个标签回写到该测试用例的用例对象中,可以得到标签用例集。这里,每个标签分别对应一种测试场景。
可以理解,在执行步骤220之后,每个测试用例的用例对象中分别存储有相应测试用例的一个或多个标签,基于所有测试用例的用例对象可以组合形成标签用例集(带标签的测试用例集)。可以理解,每个测试用例的用例对象中包含测试用例的所有标签。
具体地,用例对象中包括测试用例名称、测试用例的一个或多个标签。其中,用例对象中的case对应测试用例名称,mark包含测试用例的一个或多个标签。
在一个实施例中,如前文所述,测试用例名称中包含该测试用例的用例标识。对于每个测试用例,通过从用例对象中获取测试用例名称,从测试用例名称中获取测试用例的用例标识,基于用例标识可以从标签存储文件中获取测试用例的一个或多个标签。随后,将测试用例的一个或多个标签回写到该测试用例的用例对象(mark)中,得到完整的用例对象(包含测试用例名称和测试用例的所有标签),基于所有测试用例的完整的用例对象可以组合形成标签用例集。
回写了标签信息的完整的用例对象如下所示:
object(case="test_xxx_001", mark=["L1", "core", "acp"])
object(case="test_xxx_002", mark=["L2", "smoke", "维语"])
object(case="test_xxx_003", mark=["L3", "core", "藏语"])
其中, L1、L2、L3为测试用例的用例等级。测试用例的一个或多个标签中可以包含用例等级。
在一个实施例中,在步骤220中,可以通过中间件从缓存中读取初步存放的每个测试用例的用例对象,对于每个测试用例,通过解析每一条用例对象,可以从用例对象中获取测试用例名称,从测试用例名称中获取到关键字(“xxx”)和用例标识(例如“001”)。这里,基于关键字可以查找对应的标签存储文件。基于用例标识可以从标签存储文件中获取测试用例的一个或多个标签,通过将测试用例的一个或多个标签回写到该测试用例的用例对象(mark)中,可以得到完整的用例对象。基于所有完整的用例对象可以组合形成标签用例集。
根据本发明的一个实施例,在执行步骤220之前,可以预先在计算设备100中的用例目录下新建标签存储文件。对于每个测试用例,可以在标签存储文件中写入测试用例的一个或多个标签(即,为测试用例添加的一个或多个标签)。每个标签分别对应一种测试场景。这样,实现了基于标签存储文件来存储每个测试用例的所有标签。
在一个实施例中,对于每个测试用例,可以在标签存储文件中的第一列写入测试用例的用例标识,并在用例标识所在行(除第一列外)写入该测试用例的一个或多个标签,这样,便实现将测试用例的一个或多个标签与测试用例的用例标识进行关联存储(测试用例的所有标签存储在与用例标识相对应的一行),使得计算设备100的标签存储文件中包括每个测试用例的用例标识、以及与用例标识相关联的一个或多个标签。
另外,对于每个测试用例,还可以在标签存储文件中的第二列写入测试用例的用例等级。
下面示出标签存储文件的一个示例:
用例标识 用例等级 标签1 标签2 ...
001 L1 core acp ...
002 L2 smoke 维语 ...
003 L3 core 藏语 ...
如上表所示,标签存储文件中的第一列存储的是每个测试用例的用例标识,例如“001”、“002”、“003”,可见,用例标识对应的是测试用例所在的标签行。在用例标识之后每一列,可以存储与用例标识相对应的测试用例的一个或多个标签。其中,第二列存储的是每个测试用例的用例等级,例如“L1”、“L2”、“L3”。
标签存储文件中的每一行对应一个测试用例,并存储一个测试用例的用例标识、一个或多个标签(可包含用例等级)。例如,用例标识为“001”的测试用例的标签包括L1、core、acp。
每一个标签分别对应一种测试场景,这样,当需要针对一种测试场景来进行测试时,可以筛选出包含与该测试场景相对应的标签的测试用例,作为待执行测试用例,从而只需执行与测试场景相关的测试用例即可。例如,在冒烟测试过程中,通常只关注程序的基本功能是否正常响应,只需执行包含“smoke”标签的测试用例(冒烟测试场景对应的标签为“smoke”);又例如,在维语系统环境下,只需执行包含“维语”标签的测试用例(维语系统测试场景对应的标签为“维语”)。
需要说明的是,本发明通过为每个测试用例添加与适用的测试场景相对应的标签,并基于标签存储文件对测试用例的标签进行集中化管理,这样,便于对测试用例的标签进行扩展和执行。而且,便于针对不同的测试场景,基于标签筛选和定制与测试场景相对应的测试用例集。
根据本发明的一个实施例,针对复杂测试场景,可以建立多个标签存储文件,具体地,针对每个测试模块分别建立一个标签存储文件,使得每个标签存储文件分别对应一个测试模块。每个测试模块分别可以对应多个测试用例。
具体地,分别为每个测试模块建立一个标签存储文件。在标签存储文件中写入测试用例的一个或多个标签时,可以根据测试用例对应的测试模块,在该测试模块的标签存储文件中,写入测试用例的一个或多个标签。
在一个实施例中,如前文所述,测试用例名称中包括与测试模块、标签存储文件相关的关键字。
在从标签存储文件中获取测试用例的一个或多个标签时,首先可以从缓存中的用例对象中获取测试用例名称,从测试用例名称中获取关键字、用例标识。这里,在一种实现方式中,可以通过中间件从缓存中读取每个测试用例的用例对象,通过解析每一条用例对象来获取测试用例名称,并从测试用例名称中获取关键字和用例标识。
随后,基于关键字,来查询获取测试用例对应的测试模块的标签存储文件。进而,基于用例标识,从测试用例对应的测试模块的标签存储文件中,获取该测试用例的一个或多个标签。接下来,可以将该测试用例的一个或多个标签回写到该测试用例的用例对象(mark)中,得到完整的用例对象。
最后,可以执行步骤230来进行测试用例的筛选。
在步骤230中,根据测试用例执行命令中的标签语法,从标签用例集中筛选出一个或多个待执行测试用例,随后可以执行筛选出的一个或多个待测试用例。这里,需要说明的是,标签语法支持选择包含的(一个或多个)预定标签、或者不包含的(一个或多个)预定标签。
具体地,首先,判断测试用例执行命令中是否传入标签语法。如果测试用例执行命令中传入了标签语法,则确定标签语法中包含的预定标签、或者不包含的预定标签。随后,基于标签语法包含的预定标签、或者不包含的预定标签,从缓存中的标签用例集中,筛选出相应的一个或多个待执行测试用例。
如果测试用例执行命令中未传入标签语法,则无需筛选测试用例,并执行所有测试用例。
在一种实现方式中,标签语法中可以以关键字“not”开头来表示不包含一个或多个预定标签。多个预定标签之间可以使用关键字“or”作者“and”连接。在根据标签语法从标签用例集中筛选出一个或多个待执行测试用例时,可以根据标签语法中基于关键字“and”、“not”、“or”连接的一个或多个标签,来从缓存中的标签用例集中,筛选出相应的一个或多个待执行测试用例。
下面示出标签语法的几种具体实现逻辑。
例如,L1可表示包含L1标签的测试用例,如果需要筛选出包含L1标签的测试用例,则标签语法可以实现为:
if "L1" in object["mark"]: suite.append(object)
又例如,not L1可表示不包含L1标签的测试用例,如果需要筛选出不包含L1标签的测试用例,则标签语法可以实现为:
if "L1" not in object["mark"]: suite.append(object)
又例如, L1 or core可表示包含L1或者core标签的测试用例,如果需要筛选出包含L1或者core标签的测试用例,则标签语法可以实现为:
if "L1" in object["mark"] or "core" in object["mark"] suite.append(object)
又例如, L1 and core可表示包含L1且同时包含core标签的测试用例,如果需要筛选出同时包含L1和core标签的测试用例,则标签语法可以实现为:
if "L1" in object["mark"] and "core" in object["mark"] suite.append(object)
又例如, L1 and not core可表示包含L1且不包含core标签的测试用例,如果需要筛选出包含L1且不包含core标签的测试用例,则标签语法可以实现为:
if "L1" in object["mark"] and "core" not in object["mark"]suite.append(object)
可见,本发明根据标签语法来筛选测试用例,可以基于关键字“and”、“not”、“or”来对多个标签进行组合筛选,从而实现灵活筛选测试用例。
图4示出了根据本发明的一个实施例的测试用例管理装置400的示意图。测试用例管理装置400驻留在计算设备(例如前述计算设备100)中。测试用例管理装置400适于执行本发明的测试用例管理方法200。
在本发明的实施例中,计算设备100中包括标签存储文件,标签存储文件中包括每个测试用例的用例标识、以及与用例标识相关联的一个或多个标签。每个标签分别对应一种测试场景。
如图4所示,测试用例管理装置400包括依次相连的获取模块410、写入模块420以及筛选模块430。
其中,获取模块410可以响应于测试用例执行命令,获取所有测试用例,并将每个测试用例的用例对象存放在缓存。对于每个测试用例,写入模块420可以从测试用例的用例对象中获取用例标识,基于该用例标识从标签存储文件中获取测试用例的一个或多个标签,并会写到测试用例的用例对象中,得到标签用例集。筛选模块430可以根据测试用例执行命令中的标签语法,从标签用例集中筛选出一个或多个待执行测试用例。
应当指出,获取模块410用于执行前述步骤210,写入模块420用于执行前述步骤220,筛选模块430用于执行前述步骤230。这里,获取模块410、写入模块420以及筛选模块430的具体执行逻辑参见前文方法200中对步骤210~230的描述,此处不再赘述。
根据本发明的测试用例管理方法,基于标签存储文件存储每个测试用例的用例标识及与用例标识相关联的一个或多个标签,每个标签分别对应一种测试场景。其中,在接收到测试用例执行命令后,响应于测试用例执行命令,获取所有测试用例,并将每个测试用例的用例对象存放在缓存。对于每个测试用例,从测试用例的用例对象中获取用例标识,基于用例标识从标签存储文件中获取测试用例的一个或多个标签,并回写到测试用例的用例对象中,得到标签用例集。最后,可以根据测试用例执行命令中的标签语法,从标签用例集中筛选出一个或多个待执行测试用例并执行。根据本发明的技术方案,通过为每个测试用例添加与适用的测试场景相对应的标签,并基于标签存储文件对标签进行集中化管理,这样便于对测试用例的标签进行扩展和执行,而且,能实现根据不同的测试场景,精确筛选出待执行的测试用例。其中,根据标签语法来筛选测试用例,可以更加灵活地筛选测试用例。此外,本发明避免了为代码添加标签而造成的重复代码,也避免了对标签进行维护时对代码的误操作风险。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,移动终端一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的测试用例管理方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。

Claims (10)

1.一种测试用例管理方法,在计算设备中执行,所述计算设备中包括标签存储文件,所述标签存储文件中包括每个测试用例的用例标识、以及与所述用例标识相关联的一个或多个标签,每个所述标签分别对应一种测试场景,所述方法包括:
响应于测试用例执行命令,获取所有测试用例,并将每个测试用例的用例对象存放在缓存;
对于每个测试用例,从所述用例对象中获取用例标识,基于所述用例标识,从标签存储文件中获取所述测试用例的一个或多个标签,并回写到所述测试用例的用例对象中,得到标签用例集;
根据所述测试用例执行命令中的标签语法,从所述标签用例集中筛选出一个或多个待执行测试用例。
2.如权利要求1所述的方法,其中,根据所述测试用例执行命令中的标签语法,从所述标签用例集中筛选出一个或多个待执行测试用例,包括:
判断所述测试用例执行命令中是否传入标签语法;
如果是,则确定所述标签语法中包含的预定标签、或者不包含的预定标签,并从所述标签用例集中,筛选出相应的一个或多个待执行测试用例。
3.如权利要求1所述的方法,其中,所述用例对象中包含测试用例名称,所述测试用例名称中包含用例标识;从所述用例对象中获取用例标识,包括:
从所述用例对象中获取测试用例名称,从所述测试用例名称中获取用例标识。
4.如权利要求1所述的方法,其中,每个所述标签存储文件分别对应一个测试模块。
5.如权利要求1-4中任一项所述的方法,其中,从标签存储文件中获取所述测试用例的一个或多个标签,包括:
从所述用例对象中获取测试用例名称,从所述测试用例名称中获取关键字、用例标识;
基于所述关键字,获取所述测试用例对应的测试模块的标签存储文件;
基于所述用例标识,从所述测试用例对应的测试模块的标签存储文件中,获取所述测试用例的一个或多个标签。
6.如权利要求2所述的方法,其中,还包括:
如果所述测试用例执行命令中未传入标签语法,则执行所有测试用例。
7.如权利要求1-4中任一项所述的方法,其中,所述测试场景包括验收测试、冒烟测试、回归测试。
8.一种测试用例管理装置,驻留在计算设备中,所述计算设备中包括标签存储文件,所述标签存储文件中包括每个测试用例的用例标识、以及与所述用例标识相关联的一个或多个标签,每个所述标签分别对应一种测试场景,所述装置包括:
获取模块,适于响应于测试用例执行命令,获取所有测试用例,并将每个测试用例的用例对象存放在缓存;
写入模块,适于对于每个测试用例,从所述用例对象中获取用例标识,基于所述用例标识,从标签存储文件中获取所述测试用例的一个或多个标签,并回写到所述测试用例的用例对象中,得到标签用例集;
筛选模块,适于根据所述测试用例执行命令中的标签语法,从所述标签用例集中筛选出一个或多个待执行测试用例。
9.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-7中任一项所述的方法的指令。
10.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-7中任一项所述方法。
CN202211264506.4A 2022-10-17 2022-10-17 测试用例管理方法、装置、计算设备及存储介质 Active CN115328816B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211264506.4A CN115328816B (zh) 2022-10-17 2022-10-17 测试用例管理方法、装置、计算设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211264506.4A CN115328816B (zh) 2022-10-17 2022-10-17 测试用例管理方法、装置、计算设备及存储介质

Publications (2)

Publication Number Publication Date
CN115328816A true CN115328816A (zh) 2022-11-11
CN115328816B CN115328816B (zh) 2023-05-16

Family

ID=83915442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211264506.4A Active CN115328816B (zh) 2022-10-17 2022-10-17 测试用例管理方法、装置、计算设备及存储介质

Country Status (1)

Country Link
CN (1) CN115328816B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106033388A (zh) * 2015-03-11 2016-10-19 阿里巴巴集团控股有限公司 测试用例库管理方法及系统
US20160328466A1 (en) * 2015-05-08 2016-11-10 Nec Laboratories America, Inc. Label filters for large scale multi-label classification
CN107729251A (zh) * 2017-10-23 2018-02-23 中国联合网络通信集团有限公司 测试用例管理方法及装置
CN108132881A (zh) * 2017-12-22 2018-06-08 郑州云海信息技术有限公司 一种自动化测试方法及系统
CN112445708A (zh) * 2020-11-30 2021-03-05 统信软件技术有限公司 一种压力测试方法、装置及计算设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106033388A (zh) * 2015-03-11 2016-10-19 阿里巴巴集团控股有限公司 测试用例库管理方法及系统
US20160328466A1 (en) * 2015-05-08 2016-11-10 Nec Laboratories America, Inc. Label filters for large scale multi-label classification
CN107729251A (zh) * 2017-10-23 2018-02-23 中国联合网络通信集团有限公司 测试用例管理方法及装置
CN108132881A (zh) * 2017-12-22 2018-06-08 郑州云海信息技术有限公司 一种自动化测试方法及系统
CN112445708A (zh) * 2020-11-30 2021-03-05 统信软件技术有限公司 一种压力测试方法、装置及计算设备

Also Published As

Publication number Publication date
CN115328816B (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
CN112181854B (zh) 一种生成流程自动化脚本的方法、装置、设备及存储介质
CN110928802A (zh) 基于自动生成用例的测试方法、装置、设备及存储介质
CN111813680B (zh) 测试脚本的生成方法、装置、计算机设备和存储介质
CN112181430A (zh) 代码变更统计方法、装置、电子设备及存储介质
CN111367890A (zh) 一种数据迁移的方法、装置、计算机设备及可读存储介质
US10678864B2 (en) Analysis model preparing system, programming apparatus, and analysis model preparing method
CN110716804A (zh) 无用资源的自动删除方法、装置、存储介质及电子设备
CN110968339B (zh) 前端构建工具的方法、装置以及电子设备
CN112947896A (zh) 一种基于有向图的组件依赖分析方法
CN115309554A (zh) 基于兼容层运行的应用的排错方法、排错系统及计算设备
CN111259619A (zh) 配置对象的控制方法、装置、存储介质及验证平台
CN115328816A (zh) 测试用例管理方法、装置、计算设备及存储介质
CN113326063B (zh) 数据处理方法、电子设备及存储介质
CN107766228B (zh) 一种基于多语种的自动化测试方法和装置
CN114841281A (zh) 一种数据表的识别方法、装置、设备、介质及程序产品
CN115705297A (zh) 代码调用检测方法、装置、计算机设备以及存储介质
CN116107971A (zh) 模型的数据处理方法、装置、电子设备以及存储介质
CN113901025A (zh) 数据库管理方法、装置、设备和存储介质
CN113238940A (zh) 一种接口测试结果的比对方法、装置、设备和存储介质
CN107196789B (zh) 一种校验基站参数的方法和装置
CN115904953A (zh) 测试方法、装置、计算设备及存储介质
CN114448851B (zh) 一种数据自动化测试方法及系统
CN111881128B (zh) 大数据回归验证方法及大数据回归验证装置
CN115129355B (zh) 页面修复方法及其系统、计算机设备
CN117891723A (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