CN111382051A - 一种api自动测试方法及测试装置 - Google Patents

一种api自动测试方法及测试装置 Download PDF

Info

Publication number
CN111382051A
CN111382051A CN201811637640.8A CN201811637640A CN111382051A CN 111382051 A CN111382051 A CN 111382051A CN 201811637640 A CN201811637640 A CN 201811637640A CN 111382051 A CN111382051 A CN 111382051A
Authority
CN
China
Prior art keywords
request
parameter
address
api
parameters
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.)
Granted
Application number
CN201811637640.8A
Other languages
English (en)
Other versions
CN111382051B (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.)
Beijing Shuju Xinyun Information Technology Co ltd
Original Assignee
Beijing Shuju Xinyun Information 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 Beijing Shuju Xinyun Information Technology Co ltd filed Critical Beijing Shuju Xinyun Information Technology Co ltd
Priority to CN201811637640.8A priority Critical patent/CN111382051B/zh
Publication of CN111382051A publication Critical patent/CN111382051A/zh
Application granted granted Critical
Publication of CN111382051B publication Critical patent/CN111382051B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本发明公开了一种API自动测试方法及测试装置,此方法包括:从配置文件中解析出用于构成主干地址的参数并构建主干地址,用于构成主干地址的参数包括:协议头、主机标识、基础路径;从配置文件中解析出基础路径和子路径构成的路径下的请求方法以及请求方法对应的请求参数;确定请求方法所属的主体地址,主体地址包括主干地址和子路径;根据请求参数构建请求方法在主体地址下对应的参数体;将请求方法的主体地址和请求方法对应的请求参数体构成完整地址,将请求方法和完整地址构成API;对API进行自动配置并根据配置结果进行自动测试。本发明可以自动从swagger文档中自动提取API信息,有效提高效率。

Description

