CN116955154A - 一种应用程序接口的测试方法及装置 - Google Patents
一种应用程序接口的测试方法及装置 Download PDFInfo
- Publication number
- CN116955154A CN116955154A CN202310716100.3A CN202310716100A CN116955154A CN 116955154 A CN116955154 A CN 116955154A CN 202310716100 A CN202310716100 A CN 202310716100A CN 116955154 A CN116955154 A CN 116955154A
- Authority
- CN
- China
- Prior art keywords
- request
- application program
- interface
- parameters
- paths
- 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 121
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000010586 diagram Methods 0.000 claims abstract description 45
- 238000004458 analytical method Methods 0.000 claims abstract description 35
- 230000003068 static effect Effects 0.000 claims abstract description 19
- 238000012098 association analyses Methods 0.000 claims abstract description 17
- 238000005206 flow analysis Methods 0.000 claims abstract description 14
- 230000004044 response Effects 0.000 claims description 31
- 230000006870 function Effects 0.000 claims description 20
- 238000013507 mapping Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 10
- 230000002776 aggregation Effects 0.000 claims description 9
- 238000004220 aggregation Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 7
- 238000010276 construction Methods 0.000 abstract description 5
- 230000007613 environmental effect Effects 0.000 abstract 1
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000004931 aggregating effect Effects 0.000 description 4
- 238000010998 test method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010219 correlation analysis Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test 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、通过swagger文档自动生成进行测试,由于swagger文档的实现基于代码的接口文件,根据代码interface(接口)文件的注解以及interface文件中所引用对象的结构确定,导致带来很多冗余的参数,而且对于参数是否必填以及接口之间的关系都无法确定,而且通过swagger自动生成的测试用例,只能生成接口的测试用例,无法生成基于业务功能的测试用例。
3、通过扫描项目的接口文件进行测试用例的自动生成,与方案2类似。
发明内容
为解决现有技术存在的上述问题,本发明提供一种应用程序接口的测试方法及装置,通过结合接口文档与流量分析的方法实现了应用程序接口的自动化测试,减少了测试用例的构建以及测试的时间,提高测试效率。
为实现上述目的,本发明采用下述技术方案:
在本发明一实施例中,提出了一种应用程序接口的测试方法,该方法包括:
通过对接口文档以及流量进行解析和汇聚分析;
根据流量解析以及汇聚分析结果结合接口文档的静态特性确定应用程序的接口定义;
通过数据关联分析确定环境变量以及应用程序接口的操作关系图;
根据应用程序接口的操作关系图确定测试用例执行顺序,结合环境变量、应用程序的接口定义以及接口文档中的静态特性,自动构建测试用例以及测试套件,实现了应用程序接口的自动化测试。
进一步地,应用程序的接口定义包括基本信息、请求参数以及响应参数;基本信息包括接口类型、请求方法、协议版本、请求路径以及内容类型;请求参数包括请求的参数类型、参数位置以及参数是否可选;参数位置包括请求头部、请求路径和请求体;响应参数包括响应的参数类型以及参数是否可选。
进一步地,通过对流量进行解析,提取流量中的请求路径,并对请求路径进行汇聚分析,确定请求路径层次关系,结合相似性分析,确定请求路径中的变量位置,并得到该请求路径的正则表达式,对后续请求路径进行正则匹配,若匹配中,则将该匹配中的请求路径进行聚合。
进一步地,通过对请求参数以及响应参数之间的参数名称以及参数值进行数据关联分析,确定环境变量。
进一步地,通过提取应用程序接口的请求路径以及referer,对请求路径进行汇聚分析,确定请求路径的层次关系,记录请求路径的执行时序图,确定应用程序接口的执行顺序;根据请求路径与referer之间的执行顺序以及请求路径与referer的关系构建请求路径与referer之间的映射表,结合请求路径与referer之间的映射表以及应用程序接口的执行顺序,确定应用程序接口的操作关系图。
进一步地,按照流量的请求时间,记录请求路径的调用时间,并按照调用时间对请求路径进行排列,通过学习请求路径的调用时间,构建应用程序接口的时间序列,确定操作时间T0和T1;通过计算应用程序接口之间的时间间隔与操作时间T0和T1的大小关系,确定应用程序接口的执行顺序;当新的请求到达时,若前后两个请求的时间间隔大于操作时间T1,则认为是另外一个业务功能的操作,构建测试用例的某个功能的测试套件;结合请求路径的分叉点,进一步确定业务之间的依赖关系,从而确定应用程序接口的操作关系,更新应用程序接口的操作关系图。
进一步地,应用程序接口的操作关系图是实际操作过程中,应用程序接口的执行顺序以及应用程序接口之间的依赖关系。
在本发明一实施例中,还提出了一种应用程序接口的测试装置,该装置包括:
解析及汇聚分析模块,用于通过对接口文档以及流量进行解析和汇聚分析;
应用程序接口定义模块,用于根据流量解析以及汇聚分析结果结合接口文档的静态特性确定应用程序的接口定义;
数据关联分析模块,用于通过数据关联分析确定环境变量以及应用程序接口的操作关系图;
应用程序接口测试模块,用于根据应用程序接口的操作关系图确定测试用例执行顺序,结合环境变量、应用程序的接口定义以及接口文档中的静态特性,自动构建测试用例以及测试套件,实现了应用程序接口的自动化测试。
进一步地,应用程序的接口定义包括基本信息、请求参数以及响应参数;基本信息包括接口类型、请求方法、协议版本、请求路径以及内容类型;请求参数包括请求的参数类型、参数位置以及参数是否可选;参数位置包括请求头部、请求路径和请求体;响应参数包括响应的参数类型以及参数是否可选。
进一步地,通过解析流量,提取流量中的请求路径,并对请求路径进行汇聚分析,确定请求路径层次关系,结合相似性分析,确定请求路径中的变量位置,并得到该请求路径的正则表达式,对后续请求路径进行正则匹配,若匹配中,则将该匹配中的请求路径进行聚合。
进一步地,通过对请求参数以及响应参数之间的参数名称以及参数值进行数据关联分析,确定环境变量。
进一步地,通过提取应用程序接口的请求路径以及referer,对请求路径进行汇聚分析,确定请求路径的层次关系,记录请求路径的执行时序图,确定应用程序接口的执行顺序;根据请求路径与referer之间的执行顺序以及请求路径与referer的关系构建请求路径与referer之间的映射表,结合请求路径与referer之间的映射表以及应用程序接口的执行顺序,确定应用程序接口的操作关系图。
进一步地,按照流量的请求时间,记录请求路径的调用时间,并按照调用时间对请求路径进行排列,通过学习请求路径的调用时间,构建应用程序接口的时间序列,确定操作时间T0和T1;通过计算应用程序接口之间的时间间隔与操作时间T0和T1的大小关系,确定应用程序接口的执行顺序;当新的请求到达时,若前后两个请求的时间间隔大于操作时间T1,则认为是另外一个业务功能的操作,构建测试用例的某个功能的测试套件;结合请求路径的分叉点,进一步确定业务之间的依赖关系,从而确定应用程序接口的操作关系,更新应用程序接口的操作关系图。
进一步地,应用程序接口的操作关系图是实际操作过程中,应用程序接口的执行顺序以及应用程序接口之间的依赖关系。
在本发明一实施例中,还提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现前述应用程序接口的测试方法。
在本发明一实施例中,还提出了一种计算机可读存储介质,计算机可读存储介质存储有执行应用程序接口的测试方法的计算机程序。
有益效果:
1、本发明结合静态文档以及流量分析技术,确定自动化测试用例,解约人力成本,提高测试效率。
2、本发明根据流量动态及时发现接口版本变更,调整测试用例,具有一定的自适应性。
附图说明
图1是本发明一实施例的应用程序接口的测试方法流程示意图;
图2是本发明一实施例的应用程序接口的测试装置结构示意图;
图3是本发明一实施例的计算机设备结构示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神,应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种应用程序接口的测试方法及装置,通过结合接口文档与流量分析的方法实现了应用程序接口的自动化测试,减少了测试用例的构建以及测试的时间,提高测试效率。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
图1是本发明一实施例的应用程序接口的测试方法流程示意图。如图1所示,该方法包括:
S1、通过对接口文档以及流量进行解析和汇聚分析;
通过对流量进行解析,提取流量中的请求路径,并对请求路径进行相似性分析,确定请求路径中的变量位置,并得到该请求路径的正则表达式,对后续请求路径进行正则匹配,若匹配中,则将该匹配中的请求路径进行聚合。
S2、根据流量解析以及汇聚分析结果结合接口文档的静态特性确定应用程序的接口定义;
静态特性主要是指接口名称、接口分类和接口路径等不常变化的特征。
应用程序的接口定义包括基本信息、请求参数以及响应参数;基本信息包括接口类型、请求方法、协议版本、请求路径以及内容类型等;请求参数包括请求的参数类型、参数位置以及参数是否可选;参数位置包括请求头部、请求路径和请求体;响应参数包括响应的参数类型以及参数是否可选。
S3、通过数据关联分析确定环境变量以及操作关系图;
通过对请求参数以及响应参数之间的参数名称以及参数值进行数据关联分析,确定环境变量;
通过提取应用程序接口的请求路径以及referer,对请求路径进行汇聚分析,确定请求路径的层次关系,记录请求路径的执行时序图,确定应用程序接口的执行顺序;根据请求路径与referer之间的执行顺序以及请求路径与referer的关系构建请求路径与referer之间的映射表,结合请求路径与referer之间的映射表以及应用程序接口的执行顺序,确定应用程序接口的操作关系图;
按照流量的请求时间,记录请求路径的调用时间,并按照调用时间对请求路径进行排列,通过学习请求路径的调用时间,构建应用程序接口的时间序列,确定操作时间T0和T1;通过计算应用程序接口之间的时间间隔与操作时间T0和T1的大小关系,确定应用程序接口的执行顺序;当新的请求到达时,若前后两个请求的时间间隔大于操作时间T1,则认为是另外一个业务功能的操作,构建测试用例的某个功能的测试套件;结合请求路径的分叉点,进一步确定业务之间的依赖关系,从而确定应用程序接口的操作关系,更新应用程序接口的操作关系图;
应用程序接口的操作关系图是实际操作过程中,应用程序接口的执行顺序以及应用程序接口之间的依赖关系。
S4、根据操作关系图确定测试用例执行顺序,结合环境变量、应用程序的接口定义以及接口文档中的静态特性,自动构建测试用例以及测试套件,实现了应用程序接口的自动化测试。
需要说明的是,尽管在上述实施例及附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
为了对上述应用程序接口的测试方法进行更为清楚的解释,下面结合一个具体的实施例来进行说明,然而值得注意的是该实施例仅是为了更好地说明本发明,并不构成对本发明不当的限定。
在本实施例中,由服务A对外提供路由管理功能,客户端通过浏览器访问服务A,服务A对外的域名为www.route.com。具体实施步骤如下:
S1、通过对接口文档以及流量进行解析和汇聚分析;
本实施例中,系统导入接口文档,并提取接口的定义。
本发明中可以通过探针或者镜像的方式采集流量,系统对流量进行解析以及清洗,通过域名筛选出服务A的流量,并清洗掉异常流量,比如清洗掉返回码为404,403的流量。
本实施例中,流量以RESTFUL接口为例,协议为HTTP,若为HTTPS,则首先进行SSL卸载,或者镜像七层的流量即将应用层的流量镜像到其他的节点进行分析,都不影响本实施例的执行。
系统按照HTTP协议标准解析流量,提取流量中的请求路径即URL,根据URL进行流量聚合;对URL进行相似性分析,相似性分析包括路径的长度以及路径的字符类型,确定URL的类型,路径分为固定路径以及变量路径,其中,变量路径中可能包含一个或者多个变量。若URL为变量路径,则根据URL中的变化情况确定URL中的变量位置,并得到该URL的正则表达式。
在域名下,通过请求路径URL以及请求方法,唯一确定一个应用程序接口。
对后续流量,首先进行固定路径的匹配,若命中,则认为该流量为该接口的流量,若没有命中,则继续匹配变量路径,进行正则匹配,若匹配中,则将该匹配中的请求路径进行聚合。
S2、根据流量解析以及汇聚分析结果结合接口文档的静态特性确定应用程序的接口定义;
根据HTTP协议标准以及RESTFUL接口规范,按照内容类型Content-Type解析流量,包含请求头部、请求体、响应头部和响应体。以请求路径和请求方法为应用程序接口唯一标识,根据流量解析,记录接口的每一个参数名称、参数值和参数类型,结合接口返回码以及异常提示,确定参数是否为必填。
结合接口文档中的静态特性,确定接口的名称以及参数名称等,从而确定应用程序接口的完整定义。
应用程序接口定义包括基本信息、请求参数以及响应参数;基本信息包括接口类型、请求方法、协议版本、请求路径以及内容类型等;请求参数包括请求的参数类型、参数位置以及参数是否可选;参数位置包括请求头部、请求路径以及请求体;响应参数包括响应的参数类型以及参数是否可选。
具体的,根据某个接口的请求流量中是否不带该请求参数,但是返回码为200,且没有异常提示,则认为该请求参数为可选参数;若某个接口中的某次请求中缺少某个请求参数时,响应返回异常提示“参数缺失”或者“参数异常”等,则认为该请求参数为必选参数,若某个接口中的所有请求中都携带某个请求参数,则认为该请求参数为必选参数。
具体的,可以根据不同的用户(客户端地址不同、User-Agent)区分不同的测试场景,比对同一类型的用户的请求接口定义是否相同,若不同的用户的请求接口定义不同,则按照用户类型进一步细分请求接口定义。
具体实施时,若用户类型引起了请求接口定义或者请求参数的差异,则优先以用户类型构建测试用例的不同测试场景。
具体实施时,若请求流量中携带版本定义,则首先按照请求接口的版本划分请求接口,同一个版本下有不同的请求接口;构建测试用例时,按照不同的版本构建测试用例。具体的,请求接口的版本号可以携带在请求头部或者请求路径中,测试人员也可以指定版本的匹配方式。
具体的,对于RESTFUL接口,根据json格式进行解析,确定参数类型,对于层次型的参数,则根据RESTFUL接口确定为对象型还是数组型。
具体的,根据实际流量中,该参数的具体位置,即请求路径中、请求头部或者请求体,确定参数的位置。
具体的,本实施例中,记录流量中的值,作为自动化测试的mock值。
S3、通过数据关联分析确定环境变量以及操作关系图;
环境变量确定了应用程序接口之间的参数依赖关系,操作关系图确定了应用程序接口之间的执行顺序,以及业务之间的关系确定了一个独立的业务功能。
环境变量通过对请求参数以及响应参数之间的参数名称以及参数值进行数据关联分析确定。
根据应用程序接口的参数名称的相似性、参数值的一致性以及请求的时序,确定应用程序接口之间的参数依赖关系,从而得到环境变量。
比如,接口1返回了路由标识routeId以及routeId的值,后续接口2中请求入参中也带入了routerId,同时routerId值为接口1中返回的routeId的值,则认为接口2中的参数依赖了接口1,则将接口1中的routeId设置为环境变量;接口2中的参数routeId,自动设置为接口1中的变量值。
应用程序接口的操作关系图为实际操作过程中,应用程序接口的执行顺序以及应用程序接口之间的依赖关系。
通过提取应用程序接口的请求路径以及referer,对请求路径进行汇聚分析,确定请求路径的层次关系,记录请求路径的执行时序图,确定应用程序接口的执行顺序;根据请求路径与referer之间的执行顺序以及请求路径与referer的关系构建请求路径与referer之间的映射表,结合请求路径与referer之间的映射表以及应用程序接口的执行顺序,确定应用程序接口的操作关系图。
按照客户端地址对流量进行分类,然后按照流量的请求时间,记录标准化后的请求路径的调用时间,并按照调用时间对请求路径进行排列,通过学习请求路径的调用时间,构建应用程序接口的时间序列,确定操作时间T0和T1;若两个应用程序接口之间的时间间隔小于T0,则认为是同一个网页的自动请求,若两个应用程序接口之间的时间间隔大于T1,则认为该操作为操作人员发起的操作,通过计算应用程序接口之间的时间间隔与操作时间T0和T1的大小关系,确定应用程序接口的执行顺序。
当新的请求到达时,若前一个请求与后一个请求的时间间隔大于操作时间T1,则认为是另外一个业务功能的操作,构建测试用例的某个功能的测试套件;结合请求路径的分叉点,进一步确定业务之间的依赖关系,从而确定应用程序接口的操作关系,更新应用程序接口的操作关系图。
S4、根据操作关系图确定测试用例执行顺序,结合环境变量、应用程序的接口定义以及接口文档中的静态特性,自动构建测试用例以及测试套件,实现了应用程序接口的自动化测试;
具体实施时,根据S2中的流量mock测试接口的参数定义。mock测试是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。
具体实施时,当需要进行测试套件构建时,以应用程序接口的操作关系图为基础,通过流量获取的mock值定义确定每个接口的参数值,按照顺序执行测试接口,并通过环境变量获取应用程序接口中的测试结果,构建第二测试结果,从而实现了应用程序接口的自动化测试。
基于同一发明构思,本发明还提出一种应用程序接口的测试装置。该装置的实施可以参见上述方法的实施,重复之处不再赘述。以下所使用的术语“模块”,可以是实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2是本发明一实施例的应用程序接口的测试装置结构示意图。如图2所示,该装置包括:
解析及汇聚分析模块101,用于通过对接口文档以及流量进行解析和汇聚分析;
通过解析流量,提取流量中的请求路径,并对请求路径进行汇聚分析,确定请求路径层次关系,结合相似性分析,确定请求路径中的变量位置,并得到该请求路径的正则表达式,对后续请求路径进行正则匹配,若匹配中,则将该匹配中的请求路径进行聚合。
应用程序接口定义模块102,用于根据流量解析以及汇聚分析结果结合接口文档的静态特性确定应用程序的接口定义;
应用程序的接口定义包括基本信息、请求参数以及响应参数;基本信息包括接口类型、请求方法、协议版本、请求路径以及内容类型;请求参数包括请求的参数类型、参数位置以及参数是否可选;参数位置包括请求头部、请求路径和请求体;响应参数包括响应的参数类型以及参数是否可选。
数据关联分析模块103,用于通过数据关联分析确定环境变量以及应用程序接口的操作关系图;
通过对请求参数以及响应参数之间的参数名称以及参数值进行数据关联分析,确定环境变量;
通过提取应用程序接口的请求路径以及referer,对请求路径进行汇聚分析,确定请求路径的层次关系,记录请求路径的执行时序图,确定应用程序接口的执行顺序;根据请求路径与referer之间的执行顺序以及请求路径与referer的关系构建请求路径与referer之间的映射表,结合请求路径与referer之间的映射表以及应用程序接口的执行顺序,确定应用程序接口的操作关系图;
按照流量的请求时间,记录请求路径的调用时间,并按照调用时间对请求路径进行排列,通过学习请求路径的调用时间,构建应用程序接口的时间序列,确定操作时间T0和T1;通过计算应用程序接口之间的时间间隔与操作时间T0和T1的大小关系,确定应用程序接口的执行顺序;当新的请求到达时,若前后两个请求的时间间隔大于操作时间T1,则认为是另外一个业务功能的操作,构建测试用例的某个功能的测试套件;结合请求路径的分叉点,进一步确定业务之间的依赖关系,从而确定应用程序接口的操作关系,更新应用程序接口的操作关系图;
应用程序接口的操作关系图是实际操作过程中,应用程序接口的执行顺序以及应用程序接口之间的依赖关系。
应用程序接口测试模块104,用于根据应用程序接口的操作关系图确定测试用例执行顺序,结合环境变量、应用程序的接口定义以及接口文档中的静态特性,自动构建测试用例以及测试套件,实现了应用程序接口的自动化测试。
应当注意,尽管在上文详细描述中提及了应用程序接口的测试装置的若干模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
基于前述发明构思,如图3所示,本发明还提出一种计算机设备200,包括存储器210、处理器220及存储在存储器210上并可在处理器220上运行的计算机程序230,处理器220执行计算机程序230时实现前述应用程序接口的测试方法。
基于前述发明构思,本发明还提出一种计算机可读存储介质,计算机可读存储介质存储有执行前述应用程序接口的测试方法的计算机程序。
本发明提出的应用程序接口的测试方法及装置,通过结合接口文档与流量分析的方法实现了应用程序接口的自动化测试,减少了测试用例的构建以及测试的时间,提高测试效率。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包含的各种修改和等同布置。
对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (16)
1.一种应用程序接口的测试方法,其特征在于,该方法包括:
通过对接口文档以及流量进行解析和汇聚分析;
根据流量解析以及汇聚分析结果结合接口文档的静态特性确定应用程序的接口定义;
通过数据关联分析确定环境变量以及应用程序接口的操作关系图;
根据应用程序接口的操作关系图确定测试用例执行顺序,结合环境变量、应用程序的接口定义以及接口文档中的静态特性,自动构建测试用例以及测试套件,实现了应用程序接口的自动化测试。
2.根据权利要求1所述的应用程序接口的测试方法,其特征在于,所述应用程序的接口定义包括基本信息、请求参数以及响应参数;基本信息包括接口类型、请求方法、协议版本、请求路径以及内容类型;请求参数包括请求的参数类型、参数位置以及参数是否可选;参数位置包括请求头部、请求路径和请求体;响应参数包括响应的参数类型以及参数是否可选。
3.根据权利要求1所述的应用程序接口的测试方法,其特征在于,通过对流量进行解析,提取流量中的请求路径,并对请求路径进行汇聚分析,确定请求路径层次关系,结合相似性分析,确定请求路径中的变量位置,并得到该请求路径的正则表达式,对后续请求路径进行正则匹配,若匹配中,则将该匹配中的请求路径进行聚合。
4.根据权利要求1所述的应用程序接口的测试方法,其特征在于,通过对请求参数以及响应参数之间的参数名称以及参数值进行数据关联分析,确定环境变量。
5.根据权利要求1所述的应用程序接口的测试方法,其特征在于,通过提取应用程序接口的请求路径以及referer,对请求路径进行汇聚分析,确定请求路径的层次关系,记录请求路径的执行时序图,确定应用程序接口的执行顺序;根据请求路径与referer之间的执行顺序以及请求路径与referer的关系构建请求路径与referer之间的映射表,结合请求路径与referer之间的映射表以及应用程序接口的执行顺序,确定应用程序接口的操作关系图。
6.根据权利要求5所述的应用程序接口的测试方法,其特征在于,按照流量的请求时间,记录请求路径的调用时间,并按照调用时间对请求路径进行排列,通过学习请求路径的调用时间,构建应用程序接口的时间序列,确定操作时间T0和T1;通过计算应用程序接口之间的时间间隔与操作时间T0和T1的大小关系,确定应用程序接口的执行顺序;当新的请求到达时,若前后两个请求的时间间隔大于操作时间T1,则认为是另外一个业务功能的操作,构建测试用例的某个功能的测试套件;结合请求路径的分叉点,进一步确定业务之间的依赖关系,从而确定应用程序接口的操作关系,更新应用程序接口的操作关系图。
7.根据权利要求5所述的应用程序接口的测试方法,其特征在于,所述应用程序接口的操作关系图是实际操作过程中,应用程序接口的执行顺序以及应用程序接口之间的依赖关系。
8.一种应用程序接口的测试装置,其特征在于,该装置包括:
解析及汇聚分析模块,用于通过对接口文档以及流量进行解析和汇聚分析;
应用程序接口定义模块,用于根据流量解析以及汇聚分析结果结合接口文档的静态特性确定应用程序的接口定义;
数据关联分析模块,用于通过数据关联分析确定环境变量以及应用程序接口的操作关系图;
应用程序接口测试模块,用于根据应用程序接口的操作关系图确定测试用例执行顺序,结合环境变量、应用程序的接口定义以及接口文档中的静态特性,自动构建测试用例以及测试套件,实现了应用程序接口的自动化测试。
9.根据权利要求8所述的应用程序接口的测试装置,其特征在于,所述应用程序的接口定义包括基本信息、请求参数以及响应参数;基本信息包括接口类型、请求方法、协议版本、请求路径以及内容类型;请求参数包括请求的参数类型、参数位置以及参数是否可选;参数位置包括请求头部、请求路径和请求体;响应参数包括响应的参数类型以及参数是否可选。
10.根据权利要求8所述的应用程序接口的测试装置,其特征在于,通过解析流量,提取流量中的请求路径,并对请求路径进行汇聚分析,确定请求路径层次关系,结合相似性分析,确定请求路径中的变量位置,并得到该请求路径的正则表达式,对后续请求路径进行正则匹配,若匹配中,则将该匹配中的请求路径进行聚合。
11.根据权利要求8所述的应用程序接口的测试装置,其特征在于,通过对请求参数以及响应参数之间的参数名称以及参数值进行数据关联分析,确定环境变量。
12.根据权利要求8所述的应用程序接口的测试装置,其特征在于,通过提取应用程序接口的请求路径以及referer,对请求路径进行汇聚分析,确定请求路径的层次关系,记录请求路径的执行时序图,确定应用程序接口的执行顺序;根据请求路径与referer之间的执行顺序以及请求路径与referer的关系构建请求路径与referer之间的映射表,结合请求路径与referer之间的映射表以及应用程序接口的执行顺序,确定应用程序接口的操作关系图。
13.根据权利要求12所述的应用程序接口的测试装置,其特征在于,按照流量的请求时间,记录请求路径的调用时间,并按照调用时间对请求路径进行排列,通过学习请求路径的调用时间,构建应用程序接口的时间序列,确定操作时间T0和T1;通过计算应用程序接口之间的时间间隔与操作时间T0和T1的大小关系,确定应用程序接口的执行顺序;当新的请求到达时,若前后两个请求的时间间隔大于操作时间T1,则认为是另外一个业务功能的操作,构建测试用例的某个功能的测试套件;结合请求路径的分叉点,进一步确定业务之间的依赖关系,从而确定应用程序接口的操作关系,更新应用程序接口的操作关系图。
14.根据权利要求12所述的应用程序接口的测试装置,其特征在于,所述应用程序接口的操作关系图是实际操作过程中,应用程序接口的执行顺序以及应用程序接口之间的依赖关系。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-7任一项所述方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1-7任一项所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310716100.3A CN116955154A (zh) | 2023-06-16 | 2023-06-16 | 一种应用程序接口的测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310716100.3A CN116955154A (zh) | 2023-06-16 | 2023-06-16 | 一种应用程序接口的测试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116955154A true CN116955154A (zh) | 2023-10-27 |
Family
ID=88455596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310716100.3A Pending CN116955154A (zh) | 2023-06-16 | 2023-06-16 | 一种应用程序接口的测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116955154A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117555809A (zh) * | 2024-01-09 | 2024-02-13 | 舟谱数据技术南京有限公司 | 一种基于流量复制回放的自动化测试方法及相关装置 |
-
2023
- 2023-06-16 CN CN202310716100.3A patent/CN116955154A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117555809A (zh) * | 2024-01-09 | 2024-02-13 | 舟谱数据技术南京有限公司 | 一种基于流量复制回放的自动化测试方法及相关装置 |
CN117555809B (zh) * | 2024-01-09 | 2024-03-22 | 舟谱数据技术南京有限公司 | 一种基于流量复制回放的自动化测试方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200334309A1 (en) | Triggering generation of an accelerated data model summary for a data model | |
US20210133634A1 (en) | Efficiently executing commands at external computing services | |
CN110928772B (zh) | 一种测试方法及装置 | |
US8335838B2 (en) | Web page load time prediction and simulation | |
US20150304386A1 (en) | Systems and methods for context management | |
US11775501B2 (en) | Trace and span sampling and analysis for instrumented software | |
US7953850B2 (en) | Monitoring related content requests | |
JP5790412B2 (ja) | 対話的クライアント‐サーバー・アプリケーションのステートレスな分散式並列クロール技法 | |
CN109376069B (zh) | 一种测试报告的生成方法及设备 | |
JP5751134B2 (ja) | 対話的クライアント‐サーバー・アプリケーションの分散式並列クロールを協調させる技法 | |
CN112148610A (zh) | 测试用例执行方法、装置、计算机设备和存储介质 | |
CN110347954B (zh) | 面向复杂Web应用的服务化方法 | |
WO2021072742A1 (en) | Assessing an impact of an upgrade to computer software | |
CN110147327B (zh) | 一种基于多粒度的web自动化测试管理方法 | |
US7966390B2 (en) | Terminal emulation program, storage medium, load test method, load test apparatus, and load test system | |
CN112559525B (zh) | 数据检查系统、方法、装置和服务器 | |
CN116955154A (zh) | 一种应用程序接口的测试方法及装置 | |
GB2569678A (en) | Automation of SQL tuning method and system using statistic SQL pattern analysis | |
US8732323B2 (en) | Recording medium storing transaction model generation support program, transaction model generation support computer, and transaction model generation support method | |
CN110334302B (zh) | 复杂Web应用前端运行时分析方法 | |
CN113010208B (zh) | 一种版本信息的生成方法、装置、设备及存储介质 | |
CN110737645A (zh) | 一种不同系统间数据迁移方法、数据迁移系统及相关设备 | |
US11729074B1 (en) | Online data decomposition | |
CN103530369A (zh) | 一种去重方法及系统 | |
JP2019101889A (ja) | テスト実行装置及びプログラム |
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 |