CN109189622A - 接口测试方法及装置、电子设备、存储介质 - Google Patents

接口测试方法及装置、电子设备、存储介质 Download PDF

Info

Publication number
CN109189622A
CN109189622A CN201810953859.2A CN201810953859A CN109189622A CN 109189622 A CN109189622 A CN 109189622A CN 201810953859 A CN201810953859 A CN 201810953859A CN 109189622 A CN109189622 A CN 109189622A
Authority
CN
China
Prior art keywords
interface
data
measured
feature vector
test
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
Application number
CN201810953859.2A
Other languages
English (en)
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.)
Shanghai Joint Operation Information Technology Co Ltd
Original Assignee
Shanghai Joint Operation 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 Shanghai Joint Operation Information Technology Co Ltd filed Critical Shanghai Joint Operation Information Technology Co Ltd
Priority to CN201810953859.2A priority Critical patent/CN109189622A/zh
Publication of CN109189622A publication Critical patent/CN109189622A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test buses, lines or interfaces, e.g. stuck-at or open line faults
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2268Logging of test results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods

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)
  • Stored Programmes (AREA)

Abstract

本公开提供了一种接口测试方法及装置、电子设备、计算机可读存储介质,属于计算机技术领域。该方法包括:向待测接口发送请求数据,并接收所述待测接口返回的响应数据;分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据,生成目标特征向量;利用机器学习模型对所述目标特征向量进行分析,以判定所述目标特征向量是否合法;如果所述目标特征向量合法,则判定所述待测接口通过测试。本公开可以在响应数据预期值不确定的情况下实现接口测试,增加了接口测试方法的灵活性,节约了人力成本。

Description

接口测试方法及装置、电子设备、存储介质
技术领域
本公开涉及计算机技术领域,尤其涉及一种接口测试方法及装置、电子设备、计算机可读存储介质。
背景技术
随着计算机技术的发展,系统与软件的复杂度增加,为了保证系统或软件之间数据交互的正常进行,接口测试变得越来越重要。
现有的接口测试方法大多采用测试工具(如Jmeter,一种基于Java的接口测试工具)进行人工测试,或在服务端搭建平台,并编写自动化测试脚本进行测试。这两种接口测试方法的前提是已知响应数据的预期值,如果接口返回的响应数据与预期值匹配,则测试通过。然而当预期值不确定时,例如部分参数浮动的情况下,上述方法则难以适用。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种接口测试方法及装置、电子设备、计算机可读存储介质,进而至少在一定程度上克服现有的接口测试方法需要事先确定响应数据的预期值的问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的一个方面,提供一种接口测试方法,包括:向待测接口发送请求数据,并接收所述待测接口返回的响应数据;分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据,生成目标特征向量;利用机器学习模型对所述目标特征向量进行分析,以判定所述目标特征向量是否合法;如果所述目标特征向量合法,则判定所述待测接口通过测试。
在本公开的一种示例性实施例中,所述方法还包括:获取接口历史测试记录,并统计出多组历史测试接口的名称、历史请求数据、历史响应数据以及历史测试结果;根据每组所述历史测试接口的名称、历史请求数据与历史响应数据生成样本特征向量,根据所述历史测试结果对各所述样本特征向量添加分类标签;利用所述样本特征向量及分类标签训练并得到所述机器学习模型。
在本公开的一种示例性实施例中,所述机器学习模型包括神经网络模型、逻辑回归模型、决策树模型或支持向量机模型。
在本公开的一种示例性实施例中,所述历史测试结果包括一般性通过、特殊性通过及不通过;所述获取接口历史测试记录包括:获取测试结果为一般性通过或不通过的接口历史测试记录。
在本公开的一种示例性实施例中,在接收所述待测接口返回的响应数据后,所述方法还包括:检测所述请求数据与所述响应数据是否符合特殊规则;如果所述请求数据与所述响应数据符合所述特殊规则,则判定所述待测接口特殊性通过测试;如果所述请求数据与所述响应数据不符合所述特殊规则,则执行分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据,生成目标特征向量的步骤。
在本公开的一种示例性实施例中,所述方法还包括:获取特征列表,所述特征列表至少包括每个特征与特征向量的维度的映射关系;所述分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征,生成特征向量包括:根据所述特征列表中的特征,分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据;根据所述每个特征与特征向量的维度的映射关系,将各所述特征数据转换为所述目标特征向量。
在本公开的一种示例性实施例中,所述方法还包括:如果所述特征列表包括所述特征数据未包含的特征,则在所述目标特征向量中对所述未包含的特征对应的维度进行预设填充。
在本公开的一种示例性实施例中,所述响应数据中包括固定数据与浮动数据;在接收所述待测接口返回的响应数据后,所述方法还包括:检测所述固定数据与预期数据是否匹配;如果所述固定数据与所述预期数据不匹配,则判定所述待测接口未通过测试;如果所述固定数据与所述预期数据匹配,则执行分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据,生成目标特征向量的步骤;其中,所述分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据,生成目标特征向量包括:分别对所述待测接口的名称、所述请求数据与所述浮动数据提取特征数据,生成所述目标特征向量。
在本公开的一种示例性实施例中,所述待测接口的名称包括所述待测接口的服务器名与路径名。
根据本公开的一个方面,提供一种接口测试装置,包括:数据交互模块,用于向待测接口发送请求数据,并接收所述待测接口返回的响应数据;特征提取模块,用于分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据,生成目标特征向量;模型分析模块,用于利用机器学习模型对所述目标特征向量进行分析,以判定所述目标特征向量是否合法;结果判定模块,用于在所述目标特征向量合法时,判定所述待测接口通过测试。
在本公开的一种示例性实施例中,所述数据交互模块还包括:历史统计单元,用于获取接口历史测试记录,并统计出多组历史测试接口的名称、历史请求数据、历史响应数据以及历史测试结果;所述特征提取模块还包括:样本提取单元,根据每组所述历史测试接口的名称、历史请求数据与历史响应数据生成样本特征向量,根据所述历史测试结果对各所述样本特征向量添加分类标签;所述模型分析模块还包括:模型训练单元,用于利用所述样本特征向量及分类标签训练并得到所述机器学习模型。
在本公开的一种示例性实施例中,所述机器学习模型包括神经网络模型、逻辑回归模型、决策树模型或支持向量机模型。
在本公开的一种示例性实施例中,所述历史测试结果包括一般性通过、特殊性通过及不通过;所述历史统计单元还用于获取测试结果为一般性通过或不通过的接口历史测试记录,并统计出多组历史测试接口的名称、历史请求数据、历史响应数据以及历史测试结果。
在本公开的一种示例性实施例中,所述装置还包括:特殊检测模块,用于检测所述请求数据与所述响应数据是否符合特殊规则,以及当所述请求数据与所述响应数据符合所述特殊规则时,判定所述待测接口特殊性通过测试;所述特征提取模块还用于当所述请求数据与所述响应数据不符合所述特殊规则时,分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据,生成所述目标特征向量。
在本公开的一种示例性实施例中,所述数据交互模块还用于获取特征列表,所述特征列表至少包括每个特征与特征向量的维度的映射关系;所述特征提取模块还包括:特征数据提取单元,用于根据所述特征列表中的特征,分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据;特征向量转换单元,用于根据所述每个特征与特征向量的维度的映射关系,将各所述特征数据转换为所述目标特征向量。
在本公开的一种示例性实施例中,所述特征向量转换单元还用于当所述特征列表包括所述特征数据未包含的特征时,在所述目标特征向量中对所述未包含的特征对应的维度进行预设填充。
在本公开的一种示例性实施例中,所述响应数据中包括固定数据与浮动数据;所述装置还包括:固定匹配模块,用于检测所述固定数据与预期数据是否匹配,以及当所述固定数据与所述预期数据不匹配时,判定所述待测接口未通过测试;所述特征提取模块还用于当所述固定数据与所述预期数据匹配时,分别对所述待测接口的名称、所述请求数据与所述浮动数据提取特征数据,生成所述目标特征向量。
在本公开的一种示例性实施例中,所述待测接口的名称包括所述待测接口的服务器名与路径名。
根据本公开的一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
本公开的示例性实施例具有以下有益效果:
向待测接口发送请求数据并接收响应数据后,可以对待测接口的名称、请求数据及响应数据提取特征数据,并转换为目标特征向量,再利用机器学习模型分析目标特征向量是否合法,以得到待测接口是否通过测试的结果。一方面,由于机器学习模型具有泛化学习能力,利用机器学习模型判定目标特征向量是否合法,可以在响应数据预期值不确定的情况下判定接口测试是否通过,从而增加了接口测试方法的灵活性。另一方面,无需人工编写大量的请求数据与响应数据严格的映射规则或脚本,节约了人力成本,简化了接口测试的流程。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开示例性实施例中一种接口测试方法的流程图;
图2示出本公开示例性实施例中一种响应数据的规则示意图;
图3示出本公开示例性实施例中一种接口测试方法的子流程图;
图4示出本公开示例性实施例中接口测试平台的一界面图;
图5示出本公开示例性实施例中接口测试平台的另一界面图;
图6示出本公开示例性实施例中另一种接口测试方法的流程图;
图7示出本公开示例性实施例中一种接口测试装置的结构框图;
图8示出本公开示例性实施例中一种用于实现上述方法的电子设备;
图9示出本公开示例性实施例中一种用于实现方法的计算机可读存储介质。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的属性、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
本公开的示例性实施例首先提供了一种接口测试方法,可以应用于与待测接口对接的服务器或终端,且待测接口不限于特定的一个或一种接口,可以适用于测试不同的接口。参考图1所示,该方法可以包括以下步骤S110~S140:
步骤S110,向待测接口发送请求数据,并接收待测接口返回的响应数据。
步骤S110为一次接口测试的数据交互过程,以下称此次接口测试为当前接口测试。其中,待测接口的数据交换类型可以是HTTP、Web Service、Socket或Protocal Buffer等,请求数据的类型可以是get、post等,响应数据可以是JSON(JavaScript对象简谱)或XML(可扩展标记语言)等格式的数据,本实施例对此不做特别限定。
步骤S120,分别对待测接口的名称、请求数据与响应数据提取特征数据,生成目标特征向量。
其中,特征数据是反映待测接口的名称、请求数据或响应数据多方面属性的数据,可以根据名称及数据的特点,预先定义特征的类型以及数据统计、转换的规则,在接口测试时直接调用规则进行特征提取。
以HTTP类型为例,待测接口的名称可以是待测接口的服务器名与路径名,也可以是内部管理的待测接口标识,在对待测接口的名称提取特征数据时,可以对名称进行层级拆分,每个层级的字符转换为一类特征数据,也可以统计名称的字段长度、层级数等,分别作为多类特征数据。在对请求数据提取特征数据时,可以提取出请求数据的类型、字段长度、字符数量,也可以对请求数据进行编码,以得到多类特征数据;在对响应数据提取特征数据时,可以统计出响应数据所包含的对象类型、对象值、对象数量等参数,并分别转换为特征数据。图2所示为一种响应数据的规则示意图,可以看出响应数据通常包含了多个对象的属性名与类型等信息,可以通过上述方法提取出其中的特征数据。
基于上述提取的特征数据,每个数据代表一类特征,可以采用统一的规则对特征进行排序或编号,该规则与上述特征类型定义、数据转换规则可以通过特定的规则文件进行配置。则特征数据可以形成特定的序列,并转换为多维度的特征向量,也即在特征向量中,每个维度的数据代表特定的一类特征,具有实际意义。
需要说明的是,一次接口测试对应于一个特征向量,当待测接口的名称、请求数据或响应数据中任一个改变时,特征向量也将改变。步骤S120中的目标特征向量即当前接口测试所对应的特征向量
步骤S130,利用机器学习模型对目标特征向量进行分析,以判定目标特征向量是否合法。
通过上述提取特征数据的过程,目标特征向量至少包含了当前接口测试的三方面信息:待测接口的信息、请求数据的信息以及响应数据的信息。可以通过机器学习模型对目标特征向量进行分析,也即分析在当前的待测接口下,响应数据对于请求数据是否合法,因此目标特征向量的分析可以转换为二分类问题:合法或不合法。通过一定的训练,很多机器学习模型都可以用于对向量进行二分类,例如神经网络模型、逻辑回归模型、决策树模型、支持向量机模型等,本实施例对此不做特别限定。
步骤S140,如果目标特征向量合法,则判定待测接口通过测试。
机器学习模型输出目标特征向量分类结果,其实际意义为:在当前的待测接口下,响应数据对于请求数据是否合法。因此,如果机器学习模型判定目标特征向量合法,也即响应数据对于请求数据合法,可以判定待测接口通过测试;如果机器学习模型判定目标特征向量不合法,则可以判定待测接口未通过测试。
基于上述说明,在本示例性实施例中,向待测接口发送请求数据并接收响应数据后,可以对待测接口的名称、请求数据及响应数据提取特征数据,并转换为目标特征向量,再利用机器学习模型分析目标特征向量是否合法,以得到待测接口是否通过测试的结果。一方面,由于机器学习模型具有泛化学习能力,利用机器学习模型判定目标特征向量是否合法,可以在响应数据预期值不确定的情况下判定接口测试是否通过,从而增加了接口测试方法的灵活性。另一方面,无需人工编写大量的请求数据与响应数据严格的映射规则或脚本,节约了人力成本,简化了接口测试的流程。
在一示例性实施例中,参考图3所示,可以通过步骤S310~S330得到步骤S130中的机器学习模型:
步骤S310,获取接口历史测试记录,并统计出多组历史测试接口的名称、历史请求数据、历史响应数据以及历史测试结果。
步骤S320,根据每组历史测试接口的名称、历史请求数据与历史响应数据生成样本特征向量,根据历史测试结果对各样本特征向量添加分类标签。
步骤S330,利用样本特征向量及分类标签训练并得到机器学习模型。
其中,接口历史测试记录可以包括大量测试通过与不通过的历史记录,可以作为机器学习模型的训练数据来源,例如图4所示为接口测试平台的界面图,其中记录了每个接口的ID、服务器名、路径、测试通过次数、测试不通过次数以及包含的规则与定义等,可以从中导出完整的接口历史测试记录。每条记录通常包含测试时间、测试接口的名称、请求数据、响应数据与是否合法的测试结果等信息,因此可以从接口历史测试记录中统计出多组历史测试接口的名称、历史请求数据、历史响应数据以及历史测试结果。可以根据步骤S120中提取特征数据的方法对历史测试接口的名称、历史请求数据与历史响应数据提取样本特征数据,并转换为样本特征向量。每个样本特征向量对应于每条接口历史测试记录,如果测试通过,则分类标签可以是“合法”,如果测试不通过,则分类标签可以是“不合法”。利用样本特征向量及分类标签可以训练机器学习模型,通过迭代调整机器学习模型的参数,使模型输出的分类结果接近于分类标签,最终得到训练完成的机器学习模型。
在一示例性实施例中,上述机器学习模型可以包括神经网络模型、逻辑回归模型、决策树模型或支持向量机模型,适用于对向量进行二分类。
在一示例性实施例中,历史测试结果可以包括一般性通过、特殊性通过及不通过,则获取接口历史测试记录可以包括:获取测试结果为一般性通过或不通过的接口历史测试记录。
其中,特殊性通过是指请求数据与响应数据符合特殊规则的情况下,判定测试通过的情况。特殊规则是指在特定的时间或其他条件下生效的规则,非一般性规则,例如在活动期间,响应数据中可能包含特殊类型的参数,则特殊规则可以包含请求数据与响应数据的特殊对应关系。参考图5所示,在接口测试平台的规则界面中,允许管理人员编辑并添加特殊规则。由于特殊性通过的历史测试不具有普遍性,将其作为机器学习模型的样本数据,可能影响机器学习模型在一般情况下的判断准确率,因此可以将其移除,即作为样本数据来源的测试记录可以仅包括测试结果为一般性通过或不通过的接口历史测试记录。
进一步的,在接口测试中,考虑到可能存在特殊规则的情况,接口测试方法还可以包括以下步骤:
检测请求数据与响应数据是否符合特殊规则。
如果请求数据与响应数据符合特殊规则,则判定待测接口特殊性通过测试。
如果请求数据与响应数据不符合特殊规则,则执行步骤S120。
也即先利用特殊规则进行判定,如果符合特殊规则,可以直接判定待测接口通过测试,而不再进行后续步骤,此条件下的通过为特殊性通过;如果不符合特殊规则,再通过步骤S120与其他后续步骤进行一般性判定。
在一示例性实施例中,接口测试方法还可以包括以下步骤:
获取特征列表,特征列表至少包括每个特征与特征向量的维度的映射关系。
相应的,步骤S120可以通过以下步骤实现:
根据特征列表中的特征,分别对待测接口的名称、请求数据与响应数据提取特征数据。
根据每个特征与特征向量的维度的映射关系,将各特征数据转换为目标特征向量。
其中,特征列表是统一配置的接口名称、请求数据及响应数据中的全部特征与特征向量的维度的映射关系表,即在特征列表中可以查找每个特征对应于特征向量的哪个维度,例如接口名称的字段长度对应于特征向量的第一维度,则统计出待测接口名称的字段长度值后,可以将该字段长度值排列在目标特征向量的第一维度。基于特征列表,可以将不同次接口测试的待测接口名称、请求数据与响应数据提取特征数据后,转换为统一格式的特征向量,每个特征向量的维度数都可以是特征的总数,且不同特征向量中的相同维度所代表的实际意义相同,例如每个特征向量的第一维度都可以是接口名称的字段长度。
此外,特征列表中还可以包括每个特征的数据统计或转换规则,例如当特征为数据类型、对象类型等非数值格式的字符串时,可以通过one-hot编码方式将非数值格式的字符串转换为数值,则特征列表中可以记录每种字符串与数值的对应关系。
进一步的,如果特征列表中包含上述特征数据未包含的特征,则可以在目标特征向量中对这些未包含的特征对应的维度进行预设填充。在不同次接口测试中,由于待测接口的不同、请求数据的不同,响应数据的格式、长度或类型也可能不同,因此对待测接口名称、请求数据与响应数据提取的特征数据所包含的特征种类也可能不同。上述特征列表包含了全部的特征,而在每次接口测试中,特征数据通常仅包含其中的一部分特征,为了保证特征向量的维度一致性,对于未包含的特征,可以填充预设数据,例如填充“unknown”、“0”、“99999”等。本实施例对于预设填充的具体方式不做限定。
特征列表还可以在实际应用过程中进行更新与维护,例如添加新的特征、改变原有的特征与维度的映射关系、改变原有的数据统计或转换规则等,以适应越来越多样化的接口测试需求。
在一示例性实施例中,响应数据中可以包括固定数据与浮动数据;在步骤S110后,接口测试方法还可以包括以下步骤:
检测固定数据与预期数据是否匹配。
如果固定数据与预期数据不匹配,则判定待测接口未通过测试。
如果固定数据与预期数据匹配,则执行步骤S120。
其中,步骤S120可以通过以下步骤实现:
分别对待测接口的名称、请求数据与浮动数据提取特征数据,生成目标特征向量。
上述固定数据是指对于特定的请求数据,待测接口返回的响应数据中唯一确定的数据,相应的,浮动数据是指响应数据中可能在一定范围内变化的数据。预期数据即事先确定的固定数据的正确值,当固定数据与预期数据不匹配时,说明待测接口的数据交互异常,测试不通过;当固定数据与预期数据匹配时,还需要进一步判定返回的浮动数据是否正常,可以在提取特征数据时,移除响应数据中的固定数据,而仅对响应数据中的浮动数据提取特征数据,并与待测接口的名称及请求数据中的特征数据一起转换为目标特征向量,并通过机器学习模型进行后续分析。从而简化了提取特征数据、转换目标特征向量以及机器学习模型分析的过程,降低了系统的处理量。
图6示出了一种接口测试方法的流程图。参考图6所示,首先向待测接口发送请求数据,并接收返回的响应数据,然后可以判断请求数据与响应数据是否符合特殊规则。若符合,则可以输出待测接口特殊性通过测试的结果;若不符合,则可以继续判定响应数据中的固定数据是否与预期数据匹配。若不匹配,则可以直接输出待测接口未通过测试的结果;若匹配,则可以将待测接口名称、请求数据以及响应数据中的浮动数据提取特征数据,并生成目标特征向量。最后利用机器学习模型判定目标特征向量是否合法,若判定不合法,则可以输出待测接口未通过测试的结果;若判定合法,则可以输出待测接口一般性通过测试的结果,从而完成了接口测试的全过程。
本公开的示例性实施例还提供了一种接口测试装置,参考图7所示,该装置700可以包括:数据交互模块,用于向待测接口发送请求数据,并接收待测接口返回的响应数据;特征提取模块,用于分别对待测接口的名称、请求数据与响应数据提取特征数据,生成目标特征向量;模型分析模块,用于利用机器学习模型对目标特征向量进行分析,以判定目标特征向量是否合法;结果判定模块,用于在目标特征向量合法时,判定待测接口通过测试。
在一示例性实施例中,数据交互模块还可以包括:历史统计单元,用于获取接口历史测试记录,并统计出多组历史测试接口的名称、历史请求数据、历史响应数据以及历史测试结果;特征提取模块还可以包括:样本提取单元,根据每组历史测试接口的名称、历史请求数据与历史响应数据生成样本特征向量,根据历史测试结果对各样本特征向量添加分类标签;模型分析模块还可以包括:模型训练单元,用于利用样本特征向量及分类标签训练并得到机器学习模型。
在一示例性实施例中,机器学习模型可以包括神经网络模型、逻辑回归模型、决策树模型或支持向量机模型。
在一示例性实施例中,历史测试结果可以包括一般性通过、特殊性通过及不通过;历史统计单元还可以用于获取测试结果为一般性通过或不通过的接口历史测试记录,并统计出多组历史测试接口的名称、历史请求数据、历史响应数据以及历史测试结果。
在一示例性实施例中,接口装置还可以包括:特殊检测模块,用于检测请求数据与响应数据是否符合特殊规则,以及当请求数据与响应数据符合特殊规则时,判定待测接口特殊性通过测试;特征提取模块还可以用于当请求数据与响应数据不符合特殊规则时,分别对待测接口的名称、请求数据与响应数据提取特征数据,生成目标特征向量。
在一示例性实施例中,数据交互模块还可以用于获取特征列表,特征列表至少包括每个特征与特征向量的维度的映射关系;特征提取模块还可以包括:特征数据提取单元,用于根据特征列表中的特征,分别对待测接口的名称、请求数据与响应数据提取特征数据;特征向量转换单元,用于根据每个特征与特征向量的维度的映射关系,将各特征数据转换为目标特征向量。
在一示例性实施例中,特征向量转换单元还可以用于当特征列表包括特征数据未包含的特征时,在目标特征向量中对未包含的特征对应的维度进行预设填充。
在一示例性实施例中,响应数据中可以包括固定数据与浮动数据;接口测试装置还可以包括:固定匹配模块,用于检测固定数据与预期数据是否匹配,以及当固定数据与预期数据不匹配时,判定待测接口未通过测试;特征提取模块还可以用于当固定数据与预期数据匹配时,分别对待测接口的名称、请求数据与浮动数据提取特征数据,生成目标特征向量。
在一示例性实施例中,待测接口的名称可以包括待测接口的服务器名与路径名。
上述各模块/单元的具体细节在方法部分的实施例中已经详细说明,因此不再赘述。
本公开的示例性实施例还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图8来描述根据本公开的这种示例性实施例的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同系统组件(包括存储单元820和处理单元810)的总线830、显示单元840。
其中,存储单元存储有程序代码,程序代码可以被处理单元810执行,使得处理单元810执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元810可以执行图1所示的步骤S110~S140,也可以执行图3所示的步骤S310~S330等。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)821和/或高速缓存存储单元822,还可以进一步包括只读存储单元(ROM)823。
存储单元820还可以包括具有一组(至少一个)程序模块825的程序/实用工具824,这样的程序模块825包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备1000(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开示例性实施例的方法。
本公开的示例性实施例还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
参考图9所示,描述了根据本公开的示例性实施例的用于实现上述方法的程序产品900,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本公开示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的示例性实施例,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本请求旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。

Claims (20)

1.一种接口测试方法,其特征在于,包括:
向待测接口发送请求数据,并接收所述待测接口返回的响应数据;
分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据,生成目标特征向量;
利用机器学习模型对所述目标特征向量进行分析,以判定所述目标特征向量是否合法;
如果所述目标特征向量合法,则判定所述待测接口通过测试。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取接口历史测试记录,并统计出多组历史测试接口的名称、历史请求数据、历史响应数据以及历史测试结果;
根据每组所述历史测试接口的名称、历史请求数据与历史响应数据生成样本特征向量,根据所述历史测试结果对各所述样本特征向量添加分类标签;
利用所述样本特征向量及分类标签训练并得到所述机器学习模型。
3.根据权利要求2所述的方法,其特征在于,所述机器学习模型包括神经网络模型、逻辑回归模型、决策树模型或支持向量机模型。
4.根据权利要求2所述的方法,其特征在于,所述历史测试结果包括一般性通过、特殊性通过及不通过;
所述获取接口历史测试记录包括:
获取测试结果为一般性通过或不通过的接口历史测试记录。
5.根据权利要求4所述的方法,其特征在于,在接收所述待测接口返回的响应数据后,所述方法还包括:
检测所述请求数据与所述响应数据是否符合特殊规则;
如果所述请求数据与所述响应数据符合所述特殊规则,则判定所述待测接口特殊性通过测试;
如果所述请求数据与所述响应数据不符合所述特殊规则,则执行分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据,生成目标特征向量的步骤。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取特征列表,所述特征列表至少包括每个特征与特征向量的维度的映射关系;
所述分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征,生成特征向量包括:
根据所述特征列表中的特征,分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据;
根据所述每个特征与特征向量的维度的映射关系,将各所述特征数据转换为所述目标特征向量。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
如果所述特征列表包括所述特征数据未包含的特征,则在所述目标特征向量中对所述未包含的特征对应的维度进行预设填充。
8.根据权利要求1所述的方法,其特征在于,所述响应数据中包括固定数据与浮动数据;在接收所述待测接口返回的响应数据后,所述方法还包括:
检测所述固定数据与预期数据是否匹配;
如果所述固定数据与所述预期数据不匹配,则判定所述待测接口未通过测试;
如果所述固定数据与所述预期数据匹配,则执行分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据,生成目标特征向量的步骤;
其中,所述分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据,生成目标特征向量包括:
分别对所述待测接口的名称、所述请求数据与所述浮动数据提取特征数据,生成所述目标特征向量。
9.根据权利要求1所述的方法,其特征在于,所述待测接口的名称包括所述待测接口的服务器名与路径名。
10.一种接口测试装置,其特征在于,包括:
数据交互模块,用于向待测接口发送请求数据,并接收所述待测接口返回的响应数据;
特征提取模块,用于分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据,生成目标特征向量;
模型分析模块,用于利用机器学习模型对所述目标特征向量进行分析,以判定所述目标特征向量是否合法;
结果判定模块,用于在所述目标特征向量合法时,判定所述待测接口通过测试。
11.根据权利要求10所述的装置,其特征在于,所述数据交互模块还包括:
历史统计单元,用于获取接口历史测试记录,并统计出多组历史测试接口的名称、历史请求数据、历史响应数据以及历史测试结果;
所述特征提取模块还包括:
样本提取单元,根据每组所述历史测试接口的名称、历史请求数据与历史响应数据生成样本特征向量,根据所述历史测试结果对各所述样本特征向量添加分类标签;
所述模型分析模块还包括:
模型训练单元,用于利用所述样本特征向量及分类标签训练并得到所述机器学习模型。
12.根据权利要求11所述的装置,其特征在于,所述机器学习模型包括神经网络模型、逻辑回归模型、决策树模型或支持向量机模型。
13.根据权利要求11所述的装置,其特征在于,所述历史测试结果包括一般性通过、特殊性通过及不通过;
所述历史统计单元还用于获取测试结果为一般性通过或不通过的接口历史测试记录,并统计出多组历史测试接口的名称、历史请求数据、历史响应数据以及历史测试结果。
14.根据权利要求13所述的方法,其特征在于,所述装置还包括:
特殊检测模块,用于检测所述请求数据与所述响应数据是否符合特殊规则,以及当所述请求数据与所述响应数据符合所述特殊规则时,判定所述待测接口特殊性通过测试;
所述特征提取模块还用于当所述请求数据与所述响应数据不符合所述特殊规则时,分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据,生成所述目标特征向量。
15.根据权利要求10所述的装置,其特征在于,所述数据交互模块还用于获取特征列表,所述特征列表至少包括每个特征与特征向量的维度的映射关系;
所述特征提取模块还包括:
特征数据提取单元,用于根据所述特征列表中的特征,分别对所述待测接口的名称、所述请求数据与所述响应数据提取特征数据;
特征向量转换单元,用于根据所述每个特征与特征向量的维度的映射关系,将各所述特征数据转换为所述目标特征向量。
16.根据权利要求15所述的装置,其特征在于,所述特征向量转换单元还用于当所述特征列表包括所述特征数据未包含的特征时,在所述目标特征向量中对所述未包含的特征对应的维度进行预设填充。
17.根据权利要求10所述的装置,其特征在于,所述响应数据中包括固定数据与浮动数据;所述装置还包括:
固定匹配模块,用于检测所述固定数据与预期数据是否匹配,以及当所述固定数据与所述预期数据不匹配时,判定所述待测接口未通过测试;
所述特征提取模块还用于当所述固定数据与所述预期数据匹配时,分别对所述待测接口的名称、所述请求数据与所述浮动数据提取特征数据,生成所述目标特征向量。
18.根据权利要求10所述的装置,其特征在于,所述待测接口的名称包括所述待测接口的服务器名与路径名。
19.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-9任一项所述的方法。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-9任一项所述的方法。
CN201810953859.2A 2018-08-21 2018-08-21 接口测试方法及装置、电子设备、存储介质 Pending CN109189622A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810953859.2A CN109189622A (zh) 2018-08-21 2018-08-21 接口测试方法及装置、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810953859.2A CN109189622A (zh) 2018-08-21 2018-08-21 接口测试方法及装置、电子设备、存储介质

Publications (1)

Publication Number Publication Date
CN109189622A true CN109189622A (zh) 2019-01-11

Family

ID=64918807

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810953859.2A Pending CN109189622A (zh) 2018-08-21 2018-08-21 接口测试方法及装置、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN109189622A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110046067A (zh) * 2019-04-22 2019-07-23 无线生活(杭州)信息科技有限公司 接口测试方法及装置
CN111198821A (zh) * 2020-01-06 2020-05-26 瑞庭网络技术(上海)有限公司 接口异常判断方法、装置及可读存储介质
CN111400721A (zh) * 2020-03-24 2020-07-10 杭州数梦工场科技有限公司 Api接口检测方法及装置
GB2610672A (en) * 2021-09-14 2023-03-15 Lenovo Beijing Ltd Line diagnosis method and apparatus

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150379424A1 (en) * 2014-06-30 2015-12-31 Amazon Technologies, Inc. Machine learning service
CN106155891A (zh) * 2015-04-02 2016-11-23 阿里巴巴集团控股有限公司 接口测试方法、接口描述数据库生成方法及装置
CN106909481A (zh) * 2017-02-28 2017-06-30 北京小米移动软件有限公司 接口测试方法、接口测试装置和电子设备
CN107741911A (zh) * 2017-11-01 2018-02-27 广州爱九游信息技术有限公司 接口测试方法、装置、客户端及计算机可读存储介质
CN107908541A (zh) * 2017-07-26 2018-04-13 平安壹钱包电子商务有限公司 接口测试方法、装置、计算机设备及存储介质
CN108377240A (zh) * 2018-02-07 2018-08-07 平安科技(深圳)有限公司 异常接口检测方法、装置、计算机设备和存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150379424A1 (en) * 2014-06-30 2015-12-31 Amazon Technologies, Inc. Machine learning service
CN106155891A (zh) * 2015-04-02 2016-11-23 阿里巴巴集团控股有限公司 接口测试方法、接口描述数据库生成方法及装置
CN106909481A (zh) * 2017-02-28 2017-06-30 北京小米移动软件有限公司 接口测试方法、接口测试装置和电子设备
CN107908541A (zh) * 2017-07-26 2018-04-13 平安壹钱包电子商务有限公司 接口测试方法、装置、计算机设备及存储介质
CN107741911A (zh) * 2017-11-01 2018-02-27 广州爱九游信息技术有限公司 接口测试方法、装置、客户端及计算机可读存储介质
CN108377240A (zh) * 2018-02-07 2018-08-07 平安科技(深圳)有限公司 异常接口检测方法、装置、计算机设备和存储介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110046067A (zh) * 2019-04-22 2019-07-23 无线生活(杭州)信息科技有限公司 接口测试方法及装置
CN110046067B (zh) * 2019-04-22 2023-10-31 无线生活(杭州)信息科技有限公司 接口测试方法及装置
CN111198821A (zh) * 2020-01-06 2020-05-26 瑞庭网络技术(上海)有限公司 接口异常判断方法、装置及可读存储介质
CN111198821B (zh) * 2020-01-06 2021-07-16 瑞庭网络技术(上海)有限公司 接口异常判断方法、装置及可读存储介质
CN111400721A (zh) * 2020-03-24 2020-07-10 杭州数梦工场科技有限公司 Api接口检测方法及装置
CN111400721B (zh) * 2020-03-24 2024-04-12 杭州数梦工场科技有限公司 Api接口检测方法及装置
GB2610672A (en) * 2021-09-14 2023-03-15 Lenovo Beijing Ltd Line diagnosis method and apparatus
GB2610672B (en) * 2021-09-14 2024-04-03 Lenovo Beijing Ltd Line diagnosis method and apparatus

Similar Documents

Publication Publication Date Title
CN109189622A (zh) 接口测试方法及装置、电子设备、存储介质
CN109241418A (zh) 基于随机森林的异常用户识别方法及装置、设备、介质
CN111526119B (zh) 异常流量检测方法、装置、电子设备和计算机可读介质
CN110221979A (zh) 应用程序的性能测试方法、装置、设备及存储介质
CN109669853A (zh) 测试报告生成方法及装置、存储介质、电子终端
CN101996385A (zh) 索赔分析引擎
CN109447461A (zh) 用户信用评估方法及装置、电子设备、存储介质
CN114022005A (zh) 一种基于bim技术的工程造价管理系统及方法
CN110008101A (zh) 客户端性能评价方法、装置、存储介质及电子设备
CN110377522A (zh) 交易场景的测试方法、装置、计算设备以及介质
CN106803801A (zh) 应用聚合的电缆测试结果数据的系统和方法
CN109871317A (zh) 代码质量分析方法及装置、存储介质及电子设备
CN110348471A (zh) 异常对象识别方法、装置、介质及电子设备
CN115357470A (zh) 信息生成方法、装置、电子设备和计算机可读介质
CN117118508A (zh) 一种面向电力通信电缆的数字孪生系统及运行方法
CN115374950A (zh) 样本检测方法、样本检测装置、电子设备及存储介质
CN116737483B (zh) 一种装配测试交互方法、装置、设备及存储介质
CN109684198A (zh) 待测试数据获取方法、装置、介质、电子设备
CN117435379A (zh) 业务故障确定方法、业务故障确定模型的训练方法及装置
CN111626315A (zh) 模型训练方法、对象识别方法、装置、介质及电子设备
CN115049067A (zh) 模型解释及训练方法、装置、设备、介质及程序产品
CN113377640A (zh) 解释业务场景下模型的方法、介质、装置和计算设备
CN110516058A (zh) 一种对垃圾分类问题的训练方法及训练装置
KR102613072B1 (ko) 배전 계통 내 부분 방전이 발생한 위치를 식별하는 방법 및 장치
CN118169517B (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190111

WD01 Invention patent application deemed withdrawn after publication