一种API自动测试方法及测试装置
技术领域
本发明涉及互联网技术领域,尤其涉及一种API自动测试方法及测试装置。
背景技术
在传统的API测试方法中,需选择对应的请求方法,并输入对应的URL和请求头,进而进行API测试。这种传统的API测试方法效率较低、请求操作繁琐、出错率较高,并且无法满足用户的各种自动化的测试需求。
发明内容
为了解决上述技术问题,本发明提供了一种API自动测试方法及测试装置。
本发明提供的API自动测试方法,包括:
从配置文件中解析出用于构成主干地址的参数并构建主干地址,所述用于构成主干地址的参数包括:协议头、主机标识、基础路径;
从所述配置文件中解析出所述基础路径和子路径构成的路径下的请求方法以及所述请求方法对应的请求参数;
确定所述请求方法所属的主体地址,所述主体地址包括主干地址和所述子路径;根据所述请求参数构建所述请求方法在所述主体地址下对应的参数体;
将所述请求方法的主体地址和所述请求方法对应的请求参数体构成完整地址,将所述请求方法和所述完整地址构成API;
对所述API进行自动配置并根据配置结果进行自动测试。
上述API自动测试方法还具有以下特点:
所述请求参数包括第一类型参数和/或第二类型参数,所述第一类型参数是可与主体地址拼接的参数,所述第二类型参数是不可与主体地址拼接的独立参数;
所述将所述请求方法的主体地址和所述请求方法对应的请求参数体构成完整地址包括:
所述请求参数中包括第一类型参数时,将所述主体地址和包含所述第一类型参数的参数体拼接为统一资源定位符;
所述请求参数中包括第二类型参数时,将包含所述第二类型参数的参数体作为独立参数封装于参数承载结构。
上述API自动测试方法还具有以下特点:
所述根据所述请求参数构建所述请求方法在所述主体地址下对应的参数体包括:所述请求参数的类型是可与主体地址拼接的类型并且所述请求参数包括列举项时,所述列举项包括N个列举值,根据所述列举项的各项的值构建N个参数体;
所述将所述请求方法的主体地址和所述请求方法对应的请求参数体构成完整地址包括:将所述主体地址和所述N个参数体分别构成N个完整地址。
上述API自动测试方法还具有以下特点:
所述根据所述请求参数构建所述请求方法在所述主体地址下对应的参数体包括:
所述请求参数的子参数中包括默认值表示项时,将此默认值表示项的值作为所述子参数的取值;
所述请求参数的子参数中不包括默认值表示项并且所述子参数的类型为可计数的类型时,将所述子参数中的示例性数值项的值作为所述子参数的取值。
上述API自动测试方法还具有以下特点:
所述对所述API进行自动配置并根据配置结果进行自动测试包括以下方式中的一种:
对所述API进行分组,对分组后的API分别进行自动测试;
设置所述API的测试模式,根据所述测试模式对所述API分别进行自动测试;
对所述API进行分组,对每个组设置测试模式,根据每个组的测试模式对相应组的API进行自动测试。
上述API自动测试方法还具有以下特点:
所述对所述API进行分组包括以下方式中的一种:
将所述API中在所述配置文件中对应于相同的标签项的API划分到同一组;
根据用户的选择进行分组;
所述测试模式是以下模式中的一种:
即时测试,即直接对所述API进行测试;
定时测试,即设置定时测试信息,根据所述定时测试信息对所述API进行测试;
压力测试,即设置并发量和/或请求数;使用所述并发量和/或请求数对所述API进行测试。
本发明提供的API自动测试装置包括:
第一解析模块,从配置文件中解析出用于构成主干地址的参数,所述用于构成主干地址的参数包括:协议头、主机标识、基础路径;
第一构建模块,用于构建主干地址;
第二解析模块,用于从所述配置文件中解析出所述基础路径和子路径构成的路径下的请求方法以及所述请求方法对应的请求参数;
第二构建模块,用于确定所述请求方法所属的主体地址,所述主体地址包括主干地址和所述子路径;根据所述请求参数构建所述请求方法在所述主体地址下对应的参数体;
第三构建模块,用于将所述请求方法的主体地址和所述请求方法对应的请求参数体构成完整地址,将所述请求方法和所述完整地址构成API;
自动测试模块,用于对所述API进行自动配置并根据配置结果进行自动测试。
上述API自动测试装置还具有以下特点:
所述请求参数包括第一类型参数和/或第二类型参数,所述第一类型参数是可与主体地址拼接的参数,所述第二类型参数是不可与主体地址拼接的独立参数;
所述第三构建模块,还用于使用以下方法将所述请求方法的主体地址和所述请求方法对应的请求参数体构成完整地址:
所述请求参数中包括第一类型参数时,将所述主体地址和包含所述第一类型参数的参数体拼接为统一资源定位符;
所述请求参数中包括第二类型参数时,将包含所述第二类型参数的参数体作为独立参数封装于参数承载结构。
上述API自动测试装置还具有以下特点:
所述第二构建模块,还用于使用以下方法根据所述请求参数构建所述请求方法在所述主体地址下对应的参数体:所述请求参数的类型是可与主体地址拼接的类型并且所述请求参数包括列举项时,所述列举项包括N个列举值,根据所述列举项的各项的值构建N个参数体;
所述第三构建模块,还用于使用以下方法将所述请求方法的主体地址和所述请求方法对应的请求参数体构成完整地址包括:将所述主体地址和所述N个参数体分别构成N个完整地址。
上述API自动测试装置还具有以下特点:
所述自动测试模块,用于使用以下方式中的一种对所述API进行自动配置并根据配置结果进行自动测试:
对所述API进行分组,对分组后的API分别进行自动测试;
设置所述API的测试模式,根据所述测试模式对所述API分别进行自动测试;
对所述API进行分组,对每个组设置测试模式,根据每个组的测试模式对相应组的API进行自动测试;
其中,
所述对所述API进行分组包括以下方式中的一种:
将所述API中在所述配置文件中对应于相同的标签项的API划分到同一组;
根据用户的选择进行分组;
所述测试模式是以下模式中的一种:
即时测试,即直接对所述API进行测试;
定时测试,即设置定时测试信息,根据所述定时测试信息对所述API进行测试;
压力测试,即设置并发量和/或请求数;使用所述并发量和/或请求数对所述API进行测试。
本发明具有以下优点:
1、可以自动从swagger文档中自动提取API信息,在提取过程中可通过swagger中参数信息的定义自动生成对应测试所需的参数,避免了手工配置API的繁琐,可以有效提高效率同时避免人工请求操作的失误。
2.可实现在网页端就能对API进行测试,免去传统方式的在命令行进行测试或另外安装其他应用进行测试的繁琐,并且可将需要测试的接口都封装为模块,比如将特定的接口的测试封装为一个API供其他方调用。
3.可自动化生成测试报告。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是实施例中API自动测试方法的流程图;
图2是实施例中API自动测试装置的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
如图1所示,API自动测试方法包括:
步骤101,从配置文件中解析出用于构成主干地址的参数并构建主干地址,用于构成主干地址的参数包括:协议头、主机标识、基础路径。
步骤102,从配置文件中解析出基础路径和子路径构成的路径下的请求方法以及请求方法对应的请求参数。
步骤103,确定请求方法所属的主体地址,主体地址包括主干地址和子路径;根据请求参数构建请求方法在主体地址下对应的参数体。
步骤104,将请求方法的主体地址和请求方法对应的请求参数体构成完整地址,将请求方法和完整地址构成API。
步骤105,对API进行自动配置并根据配置结果进行自动测试。
其中,
步骤101和步骤102中的配置文件一般是swagger文件。
步骤103中对主体地址举例如下:
主体地址为:http://127.0.0.1/bsy/admin,其中,http为协议头,127.0.0.1为主机标识、/bsy为基础路径,/admin为子路径。
步骤103中,根据请求参数构建请求方法在主体地址下对应的参数体包括:请求参数的子参数中包括默认值表示项时,将此默认值表示项的值作为子参数的取值;请求参数的子参数中不包括默认值表示项并且子参数的类型为可计数的类型时,将子参数中的示例性数值项的值作为子参数的取值。
其中,默认值表示项一般为缺省项(default)、举例项(example)等。示例性数值项为最小值项、最大值项、最小长度项、最大长度项等。
步骤103中,根据请求参数构建请求方法在主体地址下对应的参数体包括:请求参数的类型是可与主体地址拼接的类型并且请求参数包括列举项时,列举项包括N个列举值,根据列举项的各项的值构建N个参数体。步骤104中,将主体地址和参数体构成完整地址包括:将主体地址和N个参数体分别构成N个完整地址。
另外,请求参数包括第一类型参数和/或第二类型参数,第一类型参数是可与主体地址拼接的参数,第二类型参数是不可与主体地址拼接的独立参数。步骤103中,将请求方法的主体地址和请求方法对应的请求参数体构成完整地址包括:请求参数中包括第一类型参数时,将主体地址和包含第一类型参数的参数体拼接为统一资源定位符;请求参数中包括第二类型参数时,将包含第二类型参数的参数体作为独立参数封装于参数承载结构。
步骤105中对API进行自动配置并根据配置结果进行自动测试包括以下方式中的一种:
对API进行分组,对分组后的API分别进行自动测试;
设置API的测试模式,根据测试模式对API分别进行自动测试;
对API进行分组,对每个组设置测试模式,根据每个组的测试模式对相应组的API进行自动测试。
其中,
对API进行分组包括以下方式中的一种:
将API中在配置文件中对应于相同的标签项的API划分到同一组。例如:此标签项在配置文件中表示为tags。
根据用户的选择进行分组;
测试模式是以下模式中的一种:
即时测试,即直接对API进行测试;
定时测试,即设置定时测试信息,根据定时测试信息对API进行测试;
压力测试,即设置并发量和/或请求数;使用并发量和/或请求数对API进行测试。
在步骤105之后,本方法还包括:对测试结果进行统计并自动生成测试报告并自动发送。其中,统计的目标可以自动配置或由用户选择,例如统计的目标包括以下参数中的至少一个:连接时间、响应时间、总耗时、文件大小、测试失败数、成功率。发送测试报告的方式是以下方式中的至少一种:邮箱、短信、预设平台。
本方法中,获得测试结果后,还可以对测试结果进行智能分析和筛选,根据不同的应用场景、同一用户的不同需求、不同用户的相同需求、不同用户的不同需求生成相应的测试报告。
举例说明:
配置文件中包括的协议头为http:,主机标识有:127.0.0.1和131.21.32.144。基础路径为/bsy,子路径包括admin、login、user。admin下包括GET、POST、DEDETE三种请求操作,login包括GET一种请求操作,user包括GET一种请求操作。
解析出用于构成主干地址的参数并构建主干地址包括:
http://127.0.0.1/bsy
http://131.21.32.144/bsy
从配置文件中解析出基础路径和子路径构成的路径下的请求方法以及请求方法对应的请求参数。确定请求方法所属的主体地址,主体地址包括主干地址和子路径;根据请求参数构建请求方法在主体地址下对应的参数体。
对于路径/bsy/admin下,关于get的配置信息包括:
Figure BDA0001930421570000081
Figure BDA0001930421570000091
Figure BDA0001930421570000101
分析上述配置文件可知,上述结构中包括两个参数(parameters中有两个元素,则说明有两个参数)。in的值都为query,表示这两个参数的参数类型都为查询参数。确定参数名称,在此参数的信息中包括默认项时将默认项的值作为此参数的值,在此参数的信息包括举例项时将举例项的值作为此参数的值,在此参数的信息中不包括默认值表示项并且子参数的类型为可计数的类型时,将子参数中的示例性数值项的值作为子参数的取值.
第一个参数信息结构中,参数名称为pageNumber,没有default和example,则通过功能type和name来推测其值,type为string,则推测pageNumber值为minLength的值即为1。第二个参数信息结构中参数名称为pageSIze,结构中包括有default值,则pageSize值为default的值即为20。
所以最终获得的get所属的主体地址包括http://127.0.0.1/bsy/admin,和http://131.21.32.144/bsy/admin,get在这两个主体地址下对应的参数体为?pageNumber=1&pageSize=20。
构建出的API包括两个:
1,
GET以及http://127.0.0.1/bsy/admin?pageNumber=1&pageSize=20
2,
GET以及
http://131.21.32.144/bsy/admin?pageNumber=1&pageSize=20
对于路径/bsy/admin下,关于post的配置信息包括:
Figure BDA0001930421570000102
Figure BDA0001930421570000111
上述参数结构中,in的值为body,表示该参数的类型为主体参数。从特性属性即properties中选择参数,确定参数的名称,将参数中的示例项的值作为此参数的具体值。上述参数结构中,properties中包括三个参数,分别为username、description和email。将参数中的示例项的值作为此参数的具体值,获得参数体如下:
{
“username”:“admin”,
“description”:“系统管理员”,
“email”:“orchsym@bsycloud.com”
}
构建出的API包括两个:
1,
POST以及http://127.0.0.1/bsy/admin以及
{
“username”:“admin”,
“description”:“系统管理员”,
“email”:“orchsym@bsycloud.com”
}
2,
POST以及http://131.21.32.144/bsy/admin以及
{
“username”:“admin”,
“description”:“系统管理员”,
“email”:“orchsym@bsycloud.com”
}
对于路径/bsy/admin下,关于DELETE的配置信息包括:
Figure BDA0001930421570000131
上述参数结构中,in的值为path,表示该参数的类型为路径参数,type为integer,且有minimum,则直接将minimum的值作为参数值,获得参数体为/1。
构建出的API包括:
1、
DELETE以及http://127.0.0.1/bsy/admin/1
2、
DELETE以及http://131.21.32.144/bsy/admin/1
对于路径/bsy/user下,关于GET的配置信息包括:
Figure BDA0001930421570000132
Figure BDA0001930421570000141
此参数结构中,共有一个参数,in值为path,标示其为路径参数,type为integer,且有minimum,则直接将minimum的值作为参数值,获得参数体为/1:
构建出的API包括:
1、
DELETE以及http://127.0.0.1/bsy/user/1
2、
DELETE以及http://131.21.32.144/bsy/user/1
对于路径/bsy/login下,关于GET的配置信息包括:
Figure BDA0001930421570000142
Figure BDA0001930421570000151
此参数结构中,in值为query表示该参数的参数类型为查询参数类型,in同级没有type,有schema字段,且schema字段中有enum,表示此参数中包括列举项,enum中有三个元素分别是disabled、offline、online,则表示名称为status的参数有三个值分别是disabled、offline、online。从而,获得三个参数体:
?status=disabled
?status=offline
?status=online
将参数与一主地址组合后得到:
http://127.0.0.1/bsy/login?status=disabled
http://127.0.0.1/bsy/login?status=offline
http://127.0.0.1/bsy/login?status=online
从而,构建出的API包括:
1、GET以及http://127.0.0.1/bsy/login?status=disabled
2、GET以及http://127.0.0.1/bsy/login?status=offline
3、GET以及http://127.0.0.1/bsy/login?status=online
4、GET以及http://131.21.32.144/bsy/login?status=disabled
5、GET以及http://131.21.32.144/bsy/login?status=offline
6、GET以及http://131.21.32.144/bsy/login?status=online
如图2所示,API自动测试装置包括:
第一解析模块,从配置文件中解析出用于构成主干地址的参数,用于构成主干地址的参数包括:协议头、主机标识、基础路径;
第一构建模块,用于构建主干地址;
第二解析模块,用于从配置文件中解析出基础路径和子路径构成的路径下的请求方法以及请求方法对应的请求参数;
第二构建模块,用于确定请求方法所属的主体地址,主体地址包括主干地址和子路径;根据请求参数构建请求方法在主体地址下对应的参数体;
第三构建模块,用于将请求方法的主体地址和请求方法对应的请求参数体构成完整地址,将请求方法和完整地址构成API;
自动测试模块,用于对API进行自动配置并根据配置结果进行自动测试。
其中,
请求参数包括第一类型参数和/或第二类型参数,第一类型参数是可与主体地址拼接的参数,第二类型参数是不可与主体地址拼接的独立参数。第三构建模块还用于使用以下方法将请求方法的主体地址和请求方法对应的请求参数体构成完整地址:
请求参数中包括第一类型参数时,将主体地址和包含第一类型参数的参数体拼接为统一资源定位符;
请求参数中包括第二类型参数时,将包含第二类型参数的参数体作为独立参数封装于参数承载结构。
第二构建模块还用于使用以下方法根据请求参数构建请求方法在主体地址下对应的参数体:请求参数的类型是可与主体地址拼接的类型并且请求参数包括列举项时,列举项包括N个列举值,根据列举项的各项的值构建N个参数体;第三构建模块还用于使用以下方法将请求方法的主体地址和请求方法对应的请求参数体构成完整地址包括:将主体地址和N个参数体分别构成N个完整地址。
第二构建模块还用于使用以下方法根据请求参数构建请求方法在主体地址下对应的参数体:请求参数的子参数中包括默认值表示项时,将此默认值表示项的值作为子参数的取值;请求参数的子参数中不包括默认值表示项并且子参数的类型为可计数的类型时,将子参数中的示例性数值项的值作为子参数的取值。
自动测试模块还用于使用以下方式中的一种对API进行自动配置并根据配置结果进行自动测试:
对API进行分组,对分组后的API分别进行自动测试;
设置API的测试模式,根据测试模式对API分别进行自动测试;
对API进行分组,对每个组设置测试模式,根据每个组的测试模式对相应组的API进行自动测试。
对API进行分组包括以下方式中的一种:
将API中在配置文件中对应于相同的标签项的API划分到同一组;
根据用户的选择进行分组;
测试模式是以下模式中的一种:
即时测试,即直接对API进行测试;
定时测试,即设置定时测试信息,根据定时测试信息对API进行测试;
压力测试,即设置并发量和/或请求数;使用并发量和/或请求数对API进行测试。
本装置还包括智能分析模块,用于对测试结果进行智能分析和筛选,根据不同的应用场景、同一用户的不同需求、不同用户的相同需求、不同用户的不同需求生成相应的测试报告。
本发明具有以下优点:
1、可以自动从swagger文档中自动提取API信息,在提取过程中可通过swagger中参数信息的定义自动生成对应测试所需的参数,避免了手工配置API的繁琐,可以有效提高效率同时避免人工请求操作的失误。
2.可实现在网页端就能对API进行测试,免去传统方式的在命令行进行测试或另外安装其他应用进行测试的繁琐,并且可将需要测试的接口都封装为模块,比如将特定的接口的测试封装为一个API供其他方调用。
3.可自动化生成测试报告。
上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的物品或者设备中还存在另外的相同要素。
以上实施例仅用以说明本发明的技术方案而非限制,仅仅参照较佳实施例对本发明进行了详细说明。本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,均应涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种API自动测试方法,其特征在于,包括:
从配置文件中解析出用于构成主干地址的参数并构建主干地址,所述用于构成主干地址的参数包括:协议头、主机标识、基础路径;
从所述配置文件中解析出所述基础路径和子路径构成的路径下的请求方法以及所述请求方法对应的请求参数;
确定所述请求方法所属的主体地址,所述主体地址包括主干地址和所述子路径;根据所述请求参数构建所述请求方法在所述主体地址下对应的参数体;
将所述请求方法的主体地址和所述请求方法对应的请求参数体构成完整地址,将所述请求方法和所述完整地址构成API;
对所述API进行自动配置并根据配置结果进行自动测试。
2.如权利要求1所述的API自动测试方法,其特征在于,
所述请求参数包括第一类型参数和/或第二类型参数,所述第一类型参数是可与主体地址拼接的参数,所述第二类型参数是不可与主体地址拼接的独立参数;
所述将所述请求方法的主体地址和所述请求方法对应的请求参数体构成完整地址包括:
所述请求参数中包括第一类型参数时,将所述主体地址和包含所述第一类型参数的参数体拼接为统一资源定位符;
所述请求参数中包括第二类型参数时,将包含所述第二类型参数的参数体作为独立参数封装于参数承载结构。
3.如权利要求1所述的API自动测试方法,其特征在于,
所述根据所述请求参数构建所述请求方法在所述主体地址下对应的参数体包括:所述请求参数的类型是可与主体地址拼接的类型并且所述请求参数包括列举项时,所述列举项包括N个列举值,根据所述列举项的各项的值构建N个参数体;
所述将所述请求方法的主体地址和所述请求方法对应的请求参数体构成完整地址包括:将所述主体地址和所述N个参数体分别构成N个完整地址。
4.如权利要求1所述的API自动测试方法,其特征在于,
所述根据所述请求参数构建所述请求方法在所述主体地址下对应的参数体包括:
所述请求参数的子参数中包括默认值表示项时,将此默认值表示项的值作为所述子参数的取值;
所述请求参数的子参数中不包括默认值表示项并且所述子参数的类型为可计数的类型时,将所述子参数中的示例性数值项的值作为所述子参数的取值。
5.如权利要求1所述的API自动测试方法,其特征在于,
所述对所述API进行自动配置并根据配置结果进行自动测试包括以下方式中的一种:
对所述API进行分组,对分组后的API分别进行自动测试;
设置所述API的测试模式,根据所述测试模式对所述API分别进行自动测试;
对所述API进行分组,对每个组设置测试模式,根据每个组的测试模式对相应组的API进行自动测试。
6.如权利要求5所述的API自动测试方法,其特征在于,
所述对所述API进行分组包括以下方式中的一种:
将所述API中在所述配置文件中对应于相同的标签项的API划分到同一组;
根据用户的选择进行分组;
所述测试模式是以下模式中的一种:
即时测试,即直接对所述API进行测试;
定时测试,即设置定时测试信息,根据所述定时测试信息对所述API进行测试;
压力测试,即设置并发量和/或请求数;使用所述并发量和/或请求数对所述API进行测试。
7.一种API自动测试装置,其特征在于,包括:
第一解析模块,从配置文件中解析出用于构成主干地址的参数,所述用于构成主干地址的参数包括:协议头、主机标识、基础路径;
第一构建模块,用于构建主干地址;
第二解析模块,用于从所述配置文件中解析出所述基础路径和子路径构成的路径下的请求方法以及所述请求方法对应的请求参数;
第二构建模块,用于确定所述请求方法所属的主体地址,所述主体地址包括主干地址和所述子路径;根据所述请求参数构建所述请求方法在所述主体地址下对应的参数体;
第三构建模块,用于将所述请求方法的主体地址和所述请求方法对应的请求参数体构成完整地址,将所述请求方法和所述完整地址构成API;
自动测试模块,用于对所述API进行自动配置并根据配置结果进行自动测试。
8.如权利要求7所述的API自动测试装置,其特征在于,
所述请求参数包括第一类型参数和/或第二类型参数,所述第一类型参数是可与主体地址拼接的参数,所述第二类型参数是不可与主体地址拼接的独立参数;
所述第三构建模块,还用于使用以下方法将所述请求方法的主体地址和所述请求方法对应的请求参数体构成完整地址:
所述请求参数中包括第一类型参数时,将所述主体地址和包含所述第一类型参数的参数体拼接为统一资源定位符;
所述请求参数中包括第二类型参数时,将包含所述第二类型参数的参数体作为独立参数封装于参数承载结构。
9.如权利要求7所述的API自动测试装置,其特征在于,
所述第二构建模块,还用于使用以下方法根据所述请求参数构建所述请求方法在所述主体地址下对应的参数体:所述请求参数的类型是可与主体地址拼接的类型并且所述请求参数包括列举项时,所述列举项包括N个列举值,根据所述列举项的各项的值构建N个参数体;
所述第三构建模块,还用于使用以下方法将所述请求方法的主体地址和所述请求方法对应的请求参数体构成完整地址包括:将所述主体地址和所述N个参数体分别构成N个完整地址。
10.如权利要求7所述的API自动测试装置,其特征在于,
所述自动测试模块,用于使用以下方式中的一种对所述API进行自动配置并根据配置结果进行自动测试:
对所述API进行分组,对分组后的API分别进行自动测试;
设置所述API的测试模式,根据所述测试模式对所述API分别进行自动测试;
对所述API进行分组,对每个组设置测试模式,根据每个组的测试模式对相应组的API进行自动测试;
其中,
所述对所述API进行分组包括以下方式中的一种:
将所述API中在所述配置文件中对应于相同的标签项的API划分到同一组;
根据用户的选择进行分组;
所述测试模式是以下模式中的一种:
即时测试,即直接对所述API进行测试;
定时测试,即设置定时测试信息,根据所述定时测试信息对所述API进行测试;
压力测试,即设置并发量和/或请求数;使用所述并发量和/或请求数对所述API进行测试。
CN201811637640.8A 2018-12-29 2018-12-29 一种api自动测试方法及测试装置 Active CN111382051B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811637640.8A CN111382051B (zh) 2018-12-29 2018-12-29 一种api自动测试方法及测试装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811637640.8A CN111382051B (zh) 2018-12-29 2018-12-29 一种api自动测试方法及测试装置

Publications (2)

Publication Number Publication Date
CN111382051A true CN111382051A (zh) 2020-07-07
CN111382051B CN111382051B (zh) 2023-04-18

Family

ID=71218241

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811637640.8A Active CN111382051B (zh) 2018-12-29 2018-12-29 一种api自动测试方法及测试装置

Country Status (1)

Country Link
CN (1) CN111382051B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022179363A1 (zh) * 2021-02-26 2022-09-01 华为云计算技术有限公司 一种应用程序接口api测试方法以及装置
CN115686463A (zh) * 2022-12-30 2023-02-03 科讯嘉联信息技术有限公司 基于Python和Excel的接口自动化框架控制系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107368420A (zh) * 2017-07-27 2017-11-21 万帮充电设备有限公司 Api测试方法、装置及电子设备
CN107977317A (zh) * 2017-12-22 2018-05-01 上海庆科信息技术有限公司 一种数据网络的测试方法、系统及相关装置
US9959198B1 (en) * 2016-05-26 2018-05-01 Google Llc Simulated testing of API
CN108491199A (zh) * 2018-03-06 2018-09-04 福建天泉教育科技有限公司 一种自动生成接口的方法及终端
CN108897687A (zh) * 2018-06-29 2018-11-27 泰华智慧产业集团股份有限公司 一种基于数据驱动的api自动化测试方法和系统
CN108959076A (zh) * 2018-06-25 2018-12-07 浙江网新恒天软件有限公司 一种api在线调试方法
CN109101415A (zh) * 2018-06-25 2018-12-28 平安科技(深圳)有限公司 基于数据库比对的接口测试方法、系统、设备和存储介质
CN111124474A (zh) * 2018-10-31 2020-05-08 北京数聚鑫云信息技术有限公司 一种api版本控制方法及装置
CN115357403A (zh) * 2022-10-20 2022-11-18 智己汽车科技有限公司 一种用于任务调度的微服务系统及任务调度方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9959198B1 (en) * 2016-05-26 2018-05-01 Google Llc Simulated testing of API
CN107368420A (zh) * 2017-07-27 2017-11-21 万帮充电设备有限公司 Api测试方法、装置及电子设备
CN107977317A (zh) * 2017-12-22 2018-05-01 上海庆科信息技术有限公司 一种数据网络的测试方法、系统及相关装置
CN108491199A (zh) * 2018-03-06 2018-09-04 福建天泉教育科技有限公司 一种自动生成接口的方法及终端
CN108959076A (zh) * 2018-06-25 2018-12-07 浙江网新恒天软件有限公司 一种api在线调试方法
CN109101415A (zh) * 2018-06-25 2018-12-28 平安科技(深圳)有限公司 基于数据库比对的接口测试方法、系统、设备和存储介质
CN108897687A (zh) * 2018-06-29 2018-11-27 泰华智慧产业集团股份有限公司 一种基于数据驱动的api自动化测试方法和系统
CN111124474A (zh) * 2018-10-31 2020-05-08 北京数聚鑫云信息技术有限公司 一种api版本控制方法及装置
CN115357403A (zh) * 2022-10-20 2022-11-18 智己汽车科技有限公司 一种用于任务调度的微服务系统及任务调度方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HUAYAO WU等: "Combinatorial Testing of RESTful APIs" *
孙甲霞等: "面向C++的API自动测试工具的原型系统实现" *
赵鹏: "机群并行计算环境的研究、设计和实现" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022179363A1 (zh) * 2021-02-26 2022-09-01 华为云计算技术有限公司 一种应用程序接口api测试方法以及装置
CN115686463A (zh) * 2022-12-30 2023-02-03 科讯嘉联信息技术有限公司 基于Python和Excel的接口自动化框架控制系统

