断言处理方法、系统和存储介质技术方案

技术编号:27877311 阅读:20 留言:0更新日期:2021-03-31 00:57
本申请实施例提供一种断言处理方法、系统和存储介质,该方法包括:获取调用方的断言服务请求,所述断言服务请求中包括断言类型、本次断言的断言操作内容以及断言表达式;对所述断言服务请求进行内容解析和合法性校验;根据对所述断言服务请求进行解析到的内容,查询得到所述断言类型和所述断言表达式对应的宏定义代码片段;根据所述宏定义代码片段执行本次断言的所述断言操作内容;在断言执行完成时,对断言执行结果进行封装,并将封装后的断言执行结果作为响应数据发送给所述调用方。以此有利于改善现有技术中的测试处理效率较低的问题。

【技术实现步骤摘要】
断言处理方法、系统和存储介质
本申请涉及测试
,具体而言,涉及一种断言处理方法、系统和存储介质。
技术介绍
目前,常见的测试用例平台一般是以RobotFramework或者Jmeter测试框架为基础进行开发的,这些框架对于测试用例的断言(assert)往往需要用户手写一段代码逻辑或者采用固定插件进行处理。对于以Robotframework为基础的测试框架,在进行断言时,需要用户自己通过python语言开发Keywords(关键字)进行处理,Keywords一般是固定格式的操作。对于Jmeter而言,该测试框架已经支持了常见的若干种通用组件,例如,BeanShell断言组件(是用于执行shell代码的)、BSF(BeanScriptingFramework,用于支持Java代码)断言组件、Compare断言组件(是用于进行字符串比较的)、HTML断言组件(是针对HTML格式的);响应(response)断言组件(是针对HTTP响应的)、XPath断言组件(是针对xml的XPath,XPath是基于XML的树状结构,用于针对返回信息为XPAth的数据类型进行断言)等。对于上述的两种测试框架,虽然提供测试用例断言能力,但是断言性能比较基础,只提供简单的执行环境,Jmeter、Robotframework的keywords只能应用于本身的测试框架,断言组件与自身测试框架的平台、业务具有强耦合关系,无法对其他平台进行支持,在兼容性、可扩展性方面的性能较差。这些因素导致需要用户在进行断言时需要做大量的准备工作,测试处理效率较低。
技术实现思路
本申请的目的在于提供一种断言处理方法、系统和存储介质,能够改善现有技术中的测试处理效率较低的问题。第一方面,本申请提供一种断言处理方法,包括:获取调用方的断言服务请求,所述断言服务请求中包括断言类型、本次断言的断言操作内容以及断言表达式;对所述断言服务请求进行内容解析和合法性校验;根据对所述断言服务请求进行解析到的内容,查询得到所述断言类型和所述断言表达式对应的宏定义代码片段;根据所述宏定义代码片段执行本次断言的所述断言操作内容;在断言执行完成时,对断言执行结果进行封装,并将封装后的断言执行结果作为响应数据发送给所述调用方。通过上述方法,基于断言服务请求进行内容解析和合法性校验,并为本次断言查询对应的宏定义代码片段,从而依据查询的宏定义代码片段执行本次的断言操作,并将最终封装的断言执行结果作为响应数据反馈给调用方,该处理流程可以将断言过程与调用方的业务进行解耦,可以支持任意测试平台或测试框架的调用,提升了兼容性和可扩展性。通过上述的方法流程进行断言时,可以减少用户在每次执行断言之前需要做的预处理工作量,可以提升测试处理效率。在可选的实施方式中,所述方法还包括:响应对于任一个给定的基础宏的二次开发选中操作,为被选中的基础宏生成新的宏定义文件;或,响应宏定义新建操作,生成新的宏定义文件;其中,所述基础宏是用于开放给所有用户使用的宏,所述新的宏定义文件是用于开放给指定用户使用的宏,所述宏定义文件中用于存储宏定义名称和代码片段。通过上述实现方式,用户(例如测试人员)仅需使用简单的操作即可对宏进行二次开发或新建宏,赋予了用户自行开发、完善宏定义功能的权限,相较于只能由平台管理员对软件进行整体升级才更新断言函数的方式,上述实现方式具有较好的可扩展性。在可选的实施方式中,所述方法还包括:响应所述指定用户对于所述新的宏定义文件的共享操作,将所述新的宏定义文件的宏使用权限提供给所述共享操作对应的租户用户。通过上述实现方式,被二次开发或新建的宏可以被分享授权给其他用户使用,具有较好的可扩展性。在可选的实施方式中,所述方法还包括:在设定的宏文件存储目录中检测到所述新的宏定义文件时,在设定的加载时间内对所述新的宏定义文件进行热加载,以使所述新的宏定义文件对应的宏被热部署。通过上述实现方式,可以对各种场景下的宏进行热部署,可以将用户开发的宏尽快进行加载,可降低因为部署新的宏而对大量用户的断言操作所造成的影响,基于热部署的特性还可以将开发、加载的宏共享给更多用户团队使用,改善了现有的测试用例断言与业务框架强耦合所造成的兼容性差、复用度低、难以维护的问题。在可选的实施方式中,所述对所述断言服务请求进行内容解析和合法性校验,包括:判断所述断言服务请求中是否存在非法字符,以及判断所述断言服务请求是否属于合法调用。通过上述实现方式,可以在确定断言服务请求符合要求的情况下查询对应的宏定义代码片段并执行断言操作,避免耗费过多时间对无效的断言服务请求进行处理。在可选的实施方式中,在所述断言服务请求中的所有字符均为合法字符,并且所述断言服务请求属于合法调用时,所述根据对所述断言服务请求进行解析到的内容,查询得到所述断言类型和所述断言表达式对应的宏定义代码片段,包括:根据对所述断言服务请求进行解析到的内容查找所述断言类型和所述断言表达式对应的目标宏名称;根据所述目标宏名称转换得到所述目标宏名称对应的宏定义代码片段。通过上述实现方式,可以快速查找、匹配出本次断言服务请求将涉及的宏定义代码片段,通过先查询目标宏名称再进行宏定义转换的方式有利于提升处理效率,用户无需在每次断言时都自行编写断言函数来进行断言操作。在可选的实施方式中,所述获取调用方的断言服务请求,包括:基于HTTP协议下的预设接口获取所述断言服务请求。相较于内嵌在固定测试软件中的现有断言组件,上述实现方式可以对外提供HTTP服务进行断言,支持多种测试平台、测试框架的调用。在可选的实施方式中,所述根据所述宏定义代码片段执行本次断言的所述断言操作内容,包括:在设定的断言时长内,按照本次断言的所述断言操作内容对应的断言要求,通过所述宏定义代码片段执行本次断言操作。通过上述实现方式,可以避免单次的断言处理时长过于长,有利于尽快向调用方反馈响应数据。第二方面,本申请提供一种断言处理系统,包括:获取模块,用于获取调用方的断言服务请求,所述断言服务请求中包括断言类型、本次断言的断言操作内容以及断言表达式;断言解析模块,用于对所述断言服务请求进行内容解析和合法性校验;所述断言解析模块,还用于根据对所述断言服务请求进行解析到的内容,查询得到所述断言类型和所述断言表达式对应的宏定义代码片段;断言执行模块,用于根据所述宏定义代码片段执行本次断言的所述断言操作内容;响应模块,用于在断言执行完成时,对断言执行结果进行封装,并将封装后的断言执行结果作为响应数据发送给所述调用方。通过上述装置可以执行前述第一方面的方法,可以将断言过程与调用方的业务进行解耦,可以支持任意测试平台或测试框架的调用,提升了兼容性和可扩展性。基于上述的装置进行断言时,可以减少用户在每次执行断言之前需要做的预处理工作量本文档来自技高网
...

