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

基于人工智能的数据测试方法、装置、测试设备及介质与流程

2022-05-18 08:28:58 来源:中国专利 TAG:


1.本发明涉及大数据测试技术领域,具体涉及一种基于人工智能的数据测试方法、装置、测试设备及介质。


背景技术:

2.目前对于实时大数据流的测试方法,主要采用跟已有采集数据比对的方式,来测试实时大数据流指标处理逻辑是否正确,这样需要依赖于是否可以采集到合适的数据进行比对。如果没有采集到合适的数据,势必会导致比对误差较大,造成测试失败。


技术实现要素:

3.鉴于以上内容,有必要提出一种基于人工智能的数据测试方法、装置、测试设备及介质,能够提高数据测试的效率及准确度。
4.本发明的第一方面提供一种基于人工智能的数据测试方法,所述方法包括:
5.响应于接收到的数据测试指令,从所述数据测试指令中获取多个业务数据;
6.根据所述多个业务数据模拟生成多个测试数据;
7.根据上一轮的数据测试报告部署多个kafka分布式消息队列通道,并采用滑动窗口控制所述多个测试数据通过所述多个kafka分布式消息队列通道传入kafka分布式消息队列集群;
8.在所述kafka分布式消息队列集群中通过flink分布式计算引擎对所述多个kafka分布式消息队列通道传出的数据进行测试验证,并输出数据测试报告;
9.响应于测试验证完成的指令,执行预设的恢复策略,并根据所述恢复策略进行下一轮的数据测试。
10.根据本发明的一个可选的实施方式,所述根据上一轮的数据测试报告部署多个kafka分布式消息队列通道包括:
11.获取所述上一轮的数据测试报告中的平均响应时间;
12.判断所述平均响应时间是否小于预设响应时间阈值;
13.当所述平均响应时间小于所述预设响应时间阈值时,在上一轮部署所述kafka分布式消息队列通道的数量的基础上增加预设第一数量;
14.当所述平均响应时间不小于所述预设响应时间阈值时,在上一轮部署所述kafka分布式消息队列通道的数量的基础上减少预设第二数量。
15.根据本发明的一个可选的实施方式,所述采用滑动窗口控制所述多个测试数据通过所述多个kafka分布式消息队列通道传入kafka分布式消息队列集群包括:
16.每隔预设时间片段获取每个所述kafka分布式消息队列通道传出所述测试数据的传出数量;
17.根据多个所述传出数量计算得到平均传出数量;
18.根据所述传出数量及所述平均传出数量计算得到对应所述kafka分布式消息队列
通道的窗口调整参数;
19.根据所述窗口调整参数调整所述kafka分布式消息队列通道的滑动窗口的尺寸;
20.使用尺寸调整后的滑动窗口控制对应的所述kafka分布式消息队列通道将所述多个测试数据传入kafka分布式消息队列集群。
21.根据本发明的一个可选的实施方式,所述预设的恢复策略的配置过程包括:
22.获取flink分布式计算引擎的restore strategy参数;
23.将所述restore strategy参数配置为none。
24.根据本发明的一个可选的实施方式,所述根据所述业务数据模拟生成测试数据包括:
25.获取每个业务数据的采集时间,并根据所述采集时间将所述多个业务数据进行分组,得到多组业务数据;
26.判断每组业务数据是否为平稳序列数据组;
27.对于为平稳序列数据组的业务数据,采用预设第一回归模型对所述业务数据进行回归拟合,得到对应组的测试数据;
28.对于不为平稳序列数据组的业务数据,采用预设第二回归模型对所述业务数据进行回归拟合,得到对应组的测试数据。
29.根据本发明的一个可选的实施方式,在所述根据所述多个业务数据模拟生成多个测试数据之后,所述方法还包括:
30.基于密度的聚类算法识别所述多个测试数据中的离散点并去除所述离散点。
31.根据本发明的一个可选的实施方式,所述在所述kafka分布式消息队列集群中通过flink分布式计算引擎对所述多个kafka分布式消息队列通道传出的数据进行测试验证,并输出数据测试报告包括:
32.在所述kafka分布式消息队列集群中通过flink分布式计算引擎获取所述kafka分布式消息队列通道对应的预期结果及测试结果;
33.判断所述测试结果与对应的所述预期结果是否相同;
34.当所述测试结果与对应的所述预期结果相同时,输出测试成功的数据测试报告;
35.当所述测试结果与对应的所述预期结果不相同时,输出测试失败的数据测试报告。
36.本发明的第二方面提供一种基于人工智能的数据测试装置,所述装置包括:
37.获取模块,用于响应于接收到的数据测试指令,从所述数据测试指令中获取多个业务数据;
38.生成模块,用于根据所述多个业务数据模拟生成多个测试数据;
39.部署模块,用于根据上一轮的数据测试报告部署多个kafka分布式消息队列通道,并采用滑动窗口控制所述多个测试数据通过所述多个kafka分布式消息队列通道传入kafka分布式消息队列集群;
40.测试模块,用于在所述kafka分布式消息队列集群中通过flink分布式计算引擎对所述多个kafka分布式消息队列通道传出的数据进行测试验证,并输出数据测试报告;
41.恢复模块,用于响应于测试验证完成的指令,执行预设的恢复策略,并根据所述恢复策略进行下一轮的数据测试。
42.本发明的第三方面提供一种测试设备,所述测试设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述基于人工智能的数据测试方法。
43.本发明的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述基于人工智能的数据测试方法。
44.综上所述,本发明所述的基于人工智能的数据测试方法、装置、测试设备及介质,在接收到数据测试指令时,先从数据测试指令中获取多个业务数据,然后根据多个业务数据进行模拟,从而得到较多的测试数据,根据上一轮的数据测试报告部署当前轮的kafka分布式消息队列通道的数量,实现了kafka分布式消息队列通道的数量的自动化部署,提高了测试效率,采用滑动窗口控制多个kafka分布式消息队列通道,有效的保证了kafka分布式消息队列通道在同一时间将测试数据全部传入kafka分布式消息队列集群中,接着通过flink分布式计算引擎进行测试验证并输出数据测试报告,最后通过执行预设的恢复策略并根据恢复策略进行下一轮的数据测试,使得任务不再保留历史计算态,自动化测试用例可以循环执行,进一步提高了测试效率。
附图说明
45.图1是本发明实施例一提供的基于人工智能的数据测试方法的流程图。
46.图2是本发明实施例二提供的基于人工智能的数据测试装置的结构图。
47.图3是本发明实施例三提供的测试设备的结构示意图。
具体实施方式
48.为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
49.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述在一个可选的实施方式中实施例的目的,不是旨在于限制本发明。
50.本发明实施例提供的基于人工智能的数据测试方法由测试设备执行,相应地,基于人工智能的数据测试装置运行于测试设备中。
51.实施例一
52.图1是本发明实施例一提供的基于人工智能的数据测试方法的流程图。所述基于人工智能的数据测试方法将数据指标测试粒度由传统的宏观下沉到微观,通过单个测试场景、单条数据指标比对,提升了测试效率和测试准确度。所述方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些可以省略。
53.s11,响应于接收到的数据测试指令,从所述数据测试指令中获取多个业务数据。
54.其中,所述数据测试指令可以由相关工作人员触发,如测试人员等,也可以由业务系统的用户,例如,业务人员触发,本发明不做任何限制。
55.大数据测试平台安装于测试设备中,测试设备侦测到数据测试指令后,对数据测试指令进行响应,从数据测试指令中获取业务数据,业务数据为需要进行测试的数据。
56.s12,根据所述多个业务数据模拟生成多个测试数据。
57.为了更佳逼真的进行流式数据的测试,可以根据业务数据进行模拟,从而得到较多的测试数据。测试数据是指需要输入到测试设备中进行测试的数据。在进行流式数据测试时,输入到测试设备中的测试数据与真实场景中的业务数据的数据特征越温和,得到的测试结果就越准确。
58.在一个可选的实施方式中,所述根据所述业务数据模拟生成测试数据包括:
59.获取每个业务数据的采集时间,并根据所述采集时间将所述多个业务数据进行分组,得到多组业务数据;
60.判断每组业务数据是否为平稳序列数据组;
61.对于为平稳序列数据组的业务数据,采用预设第一回归模型对所述业务数据进行回归拟合,得到对应组的测试数据;
62.对于不为平稳序列数据组的业务数据,采用预设第二回归模型对所述业务数据进行回归拟合,得到对应组的测试数据。
63.例如,银行系统,每天早7点之前和晚7点之后,系统负载较小,早7点到11点和下午2点到7点为高峰,负载较大,则可以将业务数据按照采集时间分为4组,即晚7点到第二天早7点为一组,早7点到早11点为一组;早11点到下午2点为一组,下午2点到下午7点为一组。
64.可以通过计算每组业务数据的标准差,并将标准差与预设标准差阈值进行比较,根据比较得到的结果来判断每组业务数据是否为平稳序列数据组。当某组业务数据的标准差小于预设标准差阈值,则认为该组业务数据为平稳序列数据组。当某组业务数据的标准差不小于预设标准差阈值,则认为该组业务数据不为平稳序列数据组。
65.其中,预设第一回归模型可以是自回归移动平均((autoregressive moving average,aram)模型,预设第二回归模型可以是自回归滑动平均(autoregressive integrated moving average,arima)模型。
66.在进行多组回归拟合之后,将所有组的测试数据组合在一起,得到测试数据集,测试数据集中包括多个测试数据。
67.上述可选的实施方式,针对每组业务数据是否为平稳序列数据组,采用不同的回归模型进行回归拟合,得到的测试数据与对应组的业务数据在数据特征上将会更相似,从而在基于测试数据进行测试时,得到的测试结果也会更准确。
68.在一个可选的实施方式中,在所述根据所述多个业务数据模拟生成多个测试数据之后,所述方法还包括:
69.基于密度的聚类算法识别所述多个测试数据中的离散点并去除所述离散点。
70.基于密度的聚类算法(density-based spatial clustering of applications with noise,dbscan)能够有效的识别出噪声点并去除。
71.s13,根据上一轮的数据测试报告部署多个kafka分布式消息队列通道,并采用滑动窗口控制所述多个测试数据通过所述多个kafka分布式消息队列通道传入kafka分布式消息队列集群。
72.卡夫卡(kafka)是一个分布式消息队列,在应用间构建实时的数据流通道。
73.测试设备定期进行流式数据测试,在每轮数据测试时都会部署多个kafka分布式消息队列通道,从而将多个测试数据通过部署的多个kafka分布式消息队列通道传入kafka
分布式消息队列集群中进行处理,并在每轮数据测试之后都会输出数据测试报告。
74.在当前轮进行数据测试时,根据上一轮的数据测试报告部署当前轮的多个kafka分布式消息队列通道,在下一轮进行数据测试时,根据当前轮的数据测试报告部署下一轮的多个kafka分布式消息队列通道。当所述当前轮为第二轮时,所述上一轮为第一轮,当所述当前轮为第三轮时,所述上一轮为第二轮,以此类推。本实施例将以当前轮的数据测试为例进行描述。
75.在一个可选的实施方式中,当所述当前轮为第一轮,即当前轮为首轮数据测试时,部署的多个kafka分布式消息队列通道的数量可以为根据经验预先配置的。
76.为了自动化的部署kafka分布式消息队列通道的数量,测试设备可以根据上一轮的数据测试报告部署当前轮进行数据测试的kafka分布式消息队列通道的数量,根据当前轮的数据测试报告部署下一轮进行数据测试的kafka分布式消息队列通道的数量。
77.在一个可选的实施方式中,所述根据上一轮的数据测试报告部署多个kafka分布式消息队列通道包括:
78.获取所述上一轮的数据测试报告中的平均响应时间;
79.判断所述平均响应时间是否小于预设响应时间阈值;
80.当所述平均响应时间小于所述预设响应时间阈值时,在上一轮部署所述kafka分布式消息队列通道的数量的基础上增加预设第一数量;
81.当所述平均响应时间不小于所述预设响应时间阈值时,在上一轮部署所述kafka分布式消息队列通道的数量的基础上减少预设第二数量。
82.平均响应时间是指多个测试数据的响应时间的平均值,反映测试设备在上一轮的流式数据测试的过程中的整体服务效率。
83.当所述数据测试报告中的平均响应时间小于预设响应时间阈值,表明所述测试设备的服务能力没有到达瓶颈,可以在当前轮的数据测试过程中增加部署kafka分布式消息队列通道的数量。
84.当所述数据测试报告中的平均响应时间大于预设响应时间阈值,表明所述测试设备的服务能力到达了瓶颈,可以在当前轮的数据测试过程中减少部署kafka分布式消息队列通道的数量。
85.其中,预设第一数量可以与预设第二数量相同,也可以不同。
86.上述可选的实施方式中,通过上一轮的数据测试报告来部署当前轮进行数据测试的kafka分布式消息队列通道的数量,实现了kafka分布式消息队列通道的数量的自动化部署,当上一轮的数据测试报告中的平均响应时间小于所述预设响应时间阈值,增加当前轮的kafka分布式消息队列通道的数量,提高了并行化测试的效率,充分利用了测试设备的资源,当上一轮的数据测试报告中的平均响应时间不小于所述预设响应时间阈值,减少当前轮的kafka分布式消息队列通道的数量,以减少并行化测试的数量,从而避免测试设备崩溃,降低了甚至无法执行数据测试。
87.在一个可选的实施方式中,所述采用滑动窗口控制所述多个测试数据通过所述多个kafka分布式消息队列通道传入kafka分布式消息队列集群包括:
88.每隔预设时间片段获取每个所述kafka分布式消息队列通道传出所述测试数据的传出数量;
89.根据多个所述传出数量计算得到平均传出数量;
90.根据所述传出数量及所述平均传出数量计算得到对应所述kafka分布式消息队列通道的窗口调整参数;
91.根据所述窗口调整参数调整所述kafka分布式消息队列通道的滑动窗口的尺寸;
92.使用尺寸调整后的滑动窗口控制对应的所述kafka分布式消息队列通道将所述多个测试数据传入kafka分布式消息队列集群。
93.不同的kafka分布式消息队列通道在相同的时间片段内传入的测试数据的数量会有不同,为了有效的保证所有的kafka分布式消息队列通道能够在同一时间将测试数据全部传入kafka分布式消息队列集群中进行处理,则可以每隔预设时间获取每个kafka分布式消息队列通道传出测试数据的数量。传出的测试数据的数量越多,则表明对应的kafka分布式消息队列的传输速度越快,传输能力越强。传出的测试数据的数量越少,则表明对应的kafka分布式消息队列的传输速度越慢,传输能力越弱。
94.对于每个kafka分布式消息队列通道而言,将传出数量与平均传出数量的比值的倒数作为该kafka分布式消息队列通道的窗口调整参数。比值越小,则对应的窗口调整参数越大,使用窗口调整参数调整该kafka分布式消息队列通道的滑动窗口的尺寸后,该kafka分布式消息队列通道的滑动窗口越大,后续传输的测试数据的数量将会越多。比值越大,则对应的窗口调整参数越小,使用窗口调整参数调整该kafka分布式消息队列通道的滑动窗口的尺寸后,该kafka分布式消息队列通道的滑动窗口越小,后续传输的测试数据的数量将会越少。
95.上述可选的实施方式中,通过每隔预设时间片段获取每个所述kafka分布式消息队列通道传出所述测试数据的传出数量,并根据传出数量确定kafka分布式消息队列通道的窗口调整参数,从而根据窗口调整参数调整kafka分布式消息队列通道的滑动窗口的尺寸,使用尺寸调整后的滑动窗口控制对应的所述kafka分布式消息队列通道将所述多个测试数据传入kafka分布式消息队列集群,能够将测试数据的传输速率控制在同一水平,从而实现了测试数据的传输控制,有效的保证了多个测试数据在同一时间到达kafka分布式消息队列集群中,避免有些测试数据先到达kafka分布式消息队列集群,有些测试数据后达到kafka分布式消息队列集群,从而导致kafka分布式消息队列集群要等待后达到的测试数据,浪费了测试时间。
96.s14,在所述kafka分布式消息队列集群中通过flink分布式计算引擎对所述多个kafka分布式消息队列通道传出的数据进行测试验证,并输出数据测试报告。
97.弗林克(flink)是一款分布式的计算引擎,可以用来做批处理和流处理,并实时的产生数据的结果。
98.针对实时聚合逻辑需要多渠道流数据写入后进行聚合加工的场景,测试设备支持相同kafka分布式消息队列环境多topic同时写入的功能,在实时dw数仓分层建设中,通常使用不同topic将json数据存储于kafka分布式消息队列中,用以接受不同数据源流入的实时数据。
99.测试设备接收到测试结果后,将所述测试结果与测试用例的预期结果字段进行比较,进而输出数据测试报告。
100.在一个可选的实施方式中,所述在所述kafka分布式消息队列集群中通过flink分
布式计算引擎对所述多个kafka分布式消息队列通道传出的数据进行测试验证,并输出数据测试报告包括:
101.在所述kafka分布式消息队列集群中通过flink分布式计算引擎获取所述kafka分布式消息队列通道对应的预期结果及测试结果;
102.判断所述测试结果与对应的所述预期结果是否相同;
103.当所述测试结果与对应的所述预期结果相同时,输出测试成功的数据测试报告;
104.当所述测试结果与对应的所述预期结果不相同时,输出测试失败的数据测试报告。
105.本实施例中,为了确保生产环境下被测设备能够正常稳定的运行,在将被测设备正式投入运行之前,需要在测试环境中对被测设备的有效性进行严格的测试。因此,在采用测试用例进行测试数据的有效性测试时,需要每条测试用例都能通过,方可确定测试数据是有效的;否则,当有一条测试用例没有通过时,认为测试数据无效。
106.当一条测试用例对应的测试结果及预期结果相同时,会输出该条测试用例的第一测试结果以表明该条测试用例通过;当一条测试用例对应的测试结果及预期结果不相同时,会输出该条测试用例的第二测试结果以表明该条测试用例没有通过。当所有的测试用例都为第一测试结果时,即所有的测试用例都通过时,则最终输出测试成功的测试结果;当有至少一条测试用例为第二测试结果时,即至少有一条测试用例没有通过时,则最终输出测试失败的测试结果。
107.需要说明的是,每一条测试用例的测试结果都会单独保存并以日志的形式输出。
108.s15,响应于测试验证完成的指令,执行预设的恢复策略,并根据所述恢复策略进行下一轮的数据测试。
109.在一个可选的实施方式中,所述预设的恢复策略的配置过程包括:
110.获取flink分布式计算引擎的restore strategy参数;
111.将所述restore strategy参数配置为none。
112.由于实时加工工具会保留计算状态,持续对新增数据做累加的特性,业内常见的实时数据测试一般都是观察数据结果的持续递增,这样的测试结果是不确定的。而结果的不确定会给自动化测试带来麻烦,使得测试用例无法复用和重复执行。
113.上述可选的实施方式,通过对flink分布式计算引擎底层配置进行修改,将restore strategy恢复策略配置为none。每次测试用例执行完成后,将flink分布式计算引擎任务进行重启,重启后由于恢复策略置空,使得任务不再保留历史计算态,将对kafka分布式消息队列基于断点流入的最近数据进行加工,使得自动化测试用例可以循环执行。
114.本发明实施例所述的基于人工智能的数据测试方法,在接收到数据测试指令时,先从数据测试指令中获取多个业务数据,然后根据多个业务数据进行模拟,从而得到较多的测试数据,根据上一轮的数据测试报告部署当前轮的kafka分布式消息队列通道的数量,实现了kafka分布式消息队列通道的数量的自动化部署,提高了测试效率,采用滑动窗口控制多个kafka分布式消息队列通道,有效的保证了kafka分布式消息队列通道在同一时间将测试数据全部传入kafka分布式消息队列集群中,接着通过flink分布式计算引擎进行测试验证并输出数据测试报告,最后通过执行预设的恢复策略并根据恢复策略进行下一轮的数据测试,使得任务不再保留历史计算态,自动化测试用例可以循环执行,进一步提高了测试
效率。
115.实施例二
116.图2是本发明实施例二提供的基于人工智能的数据测试装置的结构图。
117.在一些实施例中,所述基于人工智能的数据测试装置20可以包括多个由计算机程序段所组成的功能模块。所述基于人工智能的数据测试装置20中的各个程序段的计算机程序可以存储于测试设备的存储器中,并由至少一个处理器所执行,以执行(详见图1描述)基于人工智能的数据测试的功能。
118.本实施例中,所述基于人工智能的数据测试装置20根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:获取模块201、生成模块202、部署模块203、测试模块204、恢复模块205及去除模块206。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
119.所述获取模块201,用于响应于接收到的数据测试指令,从所述数据测试指令中获取多个业务数据。
120.其中,所述数据测试指令可以由相关工作人员触发,如测试人员等,也可以由业务系统的用户,例如,业务人员触发,本发明不做任何限制。
121.大数据测试平台安装于测试设备中,测试设备侦测到数据测试指令后,对数据测试指令进行响应,从数据测试指令中获取业务数据,业务数据为需要进行测试的数据。
122.所述生成模块202,用于根据所述多个业务数据模拟生成多个测试数据。
123.为了更佳逼真的进行流式数据的测试,可以根据业务数据进行模拟,从而得到较多的测试数据。测试数据是指需要输入到测试设备中进行测试的数据。在进行流式数据测试时,输入到测试设备中的测试数据与真实场景中的业务数据的数据特征越温和,得到的测试结果就越准确。
124.在一个可选的实施方式中,所述生成模块202根据所述业务数据模拟生成测试数据包括:
125.获取每个业务数据的采集时间,并根据所述采集时间将所述多个业务数据进行分组,得到多组业务数据;
126.判断每组业务数据是否为平稳序列数据组;
127.对于为平稳序列数据组的业务数据,采用预设第一回归模型对所述业务数据进行回归拟合,得到对应组的测试数据;
128.对于不为平稳序列数据组的业务数据,采用预设第二回归模型对所述业务数据进行回归拟合,得到对应组的测试数据。
129.例如,银行系统,每天早7点之前和晚7点之后,系统负载较小,早7点到11点和下午2点到7点为高峰,负载较大,则可以将业务数据按照采集时间分为4组,即晚7点到第二天早7点为一组,早7点到早11点为一组;早11点到下午2点为一组,下午2点到下午7点为一组。
130.可以通过计算每组业务数据的标准差,并将标准差与预设标准差阈值进行比较,根据比较得到的结果来判断每组业务数据是否为平稳序列数据组。当某组业务数据的标准差小于预设标准差阈值,则认为该组业务数据为平稳序列数据组。当某组业务数据的标准差不小于预设标准差阈值,则认为该组业务数据不为平稳序列数据组。
131.其中,预设第一回归模型可以是自回归移动平均((autoregressive moving average,aram)模型,预设第二回归模型可以是自回归滑动平均(autoregressive integrated moving average,arima)模型。
132.在进行多组回归拟合之后,将所有组的测试数据组合在一起,得到测试数据集,测试数据集中包括多个测试数据。
133.上述可选的实施方式,针对每组业务数据是否为平稳序列数据组,采用不同的回归模型进行回归拟合,得到的测试数据与对应组的业务数据在数据特征上将会更相似,从而在基于测试数据进行测试时,得到的测试结果也会更准确。
134.所述部署模块203,用于根据上一轮的数据测试报告部署多个kafka分布式消息队列通道,并采用滑动窗口控制所述多个测试数据通过所述多个kafka分布式消息队列通道传入kafka分布式消息队列集群。
135.卡夫卡(kafka)是一个分布式消息队列,在应用间构建实时的数据流通道。
136.测试设备定期进行流式数据测试,在每轮数据测试时都会部署多个kafka分布式消息队列通道,从而将多个测试数据通过部署的多个kafka分布式消息队列通道传入kafka分布式消息队列集群中进行处理,并在每轮数据测试之后都会输出数据测试报告。
137.在当前轮进行数据测试时,根据上一轮的数据测试报告部署当前轮的多个kafka分布式消息队列通道,在下一轮进行数据测试时,根据当前轮的数据测试报告部署下一轮的多个kafka分布式消息队列通道。当所述当前轮为第二轮时,所述上一轮为第一轮,当所述当前轮为第三轮时,所述上一轮为第二轮,以此类推。本实施例将以当前轮的数据测试为例进行描述。
138.在一个可选的实施方式中,当所述当前轮为第一轮,即当前轮为首轮数据测试时,部署的多个kafka分布式消息队列通道的数量可以为根据经验预先配置的。
139.为了自动化的部署kafka分布式消息队列通道的数量,测试设备可以根据上一轮的数据测试报告部署当前轮进行数据测试的kafka分布式消息队列通道的数量,根据当前轮的数据测试报告部署下一轮进行数据测试的kafka分布式消息队列通道的数量。
140.在一个可选的实施方式中,所述部署模块203根据上一轮的数据测试报告部署多个kafka分布式消息队列通道包括:
141.获取所述上一轮的数据测试报告中的平均响应时间;
142.判断所述平均响应时间是否小于预设响应时间阈值;
143.当所述平均响应时间小于所述预设响应时间阈值时,在上一轮部署所述kafka分布式消息队列通道的数量的基础上增加预设第一数量;
144.当所述平均响应时间不小于所述预设响应时间阈值时,在上一轮部署所述kafka分布式消息队列通道的数量的基础上减少预设第二数量。
145.平均响应时间是指多个测试数据的响应时间的平均值,反映测试设备在上一轮的流式数据测试的过程中的整体服务效率。
146.当所述数据测试报告中的平均响应时间小于预设响应时间阈值,表明所述测试设备的服务能力没有到达瓶颈,可以在当前轮的数据测试过程中增加部署kafka分布式消息队列通道的数量。
147.当所述数据测试报告中的平均响应时间大于预设响应时间阈值,表明所述测试设
备的服务能力到达了瓶颈,可以在当前轮的数据测试过程中减少部署kafka分布式消息队列通道的数量。
148.其中,预设第一数量可以与预设第二数量相同,也可以不同。
149.上述可选的实施方式中,通过上一轮的数据测试报告来部署当前轮进行数据测试的kafka分布式消息队列通道的数量,实现了kafka分布式消息队列通道的数量的自动化部署,当上一轮的数据测试报告中的平均响应时间小于所述预设响应时间阈值,增加当前轮的kafka分布式消息队列通道的数量,提高了并行化测试的效率,充分利用了测试设备的资源,当上一轮的数据测试报告中的平均响应时间不小于所述预设响应时间阈值,减少当前轮的kafka分布式消息队列通道的数量,以减少并行化测试的数量,从而避免测试设备崩溃,降低了甚至无法执行数据测试。
150.在一个可选的实施方式中,所述部署模块203采用滑动窗口控制所述多个测试数据通过所述多个kafka分布式消息队列通道传入kafka分布式消息队列集群包括:
151.每隔预设时间片段获取每个所述kafka分布式消息队列通道传出所述测试数据的传出数量;
152.根据多个所述传出数量计算得到平均传出数量;
153.根据所述传出数量及所述平均传出数量计算得到对应所述kafka分布式消息队列通道的窗口调整参数;
154.根据所述窗口调整参数调整所述kafka分布式消息队列通道的滑动窗口的尺寸;
155.使用尺寸调整后的滑动窗口控制对应的所述kafka分布式消息队列通道将所述多个测试数据传入kafka分布式消息队列集群。
156.不同的kafka分布式消息队列通道在相同的时间片段内传入的测试数据的数量会有不同,为了有效的保证所有的kafka分布式消息队列通道能够在同一时间将测试数据全部传入kafka分布式消息队列集群中进行处理,则可以每隔预设时间获取每个kafka分布式消息队列通道传出测试数据的数量。传出的测试数据的数量越多,则表明对应的kafka分布式消息队列的传输速度越快,传输能力越强。传出的测试数据的数量越少,则表明对应的kafka分布式消息队列的传输速度越慢,传输能力越弱。
157.对于每个kafka分布式消息队列通道而言,将传出数量与平均传出数量的比值的倒数作为该kafka分布式消息队列通道的窗口调整参数。比值越小,则对应的窗口调整参数越大,使用窗口调整参数调整该kafka分布式消息队列通道的滑动窗口的尺寸后,该kafka分布式消息队列通道的滑动窗口越大,后续传输的测试数据的数量将会越多。比值越大,则对应的窗口调整参数越小,使用窗口调整参数调整该kafka分布式消息队列通道的滑动窗口的尺寸后,该kafka分布式消息队列通道的滑动窗口越小,后续传输的测试数据的数量将会越少。
158.上述可选的实施方式中,通过每隔预设时间片段获取每个所述kafka分布式消息队列通道传出所述测试数据的传出数量,并根据传出数量确定kafka分布式消息队列通道的窗口调整参数,从而根据窗口调整参数调整kafka分布式消息队列通道的滑动窗口的尺寸,使用尺寸调整后的滑动窗口控制对应的所述kafka分布式消息队列通道将所述多个测试数据传入kafka分布式消息队列集群,能够将测试数据的传输速率控制在同一水平,从而实现了测试数据的传输控制,有效的保证了多个测试数据在同一时间到达kafka分布式消
息队列集群中,避免有些测试数据先到达kafka分布式消息队列集群,有些测试数据后达到kafka分布式消息队列集群,从而导致kafka分布式消息队列集群要等待后达到的测试数据,浪费了测试时间。
159.所述测试模块204,用于在所述kafka分布式消息队列集群中通过flink分布式计算引擎对所述多个kafka分布式消息队列通道传出的数据进行测试验证,并输出数据测试报告。
160.弗林克(flink)是一款分布式的计算引擎,可以用来做批处理和流处理,并实时的产生数据的结果。
161.针对实时聚合逻辑需要多渠道流数据写入后进行聚合加工的场景,测试设备支持相同kafka分布式消息队列环境多topic同时写入的功能,在实时dw数仓分层建设中,通常使用不同topic将json数据存储于kafka分布式消息队列中,用以接受不同数据源流入的实时数据。
162.测试设备接收到测试结果后,将所述测试结果与测试用例的预期结果字段进行比较,进而输出数据测试报告。
163.在一个可选的实施方式中,所述测试模块204在所述kafka分布式消息队列集群中通过flink分布式计算引擎对所述多个kafka分布式消息队列通道传出的数据进行测试验证,并输出数据测试报告包括:
164.在所述kafka分布式消息队列集群中通过flink分布式计算引擎获取所述kafka分布式消息队列通道对应的预期结果及测试结果;
165.判断所述测试结果与对应的所述预期结果是否相同;
166.当所述测试结果与对应的所述预期结果相同时,输出测试成功的数据测试报告;
167.当所述测试结果与对应的所述预期结果不相同时,输出测试失败的数据测试报告。
168.本实施例中,为了确保生产环境下被测设备能够正常稳定的运行,在将被测设备正式投入运行之前,需要在测试环境中对被测设备的有效性进行严格的测试。因此,在采用测试用例进行测试数据的有效性测试时,需要每条测试用例都能通过,方可确定测试数据是有效的;否则,当有一条测试用例没有通过时,认为测试数据无效。
169.当一条测试用例对应的测试结果及预期结果相同时,会输出该条测试用例的第一测试结果以表明该条测试用例通过;当一条测试用例对应的测试结果及预期结果不相同时,会输出该条测试用例的第二测试结果以表明该条测试用例没有通过。当所有的测试用例都为第一测试结果时,即所有的测试用例都通过时,则最终输出测试成功的测试结果;当有至少一条测试用例为第二测试结果时,即至少有一条测试用例没有通过时,则最终输出测试失败的测试结果。
170.需要说明的是,每一条测试用例的测试结果都会单独保存并以日志的形式输出。
171.所述恢复模块205,用于响应于测试验证完成的指令,执行预设的恢复策略,并根据所述恢复策略进行下一轮的数据测试。
172.在一个可选的实施方式中,所述预设的恢复策略的配置过程包括:
173.获取flink分布式计算引擎的restore strategy参数;
174.将所述restore strategy参数配置为none。
175.由于实时加工工具会保留计算状态,持续对新增数据做累加的特性,业内常见的实时数据测试一般都是观察数据结果的持续递增,这样的测试结果是不确定的。而结果的不确定会给自动化测试带来麻烦,使得测试用例无法复用和重复执行。
176.上述可选的实施方式,通过对flink分布式计算引擎底层配置进行修改,将restore strategy恢复策略配置为none。每次测试用例执行完成后,将flink分布式计算引擎任务进行重启,重启后由于恢复策略置空,使得任务不再保留历史计算态,将对kafka分布式消息队列基于断点流入的最近数据进行加工,使得自动化测试用例可以循环执行。
177.在一个可选的实施方式中,所述去除模块206,用于在所述根据所述多个业务数据模拟生成多个测试数据之后,基于密度的聚类算法识别所述多个测试数据中的离散点并去除所述离散点。
178.基于密度的聚类算法(density-based spatial clustering of applications with noise,dbscan)能够有效的识别出噪声点并去除。
179.本发明实施例所述的基于人工智能的数据测试装置,在接收到数据测试指令时,先从数据测试指令中获取多个业务数据,然后根据多个业务数据进行模拟,从而得到较多的测试数据,根据上一轮的数据测试报告部署当前轮的kafka分布式消息队列通道的数量,实现了kafka分布式消息队列通道的数量的自动化部署,提高了测试效率,采用滑动窗口控制多个kafka分布式消息队列通道,有效的保证了kafka分布式消息队列通道在同一时间将测试数据全部传入kafka分布式消息队列集群中,接着通过flink分布式计算引擎进行测试验证并输出数据测试报告,最后通过执行预设的恢复策略并根据恢复策略进行下一轮的数据测试,使得任务不再保留历史计算态,自动化测试用例可以循环执行,进一步提高了测试效率。
180.实施例三
181.本实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述基于人工智能的数据测试方法实施例中的步骤,例如图1所示的s11-s15:
182.s11,响应于接收到的数据测试指令,从所述数据测试指令中获取多个业务数据;
183.s12,根据所述多个业务数据模拟生成多个测试数据;
184.s13,根据上一轮的数据测试报告部署多个kafka分布式消息队列通道,并采用滑动窗口控制所述多个测试数据通过所述多个kafka分布式消息队列通道传入kafka分布式消息队列集群;
185.s14,在所述kafka分布式消息队列集群中通过flink分布式计算引擎对所述多个kafka分布式消息队列通道传出的数据进行测试验证,并输出数据测试报告;
186.s15,响应于测试验证完成的指令,执行预设的恢复策略,并根据所述恢复策略进行下一轮的数据测试。
187.或者,该计算机程序被处理器执行时实现上述装置实施例中各模块/单元的功能,例如图2中的模块201-206:
188.所述获取模块201,用于响应于接收到的数据测试指令,从所述数据测试指令中获取多个业务数据;
189.所述生成模块202,用于根据所述多个业务数据模拟生成多个测试数据;
190.所述部署模块203,用于根据上一轮的数据测试报告部署多个kafka分布式消息队列通道,并采用滑动窗口控制所述多个测试数据通过所述多个kafka分布式消息队列通道传入kafka分布式消息队列集群;
191.所述测试模块204,用于在所述kafka分布式消息队列集群中通过flink分布式计算引擎对所述多个kafka分布式消息队列通道传出的数据进行测试验证,并输出数据测试报告;
192.所述恢复模块205,用于响应于测试验证完成的指令,执行预设的恢复策略,并根据所述恢复策略进行下一轮的数据测试。
193.该计算机程序被处理器执行时实现上述装置实施例中的去除模块206,具体请参见实施例二及其相关描述。
194.实施例四
195.参阅图3所示,为本发明实施例三提供的测试设备的结构示意图。在本发明较佳实施例中,所述测试设备3包括存储器31、至少一个处理器32、至少一条通信总线33及收发器34。
196.本领域技术人员应该了解,图3示出的测试设备的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述测试设备3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。
197.在一些实施例中,所述测试设备3是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。所述测试设备3还可包括客户设备,所述客户设备包括但不限于任何一种可与客户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、数码相机等。
198.需要说明的是,所述测试设备3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
199.在一些实施例中,所述存储器31中存储有计算机程序,所述计算机程序被所述至少一个处理器32执行时实现如所述的基于人工智能的数据测试方法中的全部或者部分步骤。所述存储器31包括只读存储器(read-only memory,rom)、可编程只读存储器(programmable read-only memory,prom)、可擦除可编程只读存储器(erasable programmable read-only memory,eprom)、一次可编程只读存储器(one-time programmable read-only memory,otprom)、电子擦除式可复写只读存储器(electrically-erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
200.进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
201.本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验
证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
202.在一些实施例中,所述至少一个处理器32是所述测试设备3的控制核心(control unit),利用各种接口和线路连接整个测试设备3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行测试设备3的各种功能和处理数据。例如,所述至少一个处理器32执行所述存储器中存储的计算机程序时实现本发明实施例中所述的基于人工智能的数据测试方法的全部或者部分步骤;或者实现基于人工智能的数据测试装置的全部或者部分功能。所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(central processing unit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。
203.在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。
204.尽管未示出,所述测试设备3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述测试设备3还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。
205.上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,测试设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分。
206.在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
207.所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
208.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
209.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。说明书中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并
不表示任何特定的顺序。
210.最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
再多了解一些

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

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

相关文献