CN109522225B - 一种自动化测试断言方法及装置、测试平台及存储介质 - Google Patents
一种自动化测试断言方法及装置、测试平台及存储介质 Download PDFInfo
- Publication number
- CN109522225B CN109522225B CN201811329621.9A CN201811329621A CN109522225B CN 109522225 B CN109522225 B CN 109522225B CN 201811329621 A CN201811329621 A CN 201811329621A CN 109522225 B CN109522225 B CN 109522225B
- Authority
- CN
- China
- Prior art keywords
- information
- matching
- data structure
- verified
- processed
- 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/3604—Software analysis for verifying properties of programs
- G06F11/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
Abstract
本发明实施例涉及自动化测试领域,公开了一种自动化测试断言方法及装置、测试平台及存储介质。该自动化测试断言方法包括:确定待处理文本信息的数据结构类型为预设的数据结构,其中,所述预设的数据结构包括JSON结构和XML结构;对所述待处理文本信息进行定位截取处理,得到待校验信息;将所述待校验信息与预期值进行匹配,并根据匹配结果生成校验结果。本发明中,使得测试脚本中的校验断言能够适用于不同的测试用例中,不需要重复编写类此的测试方法,提高了校验断言编码的复用率。
Description
技术领域
本发明实施例涉及自动化测试领域,特别涉及一种自动化测试断言方法及装置、测试平台及存储介质。
背景技术
在自动化测试中,对特定的信息进行校验断言是简本的关键步骤。这种特定信息可能是HTTP(Hyper Text Transfer Protocol,超文本传输协议)或RPC(Remote ProcedureCall,远程过程调用)接口调用的输出、远程Linux主机的命令行执行结果、日志文件内容、数据库查询语句或执行语句的输出,等等。这些信息存在的形式可能是屏幕打印的字符串,或代码中的数据对象。这些结果信息可能具有特定的结构,例如JSON(JavaScript ObjectNotation,JS对象简谱)结构、XML(Extensible Markup Language,可扩展标记语言)结构,也可能是没有结构可言的文本信息,例如,命令行执行结果、日志文件内容等。如何对这些有结构的、及无结构的信息进行校验断言,对自动化测试来说很关键,直接关系到自动化测试是否有效,能否达到预期目的。
发明人发现现有技术中至少存在如下问题:在一些脚本校验场景中,对于编写自动化测试脚本的测试人员来说,断言编码的书写要求比较高,书写的代码量较多,而且对于不同的业务逻辑需要编写不同的脚本进行测试,对测试结果进行校验,但对于不同的业务逻辑校验的代码往往很难复用,无形中增加了自动化测试的实施成本,另外,由于编写者的能力不同,在测试脚本中的校验断言的编写方式和风格也不同,复用难度较高。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明实施方式的目的在于提供一种自动化测试断言方法及装置、测试平台及存储介质,使得测试脚本中的校验断言能够适用于不同的测试用例中,不需要重复编写类此的测试方法,提高了校验断言编码的复用率。
为解决上述技术问题,本发明的实施方式提供了一种自动化测试断言方法,包括:
确定待处理文本信息的数据结构类型为预设的数据结构,其中,预设的数据结构包括JSON结构和XML结构;
对待处理文本信息进行定位截取处理,得到待校验信息;
将待校验信息与预期值进行匹配,并根据匹配结果生成校验结果。
本发明的实施方式还提供了一种自动化测试断言装置,包括:确定模块、截取模块和匹配模块;
确定模块用于,确定待处理文本信息的数据结构类型为预设的数据结构,其中,预设的数据结构包括JSON结构和XML结构;
截取模块用于,对待处理文本信息进行定位截取处理,得到待校验信息;
匹配模块用于,将待校验信息与预期值进行匹配,并根据匹配结果生成校验结果。
本发明的实施方式还提供了一种测试平台,包括:至少一个处理器;以及,
与至少一个处理器通信连接的存储器;
其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的自动测试断言方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现上述的自动化测试断言方法。
本发明实施方式相对于现有技术而言,在校验断言的编写过程中,确定待处理文本数据结构类型为预设的数据结构,由于预设的数据结构为JSON结构或XML结构,则根据预设的数据结构的文本逻辑能方便后续对待处理文本的处理,该校验断言的方式的代码的编写难度小,加快了代码、脚本的编写速度,且根据该方式编写出的脚本能够快速的确定出需要进行定位截取处理的位置,避免出现校验断言上的疏漏,只要是对应预设的数据格式均可以应用该方式编写出的测试脚本,提高了校验断言方式的复用率。
另外,确定待处理文本信息的数据结构类型为预设的数据结构之前,自动化测试断言方法还包括:若确定待处理文本信息的数据结构类型不是预设的数据结构;将待处理文本信息转化为预设的数据结构。
该实施方式中,将不同的数据格式转化为预设的数据格式,能够简化数据的处理过程,提高数据的转化效率。
另外,对待处理文本信息进行定位截取处理,得到待校验信息中,具体包括:根据待处理文本信息的数据结构,确定待处理文本信息的截取路径;根据截取路径截取到待校验信息。
该实施方式中,预设的数据结构已知,则能够根据确定的数据结构快速确定出对应的定位截取位置,提高校验断言的处理速度。
另外,将待校验信息与预期值进行匹配,并根据匹配结果生成校验结果中,具体包括:对待校验信息进行尾函数链的二次处理之后,得到实际值;将实际值与预期值进行匹配关键字操作,并输出匹配结果;根据匹配结果确定出校验结果。
此处,建议还是加一个尾函数链对截取结果的再次处理,以及匹配关键字的对最终匹配的限定。
另外,确定待处理文本信息的数据结构类型为预设的数据结构之前,自动化测试断言方法还包括:对校验语句进行语法解析;确定校验语句符合语法规范;根据校验语句生成合格的校验断言。
另外,将待校验信息与预期值进行匹配,并根据匹配结果生成校验结果之后,自动化测试断言方法还包括:若对多条校验语句进行断言测试,获取每个校验语句的校验结果;对每个校验结果进行逻辑操作,确定出对应的测试结果。
另外,语法解析包括,词法分析、语义分析、识别截取路径和预期值。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是本发明第一实施方式中自动化测试断言方法的流程图;
图2是本发明第二实施方式中自动化测试断言方法的流程图;
图3是本发明第三实施方式中自动化测试断言装置的结构图;
图4是本发明第四实施方式中自动化测试断言装置的结构图;
图5是本发明第五实施方式中测试平台的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种自动化测试断言方法。具体流程如图1所示。包括如下实施步骤:
步骤101:确定待处理文本信息的数据结构类型为预设的数据结构。
其中,预设的数据结构包括JSON结构和XML结构。
需要说明的是,本实施方式中的自动化测试断言方法主要应用于端口传输中对端口处理数据的测试,但该方法并不局限于此种的测试应用,具体可根据具体的测试场景做适应性的调整,另外,设置JSON结构和XML结构为预设的数据结构,主要是在这两种形式的数据结构广泛应用于多种应用程序之间的数据传输以及多种应用的生成数据的协议中,尤其是在接口调用中。因此,设置预设的数据结构能够简化后续对数据处理步骤,在其他的应用场景中可根据需要设置其他类型的数据结构,也能够设置对应的数据结构形式,设置预设的数据结构,能够提高校验断言编码的复用率。
具体地说,待处理文本信息一般分为结构化信息和非结构化信息,预设的数据结构是结构化信息中的JSON结构和XML结构,为结构化信息,对于JSON结构或者XML结构的数据结构的处理,业界已存在对应的标准代码库或开源的代码库,例如,例如,XML结构的信息可以通过XPath(XML Path Language,XML路径语言)进行处理,JSON结构的信息,也有类似的JsonPath(JSON Path Language,JSON路径语言)可供选择使用。
步骤102:对待处理文本信息进行定位截取处理,得到待校验信息。
具体地说,在对待处理文本信息进行处理时,由于数据结构的格式为预设的数据结构,则可直接根据预设的数据格式的特点进行定位截取处理。需要注意的是,其一,两种数据结构的语法存在相似之处,但是,语法中具体的操作符,内建函数等细节还是许多的不同之处;其二,需要注意的是实际中的较复杂的校验场景,例如,在HTTP接口、或RPC接口的测试中,接口调用输出可能包括JSON结构、XML结构、字符串化的JSON结构、字符串化的XML格式(包括,XML结构被转化为字符串)或者,这几种数据格式混合在一起的情况。
其中,在复杂的校验场景中,由于数据格式可能存在混合,势必会增加自动化测试的实施难度,对于这种情况,依据本实施方式进行实施的过程中以一种一致的定位截取语法有效的对混合的数据结构进行搜索,也就是根据对应的数据格式确定对应的其搜索路径。
具体地说,本实施方式中的进行定位截取时,需要确定出定位截取路径,且本实施方式中的预设的数据结构包括JSON结构和XML结构,通过搜索语法对预设的数据结构进行截取路径的搜索,其中,在确定搜索路径的过程中,最主要的是,对预设的数据结构进行搜索的搜索语法的路径分隔符一致,由于预设的数据结构包括不止一层的数据结构,一个具体实现中,从根层级起始,以定位截取路径为指导,对待处理文本信息进行定位截取时,可先确定当前层级的被搜索内容是JSON结构化信息、XML结构化信息、还是两者的字符串化信息这几类情况;如果是字符串化的JSON、XML结构化信息,则进行识别并转化后,再对转化后的数据做定位截取操作;如果是字符串、数值、布尔等基本数据类型,则无法再递归向下搜索,停止搜索。
具体地说,在进行搜索截取时,首先需要对整个路径按照统一的路径分隔符进行分隔,分隔出若干的路径节,分隔出的每一节路径预期将与对应待校验信息的一个层级,且应用于此层级,因此,在从被校验信息的根层级(或节点)开始,首先,判断当前层级(或节点)是JSON、XML结构,还是String(字符串)。如果是JSON结构,则将当前节路径,按JsonPath语法去执行定位。如果是XML结构,则将当前节路径按XPath的语法去执行定位。如果是String字符串,因为其有可能是JSON或XML结构信息被字符串化产生的,因此,可尝试将其反转化成JSON或XML结构信息,并继续以JsonPath或XPath语法执行定位。上述三种情况都成功定位后,则递归到下一层级,而定位截取路径也相应移动到下一节,直至完成所有节的路径的定位,获取到指定信息块。这过程中,只要出现失败,即可认为整体定位截取不成功,截取到的信息为null(空值)。
值得一提的是,借助搜索功能的处理方式,能够精确定位到想要校验的部分信息,减小校验断言的难度,上述的对截取过程的说明仅是示例性说明,并不用于具体限定截取路径的过程。
步骤103:将待校验信息与预期值进行匹配,并根据匹配结果生成校验结果。
具体地说,在对待校验信息与预期值进行匹配时,除了一一对应的匹配之外,还包括包含精确匹配、正则匹配和模糊匹配等形式,精确匹配表示待校验信息与预期值的所有字符均相等,正则匹配表示预期值是一个正则表达式,不是固定的数据,待校验信息满足该正则表达式。此处仅是示例说明,不做具体限定。
需要说明的是,预期值是预设设定的,例如,在接口调用中是预期值是已知的调用结果。
本实施方式的核心在于,确定待处理文本信息的数据结构类型为预设的数据结构;对待处理文本信息进行定位截取处理,得到待校验信息;将待校验信息与预期值进行匹配,并根据匹配结果生成校验结果。下面对本实施方式的自动化测试断言方法的实现细节进行具体说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
具体地说,步骤101中确定出待处理文本信息为预设的数据结构,若待处理文本信息不是预设的数据结构,则需要将该待处理文本转化为预设的数据结构,则在步骤101之前,还可以包括:若确定待处理文本信息的数据结构类型不是预设的数据结构;将待处理文本信息转化为预设的数据结构。
其中,预设的数据结构包括:JSON结构与XML结构。JSON结构的基本格式是{"key":value},花括号表示是对象,对象的属性之间使用逗号分开,例如,{"key1":value,"key2":value}。value可以是字符串,数值,数组,布尔值,null(空值)这几类基本类型,也可以是对象。value若为数组类型,数组元素应该存放在中括号[]之间,数组元素之间同样使用逗号分开,例如,[2,5]或者["China","Korea"],其中,数组元素同样可以是数字,数组,布尔值,null几类基本类型,也同样可以是对象。其中,数值、布尔值、null这几个类型具备原子性,无法再往下递归。而如果value的类型为数组或对象,则具备往下递归的可能,这种可以向下递归的特性是由于JSON格式具有的父子层级关系决定的。需要说明的是,若字符串类型为字符串化的JSON或XML结构数据,则该字符串是可以反字符串化回JSON结构的,转化之后,也具备向下递归的可能。
具体来说,JSON结构数据的简单示例:
{"store":{
"book":[
{"category":"reference","author":"Nigel Rees","title":"Sayings of theCentury","price":8.95},
{"category":"fiction","author":"Evelyn Waugh","title":"Sword ofHonour","price":12.99,"isbn":"0-553-21311-3"}
]
}
其意义为:商店:{类别:参考书,名称:世纪谚语,价格:8.95},{类别:小说,作者:伊夫林·沃,名称:荣誉之剑,价格:12.99,条形码:0-553-21311-3}。
XML结构的基本格式为:<标签属性名1="属性值1"属性名2=“属性值2”></标签>,简单示例:
<store>
<book category="reference"author="Nigel Rees"title="Sayings of theCentury"price="8.95"isbn="">
<book category="fiction"author="Evelyn Waugh"title="Sword ofHonour"price="12.99"isbn="0-553-21311-3">
</store>
上述的XML结构表示的意义与上述的JSON结构表示的意义相同,此处不再赘述。
需要说明的是,对于JSON结构和XML结构都有层级关系,因此需要根据节点判断每层的数据的结构的形式,并进行后续的截取操作。
具体地说,对待处理文本信息进行定位截取处理的一个具体实现为:根据待处理文本信息的数据结构,确定待处理文本信息的截取路径;根据截取路径截取到待校验信息。
其中,待处理文本信息的数据结构确定,则语法结构也是确定的,根据对预设的数据结构的确定,可选择合适的搜索算法对待处理文本信息进行截取处理。
具体地说,步骤103的具体实现中,对待校验信息进行预处理操作,得到实际值;将实际值与预期值进行匹配操作,并输出匹配结果;根据匹配结果确定出校验结果。
其中,在定位截取到待校验信息之后,得到实际值,按照需要对截取后的信息进行再处理,一个具体实现中,对待校验信息进行尾函数链的二次处理之后,得到实际值;价格实际值与预期值进行匹配关键字操作,并输出匹配结果;根据该匹配结果确定出校验结果。其中,匹配关键字就是校验的过程,需要对截取的信息进行字符串处理、数值计算、或进行其他形式的转换。匹配关键字操作是指根据匹配关键字指定的匹配方式,将实际值与预期值进行相应的匹配,匹配的结果即最终的校验结果。
尾函数的调用支持链式调用,定位截取路径的结果是尾函数的入参,上一次函数调用的处理返回结果即是链式调用下一个尾函数的入参,尾函数的多重链式调用,即上一尾函数的处理输出可作为下一个尾函数的输入。
具体的,为了便于对尾函数进行理解,下面对尾函数进行示例说明:函数:after('format','str'),功能:日期字符串比较,如:
after('yyyyMMdd','2016-06-30'),yyyyMMdd晚于日期2016年06月30日,返回对应的布尔值;
函数:before('format','str'),功能:日期字符串比较,如before('yyyyMMdd','2016-06-30'),yyyyMMdd早于日期2016年06月30日,返回对应的布尔值;
函数:asArray(),功能:将搜索结果以数组形式返回;
函数:avg(),功能:对所有搜索结果取平均值,并返回;
函数:concat('sperator'),功能:字符串拼接,concat(','),以逗号拼接结果列表中所有结果,返回字符串;
函数:contains('str'),功能:包含判断,contains('hello'),若搜索结果包含hello字符,返回布尔值;
函数:max(),功能:取结果列表中的最大值,并返回;
函数:min(),功能:取结果列表中的最小值,并返回。
其中,根据匹配结果确定出校验结果后,若包括多条校验语句,则需要根据每个语句的校验结果确定出测试结果,具体实现为:若对多条校验语句进行断言测试,获取每个校验语句的校验结果;对每个校验结果进行逻辑操作,确定出对应的测试结果。其中,逻辑操作包括:与、或等逻辑操作。
需要说明的是,对待处理文本信息进行配对的具体操作过程中,可根据获取匹配关键字选择合适的匹配方式,如:
关键字:regex,说明:字符正则匹配;
关键字:glob,说明:字符模糊匹配;
关键字:contains,说明:字符包含匹配;
关键字:json,说明:JSON结构数据完全匹配(递归比较),{}内所有key必须都相等;数组内的元素顺序也必须一致;
关键字:xml,说明:XML结构数据完全匹配。
值得一提的是,在确定出实际值和预期值之后,还可以由比较操作符说明二者进行比较操作,常用的比较操作包括:等于、不等于、大于、大于等于、小于和小于等于,这种比较方式使用与字符串及数值类型的比较,数值类型包括整型及浮点型。
需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。
相对于现有技术而言,在校验断言的编写过程中,确定待处理文本数据结构类型为预设的数据结构,由于预设的数据结构为JSON结构或XML结构,则根据预设的数据结构的文本逻辑能方便后续对待处理文本的处理,该校验断言的方式的代码的编写难度小,加快了代码、脚本的编写速度,且根据该方式编写出的脚本能够快速的确定出需要进行定位截取处理的位置,避免出现校验断言上的疏漏,只要是对应预设的数据格式均可以应用该方式编写出的测试脚本,提高了校验断言方式的复用率。
本发明的第二实施方式涉及一种自动化测试断言方法,第二实施方式与第一实施方式大致相同,主要区别之处在于:在本发明的第二实施方式具体说明了在校验断言之前对校验语句进行的语法解析。该实施方式的具体流程如图2所示,需要说明的是,本实施方式中包括步骤201至步骤206,其中,步骤204至步骤206与第一实施方式中的步骤101至步骤103相同,此处不再赘述。下面主要介绍不同之处。
步骤201:对校验语句进行语法解析。
步骤202:确定校验语句符合语法规范。
步骤203:根据校验语句生成合格的校验断言。
具体地说,在本实施方式中对校验语句进行语法解析,其中,语法解析包括,词法分析、语义分析、识别截取路径和预期值。
其中,若语法解析还包括对待校验数据的预处理,则语法解析后的数据还包括尾函数调用链、匹配方式关键字和匹配操纵符等。具体需要根据校验的结构确定出语义解析的结果,且仅在语义解析合格之后,才能开始进行校验断言。
值得一提的是,进行语法解析的目的是生成合格的校验断言之后,经过定位截取和尾函数处理后得到实际值,在进行匹配关键字操作时能够确定出匹配方式。
需要说明的是,以上仅为举例说明,并不对本发明的技术方案构成限定。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第三实施方式涉及一种自动化测试断言装置,如图3所示,包括:确定模块301、截取模块302和匹配模块303;
确定模块301用于,确定待处理文本信息的数据结构类型为预设的数据结构。
其中,预设的数据结构包括JSON结构和XML结构。
截取模块302用于,对待处理文本信息进行定位截取处理,得到待校验信息。
匹配模块303用于,将待校验信息与预期值进行匹配,并根据匹配结果生成校验结果。
不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本发明第四实施方式涉及一种自动化测试断言装置。第四实施方式与第三实施方式大致相同,主要区别之处在于:在本发明第四实施方式中,该自动化测试断言装置还包括:解析模块401、确定规范模块402和生成模块403。
解析模块401用于,对校验语句进行语法解析。
确定规范模块402用于,确定校验语句符合语法规范。
生成模块403用于,根据校验语句生成合格的校验断言。
由于第二实施方式与本实施方式相互对应,因此本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,在第二实施方式中所能达到的技术效果在本实施方式中也同样可以实现,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。
本发明第五实施方式涉及一种测试平台,如图5所示,包括至少一个处理器501;以及,与至少一个处理器501通信连接的存储器502,其中,存储器502存储有可被至少一个处理器501执行的指令,指令被至少一个处理器501执行,以使至少一个处理器501能够执行自动化测试断言方法。
本实施方式中,处理器501以中央处理器(Central Processing Unit,CPU)为例,存储器502以可读写存储器(Random Access Memory,RAM)为例。处理器501、存储器502可以通过总线或者其他方式连接,图5中以通过总线连接为例。存储器502作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施方式中实现自动化测试断言方法的程序就存储于存储器502中。处理器501通过运行存储在存储器502中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述自动化测试断言方法。
存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施方式中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个程序模块存储在存储器502中,当被一个或者多个处理器501执行时,执行上述第一或第二方法实施方式中的自动化测试断言方法。
上述产品可执行本申请实施方式所提供的自动化测试断言方法,具备执行方法相应的功能模块和有益效果,未在本实施方式中详尽描述的技术细节,可参见本申请实施方式所提供的自动化测试断言方法。
本发明第六实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (9)
1.一种自动化测试断言方法,其特征在于,包括:
确定待处理文本信息的数据结构类型为预设的数据结构,其中,所述预设的数据结构包括JSON结构和XML结构;
对所述待处理文本信息进行定位截取处理,得到待校验信息;
将所述待校验信息与预期值进行匹配,并根据匹配结果生成校验结果;
所述将所述待校验信息与预期值进行匹配,并根据匹配结果生成校验结果中,具体包括:
对所述待校验信息进行尾函数链的二次处理之后,得到实际值;
将所述实际值与预期值进行匹配关键字操作,并输出匹配结果;
根据所述匹配结果确定出校验结果。
2.根据权利要求1所述的自动化测试断言方法,其特征在于,所述确定待处理文本信息的数据结构类型为预设的数据结构之前,所述自动化测试断言方法还包括:
若确定所述待处理文本信息的数据结构类型不是所述预设的数据结构;
将所述待处理文本信息转化为所述预设的数据结构。
3.根据权利要求1-2中任一项所述的自动化测试断言方法,其特征在于,所述对所述待处理文本信息进行定位截取处理,得到待校验信息中,具体包括:
根据所述待处理文本信息的数据结构,确定所述待处理文本信息的截取路径;
根据所述截取路径截取到待校验信息。
4.根据权利要求1所述的自动化测试断言方法,其特征在于,所述对所述待校验信息进行尾函数链的二次处理之后,得到实际值之前,所述自动化测试断言方法还包括:
对校验语句进行语法解析;
确定所述校验语句符合语法规范;
根据所述校验语句生成合格的校验断言。
5.根据权利要求4所述的自动化测试断言方法,其特征在于,所述将所述待校验信息与预期值进行匹配,并根据匹配结果生成校验结果之后,所述自动化测试断言方法还包括:
若对多条校验语句进行断言测试,获取每个所述校验语句的所述校验结果;
对每个所述校验结果进行逻辑操作,确定出对应的测试结果。
6.根据权利要求4所述的自动化测试断言方法,其特征在于,所述语法解析包括,词法分析、语义分析、识别截取路径和预期值。
7.一种自动化测试断言装置,其特征在于,包括:确定模块、截取模块和匹配模块;
所述确定模块用于,确定待处理文本信息的数据结构类型为预设的数据结构,其中,所述预设的数据结构包括JSON结构和XML结构;
所述截取模块用于,对所述待处理文本信息进行定位截取处理,得到待校验信息;
所述匹配模块用于,将所述待校验信息与预期值进行匹配,并根据匹配结果生成校验结果;
所述将所述待校验信息与预期值进行匹配,并根据匹配结果生成校验结果中,具体包括:
对所述待校验信息进行尾函数链的二次处理之后,得到实际值;
将所述实际值与预期值进行匹配关键字操作,并输出匹配结果;
根据所述匹配结果确定出校验结果。
8.一种测试平台,其特征在于,包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-6任一所述的自动化测试断言方法。
9.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6任一项所述的自动化测试断言方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811329621.9A CN109522225B (zh) | 2018-11-09 | 2018-11-09 | 一种自动化测试断言方法及装置、测试平台及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811329621.9A CN109522225B (zh) | 2018-11-09 | 2018-11-09 | 一种自动化测试断言方法及装置、测试平台及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109522225A CN109522225A (zh) | 2019-03-26 |
CN109522225B true CN109522225B (zh) | 2022-06-07 |
Family
ID=65773775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811329621.9A Active CN109522225B (zh) | 2018-11-09 | 2018-11-09 | 一种自动化测试断言方法及装置、测试平台及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109522225B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111798833B (zh) * | 2019-04-04 | 2023-12-01 | 北京京东尚科信息技术有限公司 | 一种语音测试方法、装置、设备和存储介质 |
CN113075537B (zh) * | 2019-07-01 | 2022-10-11 | 成都奥卡思微电科技有限公司 | 一种迭代式的形式验证断言空泛性强度的测试方法、存储介质和终端 |
CN110427188B (zh) * | 2019-08-02 | 2023-06-09 | 深圳前海微众银行股份有限公司 | 单测断言程序的配置方法、装置、设备及存储介质 |
CN111274131A (zh) * | 2020-01-17 | 2020-06-12 | 北京达佳互联信息技术有限公司 | 接口测试方法、装置、电子设备及存储介质 |
CN111949521B (zh) * | 2020-07-31 | 2023-07-25 | 中国工商银行股份有限公司 | 软件性能测试方法及装置 |
CN113220588A (zh) * | 2021-06-02 | 2021-08-06 | 北京锐安科技有限公司 | 一种数据处理的自动化测试方法、装置、设备及存储介质 |
CN113590477B (zh) * | 2021-07-16 | 2023-06-09 | 四川大学 | 一种移动应用功能测试用例生成方法 |
CN115858884A (zh) * | 2023-02-28 | 2023-03-28 | 天翼云科技有限公司 | 一种日志校验方法、装置和产品 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841841B (zh) * | 2011-06-20 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 一种测试中的断言处理方法及系统 |
US10324829B2 (en) * | 2015-07-30 | 2019-06-18 | Entit Software Llc | Application testing |
CN106598852A (zh) * | 2016-12-05 | 2017-04-26 | 广州唯品会信息科技有限公司 | 软件测试方法及系统 |
CN107239398B (zh) * | 2017-05-24 | 2020-01-31 | 四川长虹电器股份有限公司 | 一种基于Postman的接口测试用例自动生成系统及方法 |
CN107678943B (zh) * | 2017-09-01 | 2020-10-30 | 千寻位置网络有限公司 | 抽象页面对象的页面自动化测试方法 |
CN108536583B (zh) * | 2018-03-09 | 2021-03-16 | 平安科技(深圳)有限公司 | 自动化测试的断言方法、装置、计算机设备及存储介质 |
CN108614770B (zh) * | 2018-04-09 | 2021-08-27 | 中国工商银行股份有限公司 | 自动化测试断言方法、装置、存储介质及设备 |
-
2018
- 2018-11-09 CN CN201811329621.9A patent/CN109522225B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109522225A (zh) | 2019-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522225B (zh) | 一种自动化测试断言方法及装置、测试平台及存储介质 | |
US10146532B2 (en) | Apparatus and method for detecting code cloning of software | |
KR101755365B1 (ko) | 레코드 포맷 정보의 관리 | |
US7941417B2 (en) | Processing structured electronic document streams using look-ahead automata | |
CN108874778B (zh) | 语义实体关系抽取方法、装置及电子设备 | |
CN110909016B (zh) | 基于数据库的重复关联检测方法、装置、设备及存储介质 | |
AU2014315619B2 (en) | Methods and systems of four-valued simulation | |
WO2014078747A1 (en) | Natural language command string for controlling target applications | |
CN109857641A (zh) | 对程序源文件进行缺陷检测的方法及装置 | |
US11042467B2 (en) | Automated searching and identification of software patches | |
CN110581864B (zh) | 一种sql注入攻击的检测方法及装置 | |
CN115328756A (zh) | 一种测试用例生成方法、装置及设备 | |
CN113110866A (zh) | 一种数据库变更脚本的评估方法及装置 | |
CN111752542A (zh) | 基于xml模板的数据库查询接口引擎 | |
CN116483850A (zh) | 数据处理方法、装置、设备以及介质 | |
CN110580170B (zh) | 软件性能风险的识别方法及装置 | |
US20120136652A1 (en) | Method, a computer program and apparatus for analyzing symbols in a computer | |
CN110008448B (zh) | 将SQL代码自动转换为Java代码的方法和装置 | |
CN115576603B (zh) | 一种获取代码片段中的变量值的方法及装置 | |
US8819645B2 (en) | Application analysis device | |
KR101225333B1 (ko) | 구문론적으로 분석된 텍스트 코퍼스로부터 정보를 추출하는 트리 패턴 표현식을 이용한 시스템 및 방법 | |
US20240119049A1 (en) | Systems and methods for query validation and query processing | |
US20170147707A1 (en) | Apparatus and method for managing graph data | |
CN112162738B (zh) | 数据转化方法、装置、终端设备及存储介质 | |
CN117194472A (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 |