CN117971647A - 一种接口测试方法、装置及设备 - Google Patents
一种接口测试方法、装置及设备 Download PDFInfo
- Publication number
- CN117971647A CN117971647A CN202311732994.1A CN202311732994A CN117971647A CN 117971647 A CN117971647 A CN 117971647A CN 202311732994 A CN202311732994 A CN 202311732994A CN 117971647 A CN117971647 A CN 117971647A
- Authority
- CN
- China
- Prior art keywords
- rule
- fields
- request parameter
- assigned
- assignment rule
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 174
- 238000000034 method Methods 0.000 claims abstract description 28
- 230000002159 abnormal effect Effects 0.000 claims description 34
- 238000004458 analytical method Methods 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 10
- 238000011156 evaluation Methods 0.000 claims description 6
- 238000009826 distribution Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 238000013515 script Methods 0.000 description 8
- 238000010998 test method Methods 0.000 description 7
- 239000008186 active pharmaceutical agent Substances 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000013101 initial test Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- XSQUKJJJFZCRTK-NJFSPNSNSA-N UREA C 14 Chemical compound N[14C](N)=O XSQUKJJJFZCRTK-NJFSPNSNSA-N 0.000 description 1
- 230000005856 abnormality Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种接口测试方法、装置及设备,涉及计算机技术领域,用于提高接口测试效率。该方法包括:遍历接口文档中的多个数据体,获取每个数据体中的所有请求参数以及与每个请求参数对应的多个第一字段,其中,一个数据体对应一个接口,多个第一字段指示每个请求参数的约束条件,多个第一字段包括必填性字段、数据类型字段和备注字段;根据每个请求参数被分配的赋值规则、多个第一字段以及预设的语言模型,为每个请求参数赋值;根据赋值后的每个请求参数、赋值规则和多个第一字段,生成每个接口的测试用例,共获得多个接口的测试用例;将多个接口的测试用例,输入预设的测试系统,获得多个接口的测试结果。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种接口测试方法、装置及设备。
背景技术
随着应用软件需求数量的快速增长,应用软件中的应用程序编程接口(Application Programming Interface,API)的需求也随之增长。在API接口投入使用之前,需要对API接口进行测试,而目前的接口测试方法是通过人工编写测试脚本和执行脚本,利用测试脚本和执行脚本对API进行测试。
但当待测试的API数量较多时,编写测试脚本和执行脚本需耗费大量时间,导致测试效率较低。
发明内容
本申请实施例提供一种接口测试方法、装置及设备,用于提高接口测试效率。
第一方面,本申请实施例提供一种接口测试方法,包括:遍历接口文档中的多个数据体,获取每个数据体中的所有请求参数以及与每个请求参数对应的多个第一字段,其中,一个数据体对应一个接口,所述多个第一字段指示所述每个请求参数的约束条件,所述多个第一字段包括必填性字段、数据类型字段和备注字段;根据所述每个请求参数被分配的赋值规则、所述多个第一字段以及预设的语言模型,为所述每个请求参数赋值,所述语言模型用于解析所述赋值规则和所述多个第一字段;根据赋值后的所述每个请求参数、所述赋值规则和所述多个第一字段,生成每个接口的测试用例,共获得多个接口的测试用例;将所述多个接口的测试用例,输入预设的测试系统,获得所述多个接口的测试结果。
在本申请实施例中,在从接口文档中解析得到多个接口的数据体,利用预设的语言模型,自动化地为每个数据体中的所有请求参数赋值,生成每个接口的测试用例,并输入测试系统完成接口文档中的多个接口的测试。相较于现有技术而言,无需针对每个接口编写测试脚本和执行脚本,简化了测试过程,提高了接口测试效率。并且,本申请实施例中还新增了备注字段的测试,使得接口测试的异常场景覆盖率增大,有利于提高接口测试的准确性。
在一种可能的实施方式中,若所述每个请求参数被分配的赋值规则为异常类赋值规则,则根据所述每个请求参数被分配的赋值规则、所述多个第一字段以及预设的语言模型,为所述每个请求参数赋值,包括:根据所述每个请求参数被分配的赋值规则的标识,将所述语言模型的解析规则调整至与所述标识匹配的规则,所述标识为所述每个请求参数被分配的赋值规则在所述赋值规则库的唯一标识;将所述每个请求参数被分配的赋值规则以及所述多个第一字段输入调整后的语言模型,以使所述调整后的语言模型将所述赋值规则以及所述多个第一字段转换为预设格式的表达式,并根据所述表达式输出第二测试值,所述第二测试值满足所述赋值规则和所述多个第一字段指示的任一规则或条件;根据所述第二测试值,为所述每个请求参数赋值。
在一种可能的实施方式中,所述方法还包括:若确定所述语言模型异常,则根据所述每个请求参数被分配的赋值规则的标识,从预存的测试值表中,获取与所述标识匹配的第三测试值,所述第三测试值满足所述赋值规则和所述多个第一字段指示的任一规则或条件;根据所述第三测试值,为所述每个请求参数赋值。
在该实施方式中,针对数量众多的待测试接口,当语言模型出现异常时,使用预存的测试值表为每个请求参数正常赋值,减少语言模型异常导致赋值中断的可能,有利于提高接口测试效率。
在一种可能的实施方式中,在根据所述每个请求参数被分配的赋值规则、所述多个第一字段以及预设的语言模型,为所述每个请求参数赋值之前,所述方法还包括:根据所述每个请求被分配的赋值规则,更新所述每个请求参数的第一属性和第二属性,所述第一属性用于指示所述赋值规则是否合法,所述第二属性用于指示是否执行所述赋值规则。
在一种可能的实施方式中,在根据所述每个请求参数被分配的赋值规则、所述多个第一字段以及预设的语言模型,为所述每个请求参数赋值之前,所述方法还包括:根据预存的赋值规则库以及分配策略,为所述每个请求参数分配一个赋值规则,所述分配策略指示任意两个请求参数被分配的赋值规则互不相同,以及所述所有请求参数中有且仅有一个请求参数被分配异常类赋值规则。
在该实施方式中,分配策略中还指示所有请求参数中只能被分配一个异常类赋值规则,以确保异常值的唯一性,从而确保测试结果的准确性。
第二方面,本申请实施例提供一种接口测试装置,包括:获取模块,用于遍历接口文档中的多个数据体,获取每个数据体中的所有请求参数以及与每个请求参数对应的多个第一字段,其中,一个数据体对应一个接口,所述多个第一字段指示所述每个请求参数的约束条件,所述多个第一字段包括必填性字段、数据类型字段和备注字段;赋值模块,用于根据所述每个请求参数被分配的赋值规则、所述多个第一字段以及预设的语言模型,为所述每个请求参数赋值,所述语言模型用于解析所述赋值规则和所述多个第一字段;生成模块,用于根据赋值后的所述每个请求参数、所述赋值规则和所述多个第一字段,生成每个接口的测试用例,共获得多个接口的测试用例;测试模块,用于将所述多个接口的测试用例,输入预设的测试系统,获得所述多个接口的测试结果。
在一种可能的实施方式中,所述赋值模块,具体用于:若所述每个请求参数被分配的赋值规则为异常类赋值规则,则根据所述每个请求参数被分配的赋值规则的标识,将所述语言模型的解析规则调整至与所述标识匹配的规则,所述标识为所述每个请求参数被分配的赋值规则在所述赋值规则库的唯一标识;将所述每个请求参数被分配的赋值规则以及所述多个第一字段输入调整后的语言模型,以使所述调整后的语言模型将所述赋值规则以及所述多个第一字段转换为预设格式的表达式,并根据所述表达式输出第二测试值,所述第二测试值满足所述赋值规则和所述多个第一字段指示的任一规则或条件;根据所述第二测试值,为所述每个请求参数赋值。
在一种可能的实施方式中,所述赋值模块,具体用于:若确定所述语言模型异常,则根据所述每个请求参数被分配的赋值规则的标识,从预存的测试值表中,获取与所述标识匹配的第三测试值,所述第三测试值满足所述赋值规则和所述多个第一字段指示的任一规则或条件;根据所述第三测试值,为所述每个请求参数赋值。
在一种可能的实施方式中,所述赋值模块,还用于:在根据所述每个请求参数被分配的赋值规则、所述多个第一字段以及预设的语言模型,为所述每个请求参数赋值之前,根据所述每个请求被分配的赋值规则,更新所述每个请求参数的第一属性和第二属性,所述第一属性用于指示所述赋值规则是否合法,所述第二属性用于指示是否执行所述赋值规则。
在一种可能的实施方式中,所述赋值模块,还用于:在根据所述每个请求参数被分配的赋值规则、所述多个第一字段以及预设的语言模型,为所述每个请求参数赋值之前,根据预存的赋值规则库以及分配策略,为所述每个请求参数分配一个赋值规则,所述分配策略指示任意两个请求参数被分配的赋值规则互不相同,以及所述所有请求参数中有且仅有一个请求参数被分配异常类赋值规则。
第三方面,本申请实施例提供一种接口测试设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如前文第一方面及任一可能的实施方式所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如前文第一方面及任一可能的实施方式所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,包含有计算机指令,当其在计算机上运行时,使得上述如前文第一方面及任一可能的实施方式所述的方法被实现。
关于第二方面至第五方面的有益效果可参照前文第一方面所述的内容,此处不再赘述。
附图说明
图1为本申请实施例提供的一种接口测试方法的应用场景图;
图2为本申请实施例提供的一种接口测试方法的流程示意图;
图3为本申请实施例提供的一种赋值规则库的示意图;
图4为本申请实施例提供的一种接口测试装置的结构示意图;
图5为本申请实施例提供的一种接口测试设备的结构示意图。
具体实施方式
为了更好地理解本申请提供的技术方案,下面将结合说明书附图以及具体的实施方式进行详细的说明。
下面结合图1所示的应用场景示意图,对本申请实施例所涉及的应用场景进行示例说明。
请参照图1,为本申请实施例提供的一种接口测试方法的应用场景示意图。如图1所示,该应用场景包括第一设备110和第二设备120,其中,第一设备110和第二设备120之间可以进行有线或无线通信。
其中,第一设备110是指具有数据处理能力的设备或服务器,设备例如为终端设备,终端设备包括但不限于手机、个人计算机(personal computer,PC)、平板电脑、笔记本电脑、掌上电脑和移动互联网设备(mobile internet device,MID)等。第二设备120是指具有数据处理能力以及接口测试能力的设备或服务器,设备例如为终端设备,终端设备的内容可对应参照前文所述的内容。
示例性的,第一设备110可向第二设备120发送接口文档,相应的,第二设备120接收来自第一设备110的接口文档,并对接口文档中的每个接口进行测试,以确定每个接口是否能够通过测试。其中,第二设备120对接口文档中的每个接口进行测试的内容将在下文中详细说明。
需要说明的是,第一设备110和第二设备120可以是同一设备,也可以是不同的设备,本申请实施例对此不作限定。
请参照图2,为本申请实施例提供的一种接口测试方法的流程示意图。其中,下文是以第二设备执行图2所示的步骤进行说明,但实际上还可以由其他设备执行以下方法,本申请实施例对此不作限定。其中,图2所涉及的第一设备例如为图1所示的第一设备110,图2所涉及的第二设备例如为图1所示的第二设备120。
S201,第二设备遍历接口文档中的多个数据体,获取每个数据体中的所有请求参数以及与每个请求参数对应的多个第一字段,其中,一个数据体对应一个接口,多个第一字段指示每个请求参数的约束条件。
其中,接口文档是指用于描述接口信息的文档,接口信息例如为接口名称、接口功能、接口类别、接口输入/输出参数等等。接口文档是满足开放应用编程接口规范(openapplication programming interface,openAPI)的文档。接口文档中包括多个数据体,其中,一个数据体对应一个接口,每个数据体用于记录其对应接口需要发送给服务端的数据。可以理解的是,接口文档可以是预存的第二设备中的,或者是由第一设备向第二设备发送的,或者是由用户输入第二设备中的,本申请实施例对此不作限定。
其中,多个第一字段指示每个请求参数的约束条件,多个第一字段可包括必填性(required)字段、数据类型(data type)字段和备注(description)字段。其中,必填性字段表示是否为必传项,或表示是否为必填参数,可用true/false表示。数据类型字段例如为int、string。备注字段是指用自然语言表示的备注信息,自然语言例如为中文、英文等,备注字段例如为数值不超过10、原文base64等。
具体的,第二设备在接口文档中遍历查找接口文档中的多个数据体,并根据递归策略对多个数据体中的每个数据体进行解析,获得每个数据体中的每个请求体(requestbody)中嵌套的请求参数(parameters)、以及与每个请求参数对应的多个第一字段,其中,递归是指在定义一个过程或函数时,出现直接或者间接调用自己的成分,称之为递归,因此,递归策略用于指示将直接或间接调用的函数进行层层剥离解析。
在一种可能的实施方式中,第二设备可将每个数据体中的解析得到的所有请求参数和与每个请求参数对应的多个第一字段组成为一个接口信息结构体。
在一种可能的实施方式中,第二设备还可在遍历接口文档中的多个数据体之前,从接口文档中解析得到统一资源定位符(uniform resource locator,URL),以确定接口文档的接口公共字段请求地址,例如为https://www.example.com。第二设备还可遍历每个数据体,解析得到每个数据体中的多个第二字段,多个第二字段可包括接口请求路径、请求方法、请求体类型等。请求路径可表示为path,例如为/prod-api/v1/getinfo;请求方法可表示为method,例如为post、get等;请求体类型可表示为content-type,例如为application/json、multipart/form-data。
在这种实施方式下,第二设备还可将每个数据体中解析得到的多个第二字段、所有请求参数、以及与每个请求参数对应的多个第一字段组成为一个接口信息结构体。
S202,第二设备根据每个请求参数被分配的赋值规则、多个第一字段以及预设的语言模型,为每个请求参数赋值,语言模型用于解析赋值规则和多个第一字段。
其中,赋值规则可以是预存储在第二设备的赋值规则库中的,赋值规则库中的赋值规则可包括合法类赋值规则和异常类赋值规则,其中,异常类赋值规则还可根据多个第二字段进行划分,例如为必填性异常值赋值规则、数据类型异常值赋值规则、备注异常值赋值规则。
示例性的,请参照图3,为本申请实施例提供的一种赋值规则库的示意图。如图3所示,请求参数赋值规则可分为合法值赋值规则和异常值赋值规则,其中,合法值赋值规则包括{“rule_flag”:“legal”、“active_rule”:“all”},异常值赋值规则分为必填性required规则、数据类型data-type规则和备注description规则,其中,required规则包括{“rule_flag”:“illegal”、“active_rule”:“required”};data-type规则包括{“rule_flag”:“illegal”、“active_rule”:“data-type”};description规则包括{“rule_flag”:“illegal”、“active_rule”:“description”}。
在一种可能的实施方式中,赋值规则库中的每条赋值规则可携带有标识,其中,每条赋值规则的标识均是唯一的。
在一种可能的实施方式中,第二设备在为每个请求参数赋值之前,还需为每个请求参数分配赋值规则。具体的,第二设备根据预存的赋值规则库和分配策略,为每个请求参数分配一个赋值规则。分配策略指示任意两个请求参数被分配的赋值规则互不相同,以及每个数据体的所有请求参数中有且仅有一个请求参数被分配异常类赋值规则。也就是说,在第二设备为每个数据体中的所有请求参数分配赋值规则时,赋值规则库中的每条赋值规则有且仅可被分配一次,并且,每个数据体中的所有请求参数中仅可被分配一条异常类赋值规则,以确保异常结果的唯一性。其中,第二设备根据预存的赋值规则库为每个数据体中的所有请求参数分配赋值规则可以是随机分配的,也可以是按照赋值规则库中的赋值规则的排序依次分配的,本申请实施例对此不做限定。
在一种可能的实施方式中,在第二设备为每个请求参数分配赋值规则之后,需对应更新每个请求参数的第一属性和第二属性,第一属性用于指示赋值规则是否合法,第二属性用于指示是否执行赋值规则。示例性的,第一属性例如为rule_falg属性,第二属性例如为active_rule属性。也就是说,在为每个请求参数分配赋值规则后,则需根据被分配的赋值规则,更新该请求参数的第一属性和第二属性以指示被分配的赋值规则是否为合法类赋值规则以及是否需要执行该赋值规则。
在一种可能的实施方式中,第二设备可将每个数据体中被分配赋值规则以及更新第一属性和第二属性后的所有请求参数和每个请求参数的多个第一字段组成为每个数据体的初始测试用例。示例性的,第二设备可将被分配赋值规则以及更新第一属性和第二属性后的所有请求参数,更新至每个数据体的接口信息结构体中,从而获得每个数据体的初始测试用例。
第二设备为每个请求参数分配赋值规则后,则可根据每个请求参数被分配的赋值规则、多个第一字段以及预设的语言模型,为每个请求参数赋值,语言模型用于解析赋值规则和多个第一字段,多个第一字段可包括必填性字段、数据类型字段和备注字段。其中,每个请求参数被分配的赋值规则的类型不同,则第二设备为每个请求参数赋值的具体实现方式不同,下面分别对异常类赋值规则和合法类赋值规则的赋值方式进行详细说明。
1、合法类赋值规则。
第二设备可根据每个请求参数的第一属性确定被分配的赋值规则是否为合法类赋值规则。若第二设备确定每个请求参数被分配的赋值规则为合法类赋值规则,则第二设备将每个请求参数被分配的赋值规则以及多个第一字段,输入所述语言模型中,以使语言模型将赋值规则以及多个第一字段转换为预设格式的表达式,并根据表达式输出第一测试值,第一测试值满足赋值规则和多个第一字段指示的任一规则或条件。第二设备根据所述第一测试值,为所述每个请求参数赋值。其中,预设格式的表达式是指测试用例能够使用的格式的语句。
由于本申请中的多个第一字段中包括备注字段,而备注字段是基于自然语言表示的备注信息,因此,本申请中的语言模型是指具有自然语言处理能力的语言模型,例如为训练后的人工智能(Artificial Intelligence,AI)语言模型。语言模型可以是基于样本第一字段集合进行训练得到的,样本第一字段集合中包括多个样本必填性字段、多个样本数据类型字段和多个样本备注字段。
具体的,第二设备将备注字段输入语言模型后,利用语言模型对备注字段中的自然语言所描述的内容进行语义分析,基于语义分析得到的结果,转换为测试用例所能够理解的语言,即转换为预设格式的表达式,从而实现请求参数的自动化赋值,避免了还需由技术人员依次对每个请求参数的备注字段进行一一转换的情况,有利于提高接口的测试效率。
示例性的,若以请求参数为params1为例,则请求参数的赋值规则可对应表示为:
{“params1”//请求参数1
{
“rule_flag”:“legal”;//合法类赋值规则
“active_rule”:“all”;//执行所有规则
“requiered_rule”:“true”;//为必传项
“data_type_rule”:“string”;//数据类型为字符串类型
“description_rule”:“原文base64字符串”//备注信息为原文base64字符串
}}
将所述内容输入语言模型后,则可得到params1=“YWJjZA==”,其中,“YWJjZA==”同时满足必填性字段、数据类型字段和备注字段的要求,“YWJjZA==”即为请求参数params1的第一测试值。
2、异常类赋值规则。
若第二设备根据每个请求参数的第一属性确定被分配的赋值规则为异常类赋值规则,则根据每个请求参数被分配的赋值规则的标识,将语言模型的解析规则调整至与标识匹配的规则,标识为每个请求参数被分配的赋值规则在赋值规则库的唯一标识。具体的,语言模型中预配置有与多个第一字段中的每个第一字段对应的解析规则,由于异常类赋值规则也是基于多个第一字段进行分类的,因此,第二设备将多个第一字段中的每个第一字段输入语言模型之前,需要基于每个第一字段对应的异常类赋值规则对应的类别,将语言模型的解析规则调整至相应类别下的解析规则。例如,若确定第一字段的标识指示备注异常类赋值规则,则将语言模型的解析规则对应调整值备注类。
第二设备调整语言模型后,则可将每个请求参数被分配的赋值规则以及多个第一字段输入调整后的语言模型中,以使调整后的语言模型将赋值规则以及多个第一字段转换为预设格式的表达式,并根据表达式输出第二测试值,第二测试值满足赋值规则和多个第一字段指示的任一规则或条件。进而第二设备可根据第二测试值,为所述每个请求参数赋值。
示例性的,以请求参数为params2为例,则请求参数的赋值规则可对应表示为:
{“params2”//请求参数2
{
“rule_flag”:“illegal”;//异常类赋值规则
“active_rule”:“requried/data_type/description”;//执行必填性字段或数据类型字段或备注字段
“requiered_rule”:“true”;//为必传项
“data_type_rule”:“int”;//数据类型为字符串类型
“description_rule”:“数值不超过10”//备注信息为数值不超过10
}}
将所述内容输入语言模型后,若执行必填性字段,即“active_rule”=requried时,则可得到params2=null;若执行数据类型字段,即“active_rule”=data_type时,则可得到params2=“abc”;若执行备注字段,即“active_rule”=description时,则可得到params2=“20”。
其中,在被分配的赋值规则为异常类赋值规则的情况下,第二设备对备注字段的处理方式与合法类赋值规则的情况下的处理方式相同,均是利用语言模型对备注字段所包括的备注信息进行语义分析转换,此处不再赘述。
在一种可能的实施方式中,当第二设备确定语言模型异常时,则可根据每个请求参数被分配的赋值规则的标识,从预存的测试值表中,获取与标识匹配的第三测试值,第三测试值满足赋值规则和多个第一字段指示的任一规则或条件。其中,语言模型异常例如为语言模型的响应超时。也就是说,当语言模型出现异常情况下,本申请可利用预存的测试值表,继续为每个请求参数赋值,从而避免了赋值中断的情况,减少了由于异常突发情况导致测试时间延长的可能,有利于提高接口测试效率。
目前现有的自动化接口测试方法中,用于测试的字段通常为必填性字段和/或数据类型字段,而本申请实施例将备注字段也加入测试的字段中,从而增加了接口测试的异常场景覆盖率,有利于提高接口的健壮性,以及提高接口测试的准确性。
S203,第二设备根据赋值后的每个请求参数、赋值规则和多个第一字段,生成每个接口的测试用例,共获得多个接口的测试用例。
第二设备为每个请求参数赋值后,则可根据赋值后的每个请求参数、赋值规则和多个第一字段,生成每个接口的测试用例,基于上述相同的步骤,第二设备即可获得接口文档中多个接口的测试用例。
示例性的,第二设备将赋值后的每个请求参数更新至每个数据体的初始测试用例中,即可获得每个数据体的测试用例,也是每个接口的测试用例。
S204,第二设备将多个接口的测试用例,输入预设的测试系统,获得多个接口的测试结果。
其中,预设的测试系统例如为pytest测试框架、单元测试(unittest)框架等。
第二设备生成接口文档中的多个接口的测试用例后,则可将多个接口的测试用例输入预设的测试系统中,由测试系统基于测试用例对接口进行测试。第二设备可获得测试系统输出的多个接口的测试结果,其中,测试系统可基于预设的报告输出工具输出测试结果报告,测试结果报告中指示多个接口中的每个接口通过测试或不通过测试。其中,预设的报告输出工具例如为Allure Framework测试报告工具、html-runner测试报告工具等。
通过本申请实施例所提供的接口测试方法,新增备注字段进行测试,利用语言模型可直接对备注字段的自然语言转换为测试用例所需格式的变量表达式,无需由工作人员进行手动编写,利用预设的语言模型实现初始测试用例的自动化赋值,既提高了接口测试的异常场景覆盖率,也提高了接口测试的效率。
基于同一发明构思,本申请实施例提供一种接口测试装置,该装置用于实现上述任一的接口测试方法,例如为图2所示的接口测试方法,并且,该装置还可实现前文中第二设备的功能。
请参照图4,为本申请实施例提供的一种接口测试装置的结构示意图。如图4所示,该接口测试装置400包括获取模块401、赋值模块402、生成模块403和测试模块404。
示例性的,获取模块401,用于遍历接口文档中的多个数据体,获取每个数据体中的所有请求参数以及与每个请求参数对应的多个第一字段,其中,一个数据体对应一个接口,多个第一字段指示每个请求参数的约束条件,所述多个第一字段包括必填性字段、数据类型字段和备注字段;赋值模块402,用于根据每个请求参数被分配的赋值规则、多个第一字段以及预设的语言模型,为每个请求参数赋值,语言模型用于解析赋值规则和多个第一字段;生成模块403,用于根据赋值后的每个请求参数、赋值规则和多个第一字段,生成每个接口的测试用例,共获得多个接口的测试用例;测试模块404,用于将多个接口的测试用例,输入预设的测试系统,获得多个接口的测试结果。
在一种可能的实施方式中,赋值模块402,具体用于:若每个请求参数被分配的赋值规则为异常类赋值规则,则根据每个请求参数被分配的赋值规则的标识,将语言模型的解析规则调整至与标识匹配的规则,标识为每个请求参数被分配的赋值规则在赋值规则库的唯一标识;将每个请求参数被分配的赋值规则以及多个第一字段输入调整后的语言模型,以使调整后的语言模型将赋值规则以及多个第一字段转换为预设格式的表达式,并根据表达式输出第二测试值,第二测试值满足赋值规则和多个第一字段指示的任一规则或条件;根据第二测试值,为每个请求参数赋值。
在一种可能的实施方式中,赋值模块402,具体用于:若确定语言模型异常,则根据每个请求参数被分配的赋值规则的标识,从预存的测试值表中,获取与标识匹配的第三测试值,第三测试值满足赋值规则和多个第一字段指示的任一规则或条件;根据第三测试值,为每个请求参数赋值。
在一种可能的实施方式中,赋值模块402,还用于:在根据每个请求参数被分配的赋值规则、多个第一字段以及预设的语言模型,为每个请求参数赋值之前,根据每个请求被分配的赋值规则,更新每个请求参数的第一属性和第二属性,第一属性用于指示赋值规则是否合法,第二属性用于指示是否执行赋值规则。
在一种可能的实施方式中,赋值模块402,还用于:在根据每个请求参数被分配的赋值规则、多个第一字段以及预设的语言模型,为每个请求参数赋值之前,根据预存的赋值规则库以及分配策略,为每个请求参数分配一个赋值规则,分配策略指示任意两个请求参数被分配的赋值规则互不相同,以及所有请求参数中有且仅有一个请求参数被分配异常类赋值规则。
基于同一发明构思,本申请实施例提供一种接口测试设备,用于实现上述任一的接口测试方法,例如为图2所示的接口测试方法,并且,该设备还可实现前文中第二设备的功能。
请参照图5,为本申请实施例提供的一种接口测试设备的结构示意图。如图5所示,该接口测试设备500包括:至少一个处理器501,以及与至少一个处理器501通信连接的存储器502。
其中,处理器501可以是通用处理器或者专用处理器等。处理器501例如,包括:基带处理器或中央处理器等。所述基带处理器可以用于对通信协议以及通信数据进行处理。所述中央处理器可以用于对接口测试设备500进行控制,执行软件程序和/或处理数据。不同的处理器可以是独立的器件,也可以是设置在一个或多个处理电路中,例如,集成在一个或多个专用集成电路上。
在一个实施例中,存储器502存储有可被至少一个处理器501执行的指令,至少一个处理器501通过执行存储器502存储的指令实现如前文第二设备的功能,相应的,也可实现前文第二设备执行的步骤。
在这种实施例下,接口测试设备500还可实现前文接口测试装置400的功能,并且,该接口测试设备500中的至少一个处理器501还可实现前文获取模块401、赋值模块402、生成模块403和测试模块404的功能。
基于同一发明构思,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机指令在计算机上运行时,使得计算机执行如上述任一的接口测试方法,例如为图2所示的接口测试方法。
基于同一发明构思,本申请实施例提供一种计算机程序产品,包含有计算机指令,当其在计算机上运行时,使得上述如上述任一的接口测试方法,例如为图2所示的接口测试方法被实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种接口测试方法,其特征在于,包括:
遍历接口文档中的多个数据体,获取每个数据体中的所有请求参数以及与每个请求参数对应的多个第一字段,其中,一个数据体对应一个接口,所述多个第一字段指示所述每个请求参数的约束条件,所述多个第一字段包括必填性字段、数据类型字段和备注字段;
根据所述每个请求参数被分配的赋值规则、所述多个第一字段以及预设的语言模型,为所述每个请求参数赋值,所述语言模型用于解析所述赋值规则和所述多个第一字段;
根据赋值后的所述每个请求参数、所述赋值规则和所述多个第一字段,生成每个接口的测试用例,共获得多个接口的测试用例;
将所述多个接口的测试用例,输入预设的测试系统,获得所述多个接口的测试结果。
2.根据权利要求1所述的方法,其特征在于,若所述每个请求参数被分配的赋值规则为异常类赋值规则,则根据所述每个请求参数被分配的赋值规则、所述多个第一字段以及预设的语言模型,为所述每个请求参数赋值,包括:
根据所述每个请求参数被分配的赋值规则的标识,将所述语言模型的解析规则调整至与所述标识匹配的规则,所述标识为所述每个请求参数被分配的赋值规则在所述赋值规则库的唯一标识;
将所述每个请求参数被分配的赋值规则以及所述多个第一字段输入调整后的语言模型,以使所述调整后的语言模型将所述赋值规则以及所述多个第一字段转换为预设格式的表达式,并根据所述表达式输出第二测试值,所述第二测试值满足所述赋值规则和所述多个第一字段指示的任一规则或条件;
根据所述第二测试值,为所述每个请求参数赋值。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若确定所述语言模型异常,则根据所述每个请求参数被分配的赋值规则的标识,从预存的测试值表中,获取与所述标识匹配的第三测试值,所述第三测试值满足所述赋值规则和所述多个第一字段指示的任一规则或条件;
根据所述第三测试值,为所述每个请求参数赋值。
4.根据权利要求1-3任一项所述的方法,其特征在于,在根据所述每个请求参数被分配的赋值规则、所述多个第一字段以及预设的语言模型,为所述每个请求参数赋值之前,所述方法还包括:
根据所述每个请求被分配的赋值规则,更新所述每个请求参数的第一属性和第二属性,所述第一属性用于指示所述赋值规则是否合法,所述第二属性用于指示是否执行所述赋值规则。
5.根据权利要求1-3任一项所述的方法,其特征在于,在根据所述每个请求参数被分配的赋值规则、所述多个第一字段以及预设的语言模型,为所述每个请求参数赋值之前,所述方法还包括:
根据预存的赋值规则库以及分配策略,为所述每个请求参数分配一个赋值规则,所述分配策略指示任意两个请求参数被分配的赋值规则互不相同,以及所述所有请求参数中有且仅有一个请求参数被分配异常类赋值规则。
6.一种接口测试装置,其特征在于,包括:
获取模块,用于遍历接口文档中的多个数据体,获取每个数据体中的所有请求参数以及与每个请求参数对应的多个第一字段,其中,一个数据体对应一个接口,所述多个第一字段指示所述每个请求参数的约束条件,所述多个第一字段包括必填性字段、数据类型字段和备注字段;
赋值模块,用于根据所述每个请求参数被分配的赋值规则、所述多个第一字段以及预设的语言模型,为所述每个请求参数赋值,所述语言模型用于解析所述赋值规则和所述多个第一字段;
生成模块,用于根据赋值后的所述每个请求参数、所述赋值规则和所述多个第一字段,生成每个接口的测试用例,共获得多个接口的测试用例;
测试模块,用于将所述多个接口的测试用例,输入预设的测试系统,获得所述多个接口的测试结果。
7.根据权利要求6所述的装置,其特征在于,所述赋值模块,具体用于:
若所述每个请求参数被分配的赋值规则为异常类赋值规则,则根据所述每个请求参数被分配的赋值规则的标识,将所述语言模型的解析规则调整至与所述标识匹配的规则,所述标识为所述每个请求参数被分配的赋值规则在所述赋值规则库的唯一标识;
将所述每个请求参数被分配的赋值规则以及所述多个第一字段输入调整后的语言模型,以使所述调整后的语言模型将所述赋值规则以及所述多个第一字段转换为预设格式的表达式,并根据所述表达式输出第二测试值,所述第二测试值满足所述赋值规则和所述多个第一字段指示的任一规则或条件;
根据所述第二测试值,为所述每个请求参数赋值。
8.根据权利要求7所述的装置,其特征在于,所述赋值模块,还用于:
若确定所述语言模型异常,则根据所述每个请求参数被分配的赋值规则的标识,从预存的测试值表中,获取与所述标识匹配的第三测试值,所述第三测试值满足所述赋值规则和所述多个第一字段指示的任一规则或条件;
根据所述第三测试值,为所述每个请求参数赋值。
9.一种接口测试设备,其特征在于,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如权利要求1-5中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311732994.1A CN117971647A (zh) | 2023-12-15 | 2023-12-15 | 一种接口测试方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311732994.1A CN117971647A (zh) | 2023-12-15 | 2023-12-15 | 一种接口测试方法、装置及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117971647A true CN117971647A (zh) | 2024-05-03 |
Family
ID=90845168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311732994.1A Pending CN117971647A (zh) | 2023-12-15 | 2023-12-15 | 一种接口测试方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117971647A (zh) |
-
2023
- 2023-12-15 CN CN202311732994.1A patent/CN117971647A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111241073B (zh) | 一种数据质量检查方法及装置 | |
CN112394942B (zh) | 基于云计算的分布式软件开发编译方法及软件开发平台 | |
CN110381101B (zh) | Api网关控制系统、控制方法、设备和介质 | |
CN110209700B (zh) | 一种数据流关联方法、装置、电子设备及存储介质 | |
CN110515944B (zh) | 基于分布式数据库的数据存储方法、存储介质和电子设备 | |
CN112181804A (zh) | 一种参数校验方法、设备以及存储介质 | |
CN111026670B (zh) | 测试用例的生成方法、测试用例的生成装置及存储介质 | |
CN111125064B (zh) | 一种生成数据库模式定义语句的方法和装置 | |
CN113806037A (zh) | 服务的调用方法、装置、存储介质及电子设备 | |
CN114035805A (zh) | 用于预编译器的代码转换方法、装置、介质及设备 | |
CN113051163A (zh) | 单元测试方法、装置、电子设备及存储介质 | |
CN113901083A (zh) | 基于多解析器的异构数据源操作资源解析定位方法和设备 | |
CN112398809A (zh) | 协议规则转换方法、装置、计算机设备和存储介质 | |
CN113126955A (zh) | 一种随机数据生成方法、装置、智能终端及存储介质 | |
CN111078573A (zh) | 一种测试报文的生成方法及装置 | |
CN106569868B (zh) | 一种基于Gradle的编译优化方法及装置 | |
CN117971647A (zh) | 一种接口测试方法、装置及设备 | |
CN113886221B (zh) | 测试脚本生成方法、装置、存储介质及电子设备 | |
CN111399843B (zh) | 将sql运行信息映射到sql文件的方法、系统及电子设备 | |
CN113688134A (zh) | 基于多维数据的可视化变量管理方法、系统及设备 | |
CN114253828A (zh) | 确定测试模板的方法、装置、计算设备和存储介质 | |
CN111752559A (zh) | 前后端分离系统、方法、装置和存储介质 | |
CN116755684B (zh) | OAS Schema的生成方法、装置、设备及介质 | |
CN116680171B (zh) | 测试方法、装置、存储介质及电子设备 | |
CN117555533B (zh) | 代码生成方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |