接口断言方法、装置、服务器及存储介质与流程
未命名
07-14
阅读:96
评论:0
1.本发明涉及接口测试技术领域,尤其是涉及一种接口断言方法、装置、服务器及存储介质。
背景技术:
2.在开发软件的过程中,用户需要测试所编写的代码以确保程序的正确性。目前主要通过创建单元测试来自动完成测试的工作,单元测试需要判断在某一个时刻程序运行的值和预期的值是否一致,例如在junit测试框架中,使用断言即一些辅助函数来帮助开发人员确定某些被测试函数是否工作正常,但是现有断言方式灵活性较差。
技术实现要素:
3.有鉴于此,本发明的目的在于提供一种接口断言方法、装置、服务器及存储介质,可以显著提高断言的灵活性。
4.第一方面,本发明实施例提供了一种接口断言方法,包括:将待断言接口对应的断言请求文件发送至目标服务器,以使所述目标服务器针对所述断言请求文件内封装的测试数据反馈响应结果文件;从所述响应结果文件中提取断言关键字和所述断言关键字标识的接口断言内容,以及从所述响应结果文件中提取类型关键字和所述类型关键字标识的目标提取类型;根据所述接口断言内容和目标提取类型确定断言实际值,并确定所述断言实际值对应的断言预期值和断言判定模型;基于所述断言实际值、所述断言预期值和所述断言判定模型,确定所述待断言接口对应的断言结果;其中,所述断言结果用于表征所述待断言接口是否通过断言。
5.在一种实施方式中,从所述响应结果文件中提取断言关键字和所述断言关键字标识的接口断言内容的步骤,包括:从所述响应结果文件中提取断言关键字,并将所述断言关键字的值确定为接口断言内容;从所述响应结果文件中提取类型关键字和所述类型关键字标识的目标提取类型的步骤,包括:从所述响应结果文件中提取类型关键字,并将所述类型关键字的值确定为目标提取类型。
6.在一种实施方式中,根据所述接口断言内容和目标提取类型确定断言实际值的步骤,包括:如果所述接口断言内容包括响应断言,且所述目标提取类型包括正则表达式类型,则利用re第三方库中配置的findall算法,从所述接口断言中提取符合正则表达式的值,并将符合所述正则表达式的值作为断言实际值。
7.在一种实施方式中,根据所述接口断言内容和目标提取类型确定断言实际值的步骤,还包括:如果所述接口断言内容包括响应断言,且所述目标提取类型包括jsonpath类型,则利用jsonpath第三方库从所述接口断言中提取符合jsonpath表达式的值,并将符合所述jsonpath表达式的值作为断言实际值。
8.在一种实施方式中,根据所述接口断言内容和目标提取类型确定断言实际值的步骤,还包括:如果所述接口断言内容包括数据库断言,且所述目标提取类型包括sql查询类
型,则利用pymysql第三方库运行mysql查询语句,并将运行所述mysql查询语句得到的值作为断言实际值。
9.在一种实施方式中,基于所述断言实际值、所述断言预期值和所述断言判定模型,确定所述待断言接口对应的断言结果的步骤,包括:将所述断言实际值与所述断言预期值进行比对得到比对结果;如果所述比对结果满足所述断言判定模型,确定所述待断言接口对应的断言结果为通过断言。
10.在一种实施方式中,如果所述比对结果满足所述断言判定模型,确定所述待断言接口对应的断言结果为通过断言的步骤,包括:如果所述断言判定模型为等于比较模型,则当所述比对结果为所述断言实际值与所述断言预期值相等时,确定所述比对结果满足所述断言判定模型;或者,如果所述断言判定模型为不等于比较模型,则当所述比对结果为所述断言实际值与所述断言预期值不相等时,确定所述比对结果满足所述断言判定模型;或者,如果所述断言判定模型为包含模型,则当所述比对结果为所述断言实际值包含所述断言预期值时,确定所述比对结果满足所述断言判定模型;或者,如果所述断言判定模型为不包含模型,则当所述比对结果为所述断言实际值不包含所述断言预期值时,确定所述比对结果满足所述断言判定模型。
11.第二方面,本发明实施例还提供一种接口断言装置,包括:请求发送模块,用于将待断言接口对应的断言请求文件发送至目标服务器,以使所述目标服务器针对所述断言请求文件内封装的测试数据反馈响应结果文件;关键字提取模块,用于从所述响应结果文件中提取断言关键字和所述断言关键字标识的接口断言内容,以及从所述响应结果文件中提取类型关键字和所述类型关键字标识的目标提取类型;参数确定模块,用于根据所述接口断言内容和目标提取类型确定断言实际值,并确定所述断言实际值对应的断言预期值和断言判定模型;断言模块,用于基于所述断言实际值、所述断言预期值和所述断言判定模型,确定所述待断言接口对应的断言结果;其中,所述断言结果用于表征所述待断言接口是否通过断言。
12.第三方面,本发明实施例还提供一种服务器,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现第一方面提供的任一项所述的方法。
13.第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现第一方面提供的任一项所述的方法。
14.本发明实施例提供的一种接口断言方法、装置、服务器及存储介质,首先将待断言接口对应的断言请求文件发送至目标服务器,以使目标服务器针对断言请求文件内封装的测试数据反馈响应结果文件,再从响应结果文件中提取断言关键字和断言关键字标识的接口断言内容,以及从响应结果文件中提取类型关键字和类型关键字标识的目标提取类型,从而根据接口断言内容和目标提取类型确定断言实际值,并确定断言实际值对应的断言预期值和断言判定模型,最后即可基于断言实际值、断言预期值和断言判定模型,确定待断言接口对应的断言结果,该断言结果用于表征待断言接口是否通过断言。上述方法通过断言关键字标识接口断言内容,再通过类型关键字决定以何种提取类型获取断言实际值,将断言实际值与断言预期值按照断言判定模型对应的方式进行断言,本发明实施例可以支持多
种提取类型和多种断言判定模型,可以便于工作人员选取所需的断言方式,从而显著提高了断言灵活性。
15.本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
16.为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
17.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1为本发明实施例提供的一种接口断言方法的流程示意图;
19.图2为本发明实施例提供的一种接口断言方法的代码示意图;
20.图3为本发明实施例提供的另一种接口断言方法的流程示意图;
21.图4为本发明实施例提供的一种接口断言装置的结构示意图;
22.图5为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
23.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.目前,现有断言方式仅对接口响应结果进行断言,而且还存在灵活性较差的问题,基于此,本发明实施提供了一种接口断言方法、装置、服务器及存储介质,可以显著提高断言的灵活性。
25.为便于对本实施例进行理解,首先对本发明实施例所公开的一种接口断言方法进行详细介绍,参见图1所示的一种接口断言方法的流程示意图,该方法主要包括以下步骤s102至步骤s108:
26.步骤s102,将待断言接口对应的断言请求文件发送至目标服务器,以使目标服务器针对断言请求文件内封装的测试数据反馈响应结果文件。其中,断言请求文件为yaml文件,测试数据封装在yaml文件中,响应结果文件可以为运行测试数据得到的接口响应结果。在一种实施方式中,可以读取yaml文件请求信息后,使用requests.request向目标服务器(简称,服务端)发送请求,并使用返回结果的.json方法获取接口响应结果。
27.步骤s104,从响应结果文件中提取断言关键字和断言关键字标识的接口断言内容,以及从响应结果文件中提取类型关键字和类型关键字标识的目标提取类型。其中,断言关键字可以为validate关键字,validate关键字的值即为接口断言内容,类型关键字可以为type关键字,type关键字的值即为目标提取类型,提取类型可以包括正则表达式类型、
jsonpath类型、sql(structured query language,结构化查询语言)查询类型。在一种实施方式中,可以读取validate关键字并将validate关键字的值确定为接口断言内容,以及读取type关键字并将type关键字的值确定为目标提取类型。
28.步骤s106,根据接口断言内容和目标提取类型确定断言实际值,并确定断言实际值对应的断言预期值和断言判定模型。其中,断言判定模型用于限定断言实际值与断言预期值之间的比对方式和断言条件。在一种实施方式中,可以按照目标提取类型对应的提取方法从接口断言内容中提取断言实际值,断言预期值和断言判定模型可以预先设置。
29.步骤s108,基于断言实际值、断言预期值和断言判定模型,确定待断言接口对应的断言结果;其中,断言结果用于表征待断言接口是否通过断言。在一种实施方式中,可以按照断言判定模型对应的比对方式对断言实际值和断言预期值,并判断比对结果是否满足断言判定模型对应的断言条件,如果满足则表明待断言接口通过断言,反之如果不满足则表明待断言接口未通过断言。
30.本发明实施例提供的接口断言方法,通过断言关键字标识接口断言内容,再通过类型关键字决定以何种提取类型获取断言实际值,将断言实际值与断言预期值按照断言判定模型对应的方式进行断言,本发明实施例可以支持多种提取类型和多种断言判定模型,可以便于工作人员选取所需的断言方式,从而显著提高了断言灵活性。
31.为便于对前述步骤s104进行理解,本发明实施例提供了一种步骤s104的实施方式,可以从响应结果文件中提取断言关键字,并将断言关键字的值确定为接口断言内容,以及从响应结果文件中提取类型关键字,并将类型关键字的值确定为目标提取类型。在具体实现时,可以读取用例validate关键字,并循环遍历validate关键字的值,获取expr的值赋给变量expression,获取resp的值并赋给变量res。进一步的,还可以获取响应结果文件中type关键字的值,并将type关键字的值作为目标提取类型。
32.为便于对前述步骤s106进行理解,本发明实施例提供了一种步骤s106的实施方式,包括如下方式一至方式三:
33.方式一:如果接口断言内容包括响应断言,且目标提取类型包括正则表达式类型,则利用re第三方库中配置的findall算法,从接口断言中提取符合正则表达式的值,并将符合正则表达式的值作为断言实际值。在一种实施方式中,可以利用re第三方库的findall方法提取响应结果的符合expression(正则表达式)的值(re.findall(f”{expression,}”,resp_result)并赋值给actual_result(也即,断言实际值)。
34.方式二:如果接口断言内容包括响应断言,且目标提取类型包括jsonpath类型,则利用jsonpath第三方库从接口断言中提取符合jsonpath表达式的值,并将符合jsonpath表达式的值作为断言实际值。在一种实施方式中,可以利用jsonpath第三方库提取响应结果的符合expression(jsonpath表达式)的值(jsonpath.jsonpath(resp_result,f”$..{expression}”)并赋值给actual_result(也即,断言实际值)。
35.方式三:如果接口断言内容包括数据库断言,且目标提取类型包括sql查询类型,则利用pymysql第三方库运行mysql查询语句,并将运行mysql查询语句得到的值作为断言实际值。在一种实施方式中,可以利用pymysql第三方库连接数据库,并执行expression变量(mysql查询语句)获取值并赋值给actual_result(也即,断言实际值)。
36.为便于对前述步骤s108进行理解,本发明实施例提供了一种步骤s108的实施方
式,可以将断言实际值与断言预期值进行比对得到比对结果,如果比对结果满足断言判定模型,确定待断言接口对应的断言结果为通过断言。在具体实现时,可以参见如下(1)至(4):
37.(1)如果断言判定模型为等于比较模型,则当比对结果为断言实际值与断言预期值相等时,确定比对结果满足断言判定模型。其中,等于比较模型也即断言实际值与断言预期值做等于比较,可用符号“=”表示,在具体实现时,用if判断语句判断变量actual_result(也即,断言实际值)与变量res(也即,断言预期值)是否相等,如果相等则接口通过,反正不通过。
38.(2)如果断言判定模型为不等于比较模型,则当比对结果为断言实际值与断言预期值不相等时,确定比对结果满足断言判定模型。其中,不等于比较模型也即断言实际值与断言预期值做不等于比较,可用符号“!=”表示,在具体实现时,用if判断语句判断变量actual_result与变量res是否不相等,如果不相等则接口通过,反正不通过。
39.(3)如果断言判定模型为包含模型,则当比对结果为断言实际值包含断言预期值时,确定比对结果满足断言判定模型。其中,包含模型表示断言实际值要包含断言预期值,可用符号“contains”表示,在具体实现时,用if结合成员运算符判断res是否在actual_result里面,在则通过,反之不通过。
40.(4)如果断言判定模型为不包含模型,则当比对结果为断言实际值不包含断言预期值时,确定比对结果满足断言判定模型。其中,不包含模型表示断言实际值要不包含断言预期值,可用符号“not contains”表示,在具体实现时,用if结合成员运算符判断res是否不在actual_result里面,不在则通过,反之不通过。
41.本发明实施例基于request+pytest+yaml的接口自动化框架采取了数据驱动原理,将测试数据与测试行为进行了分离。本发明实施例的特点为:测试数据封装在yaml文件中。在实际应用中,根据接口请求发送的要素准备url、method、headers、data封装在yaml文件中,同时针对接口断言也封装在yaml中,用validate关键字区分是接口断言部分、断言包含对数据库及响应断言,响应断言是从接口响应信息中查看是否与我们的预期一致,而http协议返回的大部分是json字符串,根据这一特点提取响应字段可采取jsonpath三方库或正则regular表达式提取,数据库断言则需要验证数据库是否成功的删除/增加/修改某一条信息,需要使用sql查询。
42.因此有三种方式获取实际值:(1)正则表达式提取(2)jsonpath提取(3)sql查询.每种提取类型的方法不一致,正则需要填写正则表达式、jsonpath需要填写jsonpath表达式、sql查询需要使用mysql语句。
43.在一种实施方式中,提取类型设置为type:可以填写jsonpath、regualar(代表正则)、sql这是区分取expr表达式采取的方式。
44.在一种实施方式中,提取方法设置为expr:如果type是jsonpath这里填写从响应json字符串里提取字段的jsonpath表达式;如果type是regualer则填写从响应json字符串提取字段的正则表达式;如果是type是sql则填写sql语句。
45.在一种实施方式中,断言预期值设置为resp。前述实施例获取的断言实际值和断言预期值两者之间有比对方式,诸如等于/不等于/大于/不包含等,因此设置比较符lable来存放比对方式。而对于一个接口来说需要断言至少1个以上的数据,因此因组装成字典列
表形式,诸如图2所示的一种接口断言方法的代码示意图。
46.为便于对前述实施例提供的接口断言方法进行理解,本发明实施例提供了一种接口断言方法的应用示例,参见图3所示的另一种接口断言方法的流程示意图,该方法主要包括以下步骤1至步骤15:
47.步骤1,发送请求;步骤2,获取请求响应结果;步骤3,获取validate关键字的值;步骤4,循环遍历断言内容;步骤5,确定type类型;步骤6,jsonpath;步骤7,获取expr的值并用jsonpath取值赋给actual_result;步骤8,regular;步骤9,获取expr的值并用正则取值赋给actual_result;步骤10,mysql;步骤11,获取expr的值并用pymysql执行expr,将结果赋给actual_result;步骤12,获取实际值;步骤13,获取判断方式;步骤14,获取预期值;步骤15,实际值actual_result与预期值按照判断方式比对。
48.综上所述,本发明实施例提供的接口断言方法,基于requests+pytest+yaml接口自动化框架进行断言,在进行接口自动化测试中,最重要的一部分即是断言将实际结果与预期结果比对,断言包括两部分:一是接口响应断言,二是数据库断言,一个健壮的断言可以发现接口中存在的问题,提高产品质量。本发明实施例提供的接口断言方法,通过validate关键字去标识接口的断言内容,再通过type关键字决定以何种方式获取实际结果,再将实际结果与预期结果按照预设的比较方式lable关键字进行比较,支持jsonpath和正则以及sql方式,可以让不同的测试人员选取适合的断言方式。让断言更加灵活。
49.对于前述实施例提供的接口断言方法,本发明实施例提供了一种接口断言装置,参见图4所示的一种接口断言装置的结构示意图,该装置主要包括以下部分:
50.请求发送模块402,用于将待断言接口对应的断言请求文件发送至目标服务器,以使目标服务器针对断言请求文件内封装的测试数据反馈响应结果文件;
51.关键字提取模块404,用于从响应结果文件中提取断言关键字和断言关键字标识的接口断言内容,以及从响应结果文件中提取类型关键字和类型关键字标识的目标提取类型;
52.参数确定模块406,用于根据接口断言内容和目标提取类型确定断言实际值,并确定断言实际值对应的断言预期值和断言判定模型;
53.断言模块408,用于基于断言实际值、断言预期值和断言判定模型,确定待断言接口对应的断言结果;其中,断言结果用于表征待断言接口是否通过断言。
54.本发明实施例提供的接口断言装置,通过断言关键字标识接口断言内容,再通过类型关键字决定以何种提取类型获取断言实际值,将断言实际值与断言预期值按照断言判定模型对应的方式进行断言,本发明实施例可以支持多种提取类型和多种断言判定模型,可以便于工作人员选取所需的断言方式,从而显著提高了断言灵活性。
55.在一种实施方式中,关键字提取模块404还用于:从所述响应结果文件中提取断言关键字,并将所述断言关键字的值确定为接口断言内容;关键字提取模块404还用于:从所述响应结果文件中提取类型关键字,并将所述类型关键字的值确定为目标提取类型。
56.在一种实施方式中,参数确定模块406还用于:如果接口断言内容包括响应断言,且目标提取类型包括正则表达式类型,则利用re第三方库中配置的findall算法,从接口断言中提取符合正则表达式的值,并将符合正则表达式的值作为断言实际值。
57.在一种实施方式中,参数确定模块406还用于:如果接口断言内容包括响应断言,
且目标提取类型包括jsonpath类型,则利用jsonpath第三方库从接口断言中提取符合jsonpath表达式的值,并将符合jsonpath表达式的值作为断言实际值。
58.在一种实施方式中,参数确定模块406还用于:如果接口断言内容包括数据库断言,且目标提取类型包括sql查询类型,则利用pymysql第三方库运行mysql查询语句,并将运行mysql查询语句得到的值作为断言实际值。
59.在一种实施方式中,断言模块408还用于:将断言实际值与断言预期值进行比对得到比对结果;如果比对结果满足断言判定模型,确定待断言接口对应的断言结果为通过断言。
60.在一种实施方式中,断言模块408还用于:如果断言判定模型为等于比较模型,则当比对结果为断言实际值与断言预期值相等时,确定比对结果满足断言判定模型;或者,如果断言判定模型为不等于比较模型,则当比对结果为断言实际值与断言预期值不相等时,确定比对结果满足断言判定模型;或者,如果断言判定模型为包含模型,则当比对结果为断言实际值包含断言预期值时,确定比对结果满足断言判定模型;或者,如果断言判定模型为不包含模型,则当比对结果为断言实际值不包含断言预期值时,确定比对结果满足断言判定模型。
61.本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
62.本发明实施例提供了一种服务器,具体的,该服务器包括处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被所述处理器运行时执行如上所述实施方式的任一项所述的方法。
63.图5为本发明实施例提供的一种服务器的结构示意图,该服务器100包括:处理器50,存储器51,总线52和通信接口53,所述处理器50、通信接口53和存储器51通过总线52连接;处理器50用于执行存储器51中存储的可执行模块,例如计算机程序。
64.其中,存储器51可能包含高速随机存取存储器(ram,random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口53(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
65.总线52可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
66.其中,存储器51用于存储程序,所述处理器50在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器50中,或者由处理器50实现。
67.处理器50可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器50中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器50可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现成可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程
逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器51,处理器50读取存储器51中的信息,结合其硬件完成上述方法的步骤。
68.本发明实施例所提供的可读存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见前述方法实施例,在此不再赘述。
69.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
70.最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
技术特征:
1.一种接口断言方法,其特征在于,包括:将待断言接口对应的断言请求文件发送至目标服务器,以使所述目标服务器针对所述断言请求文件内封装的测试数据反馈响应结果文件;从所述响应结果文件中提取断言关键字和所述断言关键字标识的接口断言内容,以及从所述响应结果文件中提取类型关键字和所述类型关键字标识的目标提取类型;根据所述接口断言内容和目标提取类型确定断言实际值,并确定所述断言实际值对应的断言预期值和断言判定模型;基于所述断言实际值、所述断言预期值和所述断言判定模型,确定所述待断言接口对应的断言结果;其中,所述断言结果用于表征所述待断言接口是否通过断言。2.根据权利要求1所述的方法,其特征在于,从所述响应结果文件中提取断言关键字和所述断言关键字标识的接口断言内容的步骤,包括:从所述响应结果文件中提取断言关键字,并将所述断言关键字的值确定为接口断言内容;从所述响应结果文件中提取类型关键字和所述类型关键字标识的目标提取类型的步骤,包括:从所述响应结果文件中提取类型关键字,并将所述类型关键字的值确定为目标提取类型。3.根据权利要求1所述的方法,其特征在于,根据所述接口断言内容和目标提取类型确定断言实际值的步骤,包括:如果所述接口断言内容包括响应断言,且所述目标提取类型包括正则表达式类型,则利用re第三方库中配置的findall算法,从所述接口断言中提取符合正则表达式的值,并将符合所述正则表达式的值作为断言实际值。4.根据权利要求1所述的方法,其特征在于,根据所述接口断言内容和目标提取类型确定断言实际值的步骤,还包括:如果所述接口断言内容包括响应断言,且所述目标提取类型包括jsonpath类型,则利用jsonpath第三方库从所述接口断言中提取符合jsonpath表达式的值,并将符合所述jsonpath表达式的值作为断言实际值。5.根据权利要求1所述的方法,其特征在于,根据所述接口断言内容和目标提取类型确定断言实际值的步骤,还包括:如果所述接口断言内容包括数据库断言,且所述目标提取类型包括sql查询类型,则利用pymysql第三方库运行mysql查询语句,并将运行所述mysql查询语句得到的值作为断言实际值。6.根据权利要求1所述的方法,其特征在于,基于所述断言实际值、所述断言预期值和所述断言判定模型,确定所述待断言接口对应的断言结果的步骤,包括:将所述断言实际值与所述断言预期值进行比对得到比对结果;如果所述比对结果满足所述断言判定模型,确定所述待断言接口对应的断言结果为通过断言。7.根据权利要求6所述的方法,其特征在于,如果所述比对结果满足所述断言判定模型,确定所述待断言接口对应的断言结果为通过断言的步骤,包括:
如果所述断言判定模型为等于比较模型,则当所述比对结果为所述断言实际值与所述断言预期值相等时,确定所述比对结果满足所述断言判定模型;或者,如果所述断言判定模型为不等于比较模型,则当所述比对结果为所述断言实际值与所述断言预期值不相等时,确定所述比对结果满足所述断言判定模型;或者,如果所述断言判定模型为包含模型,则当所述比对结果为所述断言实际值包含所述断言预期值时,确定所述比对结果满足所述断言判定模型;或者,如果所述断言判定模型为不包含模型,则当所述比对结果为所述断言实际值不包含所述断言预期值时,确定所述比对结果满足所述断言判定模型。8.一种接口断言装置,其特征在于,包括:请求发送模块,用于将待断言接口对应的断言请求文件发送至目标服务器,以使所述目标服务器针对所述断言请求文件内封装的测试数据反馈响应结果文件;关键字提取模块,用于从所述响应结果文件中提取断言关键字和所述断言关键字标识的接口断言内容,以及从所述响应结果文件中提取类型关键字和所述类型关键字标识的目标提取类型;参数确定模块,用于根据所述接口断言内容和目标提取类型确定断言实际值,并确定所述断言实际值对应的断言预期值和断言判定模型;断言模块,用于基于所述断言实际值、所述断言预期值和所述断言判定模型,确定所述待断言接口对应的断言结果;其中,所述断言结果用于表征所述待断言接口是否通过断言。9.一种服务器,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至7任一项所述的方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现权利要求1至7任一项所述的方法。
技术总结
本发明提供了一种接口断言方法、装置、服务器及存储介质,包括:将待断言接口对应的断言请求文件发送至目标服务器,以使目标服务器针对断言请求文件内封装的测试数据反馈响应结果文件;从响应结果文件中提取断言关键字和断言关键字标识的接口断言内容,以及从响应结果文件中提取类型关键字和类型关键字标识的目标提取类型;根据接口断言内容和目标提取类型确定断言实际值,并确定断言实际值对应的断言预期值和断言判定模型;基于断言实际值、断言预期值和断言判定模型,确定待断言接口对应的断言结果;其中,断言结果用于表征待断言接口是否通过断言。本发明可以显著提高断言的灵活性。活性。活性。
技术研发人员:古明泉 高金燕
受保护的技术使用者:四川众信佳科技发展有限公司
技术研发日:2022.12.29
技术公布日:2023/7/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