【技术保护点】
1.一种断言处理方法,其特征在于,包括:/n获取调用方的断言服务请求,所述断言服务请求中包括断言类型、本次断言的断言操作内容以及断言表达式;/n对所述断言服务请求进行内容解析和合法性校验;/n根据对所述断言服务请求进行解析到的内容,查询得到所述断言类型和所述断言表达式对应的宏定义代码片段;/n根据所述宏定义代码片段执行本次断言的所述断言操作内容;/n在断言执行完成时,对断言执行结果进行封装,并将封装后的断言执行结果作为响应数据发送给所述调用方。/n

【技术特征摘要】
1.一种断言处理方法,其特征在于,包括:
获取调用方的断言服务请求,所述断言服务请求中包括断言类型、本次断言的断言操作内容以及断言表达式;
对所述断言服务请求进行内容解析和合法性校验;
根据对所述断言服务请求进行解析到的内容,查询得到所述断言类型和所述断言表达式对应的宏定义代码片段;
根据所述宏定义代码片段执行本次断言的所述断言操作内容;
在断言执行完成时,对断言执行结果进行封装,并将封装后的断言执行结果作为响应数据发送给所述调用方。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应对于任一个给定的基础宏的二次开发选中操作,为被选中的基础宏生成新的宏定义文件;
或,响应宏定义新建操作,生成新的宏定义文件;
其中,所述基础宏是用于开放给所有用户使用的宏,所述新的宏定义文件是用于开放给指定用户使用的宏,所述宏定义文件中用于存储宏定义名称和代码片段。


3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
响应所述指定用户对于所述新的宏定义文件的共享操作,将所述新的宏定义文件的宏使用权限提供给所述共享操作对应的租户用户。


4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在设定的宏文件存储目录中检测到所述新的宏定义文件时,在设定的加载时间内对所述新的宏定义文件进行热加载,以使所述新的宏定义文件对应的宏被热部署。


5.根据权利要求1所述的方法,其特征在于,所述对所述断言服务请求进行内容解析和合法性校验,包括:
判断所述断言服务请求中是否存在非法字符,以及判断所述断言服务请求是否属于合法调用。


6.根据权...

【专利技术属性】
技术研发人员:王健陈林高斌
申请(专利权)人:成都新希望金融信息有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1