接口测试方法及装置与流程

文档序号:12063524阅读:278来源:国知局
接口测试方法及装置与流程
本发明涉及计算机
技术领域
,特别涉及一种接口测试方法及装置。
背景技术
:随着计算机技术的发展,形形色色的应用层出不穷,而每个应用中又包括多个接口,通过不同的接口可以实现不同的功能。开发人员在开发每个接口时,会为每个接口编写定义信息,对接口的功能、输入参数等进行描述,测试人员根据定义信息可以对接口进行测试。为了测试目标接口能否正常运行,测试人员获取该目标接口的定义信息之后,需要人工地分析该定义信息,从而确定测试输入参数以及若向目标接口传入该测试输入参数后应得的理论响应结果。之后,向该目标接口传入该测试输入参数,以使该目标接口基于该测试输入参数运行,以便对该目标接口进行测试。在实现本发明的过程中,发明人发现相关技术至少存在以下问题:人工确定测试输入参数的过程较为繁琐,耗费的时间过长,导致测试效率低下。技术实现要素:为了解决相关技术的问题,本发明实施例提供了一种接口测试方法及装置。所述技术方案如下:一方面,提供了一种接口测试方法,所述方法包括:获取目标接口的定义信息,所述定义信息包括所述目标接口的指定参数类型以及对应的指定参数范围,所述指定参数类型是指所述目标接口正常运行时输入参数的类型,所述指定参数范围是指所述目标接口正常运行时输入参数所属的范围;根据所述目标接口的指定参数类型和指定参数范围,确定所述目标接口的测试输入参数;向所述目标接口传入所述测试输入参数,使得所述目标接口基于所述测试输入参数运行,并生成测试报表,所述测试报表用于确定所述目标接口是否运行正常。在一种可能的实现方式中,所述测试输入参数包括第一测试输入参数,所述第一测试输入参数为属于所述指定参数类型且属于所述指定参数范围的参数,所述方法还包括:根据所述定义信息中所述目标接口的功能描述信息,确定若向所述目标接口传入所述第一测试输入参数时应得的理论响应结果;当所述测试报表中所述第一测试输入参数对应的实际响应结果与所述理论响应结果匹配时,确定所述目标接口运行正常。在另一种可能的实现方式中,所述根据所述目标接口的指定参数类型和指定参数范围,确定所述目标接口的测试输入参数,包括:获取所述指定参数范围中属于所述指定参数类型的中值,将所述中值确定为测试输入参数。在另一种可能的实现方式中,所述测试输入参数包括第二测试输入参数,所述第二测试输入参数为不属于所述指定参数类型的参数,所述方法还包括:当所述测试报表中所述第二测试输入参数对应的实际响应结果包括错误提示信息时,确定所述目标接口运行正常。在另一种可能的实现方式中,所述根据所述目标接口的指定参数类型和指定参数范围,确定所述目标接口的测试输入参数,包括:获取属于所述指定参数类型的第一参数;对所述第一参数的类型进行转换,得到第二参数,所述第二参数不属于所述指定参数类型;将所述第二参数确定为测试输入参数。在另一种可能的实现方式中,所述测试输入参数包括第三测试输入参数,所述第三测试输入参数为不属于所述指定参数范围的参数,所述方法还包括:当所述测试报表中所述第三测试输入参数对应的实际响应结果包括错误提示信息时,确定所述目标接口运行正常。在另一种可能的实现方式中,所述指定参数类型包括必选参数类型,所述测试输入参数包括第四测试输入参数,所述第四测试输入参数为空参数,所述方法还包括:当所述测试报表中所述第四测试输入参数对应的实际响应结果包括错误提示信息时,确定所述目标接口运行正常。在另一种可能的实现方式中,所述定义信息包括所述目标接口的多个指定参数类型以及对应的多个指定参数范围,所述根据所述目标接口的指定参数类型和指定参数范围,确定所述目标接口的测试输入参数,包括:将相互对应的指定参数类型和指定参数范围作为一组,得到多个分组;根据每个分组内的指定参数类型和指定参数范围,确定每个分组的备选输入参数;将属于不同分组的备选输入参数进行组合,得到多种备选参数组合;从所述多种备选参数组合中选取测试输入参数组合,将所述测试输入参数组合中的每个参数确定为测试输入参数。在另一种可能的实现方式中,所述获取目标接口的定义信息,包括:获取js格式的第一接口文件,所述第一接口文件包括所述定义信息;将所述第一接口文件转化为JavaScript对象表示法json格式,得到第二接口文件;将所述第二接口文件转化为可扩展标记语言xml格式,得到第三接口文件;对所述第三接口文件进行解析,得到所述定义信息。另一方面,提供了一种接口测试装置,所述装置包括:获取模块,用于获取目标接口的定义信息,所述定义信息包括所述目标接口的指定参数类型以及对应的指定参数范围,所述指定参数类型是指所述目标接口正常运行时输入参数的类型,所述指定参数范围是指所述目标接口正常运行时输入参数所属的范围;确定模块,用于根据所述目标接口的指定参数类型和指定参数范围,确定所述目标接口的测试输入参数;参数传入模块,用于向所述目标接口传入所述测试输入参数,使得所述目标接口基于所述测试输入参数运行,并生成测试报表,所述测试报表用于确定所述目标接口是否运行正常。在一种可能的实现方式中,所述测试输入参数包括第一测试输入参数,所述第一测试输入参数为属于所述指定参数类型且属于所述指定参数范围的参数,所述确定模块,还用于根据所述定义信息中所述目标接口的功能描述信息,确定若向所述目标接口传入所述第一测试输入参数时应得的理论响应结果;所述确定模块,还用于当所述测试报表中所述第一测试输入参数对应的实际响应结果与所述理论响应结果匹配时,确定所述目标接口运行正常。在另一种可能的实现方式中,所述确定模块,还用于获取所述指定参数范围中属于所述指定参数类型的中值,将所述中值确定为测试输入参数。在另一种可能的实现方式中,所述测试输入参数包括第二测试输入参数,所述第二测试输入参数为不属于所述指定参数类型的参数,所述确定模块,还用于当所述测试报表中所述第二测试输入参数对应的实际响应结果包括错误提示信息时,确定所述目标接口运行正常。在另一种可能的实现方式中,所述根据所述目标接口的指定参数类型和指定参数范围,所述确定模块,包括:获取单元,用于获取属于所述指定参数类型的第一参数;类型转换单元,用于对所述第一参数的类型进行转换,得到第二参数,所述第二参数不属于所述指定参数类型;确定单元,用于将所述第二参数确定为测试输入参数。在另一种可能的实现方式中,所述测试输入参数包括第三测试输入参数,所述第三测试输入参数为不属于所述指定参数范围的参数,所述确定模块,还用于当所述测试报表中所述第三测试输入参数对应的实际响应结果包括错误提示信息时,确定所述目标接口运行正常。在另一种可能的实现方式中,所述指定参数类型包括必选参数类型,所述测试输入参数包括第四测试输入参数,所述第四测试输入参数为空参数,所述确定模块,还用于当所述测试报表中所述第四测试输入参数对应的实际响应结果包括错误提示信息时,确定所述目标接口运行正常。在另一种可能的实现方式中,所述定义信息包括所述目标接口的多个指定参数类型以及对应的多个指定参数范围,所述根据所述目标接口的指定参数类型和指定参数范围,所述确定模块,包括:分组单元,用于将相互对应的指定参数类型和指定参数范围作为一组,得到多个分组;确定单元,用于根据每个分组内的指定参数类型和指定参数范围,确定每个分组的备选输入参数;组合单元,用于将属于不同分组的备选输入参数进行组合,得到多种备选参数组合;选取单元,用于从所述多种备选参数组合中选取测试输入参数组合,将所述测试输入参数组合中的每个参数确定为测试输入参数。在另一种可能的实现方式中,所述获取模块,包括:获取单元,用于获取js格式的第一接口文件,所述第一接口文件包括所述定义信息;格式转化单元,用于将所述第一接口文件转化为JavaScript对象表示法json格式,得到第二接口文件;所述格式转化单元,还用于将所述第二接口文件转化为可扩展标记语言xml格式,得到第三接口文件;解析单元,用于对所述第三接口文件进行解析,得到所述定义信息。本发明实施例提供的技术方案带来的有益效果是:通过获取目标接口的定义信息,根据该目标接口的指定参数类型和指定参数范围,确定该目标接口的测试输入参数,并自动向该目标接口传入该测试输入参数,使得该目标接口基于该测试输入参数运行,并生成测试报表,无需测试人员人工地分析定义信息即可对目标接口进行测试,节约了测试时间,提高了测试效率。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的接口测试方法流程图;图2是本发明实施例提供的接口测试方法流程图;图3是本发明实施例提供的接口测试装置结构示意图;图4是本发明实施例提供的接口测试装置结构示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。图1是本发明实施例提供的一种接口测试方法的流程图,本发明实施例应用于测试终端中,如图1所示,该接口测试方法包括以下步骤:101、获取目标接口的定义信息,该定义信息包括该目标接口的指定参数类型以及对应的指定参数范围,该指定参数类型是指该目标接口正常运行时输入参数的类型,该指定参数范围是指该目标接口正常运行时输入参数所属的范围。102、根据该目标接口的指定参数类型和指定参数范围,确定该目标接口的测试输入参数。103、向该目标接口传入该测试输入参数,使得该目标接口基于该测试输入参数运行,并生成测试报表,该测试报表用于确定该目标接口是否运行正常。本发明实施例提供的方法,通过获取目标接口的定义信息,根据该目标接口的指定参数类型和指定参数范围,确定该目标接口的测试输入参数,并自动向该目标接口传入该测试输入参数,使得该目标接口基于该测试输入参数运行,并生成测试报表,无需测试人员人工地分析定义信息即可对目标接口进行测试,节约了测试时间,提高了测试效率。在一种可能的实现方式中,该测试输入参数包括第一测试输入参数,该第一测试输入参数为属于该指定参数类型且属于该指定参数范围的参数,该方法还包括:根据该定义信息中该目标接口的功能描述信息,确定若向该目标接口传入该第一测试输入参数时应得的理论响应结果;当该测试报表中该第一测试输入参数对应的实际响应结果与该理论响应结果匹配时,确定该目标接口运行正常。在另一种可能的实现方式中,该根据该目标接口的指定参数类型和指定参数范围,确定该目标接口的测试输入参数,包括:获取该指定参数范围中属于该指定参数类型的中值,将该中值确定为测试输入参数。在另一种可能的实现方式中,该测试输入参数包括第二测试输入参数,该第二测试输入参数为不属于该指定参数类型的参数,该方法还包括:当该测试报表中该第二测试输入参数对应的实际响应结果包括错误提示信息时,确定该目标接口运行正常。在另一种可能的实现方式中,该根据该目标接口的指定参数类型和指定参数范围,确定该目标接口的测试输入参数,包括:获取属于该指定参数类型的第一参数;对该第一参数的类型进行转换,得到第二参数,该第二参数不属于该指定参数类型;将该第二参数确定为测试输入参数。在另一种可能的实现方式中,该测试输入参数包括第三测试输入参数,该第三测试输入参数为不属于该指定参数范围的参数,该方法还包括:当该测试报表中该第三测试输入参数对应的实际响应结果包括错误提示信息时,确定该目标接口运行正常。在另一种可能的实现方式中,该指定参数类型包括必选参数类型,该测试输入参数包括第四测试输入参数,该第四测试输入参数为空参数,该方法还包括:当该测试报表中该第四测试输入参数对应的实际响应结果包括错误提示信息时,确定该目标接口运行正常。在另一种可能的实现方式中,该定义信息包括该目标接口的多个指定参数类型以及对应的多个指定参数范围,该根据该目标接口的指定参数类型和指定参数范围,确定该目标接口的测试输入参数,包括:将相互对应的指定参数类型和指定参数范围作为一组,得到多个分组;根据每个分组内的指定参数类型和指定参数范围,确定每个分组的备选输入参数;将属于不同分组的备选输入参数进行组合,得到多种备选参数组合;从该多种备选参数组合中选取测试输入参数组合,将该测试输入参数组合中的每个参数确定为测试输入参数。在另一种可能的实现方式中,该获取目标接口的定义信息,包括:获取js格式的第一接口文件,该第一接口文件包括该定义信息;将该第一接口文件转化为JavaScript对象表示法json格式,得到第二接口文件;将该第二接口文件转化为可扩展标记语言xml格式,得到第三接口文件;对该第三接口文件进行解析,得到该定义信息。上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。图2是根据一示例性实施例示出的一种接口测试方法的流程图,本发明实施例的执行主体为测试终端,如图2所示,该接口测试方法包括以下步骤:201、测试终端获取目标接口的定义信息。相关技术中,当需要测试目标接口时,在获取该目标接口的定义信息后,测试人员需要人工地分析该定义信息,了解关于该目标接口的功能描述信息和输入参数信息,通过大脑进行思考和判断后,才能确定测试输入参数。这种人工确定测试输入参数的过程需要耗费很长的时间,并且测试效率低下。而在本发明实施例中,测试终端可以获取目标接口的定义信息,直接根据目标接口的指定参数类型和指定参数范围,确定测试输入参数,无需测试人员分析该定义信息,从而节省了测试时间,提高了测试效率。其中,该测试终端可以为手机、电脑等,该目标接口可以为显示接口、播放接口,当然也可以为提供其他功能的接口,本发明实施例对此不做限定。该定义信息包括该目标接口的指定参数类型以及对应的指定参数范围,该指定参数类型是指该目标接口正常运行时输入参数的类型,该指定参数范围是指该目标接口正常运行时输入参数所属的范围。其中,该指定参数类型可以为数值类型、字符串类型、数组类型、自定义类型等,当然也可以为其他类型,本发明实施例在此不做限定。该指定参数范围与该指定参数类型对应,可以为0-10,a-d等。该指定参数类型与该指定参数范围的对应关系可以如表1所示。表1指定参数类型指定参数范围数值类型0-10字符串类型“中国,日本,美国”布尔类型true,false该定义信息还可以包括该目标接口的功能描述信息,该功能描述信息用于描述该目标接口在传入指定参数时所能实现的功能。例如,该目标接口可以为取中值接口,该取中值接口的指定参数类型为“数值类型”,指定参数范围为“0-10”,功能描述信息为“求取输入参数的中值”,则该取中值接口的定义信息为(数值类型,0-10,取输入参数的中值)。在实际应用中,任一接口的定义信息都是蕴含在该接口的接口文件中的,而该接口文件一般为js(JavaScript)格式,从这种格式的接口文件获取定义信息较为不便。因此,在本发明实施例中,将目标接口的接口文件的格式从js格式转换为xml(ExtensibleMarkupLanguage,可扩展标记语言)格式,便于测试终端从该接口文件中获取定义信息。具体地,该格式转换的步骤可以包括以下步骤一至步骤四:步骤一:获取js格式的第一接口文件,该第一接口文件包括该定义信息。步骤二:将该第一接口文件转化为json(JavaScriptObjectNotation,JavaScript对象表示法)格式,得到第二接口文件。由于直接从js格式的接口文件转化为xml格式的接口文件较为困难,在将接口文件的格式从js格式转化为xml格式前,测试终端可以首先将接口文件的格式从js格式转化为json格式,再从json格式的接口文件转化为xml格式的接口文件。其中,该测试终端在确定该js格式的第一接口文件后,可以根据apidoc-swagger技术协议,将该第一接口文件转化为json格式的第二接口文件。步骤三:将该第二接口文件转化为xml格式,得到第三接口文件。步骤四:对该第三接口文件进行解析,得到该定义信息。由于xml格式的第三接口文件具有可读性强、格式标准、兼容度高的特点,从xml格式的第三接口文件获取该定义信息,比从js格式的第一接口文件获取定义信息速度更快、效率更高。通过执行上述对接口文件进行格式转化的步骤,能够提高测试终端测试目标接口的效率。202、测试终端根据该目标接口的指定参数类型和指定参数范围,确定该目标接口的测试输入参数。该指定参数类型和该指定参数范围用于要求该目标接口的输入参数的类型和范围,那么,如果该目标接口运行正常,则在向该目标接口传入符合该要求的正常输入参数时,该目标接口应当返回正确的响应结果,。因此,可以向该目标接口传入正常输入参数,以根据返回的响应结果判断该目标接口是否能够正常运行。另一方面,如果该目标接口运行正常,则在向该目标接口传入其他不符合要求的输入参数时,该目标接口应当返回错误的响应结果。因此,可以向该目标接口传入异常输入参数,以根据返回的响应结果判断该目标接口是否能够正常运行。因此,当确定该目标接口的指定参数类型和指定参数范围后,该测试终端可以为该接口确定多种符合要求或者不符合要求的测试输入参数,以便更加全面、准确地测试该目标接口是否运行正常。针对确定测试输入参数的过程,可以包括以下步骤一至步骤四:步骤一、该测试输入参数包括第一测试输入参数,该第一测试输入参数为属于该指定参数类型且属于该指定参数范围的参数:测试终端选取属于该指定参数类型和该指定参数范围的参数,作为测试输入参数。例如,对于定义信息为(数值类型,0-10,求取输入参数的中值)的取中值接口而言,该测试终端可以将3作为测试输入参数。进一步地,测试终端可以获取该指定参数范围中属于该指定参数类型的中值,将该中值确定为测试输入参数。具体地,该测试终端可以获取该指定参数范围后,确定该指定参数范围中的最小边界值和最大边界值,将该最小边界值和最大边界值相加除以2,得到该指定参数范围的中值。之后,测试终端确定该中值的类型,当该中值的类型即为指定参数类型时,可将该中值作为属于该指定参数类型的中值。当该中值的类型不为指定参数类型时,将该中值进行类型转换,使该中值的类型转换为该指定参数类型,从而确定属于该指定参数类型的中值。例如,当目标接口的指定参数范围为0-100,指定参数类型为整数类型,该测试终端可以确定指定参数最小值为0,指定参数最大值为100,确定指定参数的中值为50,将50作为测试输入参数。在实际应用中,测试终端向目标接口传入测试输入参数时,可以采用“key-value”结构,为每个测试输入参数确定一个数据标识,该数据标识作为key,该测试输入参数作为value,该数据标识可以为该测试输入参数的名称、该测试终端为该测试输入参数分配的编号等。步骤二、测试终端根据该目标接口的指定参数类型,确定第二测试输入参数,该第二测试输入参数为不属于该指定参数类型的参数。为了测试当向该目标接口传入类型不符合要求的输入参数时该目标接口能否返回包括错误提示信息的响应结果,该测试终端可以获取属于该指定参数类型的第一参数,对该第一参数的类型进行转换,得到第二参数,该第二参数不属于该指定参数类型,则该第二参数属于该第二测试输入参数,该测试终端可以将该第二参数确定为测试输入参数。另外,该测试终端可以直接从该指定参数范围内随机选取任意参数,作为第一参数,对该第一参数的类型进行转换,得到不属于该指定参数类型的第二参数。例如,该目标接口的指定参数范围为0-100,指定参数类型为整数类型,该测试终端可以选取10,并将10转换为浮点数类型,得到10.0,将10.0作为测试输入参数。另外,当该第一参数的类型无法进行转换时,该测试终端可以从多种参数类型中任意选取一种与该指定参数类型不同的参数类型,并随机选取一个属于该参数类型的数值,作为测试输入参数。例如,当该指定参数类型为数值类型时,测试终端可以将属于字符串类型的“abc”作为测试输入参数。考虑如下情景:该目标接口为注册接口,该注册接口要求传入的正常用户标识不能包括特殊字符,而当用户想要注册一个用户标识,在该注册接口进行输入操作,当传入的用户标识包括特殊字符时,该注册接口应当返回错误提示信息,提示用户输入的用户标识类型错误,以便用户重新输入类型符合要求的正常用户标识。因此,当测试终端向该注册接口传入特殊字符时,根据该注册接口是否返回错误提示信息可以确定该注册接口是否运行正常。步骤三、测试终端根据该目标接口的指定参数范围,确定第三测试输入参数,该第三测试输入参数为不属于该指定参数范围的参数。为了测试当向该目标接口传入范围不符合要求的输入参数时,该目标接口能否返回包括错误提示信息的响应结果,该测试终端可以根据该指定参数范围,确定不属于该指定参数范围的第三测试输入参数。例如,当该指定参数范围为0-10时,测试终端可以将12作为测试输入参数。在一种可能的实现方式中,该测试终端可以根据该指定参数范围,确定该指定参数范围的最小边界值和该指定参数范围的最大边界值,分别选取最小边界溢出值和最大边界溢出值,作为测试输入参数。其中,该最小边界溢出值指的是小于最小边界值的数值,该最大边界溢出值指的是大于该最大边界值的数值。例如,该指定参数范围为1-10,该测试终端可以将0和11作为两个测试输入参数。考虑如下情景:该目标接口为年龄输入接口,该年龄输入接口要求传入的正常年龄数值范围应该在0-130之间,而当用户想要在该年龄输入接口输入自己的年龄数值,而输入的数值为3000时,该目标接口应当返回错误提示信息,提示用户输入的数值范围错误,以便用户重新输入属于正常年龄数值范围的年龄数值。因此,当测试终端向该年龄输入接口传入数值3000时,根据该年龄输入接口是否返回错误提示信息可以确定该年龄输入接口是否运行正常。步骤四、测试终端确定该指定参数类型包括必选参数类型,确定第四测试输入参数,该第四测试输入参数为空参数。其中,该必选参数类型是指必须进行赋值的参数。当该目标接口的指定参数类型包括必选参数类型时,为了测试当向该目标接口传入空参数,该目标接口能否返回包括错误提示信息的响应结果。测试终端获取该指定参数类型后,可以判断该指定参数类型是否包括必选参数类型,当该指定参数类型包括该必选参数类型时,将空参数作为第四测试输入参数。另外,如果该测试终端采用的测试输入参数的数据结构为“key-value”结构,则该测试终端可以将测试输入参数的数据标识key传入空参数,从而向该目标接口传入空参数。考虑如下情景:该目标接口为登录接口,对于该登录接口而言,用户密码属于必选参数类型。即,该登录接口要在获取到用户密码的前提下,才能执行登录操作,如果未获取到用户密码,将不能执行登录操作。那么,当用户通过该登录接口触发登录操作,想要基于用户标识登录却没有输入用户密码时,该登录接口应当返回例如“提醒:用户密码不能为空,请输入用户密码”的错误提示信息,提醒用户输入用户密码。因此,当测试终端向该登录接口传入空参数时,根据该登录接口是否返回错误提示信息可以确定该登录接口是否运行正常。进一步地,考虑到在实际应用中,该目标接口在运行时可能需要传入多个指定参数,并在定义信息中为每个指定参数确定指定参数类型和指定参数范围,则在测试该目标接口时,需要确定测试输入参数组合,该测试输入参数组合包括多个测试输入参数。那么,当该定义信息包括该目标接口的多个指定参数类型以及对应的多个指定参数范围时,该步骤202还可以包括以下步骤2021-2024:2021、测试终端将相互对应的指定参数类型和指定参数范围作为一组,得到多个分组。具体地,该测试终端可以根据该定义信息,确定该目标接口的多个输入参数,并分别确定每个输入参数的指定参数类型和指定参数范围,将相互对应的指定参数类型和指定参数范围作为一组,得到多个分组,分组的数量等于该多个输入参数的数量。2022、测试终端根据每个分组内的指定参数类型和指定参数范围,确定每个分组的备选输入参数。具体地,测试终端在为任一分组确定备选输入参数时,可以根据该分组内的指定参数类型和指定参数范围,采用上述步骤一至步骤四,分别为该分组确定第一测试输入参数、第二测试输入参数、第三测试输入参数和第四测试输入参数这四种测试输入参数,从而得到多个备选输入参数。该多个备选输入参数可以为同一种测试输入参数,例如该多个备选输入参数可以均为第一测试输入参数,也可以不为同一种测试输入参数,例如该多个备选输入参数可以包括第一测试输入参数和第二测试输入参数,本发明实施例对此不做限定。2023、测试终端将属于不同分组的备选输入参数进行组合,得到多种备选参数组合。当测试终端为多个分组分别确定备选输入参数后,可以从每个分组中随机选取一个备选输入参数,从而将从不同分组选取的多个备选输入参数进行组合,得到第一种备选参数组合。此后,可以从每个分组中继续随机选取一个备选输入参数,再次组合得到第二种备选参数组合,并以此类推,得到多种备选参数组合。2024、测试终端从该多种备选参数组合中选取测试输入参数组合,将该测试输入参数组合中的每个参数确定为测试输入参数。当该测试终端得到多种备选参数组合后,可以根据pairwise(配对测试)算法,对该多种备选参数组合进行分析,从而从该多种备选参数组合中选取测试输入参数。另外,该测试终端还可以向测试组合工具传入该多种备选组合,该测试组合工具可以返回测试输入组合。其中,该测试组合工具可以为pict工具、allpairs工具等,本发明实施例对此不做限定。例如,该目标接口可以包括三个输入参数a,b,c,每个输入参数的指定参数类型和指定参数范围可以如表2所示:表2输入参数abc指定参数类型整数类型、必选参数类型布尔类型浮点数类型指定参数范围1-10true/false2.0-4.0该测试终端可以将输入参数a对应的整数类型和1-10作为第一分组,将输入参数b对应的布尔类型和true/false作为第二分组,将输入参数c对应的浮点数类型和2.0-4.0作为第三分组。那么,该测试终端可以为第一分组确定备选输入参数{5,“中国”,6,null},为第二分组确定备选输入参数{true,false,30,null},为第三分组确定备选输入参数{2.0,10,a,“abc”}。从第一分组的备选输入参数中选取5,从第二分组中选取true,从第三分组中选取2.0,将(5,true,2.0)作为第一备选参数组合,然后,从第一分组的备选输入参数中选取6,从第二分组中选取true,从第三分组中选取2.0,将(6,true,2.0)作为第二备选参数组合。由于第一备选参数组合和第二备选参数组合中选用的第二分组和第三分组的备选输入参数相同,仅是选用的第一分组的备选输入参数不同,而第一分组的备选输入参数5和6均属于第一测试输入参数,是正常输入参数,因此从这两个第一测试输入参数中任意选取某一个作为测试输入参数即可达到测试目的,因此这两个备选参数组合存在冗余参数组合,如果测试冗余参数组合,将造成测试时间的浪费。因此,可以从这两个备选参数组合中选取任一个备选参数组合进行测试,从而避免了测试冗余参数组合的情况,节约了测试时间,减少了测试工作量。203、测试终端向该目标接口传入该测试输入参数。例如,该目标接口在服务端运行时,该测试终端与该目标接口可以基于HTTP(HyperTextTransferProtocol,超文本传输协议)进行数据的传送,即该测试终端可以向该目标接口发送HTTP请求,该HTTP请求携带该测试输入参数,以向该目标接口传入该测试输入参数。其中,该HTTP请求可以为get请求、post请求等,本发明实施例对此不做限定。204、该目标接口基于该测试输入参数运行,并生成测试报表。其中,该测试报表包括该目标接口在传入测试输入参数后的实际响应结果,该测试报表用于确定该目标接口是否运行正常。另外,当该测试终端向该目标接口传入不同的测试输入参数时,该目标接口可以生成与该测试输入参数对应的测试报表。在第一种可能的实现方式中,当该测试输入参数包括第一测试输入参数时,测试终端根据该定义信息中该目标接口的功能描述信息,确定若向该目标接口传入该第一测试输入参数时应得的理论响应结果,当该测试报表中该第一测试输入参数对应的实际响应结果与该理论响应结果匹配时,确定该目标接口运行正常,当该测试报表中该第二测试输入参数对应的实际响应结果与该理论响应结果不匹配时,确定该目标接口运行错误。基于上述表1的举例,该目标接口的指定参数类型为数值类型,指定参数范围为0-10,功能描述信息为“求取输入参数的中值”,当向该目标接口传入8时,理论响应结果为4,但当该目标接口基于8运行后,测试报表中与8对应的实际响应结果为2,此时,确定该目标接口运行错误。在第二种可能的实现方式中,当该测试输入参数包括第二测试输入参数时,测试终端判断该测试报表中该第二测试输入参数对应的实际响应结果是否包括错误提示信息,当该测试报表中该第二测试输入参数对应的实际响应结果包括错误提示信息时,确定该目标接口运行正常,当该测试报表中该第二测试输入参数对应的实际响应结果不包括错误提示信息时,确定该目标接口运行错误。基于上述表1的举例,该目标接口的指定参数类型为数值类型,向该目标接口传入属于字符串类型的“abc”后,该目标接口基于“abc”运行后,测试报表与“abc”对应的实际响应结果包括“输入参数类型错误”的错误提示信息,此时可以确定该目标接口运行正常。在第三种可能的实现方式中,当该测试输入参数包括第三测试输入参数时,测试终端判断该测试报表中该第二测试输入参数对应的实际响应结果是否包括错误提示信息,当该测试报表中该第三测试输入参数对应的实际响应结果包括错误提示信息时,确定该目标接口运行正常,当该测试报表中该第三测试输入参数对应的实际响应结果不包括错误提示信息时,确定该目标接口运行错误。基于上述表1的举例,该目标接口的指定参数范围为0-10,向该目标接口传入11后,该目标接口基于11运行后,测试报表与11对应的实际响应结果包括“输入参数范围错误”的错误提示信息,此时可以确定该目标接口运行正常。在第四种可能的实现方式中,当该测试输入参数包括第四测试输入参数时,测试终端判断该测试报表中该第二测试输入参数对应的实际响应结果是否包括错误提示信息,当该测试报表中该第四测试输入参数对应的实际响应结果包括错误提示信息时,确定该目标接口运行正常,当该测试报表中该第四测试输入参数对应的实际响应结果不包括错误提示信息时,确定该目标接口运行错误。该目标接口的输入参数a属于必选参数类型,测试终端将空参数作为测试输入参数a,向该目标接口传入空参数,则当目标接口基于空参数运行后,测试报表中与空参数对应的响应结果包括“输入参数a不能为空”的错误提示信息,此时可以确定该目标接口运行正常。本发明实施例提供的方法,通过获取目标接口的定义信息,根据该目标接口的指定参数类型和指定参数范围,确定该目标接口的测试输入参数,并自动向该目标接口传入该测试输入参数,使得该目标接口基于该测试输入参数运行,并生成测试报表,无需测试人员人工地分析定义信息即可对目标接口进行测试,节约了测试时间,提高了测试效率。进一步地,将第一接口文件的格式从js格式转换为xml格式,从而便于从第一接口文件中获取定义信息,提高了测试效率。进一步地,通过all-pairs算法从多种备选参数组合中选取测试输入参数组合,避免了测试冗余参数组合的情况,从而节约了测试时间,减少了测试工作量。图3是本发明实施例提供的一种子元素测试装置的结构示意图,如图3所示,该装置包括获取模块301、确定模块302和参数传入模块303。获取模块301,用于获取目标接口的定义信息,所述定义信息包括所述目标接口的指定参数类型以及对应的指定参数范围,所述指定参数类型是指所述目标接口正常运行时输入参数的类型,所述指定参数范围是指所述目标接口正常运行时输入参数所属的范围;确定模块302,用于根据所述目标接口的指定参数类型和指定参数范围,确定所述目标接口的测试输入参数;参数传入模块303,用于向所述目标接口传入所述测试输入参数,使得所述目标接口基于所述测试输入参数运行,并生成测试报表,所述测试报表用于确定所述目标接口是否运行正常。本发明实施例提供的装置,通过获取目标接口的定义信息,根据该目标接口的指定参数类型和指定参数范围,确定该目标接口的测试输入参数,并自动向该目标接口传入该测试输入参数,使得该目标接口基于该测试输入参数运行,并生成测试报表,无需测试人员人工地分析定义信息即可对目标接口进行测试,节约了测试时间,提高了测试效率。在一种可能的实现方式中,所述测试输入参数包括第一测试输入参数,所述第一测试输入参数为属于所述指定参数类型且属于所述指定参数范围的参数,所述确定模块302,还用于根据所述定义信息中所述目标接口的功能描述信息,确定若向所述目标接口传入所述第一测试输入参数时应得的理论响应结果;所述确定模块302,还用于当所述测试报表中所述第一测试输入参数对应的实际响应结果与所述理论响应结果匹配时,确定所述目标接口运行正常。在另一种可能的实现方式中,所述确定模块302,还用于获取所述指定参数范围中属于所述指定参数类型的中值,将所述中值确定为测试输入参数。在另一种可能的实现方式中,所述测试输入参数包括第二测试输入参数,所述第二测试输入参数为不属于所述指定参数类型的参数,所述确定模块302,还用于当所述测试报表中所述第二测试输入参数对应的实际响应结果包括错误提示信息时,确定所述目标接口运行正常。在另一种可能的实现方式中,所述根据所述目标接口的指定参数类型和指定参数范围,所述确定模块302,包括:获取单元,用于获取属于所述指定参数类型的第一参数;类型转换单元,用于对所述第一参数的类型进行转换,得到第二参数,所述第二参数不属于所述指定参数类型;确定单元,用于将所述第二参数确定为测试输入参数。在另一种可能的实现方式中,所述测试输入参数包括第三测试输入参数,所述第三测试输入参数为不属于所述指定参数范围的参数,所述确定模块302,还用于当所述测试报表中所述第三测试输入参数对应的实际响应结果包括错误提示信息时,确定所述目标接口运行正常。在另一种可能的实现方式中,所述指定参数类型包括必选参数类型,所述测试输入参数包括第四测试输入参数,所述第四测试输入参数为空参数,所述确定模块302,还用于当所述测试报表中所述第四测试输入参数对应的实际响应结果包括错误提示信息时,确定所述目标接口运行正常。在另一种可能的实现方式中,所述定义信息包括所述目标接口的多个指定参数类型以及对应的多个指定参数范围,所述根据所述目标接口的指定参数类型和指定参数范围,所述确定模块302,包括:分组单元,用于将相互对应的指定参数类型和指定参数范围作为一组,得到多个分组;确定单元,用于根据每个分组内的指定参数类型和指定参数范围,确定每个分组的备选输入参数;组合单元,用于将属于不同分组的备选输入参数进行组合,得到多种备选参数组合;选取单元,用于从所述多种备选参数组合中选取测试输入参数组合,将所述测试输入参数组合中的每个参数确定为测试输入参数。在另一种可能的实现方式中,所述获取模块301,包括:获取单元,用于获取js格式的第一接口文件,所述第一接口文件包括所述定义信息;格式转化单元,用于将所述第一接口文件转化为JavaScript对象表示法json格式,得到第二接口文件;所述格式转化单元,还用于将所述第二接口文件转化为可扩展标记语言xml格式,得到第三接口文件;解析单元,用于对所述第三接口文件进行解析,得到所述定义信息。需要说明的是:上述实施例提供的接口测试装置在测试接口时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将测试终端的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的接口测试装置与接口测试方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。本实施例提供了一种终端,该终端可以用于执行上述各个实施例中提供的接口测试方法。参见图4,该终端400包括:终端400可以包括RF(RadioFrequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(WirelessFidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源40等部件。本领域技术人员可以理解,图4中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(LowNoiseAmplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(GlobalSystemofMobilecommunication,全球移动通讯系统)、GPRS(GeneralPacketRadioService,通用分组无线服务)、CDMA(CodeDivisionMultipleAccess,码分多址)、WCDMA(WidebandCodeDivisionMultipleAccess,宽带码分多址)、LTE(LongTermEvolution,长期演进)、电子邮件、SMS(ShortMessagingService,短消息服务)等。存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端400的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端400的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(LiquidCrystalDisplay,液晶显示器)、OLED(OrganicLight-EmittingDiode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图4中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。终端400还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端400移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端400还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。音频电路160、扬声器161,传声器162可提供用户与终端400之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端400的通信。WiFi属于短距离无线传输技术,终端400通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图4示出了WiFi模块170,但是可以理解的是,其并不属于终端400的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。处理器180是终端400的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端400的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。终端400还包括给各个部件供电的电源40(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源40还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。尽管未示出,终端400还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端的显示单元是触摸屏显示器,终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行。所述一个或者一个以上程序包含用于实施上述实施例中测试终端所执行操作的指令。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1