Also Published As

Publication number Publication date
CN111382051B (zh) 2023-04-18

Similar Documents

Publication Publication Date Title
CN107861870B (zh) 接口测试及测试数据生成方法、装置、终端和存储介质
WO2020000706A1 (zh) 基于数据库比对的接口测试方法、系统、设备和存储介质
CN114981775B (zh) 用于api综合管理的基于云的api元数据管理方法及系统
US10452522B1 (en) Synthetic data generation from a service description language model
CN103678446B (zh) 基于数据视图和数据库表的改进的模式映射
CN106649110B (zh) 软件测试方法及系统
CN111708619B (zh) 基于消息队列和数据库的分布式事务处理方法及系统
EP3974960B1 (en) Method and system for automated testing of web service apis
CN111382051B (zh) 一种api自动测试方法及测试装置
CN116881429B (zh) 一种基于多租户的对话模型交互方法、装置及存储介质
CN111159040A (zh) 一种测试数据生成方法、装置、设备及存储介质
CN113760730A (zh) 一种自动化测试的方法和装置
CN108809896A (zh) 一种信息校验方法、装置和电子设备
CN117370203B (zh) 自动化测试方法、系统、电子设备及存储介质
CN105227599B (zh) Web应用的识别方法和装置
CN113157904A (zh) 基于dfa算法的敏感词过滤方法及系统
CN116860636A (zh) 单元测试代码生成方法、装置、设备及存储介质
CN111385375B (zh) 一种用于电子邮箱地址生成的方法与设备
CN110618943B (zh) 安防服务测试方法、装置、电子设备及可读存储介质
CN110244934A (zh) 产品需求文档、测试信息的生成方法及装置
CN115129596A (zh) 接口自动测试方法、系统、装置和存储介质
CN110471708B (zh) 基于可重用组件的配置项获取的方法及装置
CN112445811A (zh) 基于sql配置的数据服务方法、装置、存储介质及组件
CN112214391A (zh) 一种物联网平台接口测试方法、系统及计算机存储介质
CN113065078B (zh) 模拟用户行为拨测web网站多级域名的统计分析方法

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