CN115629999A - 一种断言检测方法及装置 - Google Patents
一种断言检测方法及装置 Download PDFInfo
- Publication number
- CN115629999A CN115629999A CN202211653222.4A CN202211653222A CN115629999A CN 115629999 A CN115629999 A CN 115629999A CN 202211653222 A CN202211653222 A CN 202211653222A CN 115629999 A CN115629999 A CN 115629999A
- Authority
- CN
- China
- Prior art keywords
- assertion
- use case
- rule
- invalid
- source
- 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
- 238000001514 detection method Methods 0.000 title claims abstract description 130
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000004044 response Effects 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008439 repair process Effects 0.000 claims description 7
- 238000012360 testing method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011897 real-time detection Methods 0.000 description 1
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/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
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种断言检测方法及装置。
背景技术
目前,在接口测试领域,为了降低测试人员的投入,通常会采用自动化的测试案,即在测试管理平台上,进行接口测试用例的管理与调度执行。接口测试用例的有效性对于***测试的效果有很大影响。现有的检测用例有效性的方法主要有以下两种方式:第一种是借助于被测软件代码覆盖率来做代码有效性评估;第二种是检测用例的断言内容以做断言有效性评估。
具体来说,第二种检测方式的一种示例是:检测预期值和待断言值中,是否至少一者引用了业务代码的返回结果,如果是则认为该断言有效,如果否则认为该断言无效。但是此种方法具备局限性,对断言有效性的评估的准确度较低。
发明内容
本发明实施例提供一种断言检测方法及装置,以解决相关技术中,断言有效性的检测方式准确率较低的技术问题。
为解决上述技术问题,本发明实施例公开了如下几个方面:
第一方面,本发明实施例提供了一种断言检测方法,所述方法包括:
获取待执行的用例;
基于断言检测规则,对所述用例中的断言,逐条进行检测;
其中,所述断言检测规则包括以下至少一项:断言来源检测规则、断言判定条件检测规则;所述断言来源检测规则包括以下至少一项:断言来源无效规则、断言来源有效规则。
优选地,所述断言来源无效规则包括以下至少一项:未断言第一数据、忽略第一数据、缺少入参特征信息;
所述断言来源有效规则包括以下至少一项:待断言值来源于响应、断言的预期值来源于响应;
所述第一数据根据所述用例所对应的待测试业务而确定;
所述缺少入参特征信息为:所述用例的请求入参项中的参数与所述用例的响应断言项中的参数之间不存在所述断言的判定逻辑关系。
优选地,所述断言判定条件检测规则为:若所述用例中的断言包含在断言判定条件检测规则池中,则所述断言符合所述断言判定条件检测规则;
所述断言判定条件检测规则池中的断言表示为:sys_assertLt(context, p1,p2);其中,sys_assertLt为断言函数的名称,p1为待断言值,p2为断言的预期值,context为用于存放上下文信息的可选变量;所述断言的判定逻辑关系涵盖p1和p2之间所有的逻辑关系;所述逻辑关系至少包括以下一项:包含关系、大小关系。
优选地,基于断言检测规则,对所述用例中的断言,逐条进行检测包括:
步骤1:判断所述断言是否命中所述断言来源无效规则;
步骤2:如果所述断言命中所述断言来源无效规则,则继续判断所述断言所属的用例是否在无效用例池内;如果所述用例不在所述无效用例池内,基于接收到的用户的指令将所述用例添加入所述无效用例池,其中,所述指令用于将所述用例标注为无效用例;返回执行步骤1,直至遍历所述用例中的所有断言。
优选地,在步骤1:判断所述断言是否命中所述断言来源无效规则之后,所述方法还包括:
如果所述断言未命中所述断言来源无效规则,则继续判断所述断言是否命中所述断言来源有效规则;
如果所述断言未命中所述断言来源有效规则,则继续判断所述断言所属的用例是否在无效用例池内;如果所述用例不在所述无效用例池内,基于接收到的用户的指令,将所述用例添加入所述无效用例池,其中,所述指令用于将所述用例标注为无效用例;返回执行步骤1,直至遍历所述用例中的所有断言;
如果所述断言命中所述断言来源有效规则,则继续判断所述断言是否命中所述断言判定条件检测规则;
如果所述断言命中所述断言判定条件检测规则,则返回执行步骤1,直至遍历所述用例中的所有断言,且在所述用例中的所有断言均未命中所述断言来源无效规则、均命中所述断言来源有效规则、均命中所述断言判定条件检测规则的条件下,继续判断所述断言所属的用例是否在所述无效用例池内,如果所述用例在所述无效用例池内,基于接收到的用户的指令,将所述用例从所述无效用例池中剔除,其中,所述指令用于将所述用例的修复状态标注为已修复;
如果所述断言未命中所述断言判定条件检测规则,则继续判断所述断言所属的用例是否在无效用例池内;如果所述用例不在所述无效用例池内,基于接收到的用户的指令,将所述用例添加入所述无效用例池,其中,所述指令用于将所述用例标注为无效用例。
优选地,所述方法还包括:
展示所述无效用例池中的用例的状态;
接收用户输入的指令,所述指令用于将所述用例的状态标记为以下至少一项:未修复、延期修复、已修复、可忽略。
第二方面,本发明实施例提供了一种断言检测装置,所述装置包括:
获取模块,用于获取待执行的用例;
检测模块,用于基于断言检测规则,对所述用例中的断言,逐条进行检测;
其中,所述断言检测规则包括以下至少一项:断言来源检测规则、断言判定条件检测规则;所述断言来源检测规则包括以下至少一项:断言来源无效规则、断言来源有效规则。
优选地,所述断言来源无效规则包括以下至少一项:未断言第一数据、忽略第一数据、缺少入参特征信息;
所述断言来源有效规则包括以下至少一项:待断言值来源于响应、断言的预期值来源于响应;
所述第一数据根据所述用例所对应的待测试业务而确定;
所述缺少入参特征信息为:所述用例的请求入参项中的参数与所述用例的响应断言项中的参数之间不存在所述断言的判定逻辑关系。
优选地,所述断言判定条件检测规则为:若所述用例中的断言包含在断言判定条件检测规则池中,则所述断言符合所述断言判定条件检测规则;
所述断言判定条件检测规则池中的断言表示为:sys_assertLt(context, p1,p2);其中,sys_assertLt为断言函数的名称,p1为待断言值,p2为断言的预期值,context为用于存放上下文信息的可选变量;所述断言的判定逻辑关系涵盖p1和p2之间所有的逻辑关系;所述逻辑关系至少包括以下一项:包含关系、大小关系。
优选地,所述检测模块,还用于执行:
步骤1:判断所述断言是否命中所述断言来源无效规则;
步骤2:如果所述断言命中所述断言来源无效规则,则继续判断所述断言所属的用例是否在无效用例池内;如果所述用例不在所述无效用例池内,基于接收到的用户的指令将所述用例添加入所述无效用例池,其中,所述指令用于将所述用例标注为无效用例;返回执行步骤1,直至遍历所述用例中的所有断言。
优选地,所述检测模块,还用于执行如下步骤:
如果所述断言未命中所述断言来源无效规则,则继续判断所述断言是否命中所述断言来源有效规则;
如果所述断言未命中所述断言来源有效规则,则继续判断所述断言所属的用例是否在无效用例池内;如果所述用例不在所述无效用例池内,基于接收到的用户的指令,将所述用例添加入所述无效用例池,其中,所述指令用于将所述用例标注为无效用例;返回执行步骤1,直至遍历所述用例中的所有断言;
如果所述断言命中所述断言来源有效规则,则继续判断所述断言是否命中所述断言判定条件检测规则;
如果所述断言命中所述断言判定条件检测规则,则返回执行步骤1,直至遍历所述用例中的所有断言,且在所述用例中的所有断言均未命中所述断言来源无效规则、均命中所述断言来源有效规则、均命中所述断言判定条件检测规则的条件下,继续判断所述断言所属的用例是否在所述无效用例池内,如果所述用例在所述无效用例池内,基于接收到的用户的指令,将所述用例从所述无效用例池中剔除,其中,所述指令用于将所述用例的修复状态标注为已修复;
如果所述断言未命中所述断言判定条件检测规则,则继续判断所述断言所属的用例是否在无效用例池内;如果所述用例不在所述无效用例池内,基于接收到的用户的指令,将所述用例添加入所述无效用例池,其中,所述指令用于将所述用例标注为无效用例。
优选地,所述装置还包括:
展示模块,用于展示所述无效用例池中的用例的状态;
接收模块,用于接收用户输入的指令,所述指令用于将所述用例的状态标记为以下至少一项:未修复、延期修复、已修复、可忽略。
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如第一方面所述的断言检测方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的断言检测方法的步骤。
在本发明实施例中,可通过断言来源无效规则、断言来源有效规则、断言判定条件检测规则对断言进行检测,以保证断言的有效性,进而保证用例的有效性,且自动化的检测措施,可进一步提高检测的效率,全面的规则可保障断言检测的准确性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的一种断言检测方法的流程图;
图2为本发明实施例提供的一种断言判定条件规则池的示意图;
图3为本发明实施例提供的一种断言检测方法的流程图;
图4为本发明实施例提供的一种断言检测装置的结构框图;
图5为本发明实施例提供的一种电子设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种断言检测方法的流程图,如图1所示,方法包括:
步骤S101、获取待执行的用例;
步骤S102、基于断言检测规则,对用例中的断言,逐条进行检测;
现对断言检测规则进行简要介绍:断言检测规则包括以下至少一项:断言来源检测规则、断言判定条件检测规则;断言来源检测规则包括以下至少一项:断言来源无效规则、断言来源有效规则。
断言来源无效规则包括以下至少一项:未断言第一数据、忽略第一数据、缺少入参特征信息;断言来源有效规则包括以下至少一项:待断言值来源于响应、断言的预期值来源于响应;第一数据根据用例所对应的待测试业务而确定;缺少入参特征信息为:用例的请求入参项中的参数与用例的响应断言项中的参数之间不存在断言的判定逻辑关系。
在具体的应用性示例中,待执行的用例可以是接口用例,断言来源无效规则包括:未断言关键数据信息、忽略关键数据信息、缺乏入参特征信息等。以某平台的接口用例的录入为例。假设该接口用例主要包括请求地址(url)、请求方式(method)、请求入参(param)、响应断言(assert_info)、响应忽略项(ingore_info)5个部分。针对于未断言关键数据信息这一断言来源无效规则,则主要检查assert部分是否包括$.data等关键数据存储的字段(依据具体业务接口而定,即第一数据根据用例所对应的待测试业务而确定);针对于忽略关键数据信息这一断言来源无效规则,则主要检查ignore部分是否将$.data忽略,如果全部忽略,则认为命中断言来源无效规则,如果未忽略,则认为未命中断言来源无效规则。针对于缺乏入参特征信息这一断言来源无效规则,则主要看param与assert部分是否存在相同或相似的参数,存在则认为不缺、不存在则认为缺(对应于前述的用例的请求入参项中的参数与用例的响应断言项中的参数之间不存在断言的判定逻辑关系)相同或相似是根据自定义函数通过与否做判定,可保证规则判断的准确性且支持接口特异性。而断言来源有效规则包括:待断言值或预期值来源于响应,由此,通过断言来源有效规则、断言来源无效规则的设定,可尽量涵盖断言来源的各个方面,从而解决断言来源有效性判断不全面的问题,提高断言来源有效性检测的准确性。
而断言判定条件检测规则为:若用例中的断言包含在断言判定条件检测规则池中,则断言符合断言判定条件检测规则;断言判定条件检测规则池中的断言表示为:sys_assertLt(context, p1, p2);其中,sys_assertLt为断言函数的名称,即判定逻辑关系的函数名称,p1为待断言值,p2为断言的预期值,context为用于存放上下文信息的可选变量;断言的判定逻辑关系涵盖p1和p2之间所有的逻辑关系;逻辑关系至少包括以下一项:包含关系、大小关系。其中,每个断言判定条件检测规则为一个抽象函数,包括规则函数名称、描述、待断言值、预期值。多个规则形成一个断言判定条件检测规则池,且可以根据需要随时向断言判定条件检测规则池中,添加断言判定条件检测规则。相较于现有技术中的不同语言的断言语法不同,断言规则有效性判断没有通用方法,导致无法进行统一的有效规则判断来说,本申请中自定义的断言判断条件函数(断言判定条件检测规则),覆盖常见的数学与逻辑规则,并适用多种语言以实现通用的断言规则有效性检测(如图2所示)。
其中,断言相等可表示为sys_assertEquals(context, p1, p2);
断言小于可表示为sys_assertLt(context, p1, p2);
断言大于可表示为sys_assertGt(context, p1, p2);
断言大于等于可表示为sys_assertGte(context, p1, p2);
断言小于等于可表示为sys_assertLte(context, p1, p2);
断言第一个参数是list且每一项都满足包含第二个参数sys_assertEachContains(context, p1, p2);
断言第一个参数中包括第二个参数中的任意一个可表示为sys_assertContainsAny(context, p1, p2);
断言第一个参数不包含第二个参数可表示为sys_assertNotContains(context,p1, p2);
断言输入的两个参数值是否相等可表示为sys_assertNotEquals(context, p1,p2);
断言第一个参数是否包含第二个参数可表示为sys_assertContains(context,p1, p2);
断言第一个参数中包括第二个参数的值且没有其他值(即忽略顺序后相等)可表示为sys_assertContainsOnly(context, p1, p2);
断言第一个参数是list且每一项都小于等于第二个数可表示为sys_assertEachLte(context, p1, p2);
断言第一个参数是list且每一项都大于第二个数可表示为sys_assertEachGt(context, p1, p2);
断言第一个参数是list且每一项都小于第二个数可表示为sys_assertEachLt(context, p1, p2);
断言第一个参数是list且每一项都大于等于第二个数可表示为sys_assertEachGte(context, p1, p2);
断言第一个参数是list且每一项都与第二个参数相等可表示为sys_assertEachEquals(context, p1, p2);
断言第一个参数是list且每一项都与第二个参数不相等可表示为sys_assertEachNotEquals(context, p1, p2);
断言表达式是否为真可表示为sys_assertTrue(context, p1, p2);
断言为null可表示为sys_assertIsNull(context, p1, p2);
断言不为null可表示为sys_assertNotNull(context, p1, p2)。
基于对上述规则的简要介绍,现对断言检测的方法的流程进行具体说明,基于断言检测规则,对用例中的断言,逐条进行检测包括:
步骤1:判断断言是否命中断言来源无效规则;
步骤2:如果断言命中断言来源无效规则,则继续判断断言所属的用例是否在无效用例池内;如果用例不在无效用例池内,基于接收到的用户的指令将用例添加入无效用例池,其中,指令用于将用例标注为无效用例;返回执行步骤1,直至遍历用例中的所有断言。
在一种可能的实现方式中,在步骤1:判断断言是否命中断言来源无效规则之后,方法还包括:如果断言未命中断言来源无效规则,则继续判断断言是否命中断言来源有效规则;如果断言未命中断言来源有效规则,则继续判断断言所属的用例是否在无效用例池内;如果用例不在无效用例池内,基于接收到的用户的指令,将用例添加入无效用例池,其中,指令用于将用例标注为无效用例;返回执行步骤1,直至遍历用例中的所有断言;
如果断言命中断言来源有效规则,则继续判断断言是否命中断言判定条件检测规则;
如果断言命中断言判定条件检测规则,则返回执行步骤1,直至遍历用例中的所有断言,且在用例中的所有断言均未命中断言来源无效规则、均命中断言来源有效规则、均命中断言判定条件检测规则的条件下,继续判断断言所属的用例是否在无效用例池内,如果用例在无效用例池内,基于接收到的用户的指令,将用例从无效用例池中剔除,其中,指令用于将用例的修复状态标注为已修复;
如果断言未命中断言判定条件检测规则,则继续判断断言所属的用例是否在无效用例池内;如果用例不在无效用例池内,基于接收到的用户的指令,将用例添加入无效用例池,其中,指令用于将用例标注为无效用例。
图3所示的流程图可对上述步骤进行示意性说明,且需要说明的是:
1、若断言未命中断言来源无效规则,不代表其一定命中断言来源有效规则,可通过未断言第一数据、忽略第一数据、缺少入参特征信息这几项简洁明了的确定断言是否命中断言来源无效规则,如果是,则可将其所属的用例加入无效用例池中,但如果未命中,则需要对其进行是否命中断言来源有效规则的判断,以进一步保障断言有效判断的准确性。在进行断言有效性判断中,存在断言未命中断言来源无效规则,但也未命中断言来源有效规则的情况,如图3所示,此时,仍需将其所属的用例加入无效用例池内。而如果断言未命中断言来源无效规则,命中断言来源有效规则,则仍需对其进行进一步判断,即该断言是否命中断言判定条件检测规则,若该断言命中断言判定条件检测规则,则说明该断言所属的用例为有效用例,如果其在无效用例池内,则需要将其标记为已修复,可选第,可将其剔除无效用例池。
2、本发明实施例所示的是规则的一种可选实现方式,可根据实际需要,及规则设定原则,对其进行扩充。如:对图2所示的断言判定条件检测规则池中的断言判定条件检测规则进行扩充。
3.图3所示的步骤间的执行顺序为一种优选的实现方式,还可以先进行断言判定条件检测规则的检测,再进行断言来源无效规则、断言来源有效规则的检测。
由此,可通过断言来源无效规则、断言来源有效规则、断言判定条件检测规则对断言进行检测,以保证断言的有效性,进而保证用例的有效性,且自动化的检测措施,可进一步提高检测的效率,全面的规则可保障断言检测的准确性。
在一种可能的实现方式中,方法还包括:展示无效用例池中的用例的状态;接收用户输入的指令,指令用于将用例的状态标记为以下至少一项:未修复、延期修复、已修复、可忽略。即针对部分无需修复、延期修复或者断言有效性标注错误的用例,可选择手动批量标记。还可以展示整体修复率等数据。由此,自动分析断言的有效性并做无效标注,可解决标注检测不及时的问题;同时支持手动标注,可解决部分特殊条件下有效性检测错误或不准确的问题。
综上所述,相较于现有技术中,无法对无效断言进行实时检测与整体评估,面对大量需要修复的断言时,测试人员逐个修复、逐个标注的成本较高,没有批量标注修复效果的功能;且当测试平台上存在大批量接口用例或者持续有用例新增时,人工逐个判定断言有效性效率较低、无法保障实时性的问题来说,上述方式通过自动化的方法批量检测断言的有效性,并实时监控统计***中的无效断言结果以反映整体情况,从而进行用例有效性的评估。还可以通过定时任务自动全量扫描,以解决人工逐个检查或逐个修复成本高的问题。
图4为本发明实施例提供的一种断言检测装置的结构框图,如图4所示,装置40包括:
获取模块401,用于获取待执行的用例;
检测模块402,用于基于断言检测规则,对用例中的断言,逐条进行检测;
其中,断言检测规则包括以下至少一项:断言来源检测规则、断言判定条件检测规则;断言来源检测规则包括以下至少一项:断言来源无效规则、断言来源有效规则。
在一种可能的实现方式中,断言来源无效规则包括以下至少一项:未断言第一数据、忽略第一数据、缺少入参特征信息;
断言来源有效规则包括以下至少一项:待断言值来源于响应、断言的预期值来源于响应;
第一数据根据用例所对应的待测试业务而确定;
缺少入参特征信息为:用例的请求入参项中的参数与用例的响应断言项中的参数之间不存在断言的判定逻辑关系。
优选地,断言判定条件检测规则为:若用例中的断言包含在断言判定条件检测规则池中,则断言符合断言判定条件检测规则;
断言判定条件检测规则池中的断言表示为:sys_assertLt(context, p1, p2);其中,sys_assertLt为断言函数的名称,即判定逻辑关系的函数名称,p1为待断言值,p2为断言的预期值,context为用于存放上下文信息的可选变量;断言的判定逻辑关系涵盖p1和p2之间所有的逻辑关系;逻辑关系至少包括以下一项:包含关系、大小关系。
在一种可能的实现方式中,检测模块,还用于执行:
步骤1:判断断言是否命中断言来源无效规则;
步骤2:如果断言命中断言来源无效规则,则继续判断断言所属的用例是否在无效用例池内;如果用例不在无效用例池内,基于接收到的用户的指令将用例添加入无效用例池,其中,指令用于将用例标注为无效用例;返回执行步骤1,直至遍历用例中的所有断言。
在一种可能的实现方式中,检测模块,还用于执行如下步骤:
如果断言未命中断言来源无效规则,则继续判断断言是否命中断言来源有效规则;
如果断言未命中断言来源有效规则,则继续判断断言所属的用例是否在无效用例池内;如果用例不在无效用例池内,基于接收到的用户的指令,将用例添加入无效用例池,其中,指令用于将用例标注为无效用例;返回执行步骤1,直至遍历用例中的所有断言;
如果断言命中断言来源有效规则,则继续判断断言是否命中断言判定条件检测规则;
如果断言命中断言判定条件检测规则,则返回执行步骤1,直至遍历用例中的所有断言,且在用例中的所有断言均未命中断言来源无效规则、均命中断言来源有效规则、均命中断言判定条件检测规则的条件下,继续判断断言所属的用例是否在无效用例池内,如果用例在无效用例池内,基于接收到的用户的指令,将用例从无效用例池中剔除,其中,指令用于将用例的修复状态标注为已修复;
如果断言未命中断言判定条件检测规则,则继续判断断言所属的用例是否在无效用例池内;如果用例不在无效用例池内,基于接收到的用户的指令,将用例添加入无效用例池,其中,指令用于将用例标注为无效用例。
在一种可能的实现方式中,装置40还包括:
展示模块,用于展示无效用例池中的用例的状态;
接收模块,用于接收用户输入的指令,指令用于将用例的状态标记为以下至少一项:未修复、延期修复、已修复、可忽略。
由此,在接口用例新增或修改时,可自动调用并分析用例断言的有效性,分析完毕后可对其进行无效标注、或修复结果标注,自动统计汇总整体断言有效性情况,解决标注检测不及时的问题。
本发明实施例还提供一种电子设备50,如图5所示,包括:处理器501、存储器502及存储在存储器502上并可在处理器501上运行的程序,程序被处理器执行时实现如上述实施例所示的断言检测方法的步骤。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述图1所示的方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
Claims (10)
1.一种断言检测方法,其特征在于,所述方法包括:
获取待执行的用例;
基于断言检测规则,对所述用例中的断言,逐条进行检测;
其中,所述断言检测规则包括以下至少一项:断言来源检测规则、断言判定条件检测规则;所述断言来源检测规则包括以下至少一项:断言来源无效规则、断言来源有效规则。
2.根据权利要求1所述的方法,其特征在于,
所述断言来源无效规则包括以下至少一项:未断言第一数据、忽略第一数据、缺少入参特征信息;
所述断言来源有效规则包括以下至少一项:待断言值来源于响应、断言的预期值来源于响应;
所述第一数据根据所述用例所对应的待测试业务而确定;
所述缺少入参特征信息为:所述用例的请求入参项中的参数与所述用例的响应断言项中的参数之间不存在所述断言的判定逻辑关系。
3.根据权利要求1所述的方法,其特征在于,所述断言判定条件检测规则为:若所述用例中的断言包含在断言判定条件检测规则池中,则所述断言符合所述断言判定条件检测规则;
所述断言判定条件检测规则池中的断言表示为:sys_assertLt(context, p1, p2);其中,sys_assertLt为断言函数的名称,p1为待断言值,p2为断言的预期值,context为用于存放上下文信息的可选变量;所述断言的判定逻辑关系涵盖p1和p2之间所有的逻辑关系;所述逻辑关系至少包括以下一项:包含关系、大小关系。
4.根据权利要求1所述的方法,其特征在于,基于断言检测规则,对所述用例中的断言,逐条进行检测包括:
步骤1:判断所述断言是否命中所述断言来源无效规则;
步骤2:如果所述断言命中所述断言来源无效规则,则继续判断所述断言所属的用例是否在无效用例池内;如果所述用例不在所述无效用例池内,基于接收到的用户的指令将所述用例添加入所述无效用例池,其中,所述指令用于将所述用例标注为无效用例;返回执行步骤1,直至遍历所述用例中的所有断言。
5.根据权利要求4所述的方法,其特征在于,在步骤1:判断所述断言是否命中所述断言来源无效规则之后,所述方法还包括:
如果所述断言未命中所述断言来源无效规则,则继续判断所述断言是否命中所述断言来源有效规则;
如果所述断言未命中所述断言来源有效规则,则继续判断所述断言所属的用例是否在无效用例池内;如果所述用例不在所述无效用例池内,基于接收到的用户的指令,将所述用例添加入所述无效用例池,其中,所述指令用于将所述用例标注为无效用例;返回执行步骤1,直至遍历所述用例中的所有断言;
如果所述断言命中所述断言来源有效规则,则继续判断所述断言是否命中所述断言判定条件检测规则;
如果所述断言命中所述断言判定条件检测规则,则返回执行步骤1,直至遍历所述用例中的所有断言,且在所述用例中的所有断言均未命中所述断言来源无效规则、均命中所述断言来源有效规则、均命中所述断言判定条件检测规则的条件下,继续判断所述断言所属的用例是否在所述无效用例池内,如果所述用例在所述无效用例池内,基于接收到的用户的指令,将所述用例从所述无效用例池中剔除,其中,所述指令用于将所述用例的修复状态标注为已修复;
如果所述断言未命中所述断言判定条件检测规则,则继续判断所述断言所属的用例是否在无效用例池内;如果所述用例不在所述无效用例池内,基于接收到的用户的指令,将所述用例添加入所述无效用例池,其中,所述指令用于将所述用例标注为无效用例。
6.根据权利要求4或5所述的方法,其特征在于,所述方法还包括:
展示所述无效用例池中的用例的状态;
接收用户输入的指令,所述指令用于将所述用例的状态标记为以下至少一项:未修复、延期修复、已修复、可忽略。
7.一种断言检测装置,其特征在于,所述装置包括:
获取模块,用于获取待执行的用例;
检测模块,用于基于断言检测规则,对所述用例中的断言,逐条进行检测;
其中,所述断言检测规则包括以下至少一项:断言来源检测规则、断言判定条件检测规则;所述断言来源检测规则包括以下至少一项:断言来源无效规则、断言来源有效规则。
8.根据权利要求7所述的装置,其特征在于,
所述断言来源无效规则包括以下至少一项:未断言第一数据、忽略第一数据、缺少入参特征信息;
所述断言来源有效规则包括以下至少一项:待断言值来源于响应、断言的预期值来源于响应;
所述第一数据根据所述用例所对应的待测试业务而确定;
所述缺少入参特征信息为:所述用例的请求入参项中的参数与所述用例的响应断言项中的参数之间不存在所述断言的判定逻辑关系。
9.一种电子设备,其特征在于,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,所述程序被所述处理器执行时实现如权利要求1至6中任一项所述的断言检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的断言检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211653222.4A CN115629999A (zh) | 2022-12-22 | 2022-12-22 | 一种断言检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211653222.4A CN115629999A (zh) | 2022-12-22 | 2022-12-22 | 一种断言检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115629999A true CN115629999A (zh) | 2023-01-20 |
Family
ID=84910305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211653222.4A Pending CN115629999A (zh) | 2022-12-22 | 2022-12-22 | 一种断言检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115629999A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829601A (zh) * | 2018-06-21 | 2018-11-16 | 北京五八信息技术有限公司 | 生成测试用例结构的方法、装置、设备及可读存储介质 |
CN111124870A (zh) * | 2018-10-31 | 2020-05-08 | 北京国双科技有限公司 | 一种接口测试方法及装置 |
CN111143192A (zh) * | 2019-11-28 | 2020-05-12 | 叮当快药科技集团有限公司 | 接口自动化测试方法、装置以及相关产品 |
CN112069076A (zh) * | 2020-09-11 | 2020-12-11 | 四川长虹电器股份有限公司 | 一种基于jmeter的接口测试自动化断言方法 |
CN112579461A (zh) * | 2020-12-24 | 2021-03-30 | 成都新希望金融信息有限公司 | 断言处理方法、***和存储介质 |
CN112860585A (zh) * | 2021-03-31 | 2021-05-28 | 中国工商银行股份有限公司 | 一种测试脚本断言生成方法及装置 |
CN113138937A (zh) * | 2021-05-18 | 2021-07-20 | 中国建设银行股份有限公司 | 测试方法和装置 |
CN113434423A (zh) * | 2021-06-30 | 2021-09-24 | 中国工商银行股份有限公司 | 接口测试方法及装置 |
CN114239538A (zh) * | 2021-12-17 | 2022-03-25 | 平安付科技服务有限公司 | 断言处理方法、装置、计算机设备及存储介质 |
-
2022
- 2022-12-22 CN CN202211653222.4A patent/CN115629999A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829601A (zh) * | 2018-06-21 | 2018-11-16 | 北京五八信息技术有限公司 | 生成测试用例结构的方法、装置、设备及可读存储介质 |
CN111124870A (zh) * | 2018-10-31 | 2020-05-08 | 北京国双科技有限公司 | 一种接口测试方法及装置 |
CN111143192A (zh) * | 2019-11-28 | 2020-05-12 | 叮当快药科技集团有限公司 | 接口自动化测试方法、装置以及相关产品 |
CN112069076A (zh) * | 2020-09-11 | 2020-12-11 | 四川长虹电器股份有限公司 | 一种基于jmeter的接口测试自动化断言方法 |
CN112579461A (zh) * | 2020-12-24 | 2021-03-30 | 成都新希望金融信息有限公司 | 断言处理方法、***和存储介质 |
CN112860585A (zh) * | 2021-03-31 | 2021-05-28 | 中国工商银行股份有限公司 | 一种测试脚本断言生成方法及装置 |
CN113138937A (zh) * | 2021-05-18 | 2021-07-20 | 中国建设银行股份有限公司 | 测试方法和装置 |
CN113434423A (zh) * | 2021-06-30 | 2021-09-24 | 中国工商银行股份有限公司 | 接口测试方法及装置 |
CN114239538A (zh) * | 2021-12-17 | 2022-03-25 | 平安付科技服务有限公司 | 断言处理方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
于艳 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109167816B (zh) | 信息推送方法、装置、设备和存储介质 | |
CN108090567B (zh) | 电力通信***故障诊断方法及装置 | |
WO2016008398A1 (zh) | 程序性能测试方法和装置 | |
CN111338692A (zh) | 基于漏洞代码的漏洞分类方法、装置及电子设备 | |
CN111274149A (zh) | 测试数据的处理方法及装置 | |
CN111427928A (zh) | 一种数据质量检测方法及装置 | |
CN108958890A (zh) | 容器镜像检测方法、装置及电子设备 | |
CN115757150A (zh) | 一种生产环境测试方法、装置、设备及存储介质 | |
CN112948262A (zh) | 一种***测试方法、装置、计算机设备和存储介质 | |
CN115629999A (zh) | 一种断言检测方法及装置 | |
CN116431522A (zh) | 一种低代码对象存储网关自动化测试方法及*** | |
CN110442370B (zh) | 一种测试用例查询方法及装置 | |
CN114978474A (zh) | 一种用户聊天风险等级自动处置方法及*** | |
CN113962216A (zh) | 文本处理方法、装置、电子设备及可读存储介质 | |
CN110633204B (zh) | 一种程序缺陷检测方法及装置 | |
CN113312261A (zh) | 测试用例筛选方法、设备、存储介质及装置 | |
CN112949734A (zh) | 基于温度数据处理的部件热害评估方法、***和存储介质 | |
CN106685966B (zh) | 泄露信息的检测方法、装置及*** | |
CN112327800A (zh) | 车辆检测方法、装置及诊断设备 | |
CN112580869A (zh) | 一种业务优化方法、装置及设备 | |
CN115577379B (zh) | 一种分级保护安全分析方法、***及设备 | |
CN114860549B (zh) | 埋点数据校验方法、装置、设备和存储介质 | |
CN116401113B (zh) | 一种异构众核架构加速卡的环境验证方法、装置及介质 | |
CN111274585B (zh) | 一种Web应用越权漏洞检测方法、装置、设备和介质 | |
CN115391214A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20230120 |