首页 / 一种接口测试方法、装置及存储介质

一种接口测试方法、装置及存储介质有效专利 发明

技术领域

[0001] 本申请实施例涉及电子通信技术,涉及但不限于一种接口测试方法、装置及存储介质。

相关背景技术

[0002] 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
[0003] 相关技术中,在进行测试的过程中主要依赖于需求说明书和接口需求,由于接口参数比较复杂、测试数据需要覆盖多个场景、需要尽量贴近现实场景,数据准备的过程极其耗时间;线上回归测试时,需要把历史数据、历史流量进行复制测试,处理难度特别大;测试人员只能凭借自己的经验对数以万计的测试数据和近似数据进行筛选。

具体实施方式

[0028] 相关技术中,接口测试的流程和功能测试流程类似,大部分都是通过人工的方式来实现的,如图1所示,接口测试的流程主要包括如下步骤:
[0029] 步骤101,确定接口需求。
[0030] 这里,是通过人工的方式熟悉定义好的接口需求,在确定好接口需求的基础上了解该接口的应用场景,比如,通过该接口可以实现哪些系统之间的交换、传递和控制管理,以及尽可能多的确定关于测试的细节。
[0031] 步骤102,根据接口需求制定接口测试方案,设计接口测试用例。
[0032] 这里,通过人工的方式根据接口需求制定相应的接口测试方案,在制定接口测试方案时,除了需要考虑接口的功能以外,还需要考虑接口的性能和安全性,然后根据相应的参数制定对应的接口测试方案,并根据具体的接口需求和接口测试方案设计接口测试用例。
[0033] 其中,接口测试用例构成了设计和制定测试过程的基础。接口测试用例是为目标接口而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求,接口测试用例是将接口测试的行为活动做一个科学化的组织归纳,目的是能够将接口测试的行为转化成可管理的模式;同时测试用例也是将测试具体量化的方法之一,不同类别的接口所对应的测试用例可能也是不同的。
[0034] 步骤103,评审接口测试用例。
[0035] 这里,评审接口测试用例也是通过人工的方式实现的,通过将接口测试方案和接口测试用例发给参与评审的相关人员,相关人员包括:开发负责人、测试负责人等,然后相关人员会对该接口测试用例进行评审,如果相关人员提出了改进意见,还可以根据相关人员的意见对接口测试用例进行修改,直至评审通过。
[0036] 步骤104,确定接口测试数据。
[0037] 这里,接口测试数据为由测试人员根据预设的数据规则自行模拟的数据或者选取的少量线上环境的数据。相关技术中,测试人员不仅需要根据预设的数据规则来模拟接口测试数据,还需要准备接口测试工具和自动化测试用例。其中,接口测试工具可以为Postman、Jmete、SoapUI、Python中至少一种;自动化测试用例为上述评审通过的接口测试用例。
[0038] 步骤105,在待测试的接口上执行接口测试用例。
[0039] 这里,安装好接口测试工具之后,需要加载模拟的接口测试数据,根据对应的接口测试用例,并执行接口测试,对系统之间的交互过程和对接口测试数据的处理过程进行测试,得到测试结果,如果该测试结果表征检测出有程序错误(bug),将该bug提交至相应的设备。
[0040] 步骤106,发送接口测试报告。
[0041] 这里,根据上述步骤中的测试结果生成接口测试报告,并提交接口测试报告至相应的工作人员,相应的工作人员根据该接口测试报告修复bug。如果后续还有bug,会在下一轮接口测试中进行测试,对应的,如果有接口发生变更,就需要根据变更后的接口对接口测试用例进行修改,并通过修改后的接口测试用例对相应的接口进行测试。
[0042] 如果是通过接口测试用例自动化进行接口测试的,则需要在实现接口测试用例的自动化过程中,加入持续集成系统Jenkins;如果测试出是由于代码变更导致的bug,则根据测试出的bug生成接口测试报告,并提交接口测试报告。其中,Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
[0043] 在测试的过程中,接口测试数据的准备、接口调用和结果验证是接口测试流程中最核心的步骤。如图2所示,接口测试的流程主要包括如下步骤:
[0044] 步骤201,确定接口测试数据。
[0045] 图3为相关技术中确定接口测试数据的实现流程示图,如图3所示,确定接口测试数据主要包括如下步骤:
[0046] 步骤301,接口测试数据准备。
[0047] 这里,接口测试数据为由测试人员根据预设的数据规则自行模拟的数据或者选取的少量线上环境的数据。接口测试数据主要包括:接口入参数据、数据库(DataBase,DB)数据和虚拟(mock)数据。接口入参数据本身具有取值,在测试的过程中,将其所包含的值传入接口测试用例中的函数,以通过该函数对该值进行处理;mock数据为虚拟数据,在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建便于测试的测试方法,这个虚拟的对象就是mock对象。mock对象就是真实对象在调试期间的代替品。
[0048] 步骤302,接口调用。
[0049] 这里,准备好接口测试数据之后,通过人工的方式选取的测试工具调用待测试的接口,以准备进行接口测试。
[0050] 步骤303,结果校验。
[0051] 这里,需要将测试结果与预设的测试结果进行比对校验,以确定该接口是否正常。其中,需要校验的数据主要包括:接口出参数据和DB数据。其中,接口出参数据是主函数需要的,这里的主函数为接口测试用例所包括的函数。接口出参数据本身没值,可以从函数中带出值(相当于函数的返回值)。
[0052] 步骤304,数据删除。
[0053] 这里,如果本轮测试结束,则可以将接口测试数据删除,再重新导入新的接口测试数据,以进行下一轮测试。
[0054] 步骤202,选择接口测试工具。
[0055] 这里,测试工作人员可以根据经验选择接口测试工具调用接口,接口测试工具可以为Postman、Jmete、SoapUI、Python中至少一种。
[0056] 步骤203,使用接口测试工具中的断言,判断返回结果。
[0057] 这里,断言是编程术语,表示为一些布尔表达式,该表达式的值在程序中的某个特定点可以为真,断言验证可以在任何时候启用和禁用,一般情况下,可以在测试时启用断言,在部署时禁用断言。
[0058] 相关技术中,由于接口参数比较复杂、测试数据需要覆盖多个场景、需要尽量贴近现实场景,数据准备的过程极其耗时间;线上回归测试时,需要把历史数据、历史流量进行复制测试,处理难度特别大;数以万计的测试数据如何选择、近似数据如何选择,测试人员只能凭借自己的经验做出选择。
[0059] 针对相关技术中所存在的问题,本申请实施例提供了一种人工智能结合接口测试的方法,通过该方法可以快速自动、精准地对接口进行自动化测试,节省数据筛选时间,提高整个测试过程的工作效率。且通过该方法能够实现以下功能:(1)提供一种聚类算法与接口测试结合的整体方案;(2)提供一种基于筛选海量数据的聚类算法实现的脚本,用于根据每日线上数据确定相应的接口测试数据;(3)提供一种基于分层聚类算法实现的脚本,用于丰富场景,覆盖更多历史数据。
[0060] 本申请实施例中,能够针对海量线上数据进行接口测试数据的筛选,包括接口特征数据提取、Gower距离、围绕中心点的划分(Partitioning Around Medoid,PAM)算法、凝聚算法实现,能够丰富接口测试数据的类别;通过分层聚类算法将N天数据再次进行聚类分析,能够达到覆盖更多历史场景、更接近生产环境的目的。不仅解决了以往数据准备只能人工模拟或选择少量线上数据的问题,实现了从线上海量数据中筛选出具有代表性的可靠的测试数据;区别于以往的半自动化的接口方法,本申请实施例还结合线上数据自动筛选方法,实现了接口测试从数据准备到测试完成的全自动化。
[0061] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请的具体技术方案做进一步详细描述。以下实施例用于说明本申请,但不用来限制本申请的范围。
[0062] 图4为本申请实施例提供的接口测试方法的实现流程示意图一,如图4所示,该方法主要包括以下步骤:
[0063] 步骤401,采集生产环境数据。
[0064] 这里,生产环境是指实际使用的系统环境,由于生产环境每天有数以万记的下载记录数据,下载记录数据即为生产环境数据,本申请实施例中,需要采集历史生产环境数据,并将采集到的历史生产环境数据应用到测试环境中。
[0065] 其中,生产环境数据包括连续型变量和离散型变量,其中,连续型变量包括:文件大小、下载时长;离散型变量包括:文件类型、下载是否成功、是否打包下载。其中,文件类型、文件大小、是否打包下载为下载接口的输入参数;下载是否成功、下载时长为下载接口的输出参数。本申请实施例中,可以选取文件类型、文件大小、是否打包下载、下载是否成功、下载时长,以建立数据特征集。
[0066] 步骤402,对生产环境数据进行聚类分析,得到聚类分析的最终结果。
[0067] 需要说明的是,对生产环境数据进行聚类分析,得到聚类分析的最终结果,包括:基于第一数学模型对生产环境数据进行聚类分析,得到聚类分析的第一结果;基于第二数学模型对第一结果进行聚类分析,得到聚类分析的最终结果。
[0068] 需要说明的是,基于第一数学模型对生产环境数据进行聚类分析,得到聚类分析的第一结果,包括:将生产环境数据确定为原始测试数据;基于PAM算法对原始测试数据进行聚类分析,得到聚类分析的第一结果;对应地,基于第二数学模型对第一结果进行聚类分析,得到聚类分析的最终结果,包括:基于层次聚类算法对第一结果进行聚类分析,以得到聚类分析的最终结果。
[0069] 需要说明的是,基于各个原始测试数据所在点的距离,形成设定个数的簇,其中,簇为相似的原始测试数据的集合;根据各个簇的轮廓系数,确定聚类个数;基于聚类个数,选取性能最佳的簇;将性能最佳的簇,确定为聚类分析的第一结果。
[0070] 需要说明的是,基于各个原始测试数据所在点的距离,形成设定个数的簇,包括:将设定个数的原始测试数据所在的点,确定为簇中心点;遍历所有的原始测试数据,计算各个原始测试数据所在的点与各个簇中心点之间的距离;确定与各个原始测试数据所在的点距离最近的簇中心点;将各个原始测试数据归入对应的最近的簇中心点,以形成设定个数的簇,其中,形成的设定个数的簇即得到的聚类分析的最终结果。
[0071] 步骤403,根据聚类分析的最终结果,从生产环境数据中确定最终测试数据。
[0072] 这里,可以从聚类分析的最终结果、即形成的设定个数的簇中随机挑选至少一个簇,将该簇所包括的原始测试数据,作为下载接口的最终测试数据。
[0073] 步骤404,根据最终测试数据对接口进行测试,得到最终测试结果。
[0074] 需要说明的是,在上述任一实施例中,根据最终测试数据对接口进行测试,得到最终测试结果方法,包括:将根据最终测试数据对接口进行测试的初始测试结果,与设定测试结果进行比较,得到比较结果;根据比较结果,确定最终测试结果。
[0075] 需要说明的是,在上述任一实施例中,该方法还包括:基于原始测试数据,建立数据特征集;根据数据特征集的类型,确定计算各个原始测试数据所在点的距离的度量方法;基于确定的距离的度量方法,确定各个原始测试数据所在点之间的距离。
[0076] 这里,可以根据原始测试数据形成数据特征集,而聚类分析的第一步是确定各个原始测试数据之间的度量方法,例如,如果数据特征集包括多种类型的数据,则属于混合型数据集,就可以根据该数据特征集为混合类型数据集的特点,选取Gower距离作为度量方法。
[0077] 图5为本申请实施例提供的接口测试方法的实现流程示意图二,如图5所示,该测试流程主要包括如下步骤:
[0078] 步骤501,采集生产环境数据。
[0079] 这里,将采集到的生产环境数据确定为原始测试数据,生产环境是指实际使用的系统环境。由于生产环境每天有数以万记的下载记录数据,下载记录数据即为生产环境数据,本申请实施例中,需要采集历史生产环境数据,并将采集到的历史生产环境数据应用到测试环境中,作为原始测试数据。
[0080] 其中,生产环境数据包括连续型变量和离散型变量,其中,连续型变量包括:文件大小、下载时长;离散型变量包括:文件类型、下载是否成功、是否打包下载。其中,文件类型、文件大小、是否打包下载为下载接口的输入参数;下载是否成功、下载时长为下载接口的输出参数。本申请实施例中,可以选取文件类型、文件大小、是否打包下载、下载是否成功、下载时长,以建立数据特征集。
[0081] 步骤502,对采集到的生产环境数据进行聚类分析,得到聚类分析的结果。
[0082] 图6为本申请实施例提供的聚类分析的实现流程示意图,如图6所示,聚类分析主要包括如下步骤:
[0083] 步骤601,根据数据特征集的类型,确定计算各个原始测试数据所在点的距离的度量方法。
[0084] 这里,将采集到的生产环境数据确定为原始测试数据,可以根据原始测试数据形成数据特征集,而聚类分析的第一步是确定各个原始测试数据之间的度量方法,例如,如果数据特征集包括多种类型的数据,则属于混合型数据集,就可以根据该数据特征集为混合类型数据集的特点,选取Gower距离作为度量方法。
[0085] 对于该数据特征集中的连续型变量:利用曼哈顿距离对连续性变量进行归一化处理,然后根据归一化处理结果计算Gower距离;对于该特征集中的离散型变量:首先将包含k个类别的变量标准化到[0,1]之间;即转换成k个数值范围为0-1的变量,然后利用Dice系数做进一步的计算。本申请实施例中,可以利用Daisy函数计算Gower距离。当原始变量是混合类型、或者设置metric="gower"时,可以通过daisy()方法计算数据集中各个原始测试数据之间的Gower距离。计算Gower距离的源码如下:
[0086] Daisy(x,metric=c("euclidean","manhattan","gower"),stand=FALSE,type=list(),weights=rep.int(1,p),...);
[0087] 其中,x:数值矩阵或数据框,数值类型的变量被识别为区间缩放变量,因子类型的变量被识别为标称属性,有序因子被识别为有序变量,其他变量类型需要在type参数中指定。
[0088] 其中,metric:字符类型,有效值是“euclidean”(默认值)、“manhattan”和“gower”。
[0089] stand:逻辑值,表征在计算相异性之前是否按列对数据进行标准化。
[0090] type:list类型,用于指定x中变量的类型,有效的列表项是“ordratio”(用于序数变量)、“logratio”(用于对数转换)、“asymm”(用于非对称二元属性)和“symm”(用于对称二元属性和标称属性)。
[0091] weights:数值向量(长度是x的列的数量p=ncol(x)),用于混合类型的变量(或metric="gower"),指定每个变量的权重,默认的权重是1。
[0092] Daisy函数通过使用Gower相异系数来实现对标称、序数和二元属性数据的处理。如果x的变量是标称、序数和二元类型的数据,那么函数将忽略metric和stand参数,使用Gower系数计算数据矩阵的距离。对于纯数值数据,也可以通过设置metric="gower"来计算相异性矩阵,计算之前需要先对数据对象进行标准化,把数据准化到[0,1]之间。
[0093] 步骤602,基于PAM算法对原始测试数据进行聚类分析,以形成多个相似的原始测试数据的集合,即多个簇。
[0094] 本申请实施例中,在计算好各个原始测试数据的距离矩阵后,选择PAM算法来构建模型。通过PAM算法对原始测试数据进行聚类处理的主要实现步骤如下:
[0095] a、随机选取k个原始测试数据所在的点,并将其设为簇中心点;
[0096] b、遍历所有的原始测试数据,计算各个原始测试数据与各个簇中心点之间的距离,并将各个原始测试数据归入离其最近的簇中心点,以形成k个簇;
[0097] c、对每个簇而言,找出与簇内与其他原始测试数据所在的点距离之和最小的点,并将其设为新的簇中心点;
[0098] d、重复步骤b,直到满足预设条件,例如,达到设定的簇的个数、所有的原始测试数据均遍历完毕等。
[0099] 这里,通过随机选择k个原始测试数据,并将其设为簇中心点,遍历所有的原始测试数据,并将原始测试数据归入最近的簇中心点,可以形成多个簇。其中,簇是相似的原始测试数据的集合,在同一个簇中,所有的原始测试数据都彼此相似,而簇与簇之间的原始测试数据彼此相异,其中,k为正整数。
[0100] 步骤603,根据各个簇的轮廓系数,确定聚类个数,以选取性能最佳的簇。
[0101] 这里,可以利用轮廓系数选择最佳的聚类个数。这里,轮廓系数是一个用于衡量聚类离散度的内部指标,该指标的取值范围是[-1,1],其数值越大越好。本申请实施例中,可以通过比较不同聚类个数下轮廓系数的大小,确定聚类个数,以选取性能最佳的簇。
[0102] 以基于上述步骤602已经形成了k个簇为例,可以基于簇中的每个向量,分别计算它们的轮廓系数。对于其中的一个点i来说,i向量轮廓系数S(i)的计算公式为公式(1):
[0103]
[0104] 公式(1)中,a(i)为i向量到同一簇内其他点不相似程度的平均值,即i向量到所有它属于的簇中其它点的距离的平均值;b(i)为i向量到其他簇的平均不相似程度的最小值,即i向量到各个非本身所在簇的所有点的平均距离的最小值。
[0105] 这里,将簇内所有点的轮廓系数求平均值,就能得到各个簇的轮廓系数,以根据各个簇的轮廓系数,确定聚类个数,例如,当确定某个簇的轮廓系数小于设定的轮廓系数时,将该簇清除掉;当确定某个簇的轮廓系数大于等于设定的轮廓次数时,则保留该簇,并通过下述步骤对保留下来的簇进行进一步处理。
[0106] 步骤604,根据层次聚类算法对选取的簇进行聚类分析,以得到聚类分析的最终结果。
[0107] 由于生产环境每天产生的生产环境数据具有一定程度的相似性和部分差异性,为了更准确地筛选出最佳接口测试数据,可以选择将设定天数内的所有簇进行聚合,例如,将最近3天或者7天内的所有簇进行聚合,并判定合并结果是否有效。假设最近7天共有N个簇,如果合并后的簇数目小于N/7,则结束流程;如果合并后的簇数目大于或等于N/7,则合并结果是有效的。本申请实施例中,可以通过凝聚法对设定天数内的样本进行聚类,通过凝聚法进行聚类的步骤主要包括:
[0108] a、计算两两簇之间的距离;
[0109] 这里,通过计算两两簇之间的距离,确定距离最近的两个簇,两个簇之间的距离越小,这两个簇之间的相似度越大,其中,两两簇之间的距离可以根据各个簇的簇中心点之间的距离计算得到。
[0110] b、合并距离最近的两个簇,得到一个新的簇;
[0111] c、将合并后的新的簇加入原来的簇,再重新执行步骤a;
[0112] d、直到簇的数目达到设定的值。
[0113] 这里,合并后的簇数目即为每日推荐的测试数据量,通过聚类分析的方法所得到的每日推荐的测试数据量,相较于每天积累数据量大大下降,既降低了线上数据筛选的时间,又提高了数据筛选的可靠性。上述通过聚类分析的方法对生产环境数据进行处理的过程与对数据进行等价类划分的过程类似。
[0114] 步骤503,根据聚类分析的结果,从生产环境数据中确定最终测试数据。
[0115] 这里,可以从合并后的多个簇中随机挑选至少一个簇,将该簇所包括的原始测试数据,作为下载接口的最终测试数据。
[0116] 步骤504,将根据最终测试数据对接口进行测试的初始测试结果,与设定测试结果进行比较,得到比较结果,以根据比较结果确定最终测试结果。
[0117] 这里,从聚类分析的结果中随机挑选一条记录作为下载接口的最终测试数据,将根据最终测试数据对接口进行测试的初始测试结果与设定测试结果进行比较,得到比较结果,根据比较结果,得到测试结果,可以完成每日线上数据接口测试,实现全自动化接口测试。其中,设定测试结果为根据历史测试结果确定的,可以为设定的阈值范围,用于判定初始测试结果是否在正常范围内,以确定该接口是否正常,例如,当初始测试结果在该设定的阈值范围内,则该初始测试结果表征该接口是正常的;如果初始测试结果不在该设定的阈值范围内,则该初始测试结果表征该接口是有问题的。
[0118] 本申请实施例中,基于Gower距离、PAM算法实现的接口测试数据聚类分析,通过对接口输入、输出参数进行特征提取后,结合人工智能(Artificial Intelligence,AI)实现接口测试数据筛选。不同于测试人员通过划分或随机选择数据的方式进行测试,本申请实施例所提出全新的自动的可靠筛选方法,能够基于Gower距离算法计算样本之间的距离,并基于PAM算法对样本进行聚类分析,得出每日数据的聚类结果。
[0119] 基于上述实施例的同一发明构思,本申请实施例提供一种接口测试装置,图7为本申请实施例提供的一种接口测试装置的结构示意图,如图7所示,该接口测试装置700包括:
[0120] 采集单元701,用于采集生产环境数据;
[0121] 分析单元702,用于对所述生产环境数据进行聚类分析,得到聚类分析的最终结果;
[0122] 第一确定单元703,用于根据所述聚类分析的最终结果,从所述生产环境数据中确定最终测试数据;
[0123] 第二确定单元704,用于根据所述最终测试数据对所述接口进行测试,得到最终测试结果。
[0124] 需要说明的是,该分析单元702,包括:
[0125] 第一分析模块,用于基于第一数学模型对所述生产环境数据进行聚类分析,得到聚类分析的第一结果;
[0126] 第二分析模块,用于基于第二数学模型对所述第一结果进行聚类分析,得到聚类分析的最终结果。
[0127] 需要说明的是,该第一分析模块,包括:
[0128] 确定子模块,用于将所述生产环境数据确定为原始测试数据;
[0129] 第一分析子模块,用于基于PAM算法对所述原始测试数据进行聚类分析,得到聚类分析的第一结果;
[0130] 对应地,该第二分析模块,包括:
[0131] 第二分析子模块,用于基于层次聚类算法对所述第一结果进行聚类分析,以得到聚类分析的最终结果。
[0132] 需要说明的是,该第一分析子模块,具体用于:
[0133] 基于各个原始测试数据所在点的距离,形成设定个数的簇,其中,所述簇为相似的原始测试数据的集合;
[0134] 根据各个簇的轮廓系数,确定聚类个数;
[0135] 基于所述聚类个数,选取性能最佳的簇;
[0136] 将所述性能最佳的簇,确定为聚类分析的第一结果。
[0137] 需要说明的是,该第一分析子模块,还具体用于:
[0138] 将设定个数的原始测试数据所在的点,确定为簇中心点;
[0139] 遍历所有的原始测试数据,计算各个原始测试数据所在的点与各个簇中心点之间的距离;
[0140] 确定与各个原始测试数据所在的点距离最近的簇中心点;
[0141] 将各个原始测试数据归入对应的最近的簇中心点,以形成设定个数的簇。
[0142] 需要说明的是,该装置还包括:
[0143] 构建单元,用于基于原始测试数据,建立数据特征集;
[0144] 第三确定单元,用于根据所述数据特征集的类型,确定计算各个原始测试数据所在点的距离的度量方法;
[0145] 第四确定单元,用于基于所述距离的度量方法,确定各个原始测试数据所在点之间的距离。
[0146] 需要说明的是,第二确定单元704,包括:
[0147] 比较模块,用于将根据所述最终测试数据对接口进行测试的初始测试结果,与设定测试结果进行比较,得到比较结果;
[0148] 确定模块,用于根据所述比较结果,确定最终测试结果。
[0149] 在本申请实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0150] 所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本申请实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0151] 因此,本申请实施例提供了计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述实施例所述的步骤。
[0152] 参见图8,示出了本申请实施例提供的一种接口测试装置800的具体硬件结构,包括:网络接口801、存储器802和处理器803;各个组件通过总线系统804耦合在一起。可理解,总线系统804用于实现这些组件之间的连接通信。总线系统804除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统804。其中,其中,所述网络接口801,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
[0153] 存储器802,用于存储能够在处理器803上运行的计算机程序;
[0154] 处理器803,用于在运行所述计算机程序时,执行:
[0155] 采集生产环境数据;
[0156] 对所述生产环境数据进行聚类分析,得到聚类分析的最终结果;
[0157] 根据所述聚类分析的最终结果,从所述生产环境数据中确定最终测试数据;
[0158] 根据所述最终测试数据对所述接口进行测试,得到最终测试结果。
[0159] 所述处理器803还用于运行所述计算机程序时,执行:
[0160] 基于第一数学模型对所述生产环境数据进行聚类分析,得到聚类分析的第一结果;
[0161] 基于第二数学模型对所述第一结果进行聚类分析,得到聚类分析的最终结果。
[0162] 所述处理器803还用于运行所述计算机程序时,执行:
[0163] 将所述生产环境数据确定为原始测试数据;
[0164] 基于PAM算法对所述原始测试数据进行聚类分析,得到聚类分析的第一结果;
[0165] 基于层次聚类算法对所述第一结果进行聚类分析,以得到聚类分析的最终结果。
[0166] 所述处理器803还用于运行所述计算机程序时,执行:
[0167] 基于各个原始测试数据所在点的距离,形成设定个数的簇,其中,所述簇为相似的原始测试数据的集合;
[0168] 根据各个簇的轮廓系数,确定聚类个数;
[0169] 基于所述聚类个数,选取性能最佳的簇;
[0170] 将所述性能最佳的簇,确定为聚类分析的第一结果。
[0171] 所述处理器803还用于运行所述计算机程序时,执行:
[0172] 将设定个数的原始测试数据所在的点,确定为簇中心点;
[0173] 遍历所有的原始测试数据,计算各个原始测试数据所在的点与各个簇中心点之间的距离;
[0174] 确定与各个原始测试数据所在的点距离最近的簇中心点;
[0175] 将各个原始测试数据归入对应的最近的簇中心点,以形成设定个数的簇。
[0176] 所述处理器803还用于运行所述计算机程序时,执行:
[0177] 基于原始测试数据,建立数据特征集;
[0178] 根据所述数据特征集的类型,确定计算各个原始测试数据所在点的距离的度量方法;
[0179] 基于所述距离的度量方法,确定各个原始测试数据所在点之间的距离。
[0180] 所述处理器803还用于运行所述计算机程序时,执行:
[0181] 将根据所述最终测试数据对接口进行测试的初始测试结果,与设定测试结果进行比较,得到比较结果;
[0182] 根据所述比较结果,确定最终测试结果。
[0183] 可以理解,本申请实施例中的存储器802可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Sync Link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本文描述的方法的存储器802旨在包括但不限于这些和任意其它适合类型的存储器。
[0184] 而处理器803可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器803中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器803可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块、即计算机可执行指令可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器、光盘等本领域成熟的存储介质中,计算机可执行指令被处理器执行时实现上述接口测试方法的步骤。该存储介质可以位于存储器802,处理器803读取存储器802中的信息,结合其硬件完成上述方法的步骤。
[0185] 本申请装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
[0186] 这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
[0187] 当然,本申请实施例中的装置还可有其他类似的协议交互实现案例,在不背离本申请精神及其实质的情况下,本领域的技术人员当可根据本申请实施例做出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请方法所附的权利要求的保护范围。
[0188] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
[0189] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0190] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0191] 应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
[0192] 需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个在涵”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0193] 在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
[0194] 上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理模块;既可以位于一个地方,也可以分布到多个网络模块上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。
[0195] 另外,在本申请各实施例中的各功能模块可以全部集成在一个处理模块中,也可以是各模块分别单独作为一个模块,也可以两个或两个以上模块集成在一个模块中;上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0196] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0197] 或者,本申请上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台服务器执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
[0198] 以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

当前第1页 第1页 第2页 第3页