一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种接口测试方法、装置、设备、存储介质与流程

2022-08-10 18:48:58 来源:中国专利 TAG:


1.本发明涉及智能化接口测试领域,特别涉及一种接口测试方法、装置、设备、存储介质。


背景技术:

2.云操作系统软件是基于开源软件openstack的云操作系统软件,产品除了openstack原生的接口,各个公司研发的云操作系统软件还有很多扩充自研新功能所增加的接口,openstack本身在不断地更新版本,接口功能对测试工程师是一个很重要的测试点,测试这些数量庞大的接口以及执行这些接口测试的测试用例需要花费巨大的时间和精力,而且随着云操作系统软件产品功能的完善和扩展,必将会有更多接口。
3.目前测试工程师是通过编写接口测试自动化用例,自动化用例覆盖这些接口的功能测试点,然后在每一轮的测试中,调度执行这些自动化测试用例,然而随着云操作系统软件版本功能的不断丰富,接口也越来越多,自动化测试用例的数量不断增加,每一个版本的迭代和系统测试阶段,执行全量用例需要大量的时间和人力。
4.综上,如何实现减少测试用例执行时间、提高功能测试效率、减少人力节约成本是本领域有待解决的问题。


技术实现要素:

5.有鉴于此,本发明的目的在于提供一种接口测试方法、装置、设备、存储介质,能够减少测试用例执行时间、提高功能测试效率、减少人力节约成本。其具体方案如下:
6.第一方面,本技术公开了一种接口测试方法,应用于云操作系统软件,包括:
7.收集各个接口的功能测试点的历史故障次数,并基于所述功能测试点的所述历史故障次数确定每个所述接口的故障值;
8.基于所述故障值与预设故障值的大小关系,确定所述接口的故障状态;
9.从预设的测试用例库中确定出与所述故障状态对应的目标测试用例,并利用所述目标测试用例对相应的所述接口进行测试。
10.可选的,所述基于所述故障值与预设故障值的大小关系,确定用于所述接口的测试用例之前,还包括:
11.对每个接口各自的故障概率进行预测,以得到每个所述接口各自对应的故障概率预测值;
12.基于每个所述接口各自对应的所述故障概率预测值确定出所述预设故障值。
13.可选的,所述对每个接口各自的故障概率进行预测,以得到每个所述接口各自对应的故障概率预测值,包括:
14.基于若干数量个历史版本的所述接口以及相应的历史故障值进行训练,以基于训练结果确定出每个所述接口各自对应的故障概率预测值。
15.可选的,所述基于所述故障值与预设故障值的大小关系,确定所述接口的故障状
态,从预设的测试用例库中确定出与所述故障状态对应的目标测试用例,并利用所述目标测试用例对相应的所述接口进行测试,包括:
16.判断所述故障值与所述预设故障值的大小;
17.如果所述故障值大于或等于所述预设故障值,则判定所述接口的故障状态为存在故障,并从预设的测试用例库中筛选出全量测试用例,并利用所述全量测试用例对相应的所述接口进行测试。
18.可选的,所述基于所述故障值与预设故障值的大小关系,确定所述接口的故障状态,从预设的测试用例库中确定出与所述故障状态对应的目标测试用例,并利用所述目标测试用例对相应的所述接口进行测试,包括:
19.如果所述故障值小于所述预设故障值,则判定所述接口的故障状态为不存在故障,并从预设的测试用例库中筛选出基础功能测试用例,并利用所述基础功能测试用例对相应的所述接口进行测试。
20.可选的,所述收集各个接口的功能测试点的历史故障次数之前,还包括:
21.基于已有接口和新需求接口的接口特点,创建用于进行接口测试的全量测试用例和基础功能测试用例。
22.可选的,所述利用所述目标测试用例对相应的所述接口进行测试之后,还包括:
23.输出相应的测试报告,并获取所述测试报告中相应接口的功能测试点的故障数据,然后利用所述故障数据对本地数据库中与该接口对应的所述历史故障次数进行更新。
24.第二方面,本技术公开了一种接口测试装置,应用于云操作系统软件,包括:
25.故障值获取模块,用于收集各个接口的功能测试点的历史故障次数,并基于所述功能测试点的所述历史故障次数确定每个所述接口的故障值;
26.故障状态确定模块,用于基于所述故障值与预设故障值的大小关系,确定所述接口的故障状态;
27.接口测试模块,用于从预设的测试用例库中确定出与所述故障状态对应的目标测试用例,并利用所述目标测试用例对相应的所述接口进行测试。
28.第三方面,本技术公开了一种电子设备,包括:
29.存储器,用于保存计算机程序;
30.处理器,用于执行所述计算机程序,以实现前述公开的接口测试方法的步骤。
31.第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的接口测试方法的步骤。
32.可见,本技术公开了一种接口测试方法,应用于云操作系统软件,包括:收集各个接口的功能测试点的历史故障次数,并基于所述功能测试点的所述历史故障次数确定每个所述接口的故障值;基于所述故障值与预设故障值的大小关系,确定所述接口的故障状态;从预设的测试用例库中确定出与所述故障状态对应的目标测试用例,并利用所述目标测试用例对相应的所述接口进行测试。由此可见,本技术通过预先确定接口的故障状态,基于所述接口的故障状态采用对应的目标测试用例进行测试,这样一来,并且使接口测试变得有针对性和智能化,避免了每一轮系统测试都要花费大量时间执行全量测试用例,减少测试用例执行时间,提高接口测试效率和节省人力和时间成本。
附图说明
33.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
34.图1为本技术公开的一种接口测试方法流程图;
35.图2为本技术公开的一种具体的接口测试方法流程图;
36.图3为本技术公开的一种云操作系统软件的接口智能化测试方法流程图;
37.图4为本技术公开的一种接口测试装置结构示意图;
38.图5为本技术公开的一种电子设备结构图。
具体实施方式
39.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
40.目前测试工程师是通过编写接口测试自动化用例,自动化用例覆盖这些接口的功能测试点,然后在每一轮的测试中,调度执行这些自动化测试用例,然而随着云操作系统软件版本功能的不断丰富,接口也越来越多,自动化测试用例的数量不断增加,每一个版本的迭代和系统测试阶段,执行全量用例需要大量的时间和人力。
41.为此,本发明提供了一种接口测试方案,能够减少测试用例执行时间、提高功能测试效率、减少人力节约成本。
42.参照图1所示,本发明实施例公开了一种接口测试方法,应用于云操作系统软件,包括:
43.步骤s11:收集各个接口的功能测试点的历史故障次数,并基于所述功能测试点的所述历史故障次数确定每个所述接口的故障值。
44.本实施例中,基于之前版本手工测试以及自动化测试收集各个接口的功能测试点的历史故障次数,例如:将每个功能测试点都标记一个编号,每个功能测试点设定一个故障值,基于新需求的功能测试点的故障值初始化为零,基于之前的手工测试以及自动化测试发现的bug(程序漏洞),每出现一次bug,就在对应功能测试点的故障值增加1,进而确定所述接口的故障值,其中,故障值越大就表示出现故障的概率越高。
45.本实施例中,所述收集各个接口的功能测试点的历史故障次数之前,还包括:基于已有接口和新需求接口的接口特点,创建用于进行接口测试的全量测试用例和基础功能测试用例。可以理解的是,基于现有功能接口编写全量测试用例和基础功能测试用例,由于研发的云操作系统软件还有很多扩充自研新功能所增加的接口,所以基于每个迭代增加的新需求接口编写相应的补充接口的全量测试用例和基础功能测试用例,以便调度执行相应的测试用例对对应的接口进行测试。
46.步骤s12:基于所述故障值与预设故障值的大小关系,确定所述接口的故障状态。
47.本实施例中,预先设置预设故障值,所述预设故障值是基于智能训练模型训练出
并得到的预设故障值,然后在进行本次的版本测试之前,预先比较所述故障值和预设故障值的大小关系,然后基于所述大小关系确定出每个接口的故障状态,需要注意的是,在本实施例中,接口的故障状态具体可以分为两种,一种为接口的功能测试点存在故障,另一种为接口的功能测试点不存在故障。相应的,本技术预先设置了采用相应的测试用例来进行不同的故障状态的接口的测试。
48.步骤s13:从预设的测试用例库中确定出与所述故障状态对应的目标测试用例,并利用所述目标测试用例对相应的所述接口进行测试。
49.本实施例中,从预设的测试用例库中确定出与所述故障状态对应的目标测试用例,并利用所述目标测试用例对相应的所述接口进行测试,包括:判断所述故障值与所述预设故障值的大小;如果所述故障值大于或等于所述预设故障值,则判定所述接口的故障状态为存在故障,并从预设的测试用例库中筛选出全量测试用例,并利用所述全量测试用例对相应的所述接口进行测试。可以理解的是,如果所述故障值大于或等于所述预设故障值,则说明该接口的故障状态为存在故障,则将预先训练的该接口对应的全量测试用例从预设的测试用例库中取出并执行所述全量测试用例对该接口的故障功能点进行测试,全面测试可能的故障功能点。
50.本实施例中,判断所述故障值与所述预设故障值的大小;如果所述故障值小于所述预设故障值,则判定所述接口的故障状态为不存在故障,并从预设的测试用例库中筛选出基础功能测试用例,并利用所述基础功能测试用例对相应的所述接口进行测试。可以理解的是,如果所述故障值小于所述预设故障值,说明该接口不存在故障,则从则将预先训练的该接口对应的基础功能测试用例从预设的测试用例库中取出并执行所述基础功能用例对该接口进行基础功能测试。
51.本实施例中,获取接口1的故障值为1,接口2的故障值为8、接口3的故障值为3,接口4的故障值为4,接口5的故障值为5,而预测故障值为3,则基于大小关系确定上述接口的故障状态,可以判定接口1为不存在故障状态的接口,其余接口为存在故障状态的接口,所以利用基础功能测试用例对接口1进行基础功能测试,利用与接口3、接口3、接口4、接口5对应的全量测试用例进行相应的测试。
52.可见,本技术公开了一种接口测试方法,应用于云操作系统软件,包括:收集各个接口的功能测试点的历史故障次数,并基于所述功能测试点的所述历史故障次数确定每个所述接口的故障值;基于所述故障值与预设故障值的大小关系,确定所述接口的故障状态;从预设的测试用例库中确定出与所述故障状态对应的目标测试用例,并利用所述目标测试用例对相应的所述接口进行测试。由此可见,本技术通过预先确定接口的故障状态,基于所述接口的故障状态采用对应的目标测试用例进行测试,这样一来,并且使接口测试变得有针对性和智能化,避免了每一轮系统测试都要花费大量时间执行全量测试用例,减少测试用例执行时间,提高接口测试效率和节省人力和时间成本。
53.参照图2所示,本发明实施例公开了一种具体的接口测试方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
54.步骤s21:收集各个接口的功能测试点的历史故障次数,并基于所述功能测试点的所述历史故障次数确定每个所述接口的故障值。
55.步骤s22:对每个所述接口各自的故障概率进行预测,以得到每个所述接口各自对
应的故障概率预测值;基于每个所述接口各自对应的所述故障概率预测值确定出所述预设故障值。
56.本实施例中,基于若干数量个历史版本的所述接口以及相应的历史故障值进行训练,以基于训练结果确定出每个所述接口各自对应的故障概率预测值。参照图3所示,基于现有测试环境和版本设计数据采集,然后选取过去五个版本的数据进行智能训练,例如:选取平均每个版本两个迭代,四轮系统测试的训练数据对功能测试点的故障问题标签与相应的故障值进行智能训练,预测的对应的故障概率的预测值,基于每个所述接口各自对应的所述故障概率预测值确定出所述预设故障值。
57.步骤s23:基于所述故障值与预设故障值的大小关系,确定所述接口的故障状态。
58.步骤s24:从预设的测试用例库中确定出与所述故障状态对应的目标测试用例,并利用所述目标测试用例对相应的所述接口进行测试。
59.其中,步骤s21、s23、s24更加详细的过程请参照前述公开的实施例,在此不再进行赘述。
60.步骤s25:输出相应的测试报告,并将所述测试报告中相应接口的功能测试点的故障数据,然后利用所述故障数据对本地数据库中与该接口对应的所述历史故障次数进行更新。
61.本实施例中,在本次的接口测试完成后输出相应的测试报告,并获取测试报告中相应接口的功能测试点的故障数据,并且利用所述故障数据中的故障次数对本地数据库中预先保存的该接口对应的历史故障次数进行更新,以便准确计算下一次接口测试的对应接口故障次数。
62.由此可见,本技术在对接口进行本次测试之前预先利用智能训练模型对接口的故障值进行预测,确定各个接口的预测故障频率,基于所述预测故障频率得到接口的预测故障值,然后利用已测量到的每个接口的故障值与所述预测故障值进行比较,以得到相应的大小关系,并基于所述大小关系来确定出测试该接口的对应测试用例,避免无效的重复测试,提高测试效率。
63.参照图4所示,本发明实施例公开了一种具体的接口测试装置,应用于云操作系统软件,包括:
64.故障值获取模块11,用于收集各个接口的功能测试点的历史故障次数,并基于所述功能测试点的所述历史故障次数确定每个所述接口的故障值;
65.故障状态确定模块12,用于基于所述故障值与预设故障值的大小关系,确定所述接口的故障状态;
66.接口测试模块13,用于从预设的测试用例库中确定出与所述故障状态对应的目标测试用例,并利用所述目标测试用例对相应的所述接口进行测试。
67.可见,本技术公开了一种接口测试方法,应用于云操作系统软件,包括:收集各个接口的功能测试点的历史故障次数,并基于所述功能测试点的所述历史故障次数确定每个所述接口的故障值;基于所述故障值与预设故障值的大小关系,确定所述接口的故障状态;从预设的测试用例库中确定出与所述故障状态对应的目标测试用例,并利用所述目标测试用例对相应的所述接口进行测试。由此可见,本技术通过预先确定接口的故障状态,基于所述接口的故障状态采用对应的目标测试用例进行测试,这样一来,并且使接口测试变得有
针对性和智能化,避免了每一轮系统测试都要花费大量时间执行全量测试用例,减少测试用例执行时间,提高接口测试效率和节省人力和时间成本。
68.在一些具体实施例中,所述故障状态确定模块12,具体包括:
69.概率预测子模块,用于对每个接口各自的故障概率进行预测,以得到每个所述接口各自对应的故障概率预测值;
70.基于每个所述接口各自对应的所述故障概率预测值确定出所述预设故障值。
71.在一些具体实施例中,所述概率预测子模块,具体包括:
72.预测值确定单元,用于基于若干数量个历史版本的所述接口以及相应的历史故障值进行训练,以基于训练结果确定出每个所述接口各自对应的故障概率预测值。
73.在一些具体实施例中,所述故障状态确定模块12,具体包括:
74.判断子模块,用于判断所述故障值与所述预设故障值的大小;
75.如果所述故障值大于或等于所述预设故障值,则判定所述接口的故障状态为存在故障,并从预设的测试用例库中筛选出全量测试用例,并利用所述全量测试用例对相应的所述接口进行测试。
76.在一些具体实施例中,所述判断子模块,具体包括:
77.测试用例确定单元,用于如果所述故障值小于所述预设故障值,则判定所述接口的故障状态为不存在故障,并从预设的测试用例库中筛选出基础功能测试用例,并利用所述基础功能测试用例对相应的所述接口进行测试。
78.在一些具体实施例中,所述故障值获取模块11,具体包括:
79.基于已有接口和新需求接口的接口特点,创建用于进行接口测试的全量测试用例和基础功能测试用例。
80.在一些具体实施例中,所述接口测试模块13,具体包括:
81.输出相应的测试报告,并获取所述测试报告中相应接口的功能测试点的故障数据,然后利用所述故障数据对本地数据库中与该接口对应的所述历史故障次数进行更新。
82.进一步的,本技术实施例还公开了一种电子设备,图5是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本技术的使用范围的任何限制。
83.图5为本技术实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的接口测试方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
84.本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
85.其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程
逻辑阵列)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
86.另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
87.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是windows server、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的接口测试方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括电子设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。
88.进一步的,本技术还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的接口测试方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
89.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
90.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
91.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
92.以上对本发明所提供的一种接口测试方法、装置、设备、存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献