CN109376064B - 一种接口测试报告的生成方法及设备 - Google Patents
一种接口测试报告的生成方法及设备 Download PDFInfo
- Publication number
- CN109376064B CN109376064B CN201811016927.9A CN201811016927A CN109376064B CN 109376064 B CN109376064 B CN 109376064B CN 201811016927 A CN201811016927 A CN 201811016927A CN 109376064 B CN109376064 B CN 109376064B
- Authority
- CN
- China
- Prior art keywords
- interface
- calling
- keyword
- local
- local interface
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明适用于信息处理技术领域,提供了一种接口测试报告的生成方法及设备,包括:获取应用程序的接口信息以及代码文件;解析代码文件,确定应用程序包含的调用链接;基于调用链接,与调用服务器建立通信连接,并获取应用程序访问调用服务器时所使用的调用接口的调用接口信息;根据接口描述信息以及调用接口信息,分别确定各个本地接口关联的调用接口;通过调用接口接收调用服务器发送的调用数据,并当满足预设的采集条件时,获取各个本地接口的运行参数,生成接口测试报告。本发明可以基于接口描述信息以及调用接口信息自动匹配各自关联的接口,并自动采集接口的运行参数生成接口测试报告,提高了测试报告的生成效率以及数据的准确性。
Description
技术领域
本发明属于信息处理技术领域,尤其涉及一种接口测试报告的生成方法及设备。
背景技术
随着终端技术的不断发展,为了满足用户使用过程中的各种需求,应用程序的数量以及更新速度也不断增长,如何高效地对应用程序进行测试,则直接影响应用程序的发布速度,特别地,应用程序内大部分的功能均通过内置的接口完成,故而接口测试则成为应用程序测试的重要环节。为了扩展应用程序的功能,开发人员常常会在应用程序中添加调用链接,通过调用服务器来对应用程序的可用功能进行扩充,该过程需要将应用程序中相关的接口与调用服务器的接口进行对接,而上述操作均需要开发人员手动配置,并且在配置完成后手动记录传输调用数据时本地接口的运行参数,以判断本地接口的连通性,从而得到接口测试报告。由此可见,现有的接口测试报告的生成方法,校验过程需要开发人员手动对接口进行配置,测试报告的生成也依赖开发人员手动记录,当接口数量较多并且参数变化较快的情况下,将大大增加接口测试报告的生成难度以及数据的准确率。
发明内容
有鉴于此,本发明实施例提供了本发明实施例提供了一种接口测试报告的生成方法及设备,以解决现有的接口测试报告的生成方法,校验过程需要开发人员手动对接口进行配置,测试报告的生成也依赖开发人员手动记录,当接口数量较多并且参数变化较快的情况下,将大大增加接口测试报告的生成难度以及数据的准确率的问题。
本发明实施例的第一方面提供了一种接口测试报告的生成方法,包括:
获取应用程序的接口信息以及代码文件;所述接口信息包括所述应用程序中各个本地接口的接口描述信息;
解析所述代码文件,确定所述应用程序包含的调用链接;
基于所述调用链接,与调用服务器建立通信连接,并获取所述应用程序访问所述调用服务器时所使用的调用接口的调用接口信息;
根据所述接口描述信息以及所述调用接口信息,分别确定各个所述本地接口关联的所述调用接口;
通过所述调用接口接收所述调用服务器发送的调用数据,并当满足预设的采集条件时,获取各个所述本地接口的运行参数,生成接口测试报告。
本发明实施例的第二方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面的各个步骤。
本发明实施例的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现第一方面的各个步骤。
实施本发明实施例提供的一种接口测试报告的生成方法及设备具有以下有益效果:
本发明实施例通过对应用程序的代码文件进行解析,确定应用程序中包含的调用链接,从而连接调用服务器,确定所需调用的各个调用接口的调用接口信息,从而自动建立调用接口与本地接口之间的关联关系,并通过各个调用接口接收调用服务器发送的调用数据,在接收数据的同时,获取各个本地接口的运行参数,从而确定各个本地接口与调用接口的连通性,生成对应的接口测试报告。与现有的接口测试报告的生成方式相比,无需开发人员对各个调用链接进行接口关联,终端设备可以基于接口描述信息以及调用接口信息自动匹配各自关联的接口,并自动采集接口的运行参数生成接口测试报告,提高了测试报告的生成效率以及数据的准确性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明第一实施例提供的一种接口测试报告的生成方法的实现流程图;
图2是本发明第二实施例提供的一种接口测试报告的生成方法S105具体实现流程图;
图3是本发明第三实施例提供的一种接口测试报告的生成方法S104具体实现流程图;
图4是本发明第四实施例提供的一种接口测试报告的生成方法S1042具体实现流程图;
图5是本发明第五实施例提供的一种接口测试报告的生成方法具体实现流程图;
图6是本发明一实施例提供的一种终端设备的结构框图;
图7是本发明另一实施例提供的一种终端设备的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过对应用程序的代码文件进行解析,确定应用程序中包含的调用链接,从而连接调用服务器,确定所需调用的各个调用接口的调用接口信息,从而自动建立调用接口与本地接口之间的关联关系,并通过各个调用接口接收调用服务器发送的调用数据,在接收数据的同时,获取各个本地接口的运行参数,从而确定各个本地接口与调用接口的连通性,生成对应的接口测试报告,解决了现有的接口测试报告的生成方法,校验过程需要开发人员手动对接口进行配置,测试报告的生成也依赖开发人员手动记录,当接口数量较多并且参数变化较快的情况下,将大大增加接口测试报告的生成难度以及数据的准确率的问题。
在本发明实施例中,流程的执行主体为终端设备。该终端设备包括但不限于:服务器、计算机、智能手机以及平板电脑等具有接口测试报告的生成功能的设备。图1示出了本发明第一实施例提供的接口测试报告的生成方法的实现流程图,详述如下:
在S101中,获取应用程序的接口信息以及代码文件;所述接口信息包括所述应用程序中各个本地接口的接口描述信息。
在本实施例中,用户可以指定安装于终端设备上的任一应用程序作为需要进行校验的应用程序,也可以指定安装于另一其他设备上的应用程序作为需要进行校验的应用程序。对于上述第一种情况,终端设备可以直接从本地存储单元获取应用程序的接口信息以及该应用程序对应的代码文件;对于上述第二种情况,则终端设备可以通过串行接口读取其他设备的存储单元,并基于应用程序的标识,从其他设备的存储单元中获取该应用程序的接口信息以及代码文件。
在本实施例中,应用程序在设备上运行的过程中,需要获取设备上的数据以及与其他终端进行交互,而上述操作则需要通过应用程序中的各个接口完成,该接口可以为虚拟接口,例如可以通过接口将同一数据流在不同进行之间进行数据传输,该接口还可以为物理接口,例如串口、无线通信接口等,应用程序通过物理接口采集或发送对应的信号。终端设备会统计应用程序所使用的所有本地接口,并基于各个本地接口的接口标识,获取本地接口的接口描述信息,从而得到接口信息。
在本实施例中,终端设备需要运行应用程序时,是通过处理器读取应用程序的代码文件,从而创建该应用程序的进程,继而通过该进程来执行应用程序的相关操作。因此,通过获取应用程序的代码文件,则可以确定该应用程序所包含的所有功能,并识别到该应用程序在运行的过程中可访问的调用服务器的情况,从而进行接口连通性的校验操作。
可选地,在本实施例中,接口描述信息可以为用于描述本地接口性能一序列。该序列中包含多个参数,每个参数为一编号值,终端设备可以通过接口性能对应关系表,确定每个参数所表示的本地接口的性能指标。例如,某一本地接口的接口描述信息为[10,2,2,50],其中,第一个参数值用于表示该本地接口的上行速率,即该本地接口的上行速率为10M/s,而第二个参数值用于表示该本地接口的下行速率,即为2M/s,第三个参数用于表示该本地接口的工作模式,若该参数值为0则表示单向接收接口;若该参数值为1则表示单向发送接口;若该参数值为1.5则表示该本地接口为半双工接口;若该参数值为2则表示该接口为全双工接口;而第四个参数值用于表示该接口同步帧的频率为50Hz的脉冲信号。由此可见,通过序列表示各个应用程序的接口性能,能够大大减少接口描述信息的数据存储量,提高了存储空间的利用率,也能进一步在后续进行本地接口与调用接口之间的匹配识别中,提升匹配速率。
在S102中,解析所述代码文件,确定所述应用程序包含的调用链接。
在本实施例中,终端设备在获取了所需进行校验的应用程序的代码文件后,会对该代码文件进行解析,检测该代码文件中是否包含调用链接。若存在,则从代码文件中提取该调用链接,并执行S103的相关操作,需要说明的是,该调用链接的个数可以为两个或以上,即应用程序可以通过访问多个调用服务器,提供多项调用功能,例如应用程序可以通过调用H5服务器,在应用程序的界面中生成H5页面,在用户点击应用程序中的视频链接时,还可以与该视频链接对应的服务器进行通信,在应用程序的界面中调用视频播放器,以满足视频播放功能;除了调用链接的个数可以为多个,本实施例识别的调用链接还可以为嵌套调用链接,即调用链接所访问的服务器在提供该应用程序所需的外设功能时,还可以调用其他服务器的组件,例如应用程序调用H5服务器在应用程序的界面中生成H5页面,而H5页面内可以播放视频网站的视频文件,因此需要通过H5服务器与视频网站的服务器链接,将该视频网站的播放器组件嵌入在H5页面中,即需要执行两次组件调用,即该一个调用链接所调用的对象可以为多个。
可选地,在本实施例中,终端设备识别调用链接的方式可以为:运行代码文件中的各个代码段,并检测通信接口是否被激活,若通信接口被激活,则确定该代码段所对应的通信对象,若该通信对象为一服务器,则识别该代码段为调用链接。
可选地,若应用程序的代码文件中不包含调用链接,则输出一个校验对象不存在信息,以告知应用程序的开发人员该应用程序中不存在服务器的调用情况,要求开发人员确认是否并未将调用链接添加到代码文件内,或者开发人员所指定进行校验的应用程序出错,以便开发人员重新选择所需进行校验的应用程序。
在S103中,基于所述调用链接,与调用服务器建立通信连接,并获取所述应用程序访问所述调用服务器时所使用的调用接口的调用接口信息。
在本实施例中,终端设备在获取了调用链接后,会根据该调用链接所指向的网络地址,与该网络地址对应的设备建立通信连接,从而生成一条终端设备与调用服务器之间的通信链路。通过该通信链路,终端设备可以与调用服务器进行数据交互,从而确定应用程序在提供外设功能时所需与调用服务器进行对接的调用接口,继而根据调用接口的接口标识,从调用服务器处确定各个调用接口的调用接口信息。
在本实施例中,调用接口信息与S101中的接口描述信息类似,主要是用于描述调用接口的接口功能和/或运行参数。特别地,该调用接口信息可以为一通用接口标识符。不同的设备均使用同一套接口编码算法,即对于相同功能以及性能的接口,会通过相同的标识符进行表示,例如通过关键值,即Key值进行标识。在识别两个接口是否为关联对接接口时,可以通过识两个接口之间的Key值是否相同,若相同则表示上述两个接口为关联接口。基于此,该调用接口信息也可以为一Key值,从而能够在后续匹配识别的过程中提高识别效率。可选地,该调用接口信息还可以为S101中用于表示该接口性能的序列,具体描述可参见S101的阐述,在此不再赘述。
在S104中,根据所述接口描述信息以及所述调用接口信息,分别确定各个所述本地接口关联的所述调用接口。
在本实施例中,终端设备在获取了应用程序的关于本地接口的接口描述信息以及关于调用接口的调用接口信息后,可以基于上述两个信息建立本地接口与调用接口之间的关联关系,从而判断本地接口中是否在访问的调用服务器侧存在与之对应的调用接口。需要说明的是,由于应用程序中除了外设功能需要使用本地接口与调用接口进行对接外,其他本地接口在调用服务器侧并不存在与之对应的调用接口,因此在确定各个本地接口的关联的调用接口时,会出现本地接口关联的调用接口为空的情况,即不存在与之对应的调用接口。
可选地,在本实施例中,终端设备会将接口描述信息以及调用接口信息转换为统一的接口编码信息,在转换完成后再进行匹配操作,从而各个本地接口关联的调用接口。如上所述,本地接口的接口描述信息可以为一用于描述接口性能的序列,而调用接口可以通过Key值来定义各个接口的属性,由此可见,用于描述接口性能的序列以及Key值之间无法直接进行匹配,因此终端设备可以根据调用接口的Key值,转换为与之对应的用于描述接口性能的序列,也可以将本地接口的用于描述接口性能的序列转换为Key值,还可以将上述两个参数统一转换为第三种接口描述信息后,在进行匹配操作,从而通过上述的接口信息转换后,提高识别操作的准确性。
可选地,在本实施例中,终端设备可以设置一匹配阈值。若某一本地接口与各个调用接口之间的匹配度均小于该匹配阈值,则识别该本地接口不存在与之关联的调用接口。反之,若某一本地接口与多个调用接口之间的匹配度均大于匹配阈值,则识别匹配度最高的一个调用接口为该本地接口关联的调用接口。
在S105中,通过所述调用接口接收所述调用服务器发送的调用数据,并当满足预设的采集条件时,获取各个所述本地接口的运行参数,生成接口测试报告。
在本实施例中,终端设备在确定了各个本地接口对应的调用接口外,可以从调用服务器处获取所需的调用数据,并导入终端设备中与各个调用接口对应的本地接口内,以作为本地接口的激励信号,响应调用操作,从而使得各个本地接口处于工作模式,以便在后续执行接口测试报告生成的过程中,采集各个本地接口在接收调用数据的状态下对应的运行参数。基于此,在能够通过调用接口接收调用数据的情况下,为了检测接口匹配是否正确以及调用接口与本地接口之间的连通性,即各个本地接口正在接口与之关联的调用接口所传输的调用数据的状态下,终端设备设置有采集条件,并获取在满足采集条件的时刻各个本地接口的运行参数,并通过本地接口的运行参数生成关于应用程序的接口测试报告。
可选地,该预设的采集条件可以为事件触发条件或时间触发条件。其中,事件触发条件具体为当检测到某一预设时间触发时,则获取本地接口的运行参数,例如,当检测到本地接口有数据传输时,则记录当前时刻的运行参数信息,或者当本地接口的数据量大于预设的阈值时,则记录当前时刻的运行参数信息,通过设置不同的触发事件,可以采集到本地接口不同维度的运行参数。时间触发条件具体为当检测到当前时刻到达预设的时间节点时,则获取本地接口的运行参数,其中,不同的时间节点之间的时间间隔可以是固定的,也可以是满足预设的时间间隔规则。
在本实施例中,终端设备在采集到各个本地接口的运行参数后,可以检测各个运行参数是否在预设的运行参数阈值范围内,从而判断该本地接口是否匹配成功,从而得到关于所有本地接口的接口测试报告。若各个运行参数均在运行参数阈值范围内,则识别该本地接口匹配成功;反之,则表示调用接口与本地接口不匹配,用户可以通过该接口测试报告直观确定各个本地接口的连通情况,提高了接口管理的效率。
以上可以看出,本发明实施例提供的一种接口测试报告的生成方法通过对应用程序的代码文件进行解析,确定应用程序中包含的调用链接,从而连接调用服务器,确定所需调用的各个调用接口的调用接口信息,从而自动建立调用接口与本地接口之间的关联关系,并通过各个调用接口接收调用服务器发送的调用数据,在接收数据的同时,获取各个本地接口的运行参数,从而确定各个本地接口与调用接口的连通性,生成对应的接口测试报告。与现有的接口测试报告的生成方式相比,无需开发人员对各个调用链接进行接口关联,终端设备可以基于接口描述信息以及调用接口信息自动匹配各自关联的接口,并自动采集接口的运行参数生成接口测试报告,提高了测试报告的生成效率以及数据的准确性。
图2示出了本发明第二实施例提供的一种接口测试报告的生成方法S105的具体实现流程图。参见图2所示,相对于图1述实施例,本实施例提供的一种接口测试报告的生成方法中S105包括:S1051~S1054,具体详述如下:
在S1051中,获取所述本地接口在多个预设的采集周期节点的运行参数。
在本实施例中,终端设备设置有一采集周期,并根据该采集周期能够确定多个采集周期节点,每个相邻的采集周期节点之间的时间间隔为一个采集周期对应的时长。当终端设备检测到当前时刻到达该预设的采集周期节点时,会获取各个本地接口的运行参数,所有运行参数会基于其对应的采集时间的时间次序依次排列,得到一运行参数序列。
在本实施例中,每个运行参数会关联一个采集周期节点,以便在后续生产运行参数轨迹的过程中,能够基于该运行参数的参数值以及其关联的采集周期节点,确定对应的坐标位置。
在S1052中,在预设的接口参数坐标内标记各个所述运行参数,得到关于所述本地接口的运行参数轨迹。
在本实施例中,终端设备在获取了各个本地接口的运行参数后,会根据各个运行参数的参数值以及对应的采集周期节点确定其在接口参数坐标内的位置,并进行标记,根据多个运行参数的参数值,则可以生成该本地接口的运行参数轨迹。
需要说明的是,一个应用程序内可以包含多个本地接口,而不同的本地接口对应一条运行参数轨迹,多个本地接口的运行参数轨迹可以绘制于相同的接口参数坐标内,也可以分别进行运行参数轨迹的绘制操作,具体可以根据用户的设置进行确定。若两个本地接口之间存在关联关系或对照关系,则可以绘制于同一接口参数坐标内;若两个本地接口之间是互相独立的,则可以分别进行绘制操作。
在本实施例中,终端设备可以设置绘制时机,即经过N个采集周期后,获取了N个时刻的运行参数后,则执行S1052的相关操作;也可以在每获取一个运行参数后,则执行一次S1052~S1053的相关操作,识别在检测周期内是否存在异常情况,若存在异常情况则马上生成接口异常报告,从而提高异常识别的效率。
在S1053中,计算所述运行参数轨迹与该本地接口预设的标准参数轨迹相交区域的面积。
在本实施例中,终端设备在确定了本地接口在实际运行过程中得到运行参数轨迹后,可以在同一运行参数坐标内绘制该本地接口的预设的标准参数轨迹,并在绘制完毕后,计算两条轨迹曲线之间相交区域的面积大小,若两条曲线的差异越大,则表示该本地接口的运行情况与额定运行情况差异较大;反之,若两条曲线的差异较小,则表示该本地接口的运行情况与额定运行情况差异较小,由此可见,通过两条轨迹之间的面积的大小,可以判断该本地接口在运行过程中是否存在异常情况。若该相交区域的面积大于预设的差异阈值,则执行S1054的相关操作;反之,若该相交区域的面积小于或等于预设的差异阈值,则表示该本地接口与标准运行情况差异不大,则处于正常运行状态,识别该本地接口连通且无异常。
在S1054中,若所述面积的值大于预设的差异阈值,则输出接口异常报告。
在本实施例中,终端设备识别到两个参数轨迹之间相交区域的面积大于预设的差异阈值时,则表示该本地接口与额定运行状态存在较大差异,在该情况下,会输出一个接口异常报告,作为该本地接口的接口测试报告,以便开发人员对该存在异常情况的接口进行处理,实现自动识别异常接口的目的。
在本发明实施例中,通过绘制本地接口的运行参数轨迹,并计算运行参数轨迹与标准参数轨迹之间的差异程度,确定本地接口是否处于异常状态,提高了识别的准确率以及效率。
图3示出了本发明第二实施例提供的一种接口测试报告的生成方法S104的具体实现流程图。参见图3所示,相对于图1述实施例,本实施例提供的一种接口测试报告的生成方法中S104包括:S1041~S1043,具体详述如下:
在S1041中,将所述接口描述信息以及所述调用接口信息分别执行关键词提取操作,得到本地接口关键词序列以及调用接口关键词序列。
在本实施例中,接口描述信息以及调用接口信息均为通过自然语言对该接口的功能和/或运行参数进行描述,为了计算接口描述信息以及调用接口信息之间的匹配度,终端设备会通过预设的关键词提取算法,分别确定接口描述信息对应的本地接口关键词序列,以及调用接口信息对应的调用接口关键词序列,从而能够将接口描述信息以及调用接口信息中的无效词语进行过滤,例如介词以及助词等无实际物理含义的词语,提高了识别效率。
在本实施例中,本地接口关键词序列中至少包含一个关键词,且各个关键词在本地接口关键词序列中的次序与该关键词在接口描述信息中的出现次序相同,若某一关键词在接口描述信息中出现多次,则只记录一次。同样地,调用接口关键词序列也满足上述特征,在此不再赘述。
在S1042中,将所述本地接口关键词序列以及所述调用接口关键词序列导入预设的匹配度计算模型,分别计算所述本地接口与各个所述调用接口之间的匹配度;所述匹配度计算模型具体为:
其中,MatchPoint(Innterface1,Interface2)为所述本地接口与所述调用接口之间的匹配度,[KeyWord1j]为所述本地接口关键词序列,[KeyWord2i]为所述调用接口关键词序列;ρ(KeyWord1j,KeyWord2i)为所述本地接口关键词序列中第j个关键词与所述调用接口关键词序列中第i个关键词之间的关联度;m为所述本地接口关键词序列包含的关键词的第一个数;n为所述调用接口关键词序列中包含的关键词的第二个数;为最大值选取函数;Quo为预设系数。
在本实施例中,终端设备会将本地接口关键词序列以及调用接口关键词序列导入到匹配度计算模型内,确定接口描述信息的本地接口与各个调用接口之间的匹配度,若该匹配度的数值越大,则表示该本地接口与该调用接口之间的传输的数据的类型以及功能越相似,则表示两者的关联性越高;反之,若该匹配度数值越小,则表示该本地接口与该调用接口之间的差异越大,即两者的关联性越低。
在本实施例中,由于上述两类关键词序列中各个关键词的次序是根据在接口描述信息以及调用接口信息中的出现次序确定的,因此相同位置的关键词所表征的物理含义并不一定相同,因此这里会确定本地接口关键词序列中的各个关键词与调用接口关键词序列中的各个关键词之间的关联度,并通过函数选取关联度最大的一个作为本地接口关键词所对应的调用接口关键词,并基于各个关联关键词确定两个接口之间的匹配度,通过上述的计算方式,能够大大提高接口匹配的准确率。
在S1043中,选取所述匹配度最大的所述调用接口作为所述本地接口关联的调用接口。
在本实施例中,终端设备在计算了本地接口与各个调用接口之间的匹配度后,会选取匹配度最大的调用接口作为本地接口关联的调用接口。当然,终端设备还可以设置以匹配度阈值,若该本地接口与各个调用接口之间的匹配度均小于匹配度阈值,则识别该本地接口不存在对应的调用接口。
在本发明实施例中,通过将接口信息转换为关键词序列,并通过计算各个关键词之间的关联度确定两个接口之间的匹配度,从而能够提高关联接口的识别的准确率,进一步提高校验成功率。
图4示出了本发明第三实施例提供的一种接口测试报告的生成方法S1042的具体实现流程图。参见图4所示,相对于图3所述实施例,本实施例提供的一种接口测试报告的生成方法中S1042包括:S401~S403,具体详述如下:
在S401中,基于预设的词语属性维度,构建词语属性坐标,并在所述词语属性坐标内标记所述本地接口关键词序列的各个关键词的第一坐标以及所述调用接口关键词序列的各个关键词的第二坐标。
在本实施例中,终端设备为了计算不同关键词之间的关联度,即两个关键词是否相似,会通过在多个预设的词语属性维度,构建一个词语属性坐标,若该坐标中某两个关键词之间的距离越大,则表示两者之间的关联度越小,若该关键词中某两个关键词之间的距离越小,则表示两者之间的关联度越大。因此,终端设备会确定关键词组中各个本地接口关键词以及调用接口关键词在各个预设的词语属性维度的数值,从而得到各个第一坐标以及第二坐标。
在本实施例中,预设的词语属性维度包括但不限于:词语情感维度,即某一词语是正面且积极的程度,例如“接收”则可以位于该词语情感维度的正半轴,而“丢失”则可以位于该词语情感维度的负半轴;词语幅度维度,即某一词语所表示的情感、位置、力量等的强弱轻度,例如“高速”则可以位于该词语幅度维度的正半轴;而“堵塞”则可以位于该词语幅度维度的负半轴。因此,各个本地接口关键词以及调用接口关键词可以在不同词语属性维度具有对应的数值,从而所有词语属性维度的数值构成了该业务关键词或特征关键词的坐标,即上述的第一坐标以及第二坐标。
在S402中,分别计算各个所述第一坐标与所述第二坐标的欧氏距离;所述欧氏距离的计算方法具体为:
其中,Dist(KeyWord1j,KeyWord2i)为所述本地接口关键词序列中第j个关键词与所述调用接口关键词序列中第i个关键词之间的所述欧氏距离;KeyWord1jk为所述本地接口关键词序列中第j个关键词在第k维度的坐标值;KeyWord2ik为所述调用接口关键词序列中第i个关键词在第k维度的坐标值;Dimesion为词语属性维度的总个数。
在本实施例中,终端设备在确定了各个本地接口关键词的第一坐标以及调用接口关键词的第二坐标后,可以计算各个本地接口关键词与调用关键词在预设的坐标的欧氏距离。通过欧氏距离公式,计算两个坐标之间的距离值,能够准确表达两者之间的关联程度,从而提高了关联接口识别的准确性。
在S403中,将所述欧氏距离识别为所述关联度。
在本实施例中,终端设备会将两个关键词之间的欧氏距离作为两个关键词之间的关联度,该欧氏距离越小,则表示两者之间的关联度越大;反之,若两者之间的欧氏距离越大,则表示两者之间的关联度越小。
在本发明实施例中,通过将本地接口关键词以及调用接口关键词投影到预设的坐标中,从而将词语之间的关联性进行量化,方便终端设备计算不同关键词之间的关联度,从而提高了关联接口识别的准确率。
图5示出了本发明第四实施例提供的一种接口测试报告的生成方法的具体实现流程图。参见图5所示,相对于图1-图4所述实施例,本实施例提供的一种接口测试报告的生成方法中在所述当满足预设的采集条件时,获取各个所述本地接口的运行参数,生成接口测试报告之后,还包括:S501~S502,具体详述如下:
进一步地,在所述当满足预设的采集条件时,获取各个所述本地接口的运行参数,生成接口测试报告之后,还包括:
在S501中,获取所述应用程序的接口校验实例;所述接口校验实例记录有各个所述本地接口的额定参数范围。
在本实施例中,终端设备在输出了应用程序中关于本地接口的接口测试报告后,可以自动对该接口测试报告进行测试结果识别,无需人工手动识别测试是否成功。在该情况下,终端设备可以通过云端服务器下载该应用程序的接口校验实例,当然该接口校验实例还可以是应用程序的开发人员预先配置并发送给终端设备的。其中,该接口校验实例中包含了各个本地接口的额定参数范围,即本地接口的运行参数在额定参数范围内,则表示该本地接口处于正常运行状态;反之,若该本地接口的运行参数在额定参数范围外,则表示该接口处于异常状态。
在S502中,根据所述接口测试报告以及所述接口校验实例,识别所述运行参数超过所述额定参数范围的本地接口为异常接口,并输出校验失败信息。
在本实施例中,终端设备会将本次生成的接口测试报告导入到该接口校验实例内,以检测接口测试报告内的各个运行参数是否在预设的额定参数范围内,从而识别得到本次测试中存在的异常接口,并生成校验失败信息,以便开发人员再次调整该应用程序中存在异常的本地接口的代码数据。
在本发明实施例中,通过与接口校验实例进行匹配,识别出测试中包含的异常接口,并输出校验失败信息,从而能够提高异常识别的效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
图6示出了本发明一实施例提供的一种终端设备的结构框图,该终端设备包括的各单元用于执行图1对应的实施例中的各步骤。具体请参阅图1与图1所对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。
参见图6,所述终端设备包括:
应用程序获取单元61,用于获取应用程序的接口信息以及代码文件;所述接口信息包括所述应用程序中各个本地接口的接口描述信息;
调用链接确定单元62,用于解析所述代码文件,确定所述应用程序包含的调用链接;
调用接口获取单元63,用于基于所述调用链接,与调用服务器建立通信连接,并获取所述应用程序访问所述调用服务器时所使用的调用接口的调用接口信息;
关联接口识别单元64,用于根据所述接口描述信息以及所述调用接口信息,分别确定各个所述本地接口关联的所述调用接口;
关联接口校验单元65,用于通过所述调用接口接收所述调用服务器发送的调用数据,并当满足预设的采集条件时,获取各个所述本地接口的运行参数,生成接口测试报告。
可选地,所述关联接口校验单元65包括:
运行参数获取单元,用于获取所述本地接口在多个预设的采集周期节点的运行参数;
参数轨迹绘制单元,用于在预设的接口参数坐标内标记各个所述运行参数,得到关于所述本地接口的运行参数轨迹;
参数轨迹比较单元,用于计算所述运行参数轨迹与该本地接口预设的标准参数轨迹相交区域的面积;
接口异常报告输出单元,用于若所述面积的值大于预设的差异阈值,则输出接口异常报告。
可选地,所述关联接口识别单元64包括:
关键词序列获取单元,用于将所述接口描述信息以及所述调用接口信息分别执行关键词提取操作,得到本地接口关键词序列以及调用接口关键词序列;
关键词序列匹配单元,用于将所述本地接口关键词序列以及所述调用接口关键词序列导入预设的匹配度计算模型,分别计算所述本地接口与各个所述调用接口之间的匹配度;所述匹配度计算模型具体为:
其中,MatchPoint(Innterface1,Interface2)为所述本地接口与第二接与所述调用接口之间的匹配度,[KeyWord1j]为所述本地接口关键词序列,[KeyWord2i]为所述调用接口关键词序列;ρ(KeyWord1j,KeyWord2i)为所述本地接口关键词序列中第j个关键词与所述调用接口关键词序列中第i个关键词之间的关联度;m为所述本地接口关键词序列包含的关键词的第一个数;n为所述调用接口关键词序列中包含的关键词的第二个数;为最大值选取函数;Quo为预设系数;
关联接口确定单元,用于选取所述匹配度最大的所述调用接口作为所述本地接口关联的调用接口。
可选地,所述关键词序列匹配单元包括:
词语属性坐标构建单元,用于基于预设的词语属性维度,构建词语属性坐标,并在所述词语属性坐标内标记所述本地接口关键词序列的各个关键词的第一坐标以及所述调用接口关键词序列的各个关键词的第二坐标;
欧氏距离计算单元,用于分别计算各个所述第一坐标与所述第二坐标的欧氏距离;所述欧氏距离的计算方法具体为:
其中,Dist(KeyWord1j,KeyWord2i)为所述本地接口关键词序列中第j个关键词与所述调用接口关键词序列中第i个关键词之间的所述欧氏距离;KeyWord1jk为所述本地接口关键词序列中第j个关键词在第k维度的坐标值;KeyWord2ik为所述调用接口关键词序列中第i个关键词在第k维度的坐标值;Dimesion为词语属性维度的总个数;
关联度计算单元,用于将所述欧氏距离识别为所述关联度。
可选地,所述终端设备还包括:
接口校验实例获取单元,用于获取所述应用程序的接口校验实例;所述接口校验实例记录有各个所述本地接口的额定参数范围;
接口校验实例识别单元,用于根据所述接口测试报告以及所述接口校验实例,识别所述运行参数超过所述额定参数范围的本地接口为异常接口,并输出校验失败信息。
因此,本发明实施例提供的终端设备同样可以无需开发人员对各个调用链接进行接口关联,终端设备可以基于接口描述信息以及调用接口信息自动匹配各自关联的接口,并自动采集接口的运行参数生成接口测试报告,提高了测试报告的生成效率以及数据的准确性。
图7是本发明另一实施例提供的一种终端设备的示意图。如图7所示,该实施例的终端设备7包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机程序72,例如接口测试报告的生成程序。所述处理器70执行所述计算机程序72时实现上述各个接口测试报告的生成方法实施例中的步骤,例如图1所示的S101至S105。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各单元的功能,例如图6所示模块61至65功能。
示例性的,所述计算机程序72可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器71中,并由所述处理器70执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述终端设备7中的执行过程。例如,所述计算机程序72可以被分割成应用程序获取单元、调用链接确定单元、调用接口获取单元、关联接口识别单元以及关联接口校验单元,各单元具体功能如上所述。
所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是终端设备7的示例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器70可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器71可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种接口测试报告的生成方法,其特征在于,包括:
获取应用程序的接口信息以及代码文件;所述接口信息包括所述应用程序中各个本地接口的接口描述信息;
解析所述代码文件,确定所述应用程序包含的调用链接;
基于所述调用链接,与调用服务器建立通信连接,并获取所述应用程序访问所述调用服务器时所使用的调用接口的调用接口信息;
根据所述接口描述信息以及所述调用接口信息,分别确定各个所述本地接口关联的所述调用接口;
通过所述调用接口接收所述调用服务器发送的调用数据,并当满足预设的采集条件时,获取各个所述本地接口的运行参数,生成接口测试报告。
2.根据权利要求1所述的生成方法,其特征在于,所述当满足预设的采集条件时,获取各个所述本地接口的运行参数,生成接口测试报告,包括:
获取所述本地接口在多个预设的采集周期节点的运行参数;
在预设的接口参数坐标内标记各个所述运行参数,得到关于所述本地接口的运行参数轨迹;
计算所述运行参数轨迹与该本地接口预设的标准参数轨迹相交区域的面积;
若所述面积的值大于预设的差异阈值,则输出接口异常报告。
3.根据权利要求1所述的生成方法,其特征在于,所述根据所述接口描述信息以及所述调用接口信息,分别确定各个所述本地接口关联的部署于所述调用服务器的调用接口,包括:
将所述接口描述信息以及所述调用接口信息分别执行关键词提取操作,得到本地接口关键词序列以及调用接口关键词序列;
将所述本地接口关键词序列以及所述调用接口关键词序列导入预设的匹配度计算模型,分别计算所述本地接口与各个所述调用接口之间的匹配度;所述匹配度计算模型具体为:
其中,MatchPoint(Innterface1,Interface2)为所述本地接口与所述调用接口之间的匹配度,[KeyWord1j]为所述本地接口关键词序列,[KeyWord2i]为所述调用接口关键词序列;ρ(KeyWord1j,KeyWord2i)为所述本地接口关键词序列中第j个关键词与所述调用接口关键词序列中第i个关键词之间的关联度;m为所述本地接口关键词序列包含的关键词的第一个数;n为所述调用接口关键词序列中包含的关键词的第二个数;为最大值选取函数;Quo为预设系数;
选取所述匹配度最大的所述调用接口作为所述本地接口关联的调用接口。
4.根据权利要求3所述的生成方法,其特征在于,所述分别计算所述本地接口与各个所述调用接口之间的匹配度,包括:
基于预设的词语属性维度,构建词语属性坐标,并在所述词语属性坐标内标记所述本地接口关键词序列的各个关键词的第一坐标以及所述调用接口关键词序列的各个关键词的第二坐标;
分别计算各个所述第一坐标与所述第二坐标的欧氏距离;所述欧氏距离的计算方法具体为:
其中,Dist(KeyWord1j,KeyWord2i)为所述本地接口关键词序列中第j个关键词与所述调用接口关键词序列中第i个关键词之间的所述欧氏距离;KeyWord1jk为所述本地接口关键词序列中第j个关键词在第k维度的坐标值;KeyWord2ik为所述调用接口关键词序列中第i个关键词在第k维度的坐标值;Dimesion为词语属性维度的总个数;
将所述欧氏距离识别为所述关联度。
5.根据权利要求1-4任一项所述的生成方法,其特征在于,在所述当满足预设的采集条件时,获取各个所述本地接口的运行参数,生成接口测试报告之后,还包括:
获取所述应用程序的接口校验实例;所述接口校验实例记录有各个所述本地接口的额定参数范围;
根据所述接口测试报告以及所述接口校验实例,识别所述运行参数超过所述额定参数范围的本地接口为异常接口,并输出校验失败信息。
6.一种终端设备,其特征在于,所述终端设备包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如下步骤:
获取应用程序的接口信息以及代码文件;所述接口信息包括所述应用程序中各个本地接口的接口描述信息;
解析所述代码文件,确定所述应用程序包含的调用链接;
基于所述调用链接,与调用服务器建立通信连接,并获取所述应用程序访问所述调用服务器时所使用的调用接口的调用接口信息;
根据所述接口描述信息以及所述调用接口信息,分别确定各个所述本地接口关联的所述调用接口;
通过所述调用接口接收所述调用服务器发送的调用数据,并当满足预设的采集条件时,获取各个所述本地接口的运行参数,生成接口测试报告。
7.根据权利要求6所述的终端设备,其特征在于,所述当满足预设的采集条件时,获取各个所述本地接口的运行参数,生成接口测试报告,包括:
获取所述本地接口在多个预设的采集周期节点的运行参数;
在预设的接口参数坐标内标记各个所述运行参数,得到关于所述本地接口的运行参数轨迹;
计算所述运行参数轨迹与该本地接口预设的标准参数轨迹相交区域的面积;
若所述面积的值大于预设的差异阈值,则输出接口异常报告。
8.根据权利要求6所述的终端设备,其特征在于,所述根据所述接口描述信息以及所述调用接口信息,分别确定各个所述本地接口关联的部署于所述调用服务器的调用接口,包括:
将所述接口描述信息以及所述调用接口信息分别执行关键词提取操作,得到本地接口关键词序列以及调用接口关键词序列;
将所述本地接口关键词序列以及所述调用接口关键词序列导入预设的匹配度计算模型,分别计算所述本地接口与各个所述调用接口之间的匹配度;所述匹配度计算模型具体为:
其中,MatchPoint(Innterface1,Interface2)为所述本地接口与所述调用接口之间的匹配度,[KeyWord1j]为所述本地接口关键词序列,[KeyWord2i]为所述调用接口关键词序列;ρ(KeyWord1j,KeyWord2i)为所述本地接口关键词序列中第j个关键词与所述调用接口关键词序列中第i个关键词之间的关联度;m为所述本地接口关键词序列包含的关键词的第一个数;n为所述调用接口关键词序列中包含的关键词的第二个数;为最大值选取函数;Quo为预设系数;
选取所述匹配度最大的所述调用接口作为所述本地接口关联的调用接口。
9.根据权利要求8所述的终端设备,其特征在于,所述分别计算所述本地接口与各个所述调用接口之间的匹配度,包括:
基于预设的词语属性维度,构建词语属性坐标,并在所述词语属性坐标内标记所述本地接口关键词序列的各个关键词的第一坐标以及所述调用接口关键词序列的各个关键词的第二坐标;
分别计算各个所述第一坐标与所述第二坐标的欧氏距离;所述欧氏距离的计算方法具体为:
其中,Dist(KeyWord1j,KeyWord2i)为所述本地接口关键词序列中第j个关键词与所述调用接口关键词序列中第i个关键词之间的所述欧氏距离;KeyWord1jk为所述本地接口关键词序列中第j个关键词在第k维度的坐标值;KeyWord2ik为所述调用接口关键词序列中第i个关键词在第k维度的坐标值;Dimesion为词语属性维度的总个数;
将所述欧氏距离识别为所述关联度。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811016927.9A CN109376064B (zh) | 2018-09-03 | 2018-09-03 | 一种接口测试报告的生成方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811016927.9A CN109376064B (zh) | 2018-09-03 | 2018-09-03 | 一种接口测试报告的生成方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109376064A CN109376064A (zh) | 2019-02-22 |
CN109376064B true CN109376064B (zh) | 2023-03-31 |
Family
ID=65404315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811016927.9A Active CN109376064B (zh) | 2018-09-03 | 2018-09-03 | 一种接口测试报告的生成方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109376064B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269739A (zh) * | 2020-10-26 | 2021-01-26 | 广州华多网络科技有限公司 | 网页测试方法及其装置、设备、介质 |
CN112363969A (zh) * | 2020-11-11 | 2021-02-12 | 歌尔科技有限公司 | 一种接口调试方法、装置、电子设备及可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7987451B1 (en) * | 2006-11-20 | 2011-07-26 | Mcafee, Inc. | System, method and computer program product for verifying invocations of interfaces |
CN102096631B (zh) * | 2009-12-11 | 2013-09-25 | 华为技术有限公司 | 接口测试方法及装置 |
CN104572463B (zh) * | 2014-12-31 | 2018-04-03 | 广州酷狗计算机科技有限公司 | 测试接口信息的方法及装置 |
CN106776349B (zh) * | 2017-02-07 | 2020-01-03 | 武汉斗鱼网络科技有限公司 | 一种接口检测流程的设置方法和系统 |
-
2018
- 2018-09-03 CN CN201811016927.9A patent/CN109376064B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109376064A (zh) | 2019-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108255653B (zh) | 一种产品的测试方法及其终端 | |
CN106940679B (zh) | 数据处理方法及装置 | |
CN109491894B (zh) | 一种接口测试的方法及设备 | |
CN104246767B (zh) | 用于云同步系统的遥测系统 | |
WO2018103245A1 (zh) | 一种界面卡顿监测方法、装置及可读取存储介质 | |
CN110830445B (zh) | 一种异常访问对象的识别方法及设备 | |
CN107070940B (zh) | 一种从流式登录日志中判断恶意登录ip地址的方法及装置 | |
CN109376069B (zh) | 一种测试报告的生成方法及设备 | |
WO2020233360A1 (zh) | 一种产品测评模型的生成方法及设备 | |
CN110162976A (zh) | 风险评估方法、装置及终端 | |
CN106778260A (zh) | 攻击检测方法和装置 | |
CN110881050A (zh) | 安全威胁检测方法及相关产品 | |
CN109376064B (zh) | 一种接口测试报告的生成方法及设备 | |
CN114611006A (zh) | 基于用户兴趣挖掘的大数据分析方法及系统 | |
CN109194689A (zh) | 异常行为识别方法、装置、服务器及存储介质 | |
CN111680167A (zh) | 一种服务请求的响应方法及服务器 | |
US11334908B2 (en) | Advertisement detection method, advertisement detection apparatus, and storage medium | |
CN109446052B (zh) | 一种应用程序的校验方法及设备 | |
JP7274162B2 (ja) | 異常操作検知装置、異常操作検知方法、およびプログラム | |
CN111950267B (zh) | 文本三元组的抽取方法及装置、电子设备及存储介质 | |
CN112487376A (zh) | 一种人机验证方法及装置 | |
CN116805012A (zh) | 多模态知识图谱的质量评估方法及装置、存储介质、设备 | |
CN111343660A (zh) | 一种应用程序的测试方法及设备 | |
CN110719367A (zh) | 一种云手机好友推荐方法、装置、设备及存储介质 | |
CN113220949B (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 |