CN115408277B - 一种接口测试方法及装置 - Google Patents

一种接口测试方法及装置 Download PDF

Info

Publication number
CN115408277B
CN115408277B CN202211037847.8A CN202211037847A CN115408277B CN 115408277 B CN115408277 B CN 115408277B CN 202211037847 A CN202211037847 A CN 202211037847A CN 115408277 B CN115408277 B CN 115408277B
Authority
CN
China
Prior art keywords
parameter
request
test
test case
type
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
Application number
CN202211037847.8A
Other languages
English (en)
Other versions
CN115408277A (zh
Inventor
杨昊
倪小敏
陈瑞林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Leading Technology Co Ltd
Original Assignee
Nanjing Leading Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Leading Technology Co Ltd filed Critical Nanjing Leading Technology Co Ltd
Priority to CN202211037847.8A priority Critical patent/CN115408277B/zh
Publication of CN115408277A publication Critical patent/CN115408277A/zh
Application granted granted Critical
Publication of CN115408277B publication Critical patent/CN115408277B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种接口测试方法及装置,通过获取测试配置文件、测试数据和参数模板;解析测试数据,获得请求参数集合;针对请求参数集合中每个请求参数,根据测试配置文件中第一校验规则和参数模板,生成与请求参数对应的异常类型测试用例;运行异常类型测试用例,获得异常类型校验结果。本发明可以基于测试配置文件、请求参数集合和参数模板,以自动化的形式生成准确的测试用例用以进行后续的测试,使得测试用例可以覆盖测试配置文件中枚举的各种异常场景,提高了测试用例的准确性和适用性,从而也实现了测试用例的自动化生成,极大降低了对人工的依赖,提高了接口测试的覆盖率和效率。

Description

一种接口测试方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种接口测试方法、装置、电子设备及计算机可读存储介质。
背景技术
伴随着微服务架构的广泛应用,越来越多的功能场景依赖于接口来实现,接口测试是保证系统功能运行稳定的基础,一个优良完善的接口对服务整体健壮性、产品质量,都有着重大意义。
目前,可以通过人工引入待测接口的入参字段和参数类型,形成对应的测试用例,通过运行测试用例,可以基于运行结果实现对接口的测试。
但是,目前待测接口的入参字段和参数类型数量较多,人工测试导致测试效率和覆盖率都较低。
发明内容
本发明实施例提供一种接口测试方法及装置,以解决现有技术中人工测试导致测试效率和覆盖率都较低的问题。
第一方面,本发明实施例提供了一种接口测试方法,所述方法包括:
获取测试配置文件、测试数据和参数模板,所述测试配置文件包括:针对所述测试数据中请求参数的异常类型的第一校验规则;所述参数模板包括:测试数据中的请求参数与正确参数类型的对应关系;
解析所述测试数据,获得请求参数集合,所述请求参数集合包括:测试数据中的请求参数的参数类型;
针对所述请求参数集合中每个所述请求参数,根据所述第一校验规则和所述参数模板,生成与所述请求参数对应的异常类型测试用例;所述异常类型测试用例用于校验针对请求参数的异常类型的响应是否正常;
运行所述异常类型测试用例,获得异常类型校验结果。
第二方面,本发明实施例提供了一种接口测试装置,所述装置包括:
获取模块,用于获取测试配置文件、测试数据和参数模板,所述测试配置文件包括:针对所述测试数据中请求参数的异常类型的第一校验规则;所述参数模板包括:测试数据中的请求参数与正确参数类型的对应关系;
解析模块,用于解析所述测试数据,获得请求参数集合,所述请求参数集合包括:测试数据中的请求参数的参数类型;
生成模块,用于针对所述请求参数集合中每个所述请求参数,根据所述第一校验规则和所述参数模板,生成与所述请求参数对应的异常类型测试用例;所述异常类型测试用例用于校验针对请求参数的异常类型的响应是否正常;
运行模块,用于运行所述异常类型测试用例,获得异常类型校验结果。
第三方面,本发明实施例还提供了一种电子设备,包括处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现所述第一方面的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行所述第一方面的方法。
在本发明实施例中,可以基于测试配置文件、请求参数集合和参数模板,以自动化的形式生成准确的测试用例用以进行后续的测试,使得测试用例可以覆盖测试配置文件中枚举的各种异常场景,提高了测试用例的准确性和适用性,另外,测试用例是基于测试配置文件中的校验规则,按照抽象出的泛化规则自动化对测试模板修改所得到的,从而也实现了测试用例的自动化生成,极大降低了对人工的依赖,提高了接口测试的覆盖率和效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
图1是本发明实施例提供的一种接口测试方法的步骤流程图;
图2是本发明实施例提供的又一种接口测试方法的步骤流程图;
图3是本发明实施例提供的一种接口测试装置框图;
图4是本发明实施例提供的一种电子设备的逻辑框图;
图5是本发明实施例提供的一种另一种电子设备的逻辑框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1,是本发明实施例提供的一种接口测试方法的步骤流程图,如图1所示,该方法可以包括:
步骤101、获取测试配置文件、测试数据和参数模板。
其中,测试配置文件包括:针对所述测试数据中请求参数的异常类型的第一校验规则;所述参数模板包括:测试数据中的请求参数与正确参数类型的对应关系。
在本发明实施例中,测试数据可以是用于实现服务功能的源代码数据,其中定义了接口来辅助功能的实现,接口具体泛指实体把自己提供给外界的一种抽象化物,用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。
在实际应用中,调用接口的过程中可以使用到接口的请求参数,本发明实施例对接口的测试,可以为对接口的请求参数的测试,以实现对接口的请求参数的名称规范检查、异常类型检查。
具体的,本发明实施例可以获取测试配置文件和参数模板,来对测试数据中接口的请求参数进行测试,测试配置文件主要基于规范检查、异常类型检查的需求,定义了对请求参数的名称规范化校验规则(第二校验规则)和对请求参数的异常类型的校验规则(第一校验规则),这些校验规则用以辅助实现名称规范检查、异常类型检查;如第一校验规则可以对请求参数的异常类型进行枚举,以记录请求参数出现过的异常场景,第二校验规则可以对错误名称的场景进行记录,如非法字符、命名不符合预设规范等。
参数模板则是事先定义好的记录了请求参数与其正确参数类型的对应关系的模板,参数模板可以作为参数信息的基准模板,从而记录请求参数的正确信息。
步骤102、解析所述测试数据,获得请求参数集合,所述请求参数集合包括:测试数据中的请求参数的参数类型。
在本发明实施例中,为了实现对请求参数的处理,可以通过解析测试数据,从测试数据中提取请求参数的信息,以及请求参数之间的关系链路,从而构成请求参数集合,后续可以通过请求参数集合实现接口测试,降低了测试数据中其他数据造成的干扰。
具体的,本发明实施例支持基于测试数据运行时实际调用的一个请求参数来获取请求参数集合,具体为解析该请求参数的调用链路,来获取调用链路上的所有请求参数的信息构成集合;本发明实施例还支持解析测试数据的JSON模式(json schema)定义文档来获取所有请求参数的信息构成集合;本发明实施例还支持通过调用服务的接口管理平台来获取测试数据的所有请求参数的信息构成集合,对此本发明实施例不做具体方式的限定。
步骤103、针对所述请求参数集合中每个所述请求参数,根据所述第一校验规则和所述参数模板,生成与所述请求参数对应的异常类型测试用例;所述异常类型测试用例用于校验针对请求参数的异常类型的响应是否正常。
在相关接口测试方案中,是通过开发人员来人工引入接口的请求参数的入参字段、参数类型来构建测试用例的,在测试数据功能复杂接口众多的情况下,无疑对开发人员的个人能力具有较高要求,在项目快速迭代的当前,人工测试也越来越难以追上项目的更新速度,更难以覆盖各种异常场景,导致人工测试效率和精确度都较差。
为了解决上述问题,在本发明实施例可以基于测试配置文件、请求参数集合和参数模板,以自动化的形式生成准确的测试用例用以进行后续的测试,并且测试用例可以覆盖测试配置文件中枚举的各种异常场景,在保证了测试用例对异常场景的广泛覆盖的基础上,提高了测试用例的准确性,另外,测试用例是基于测试配置文件中的校验规则,按照抽象出的泛化规则自动化对测试模板修改所得到的,从而也实现了测试用例的自动化生成,本发明实施例仅需在测试配置文件和参数模板的维护上使用少量人力资源,针对接口测试的整个过程,极大降低了对人工的依赖。
具体的,针对该步骤,接口的请求参数的异常类型检查,是通过运行请求参数的类型为异常类型的测试用例,来确定测试结果中是否针对异常类型进行了报错,若报错则测试通过,说明系统针对异常类型具有自查功能的实现;若未报错则测试不通过,说明系统存在对异常类型的检测漏洞。因此,本发明实施的测试配置文件包括:针对测试数据中请求参数的异常类型的第一校验规则,即文件中枚举了请求参数的各种异常类型,而参数模板中又记录了请求参数对应的正确参数类型,本发明实施例可以针对所述请求参数集合中每个请求参数,根据第一校验规则中该参数的异常类型,对参数模板中该参数的正确参数类型分别进行替换,生成与请求参数对应的异常类型测试用例,该异常类型测试用例中,请求参数的正确参数类型被替换为了异常类型,这样后续在运行异常类型测试用例的过程中,即可通过运行结果判断测试是否通过了。
步骤104、运行所述异常类型测试用例,获得异常类型校验结果。
在本发明实施例中,由于针对请求参数集合中每个请求参数,通过测试配置文件的校验规则对参数模板进行修改的方式,自动生成了每个请求参数对应的测试用例,则后续系统运行测试用例,即可通过运行结果,来判断系统对接口的异常场景的检查功能是否正常,从而实现对接口健壮性和正确性的检测测试。
综上,在本发明实施例中,可以基于测试配置文件、请求参数集合和参数模板,以自动化的形式生成准确的测试用例用以进行后续的测试,使得测试用例可以覆盖测试配置文件中枚举的各种异常场景,提高了测试用例的准确性和适用性,另外,测试用例是基于测试配置文件中的校验规则,按照抽象出的泛化规则自动化对测试模板修改所得到的,从而也实现了测试用例的自动化生成,极大降低了对人工的依赖,提高了接口测试的覆盖率和效率。
图2是本发明实施例提供的又一种接口测试方法的步骤流程图,如图2所示,该方法可以包括:
步骤201、获取测试配置文件、测试数据和参数模板。
其中,所述测试配置文件包括:针对所述测试数据中请求参数的异常类型的第一校验规则;所述参数模板包括:测试数据中的请求参数与正确参数类型的对应关系。
该步骤具体可以参照上述步骤101,此处不再赘述。
步骤202、解析所述测试数据,获得请求参数集合。
其中,所述请求参数集合包括:测试数据中的请求参数的参数类型。
该步骤具体可以参照上述步骤102,此处不再赘述。
可选地,步骤202具体可以包括:
子步骤2021、在解析所述测试数据的过程中,若解析获得的请求参数为嵌套类型,则按照嵌套路径依次获取处于所述嵌套路径上的请求参数,以及获取所述请求参数的参数类型。
子步骤2022、若解析获得的请求参数为非嵌套类型,则直接获取所述请求参数的参数类型。
在本发明实施例中,针对子步骤2021-2022,针对接口的一个调用请求的实现,可能需要多个请求参数的参与,且这些请求参数可以按照一定的顺序形成嵌套结构,为了完整获取参与调用接口的所有请求参数,本发明实施例可以在解析测试数据的过程中,对解析获得的请求参数的结构类型进行分析,若结构类型为嵌套类型,则按照嵌套路径依次获取处于嵌套路径上的请求参数,以及获取请求参数的参数类型从而组合形成请求参数集合;若结构类型为非嵌套类型,则直接获取请求参数的参数类型并添加进请求参数集合中。
步骤203、针对所述请求参数集合中每个所述请求参数,通过所述第二校验规则对所述请求参数的参数名称进行校验,获得名称校验结果。
其中,所述请求参数集合还包括:测试数据中的请求参数的参数名称,所述测试配置文件还包括:针对请求参数的参数名称的第二校验规则。
具体的,请求参数集合可以以请求参数为维度,包含多个请求参数各自的参数信息,参数信息具体可以包括:请求参数的参数名称、默认值、参数类型、参数路径,其中,默认值等同于本发明实施例的参数模板中记录的与该请求参数对应的正确参数类型,参数路径则用于表征该请求参数与其他关联请求参数之间的关联关系。参数信息可以为map结构,其中键(key)为参数名称,键值(value)为默认值、参数类型、参数路径。
进一步的,请求参数的参数名称错误是调用接口时时常出现的错误,为了提高系统的运行健壮性,本发明实施例可以对请求参数的参数名称进行校验,具体的,测试配置文件中可以定义针对请求参数的参数名称的第二校验规则,第二校验规则可以用于判断参数名称是否错误,如参数名称是否符合驼峰命名规范(一种当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母的命名规范)、参数名称是否符合RestFul(一种网络应用程序的设计风格和开发方式)风格、参数名称是否包含非法字符等。则基于第二校验规则,可以遍历请求参数集合中的每个请求参数,从而对请求参数的参数名称进行校验,获得每个请求参数的参数名称的名称校验结果。名称校验结果包括通过和不通过,若名称校验结果为不通过,则新增一条校验失败记录,其中包含具体参数信息和失败原因,完成全部参数遍历后,输出失败详情,即得到名称校验结果。
步骤204、从所述第一校验规则中确定所述请求参数对应的异常类型,并在所述参数模板中将所述请求参数的参数类型分别替换为所述异常类型,获得与所述请求参数对应的异常类型测试用例。
其中,所述异常类型与所述异常类型测试用例一一对应。
步骤205、运行所述异常类型测试用例,获得异常类型校验结果。
在本发明实施例中,针对步骤204-205,异常类型的异常类型测试用例的生成,具体是通过从第一校验规则中确定请求参数对应的异常类型,并在参数模板中将请求参数的参数类型分别替换为异常类型来实现的,完成替换后的参数模板可以作为与请求参数对应的异常类型测试用例。第一校验规则可以通过map容器进行存储,其中键(key)为请求参数的字段类型,键值(value)为请求参数对应的一个或多个异常类型。
例如,假设测试配置文件的第一校验规则包含请求参数1,并记录了请求参数1对应的异常类型包括:异常类型a、异常类型b、异常类型c;参数模板记录了请求参数1对应的正确参数类型d。
针对异常类型a,可以将参数模板中的正确参数类型d替换为该异常类型a,得到包括请求参数1和异常类型a的对应关系的异常类型测试用例1;
针对异常类型b,可以将参数模板中的正确参数类型d替换为该异常类型b,得到包括请求参数1和异常类型b的对应关系的异常类型测试用例2;
针对异常类型c,可以将参数模板中的正确参数类型d替换为该异常类型c,得到包括请求参数1和异常类型c的对应关系的异常类型测试用例3。
以异常类型测试用例1为例,后续系统可以运行异常类型测试用例1,若运行结果为“检测出异常类型a”,则异常类型测试用例1检测通过;若运行结果不包含“检测出异常类型a”,则异常类型测试用例1检测不通过。对于异常类型测试用例2、异常类型测试用例3同理,这样就通过异常类型测试用例1、2、3,实现了对异常类型a、b、c这三种异常场景的检测。
可选地,步骤205具体可以包括:
子步骤2051、针对当前请求参数,将所述参数模板中所述当前请求参数的参数类型分别替换为:与所述当前请求参数对应的异常类型之后,获得与所述当前请求参数对应的异常类型测试用例。
子步骤2052、针对下一个请求参数,将所述参数模板已替换的参数类型复原,并将复原后的参数模板中所述下一个请求参数的参数类型分别替换为:与所述下一个请求参数对应的异常类型之后,获得与所述下一个请求参数对应的异常类型测试用例。
在本发明实施例中,针对子步骤2051-2052,每个异常类型测试用例的生成都是独立的,每个异常类型测试用例生成后,都会将替换过参数类型的参数模板复原为未替换前的状态,以供下个异常类型测试用例的生成时使用。
步骤206、针对所述请求参数集合中每个所述请求参数,根据所述参数模板,生成与所述请求参数对应的参数缺失测试用例;所述参数缺失测试用例用于校验针对请求参数缺失的响应是否正常。
步骤207、运行所述参数缺失测试用例,获得参数缺失校验结果。
在本发明实施例中,还存在一种接口检测,旨在检测调用接口时的请求参数是否有缺失,具体的本发明实施例针对请求参数集合中每个请求参数,根据参数模板,自动生成与请求参数对应的参数缺失测试用例,从而通过参数缺失测试用例来检测接口的请求参数缺失是否响应正常,从而更加完善系统对接口健壮性的检测需求。
可选地,步骤206具体可以包括:
子步骤2061、将所述参数模板中的所述请求参数进行删除后,获得与所述请求参数对应的参数缺失测试用例。
在本发明实施例中,接口的请求参数的缺失检查,是通过运行缺失某一必要请求参数的测试用例,来确定测试结果中是否针对请求参数的缺失进行了报错,若报错则测试通过,说明系统针对请求参数的缺失具有自查功能的实现;若未报错则测试不通过,说明系统存在对请求参数的缺失的检测漏洞。
具体的,参数模板中记录了调用接口所需的所有请求参数对应的正确参数类型,本发明实施例可以针对请求参数集合中每个请求参数,将参数模板中的请求参数进行删除后,获得与请求参数对应的参数缺失测试用例。
例如,假设请求参数集合包括调用接口所需的请求参数1、2、3;参数模板记录了请求参数1对应的正确参数类型d、请求参数2对应的正确参数类型e、请求参数3对应的正确参数类型f。
针对请求参数1,可以将参数模板中的请求参数1与正确参数类型d的对应关系进行删除,仅保留请求参数2与正确参数类型e的对应关系、请求参数3与正确参数类型f的对应关系,得到参数缺失测试用例1;
针对请求参数2,可以将参数模板中的请求参数2与正确参数类型e的对应关系进行删除,仅保留请求参数1与正确参数类型d的对应关系、请求参数3与正确参数类型f的对应关系,得到参数缺失测试用例2;
针对请求参数3,可以将参数模板中的请求参数3与正确参数类型f的对应关系进行删除,仅保留请求参数2与正确参数类型e的对应关系、请求参数1与正确参数类型d的对应关系,得到参数缺失测试用例3。
以参数缺失测试用例1为例,后续系统可以运行参数缺失测试用例1,若运行结果为“缺失请求参数1”,则参数缺失测试用例1检测通过;若运行结果不包含“缺失请求参数1”,则参数缺失测试用例1检测不通过。对于参数缺失测试用例2、参数缺失测试用例3同理,这样就通过参数缺失测试用例1、2、3,实现了对三个请求参数的缺失场景的检测。
可选地,子步骤2061具体可以包括:
子步骤A1、针对当前请求参数,将所述参数模板中的所述当前请求参数进行删除后,获得与所述当前请求参数对应的参数缺失测试用例。
子步骤A2、针对下一个请求参数,将所述参数模板已删除的请求参数复原,并将复原后的参数模板中的所述下一个请求参数进行删除后,获得与所述下一个请求参数对应的参数缺失测试用例。
在本发明实施例中,针对子步骤A1-A2,每个参数缺失测试用例的生成都是独立的,每个参数缺失测试用例生成后,都会将删除过参数类型的参数模板复原为未删除前的状态,以供下个参数缺失测试用例的生成时使用。
步骤208、将所述参数缺失校验结果、所述异常类型校验结果、所述名称校验结果统一输出并展示。
针对自动生成的参数缺失测试用例、异常类型测试用例,可以灵活选择测试用例的输出运行形式,一种方式中,可以结合各类接口测试工具、接口自动化工具进行测试用例的使用。如,将测试用例输出为逗号分隔值(Comma-Separated Values,CSV)格式,来便捷的结合Jmeter(一种接口功能测试及压力测试工具)、Metersphere(一站式开源持续测试平台)使用。另一种方式中,可以将测试用例嵌入到自研的接口测试工具,可以将测试用例直接作为参数进行调用,完成测试工作。
最后,接口测试所得的参数缺失校验结果、异常类型校验结果、名称校验结果统一输出并展示,从而供开发人员从全局视角查看检测结果。
可选地,所述方法还可以包括:
步骤209、获取第一通用校验规则,以及针对业务场景配置的第一个性化配置校验规则,并将所述第一通用校验规则和所述第一个性化配置校验规则组合为所述第一校验规则;
步骤210、获取第二通用校验规则,以及针对业务场景配置的第二个性化配置校验规则,并将所述第二通用校验规则和所述第二个性化配置校验规则组合为所述第二校验规则。
在本发明实施例中,针对步骤209-210,本发明实施例可以基于多数测试场景下存在的通用校验规则,分别建立针对参数名称校验的第二通用校验规则(如参数名称是否符合驼峰命名规则、参数名称是否符合RestFul风格等)和针对异常类型校验的第一通用校验规则,以及针对业务场景独立配置针对参数名称校验的第二个性化配置校验规则(如该场景下参数名称是否包含该场景下定义的特殊字符等)和针对异常类型校验的第一个性化配置校验规则。
因此,通用校验规则可以快速覆盖各场景适用的通用规则,而个性化校验规则满足了当前场景的个性化校验需求,这样的规则划分能降低开发人员对规则的维护难度,也提升了开发人员针对不同场景对应配置个性化测试需求的能力,并且还实现了校验点的可配置化,通过对通用配置、个性化配置的结合使用,使测试规则有良好的扩展性,可以同时应用于不同产品的使用,同时也通过不断更新迭代,沉淀出一组成熟的校验点。
综上,在本发明实施例中,可以基于测试配置文件、请求参数集合和参数模板,以自动化的形式生成准确的测试用例用以进行后续的测试,使得测试用例可以覆盖测试配置文件中枚举的各种异常场景,提高了测试用例的准确性和适用性,另外,测试用例是基于测试配置文件中的校验规则,按照抽象出的泛化规则自动化对测试模板修改所得到的,从而也实现了测试用例的自动化生成,极大降低了对人工的依赖,提高了接口测试的覆盖率和效率。
图3是本发明实施例提供的一种接口测试装置的框图,该装置30包括:
获取模块301,用于获取测试配置文件、测试数据和参数模板,所述测试配置文件包括:针对所述测试数据中请求参数的异常类型的第一校验规则;所述参数模板包括:测试数据中的请求参数与正确参数类型的对应关系;
解析模块302,用于解析所述测试数据,获得请求参数集合,所述请求参数集合包括:测试数据中的请求参数的参数类型;
生成模块303,用于针对所述请求参数集合中每个所述请求参数,根据所述第一校验规则和所述参数模板,生成与所述请求参数对应的异常类型测试用例;所述异常类型测试用例用于校验针对请求参数的异常类型的响应是否正常;
运行模块304,用于运行所述异常类型测试用例,获得异常类型校验结果。
可选地,所述请求参数集合还包括:测试数据中的请求参数的参数名称,所述测试配置文件还包括:针对请求参数的参数名称的第二校验规则,所述装置还包括:
名称校验模块,用于针对所述请求参数集合中每个所述请求参数,通过所述第二校验规则对所述请求参数的参数名称进行校验,获得名称校验结果。
可选地,所述装置还包括:
参数缺失用例模块,用于针对所述请求参数集合中每个所述请求参数,根据所述参数模板,生成与所述请求参数对应的参数缺失测试用例;所述参数缺失测试用例用于校验针对请求参数缺失的响应是否正常;
参数缺失校验模块,用于运行所述参数缺失测试用例,获得参数缺失校验结果。
可选地,所述参数缺失用例模块,包括:
删除子模块,用于将所述参数模板中的所述请求参数进行删除后,获得与所述请求参数对应的参数缺失测试用例。
可选地,所述删除子模块,包括:
第一处理单元,用于针对当前请求参数,将所述参数模板中的所述当前请求参数进行删除后,获得与所述当前请求参数对应的参数缺失测试用例;
第二处理单元,用于针对下一个请求参数,将所述参数模板已删除的请求参数复原,并将复原后的参数模板中的所述下一个请求参数进行删除后,获得与所述下一个请求参数对应的参数缺失测试用例。
可选地,所述生成模块303,包括:
替换子模块,用于从所述第一校验规则中确定所述请求参数对应的异常类型,并在所述参数模板中将所述请求参数的参数类型分别替换为所述异常类型,获得与所述请求参数对应的异常类型测试用例,所述异常类型与所述异常类型测试用例一一对应。
可选地,所述替换子模块,包括:
第三处理单元,用于针对当前请求参数,将所述参数模板中所述当前请求参数的参数类型分别替换为:与所述当前请求参数对应的异常类型之后,获得与所述当前请求参数对应的异常类型测试用例;
第四处理单元,用于针对下一个请求参数,将所述参数模板已替换的参数类型复原,并将复原后的参数模板中所述下一个请求参数的参数类型分别替换为:与所述下一个请求参数对应的异常类型之后,获得与所述下一个请求参数对应的异常类型测试用例。
可选地,所述装置还包括:
第一建立模块,用于获取第一通用校验规则,以及针对业务场景配置的第一个性化配置校验规则,并将所述第一通用校验规则和所述第一个性化配置校验规则组合为所述第一校验规则;
第二建立模块,用于获取第二通用校验规则,以及针对业务场景配置的第二个性化配置校验规则,并将所述第二通用校验规则和所述第二个性化配置校验规则组合为所述第二校验规则。
可选地,所述解析模块301,包括:
第一解析子模块,用于在解析所述测试数据的过程中,若解析获得的请求参数为嵌套类型,则按照嵌套路径依次获取处于所述嵌套路径上的请求参数,以及获取所述请求参数的参数类型;
第二解析子模块,用于若解析获得的请求参数为非嵌套类型,则直接获取所述请求参数的参数类型。
综上,在本发明实施例中,可以基于测试配置文件、请求参数集合和参数模板,以自动化的形式生成准确的测试用例用以进行后续的测试,使得测试用例可以覆盖测试配置文件中枚举的各种异常场景,提高了测试用例的准确性和适用性,另外,测试用例是基于测试配置文件中的校验规则,按照抽象出的泛化规则自动化对测试模板修改所得到的,从而也实现了测试用例的自动化生成,极大降低了对人工的依赖,提高了接口测试的覆盖率和效率。
图4是根据一示例性实施例示出的一种电子设备600的框图。例如,电子设备600可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图4,电子设备600可以包括以下一个或多个组件:处理组件602,存储器604,电源组件606,多媒体组件608,音频组件610,输入/输出(I/O)的接口612,传感器组件614,以及通信组件616。
处理组件602通常控制电子设备600的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件602可以包括一个或多个处理器620来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件602可以包括一个或多个模块,便于处理组件602和其他组件之间的交互。例如,处理组件602可以包括多媒体模块,以方便多媒体组件608和处理组件602之间的交互。
存储器604用于存储各种类型的数据以支持在电子设备600的操作。这些数据的示例包括用于在电子设备600上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,多媒体等。存储器604可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件606为电子设备600的各种组件提供电力。电源组件606可以包括电源管理系统,一个或多个电源,及其他与为电子设备600生成、管理和分配电力相关联的组件。
多媒体组件608包括在所述电子设备600和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的分界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件608包括一个前置摄像头和/或后置摄像头。当电子设备600处于操作模式,如拍摄模式或多媒体模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件610用于输出和/或输入音频信号。例如,音频组件610包括一个麦克风(MIC),当电子设备600处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器604或经由通信组件616发送。在一些实施例中,音频组件610还包括一个扬声器,用于输出音频信号。
I/O接口612为处理组件602和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件614包括一个或多个传感器,用于为电子设备600提供各个方面的状态评估。例如,传感器组件614可以检测到电子设备600的打开/关闭状态,组件的相对定位,例如所述组件为电子设备600的显示器和小键盘,传感器组件614还可以检测电子设备600或电子设备600一个组件的位置改变,用户与电子设备600接触的存在或不存在,电子设备600方位或加速/减速和电子设备600的温度变化。传感器组件614可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件614还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件614还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件616用于便于电子设备600和其他设备之间有线或无线方式的通信。电子设备600可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。在一个示例性实施例中,通信组件616经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件616还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备600可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于实现本申请实施例提供的一种接口测试方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器604,上述指令可由电子设备600的处理器620执行以完成上述方法。例如,所述非临时性存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图5是根据一示例性实施例示出的一种电子设备700的框图。例如,电子设备700可以被提供为一服务器。参照图5,电子设备700包括处理组件722,其进一步包括一个或多个处理器,以及由存储器732所代表的存储器资源,用于存储可由处理组件722的执行的指令,例如应用程序。存储器732中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件722被配置为执行指令,以执行本申请实施例提供的一种接口测试方法。
电子设备700还可以包括一个电源组件726被配置为执行电子设备700的电源管理,一个有线或无线网络接口750被配置为将电子设备700连接到网络,和一个输入输出(I/O)接口758。电子设备700可以操作基于存储在存储器732的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现所述的接口测试方法。
本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (8)

1.一种接口测试方法,其特征在于,所述方法包括:
获取测试配置文件、测试数据和参数模板,所述测试配置文件包括:针对所述测试数据中请求参数的异常类型的第一校验规则;所述参数模板包括:测试数据中的请求参数与正确参数类型的对应关系;所述第一校验规则用于对所述请求参数的异常类型进行枚举,记录所述请求参数出现过的异常场景;
解析所述测试数据,获得请求参数集合,所述请求参数集合包括:测试数据中的请求参数的参数类型;
针对所述请求参数集合中每个所述请求参数,根据所述第一校验规则和所述参数模板,生成与所述请求参数对应的异常类型测试用例;所述异常类型测试用例用于校验针对请求参数的异常类型的响应是否正常;
运行所述异常类型测试用例,获得异常类型校验结果;
所述请求参数集合还包括:测试数据中的请求参数的参数名称,所述测试配置文件还包括:针对请求参数的参数名称的第二校验规则,所述方法还包括:
针对所述请求参数集合中每个所述请求参数,通过所述第二校验规则对所述请求参数的参数名称进行校验,获得名称校验结果;其中,所述第二校验规则用于判断所述请求参数的参数名称是否错误;
所述方法还包括:
针对所述请求参数集合中每个所述请求参数,根据所述参数模板,生成与所述请求参数对应的参数缺失测试用例;所述参数缺失测试用例用于校验针对请求参数缺失的响应是否正常;
运行所述参数缺失测试用例,获得参数缺失校验结果;
所述根据所述参数模板,生成与所述请求参数对应的参数缺失测试用例,包括:
将所述参数模板中的所述请求参数进行删除后,获得与所述请求参数对应的参数缺失测试用例;
所述方法还包括:
获取第一通用校验规则,以及针对业务场景配置的第一个性化配置校验规则,并将所述第一通用校验规则和所述第一个性化配置校验规则组合为所述第一校验规则;
获取第二通用校验规则,以及针对业务场景配置的第二个性化配置校验规则,并将所述第二通用校验规则和所述第二个性化配置校验规则组合为所述第二校验规则。
2.根据权利要求1所述的接口测试方法,其特征在于,所述将所述参数模板中的所述请求参数进行删除后,获得与所述请求参数对应的参数缺失测试用例,包括:
针对当前请求参数,将所述参数模板中的所述当前请求参数进行删除后,获得与所述当前请求参数对应的参数缺失测试用例;
针对下一个请求参数,将所述参数模板已删除的请求参数复原,并将复原后的参数模板中的所述下一个请求参数进行删除后,获得与所述下一个请求参数对应的参数缺失测试用例。
3.根据权利要求1所述的接口测试方法,其特征在于,所述根据所述第一校验规则和所述参数模板,生成与所述请求参数对应的异常类型测试用例,包括:
从所述第一校验规则中确定所述请求参数对应的异常类型,并在所述参数模板中将所述请求参数的参数类型分别替换为所述异常类型,获得与所述请求参数对应的异常类型测试用例,所述异常类型与所述异常类型测试用例一一对应。
4.根据权利要求3所述的接口测试方法,其特征在于,所述从所述第一校验规则中确定所述请求参数对应的异常类型,并在所述参数模板中将所述请求参数的参数类型分别替换为所述异常类型,获得与所述请求参数对应的异常类型测试用例,包括:
针对当前请求参数,将所述参数模板中所述当前请求参数的参数类型分别替换为:与所述当前请求参数对应的异常类型之后,获得与所述当前请求参数对应的异常类型测试用例;
针对下一个请求参数,将所述参数模板已替换的参数类型复原,并将复原后的参数模板中所述下一个请求参数的参数类型分别替换为:与所述下一个请求参数对应的异常类型之后,获得与所述下一个请求参数对应的异常类型测试用例。
5.根据权利要求1所述的接口测试方法,其特征在于,所述解析所述测试数据,获得请求参数集合,包括:
在解析所述测试数据的过程中,若解析获得的请求参数为嵌套类型,则按照嵌套路径依次获取处于所述嵌套路径上的请求参数,以及获取所述请求参数的参数类型;
若解析获得的请求参数为非嵌套类型,则直接获取所述请求参数的参数类型。
6.一种接口测试装置,其特征在于,所述装置包括:
获取模块,用于获取测试配置文件、测试数据和参数模板,所述测试配置文件包括:针对所述测试数据中请求参数的异常类型的第一校验规则;所述参数模板包括:测试数据中的请求参数与正确参数类型的对应关系;所述第一校验规则用于对所述请求参数的异常类型进行枚举,记录所述请求参数出现过的异常场景;
解析模块,用于解析所述测试数据,获得请求参数集合,所述请求参数集合包括:测试数据中的请求参数的参数类型;
生成模块,用于针对所述请求参数集合中每个所述请求参数,根据所述第一校验规则和所述参数模板,生成与所述请求参数对应的异常类型测试用例;所述异常类型测试用例用于校验针对请求参数的异常类型的响应是否正常;
运行模块,用于运行所述异常类型测试用例,获得异常类型校验结果;
所述请求参数集合还包括:测试数据中的请求参数的参数名称,所述测试配置文件还包括:针对请求参数的参数名称的第二校验规则,所述装置还包括:
名称校验模块,用于针对所述请求参数集合中每个所述请求参数,通过所述第二校验规则对所述请求参数的参数名称进行校验,获得名称校验结果;其中,所述第二校验规则用于判断所述请求参数的参数名称是否错误;
所述装置还包括:
参数缺失用例模块,用于针对所述请求参数集合中每个所述请求参数,根据所述参数模板,生成与所述请求参数对应的参数缺失测试用例;所述参数缺失测试用例用于校验针对请求参数缺失的响应是否正常;
参数缺失校验模块,用于运行所述参数缺失测试用例,获得参数缺失校验结果;
所述参数缺失用例模块,包括:
删除子模块,用于将所述参数模板中的所述请求参数进行删除后,获得与所述请求参数对应的参数缺失测试用例;
所述装置还包括:
第一建立模块,用于获取第一通用校验规则,以及针对业务场景配置的第一个性化配置校验规则,并将所述第一通用校验规则和所述第一个性化配置校验规则组合为所述第一校验规则;
第二建立模块,用于获取第二通用校验规则,以及针对业务场景配置的第二个性化配置校验规则,并将所述第二通用校验规则和所述第二个性化配置校验规则组合为所述第二校验规则。
7.一种电子设备,其特征在于,包括:处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至5中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至5中任一项所述的方法。
CN202211037847.8A 2022-08-29 2022-08-29 一种接口测试方法及装置 Active CN115408277B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211037847.8A CN115408277B (zh) 2022-08-29 2022-08-29 一种接口测试方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211037847.8A CN115408277B (zh) 2022-08-29 2022-08-29 一种接口测试方法及装置

Publications (2)

Publication Number Publication Date
CN115408277A CN115408277A (zh) 2022-11-29
CN115408277B true CN115408277B (zh) 2024-05-31

Family

ID=84161801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211037847.8A Active CN115408277B (zh) 2022-08-29 2022-08-29 一种接口测试方法及装置

Country Status (1)

Country Link
CN (1) CN115408277B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115952100B (zh) * 2023-01-10 2024-07-12 北京百度网讯科技有限公司 接口测试方法、装置、系统、电子设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018006789A1 (zh) * 2016-07-04 2018-01-11 中兴通讯股份有限公司 一种参数校验方法和装置、以及网管服务器和计算机存储介质
US10248508B1 (en) * 2014-06-20 2019-04-02 Amazon Technologies, Inc. Distributed data validation service
CN110362497A (zh) * 2019-07-23 2019-10-22 上海金融期货信息技术有限公司 覆盖全异常字符的自动化api接口测试方法和系统
CN111679989A (zh) * 2020-06-16 2020-09-18 贝壳技术有限公司 接口健壮性测试方法、装置、电子设备及存储介质
CN114398194A (zh) * 2022-01-21 2022-04-26 平安科技(深圳)有限公司 数据收集方法、装置、电子设备及可读存储介质
CN114528343A (zh) * 2020-10-23 2022-05-24 花瓣云科技有限公司 商品数据管理方法、装置及服务器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10248508B1 (en) * 2014-06-20 2019-04-02 Amazon Technologies, Inc. Distributed data validation service
WO2018006789A1 (zh) * 2016-07-04 2018-01-11 中兴通讯股份有限公司 一种参数校验方法和装置、以及网管服务器和计算机存储介质
CN110362497A (zh) * 2019-07-23 2019-10-22 上海金融期货信息技术有限公司 覆盖全异常字符的自动化api接口测试方法和系统
CN111679989A (zh) * 2020-06-16 2020-09-18 贝壳技术有限公司 接口健壮性测试方法、装置、电子设备及存储介质
CN114528343A (zh) * 2020-10-23 2022-05-24 花瓣云科技有限公司 商品数据管理方法、装置及服务器
CN114398194A (zh) * 2022-01-21 2022-04-26 平安科技(深圳)有限公司 数据收集方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN115408277A (zh) 2022-11-29

Similar Documents

Publication Publication Date Title
CN109359056B (zh) 一种应用程序测试方法及装置
CN111221733B (zh) 信息处理方法、装置、移动终端及存储介质
CN114240882A (zh) 缺陷检测方法及装置、电子设备和存储介质
CN113157256B (zh) 接口代码的生成方法、装置、电子设备、存储介质及产品
CN111274131A (zh) 接口测试方法、装置、电子设备及存储介质
CN111461304A (zh) 分类神经网络的训练方法、文本分类方法、装置及设备
CN112241361A (zh) 测试用例生成方法及装置、问题场景自动复现方法及装置
CN115408277B (zh) 一种接口测试方法及装置
CN115982024A (zh) 测试脚本生成方法、设备、存储介质及程序产品
CN109684112B (zh) 程序文件运行方法、装置、终端及存储介质
CN112559309B (zh) 页面性能采集算法的调整方法及装置
CN111209195B (zh) 一种生成测试用例的方法及装置
CN112416751A (zh) 接口自动化测试的处理方法、装置及存储介质
CN113626321B (zh) 桥接测试方法、装置、系统及存储介质
CN112383661B (zh) 移动端自动化测试方法、装置、电子设备及存储介质
CN114896165A (zh) 会话机器人系统的测试方法、装置、电子设备和存储介质
CN114428737A (zh) 基于微服务体系的通信方法、装置、设备及存储介质
CN106533841A (zh) 用户识别模块卡的协议一致性测试方法、装置及系统
CN107526683B (zh) 应用程序功能冗余度的检测方法、装置及存储介质
CN112631695A (zh) 一种数据校验方法、装置、电子设备及存储介质
CN113206772B (zh) 应答报文正确性判别方法、装置、设备、介质及产品
CN111427566B (zh) 适于模拟接口平台的数据处理方法和装置、服务器
CN109739763B (zh) 代码段运行方法、装置、终端及存储介质
CN117149649A (zh) 交易测试方法、装置及电子设备
CN116881104A (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