1.本发明涉及计算机领域,具体而言,涉及一种数据交互的测试方法和装置。
背景技术:
2.目前,在游戏开发过程中,程序职能分为服务端开发和客户端开发两项工作,其中,服务端负责玩家数据处理并提供游戏服务,客户端负责将玩家数据呈现在图形用户界面上。为了确保服务端实现的游戏服务和客户端实现的界面逻辑准确对接,需要对服务端和客户端进行联调,对客户端和服务端之间的数据交互进行测试。
3.但是,相关技术中用于数据交互测试的测试数据较少,而且大多是人工编写,导致测试效率和准确率较低。针对上述的问题,目前尚未提出有效的解决方案。
技术实现要素:
4.本发明至少部分实施例提供了一种数据交互的测试方法和装置,以至少解决相关技术中数据交互的测试方法的测试效率和准确率较低的技术问题。
5.根据本发明其中一实施例,提供了一种数据交互的测试方法,包括:采集真实交互数据集,其中,真实交互数据集用于表征多个测试设备之间真实发生的交互数据;确定多个测试设备之间的传输协议结构;基于传输协议结构,从真实交互数据集中获取测试数据;基于测试数据对多个测试设备之间的数据交互进行测试。
6.可选地,基于传输协议结构,从真实交互数据集中获取测试数据包括:确定真实交互数据集中每个真实交互数据的数据结构;将每个真实交互数据的数据结构与传输协议结构进行匹配,得到匹配成功的交互数据;确定匹配成功的交互数据为测试数据。
7.可选地,将每个真实交互数据的数据结构与传输协议结构进行匹配,得到匹配成功的交互数据包括:将每个真实交互数据的数据结构转换为树状结构,得到每个真实交互数据对应的第一格式树;将传输协议结构转换为树状结构,得到第二格式树;基于每个真实交互数据对应的第一格式树和第二格式树之间的距离,得到匹配成功的交互数据。
8.可选地,基于每个真实交互数据对应的第一格式树和第二格式树之间的距离,得到匹配成功的交互数据包括:基于每个真实交互数据对应的第一格式树与第二格式树之间的距离,确定每个真实交互数据对应的差异程度,其中,差异程度用于表征每个真实交互数据的数据结构与传输协议结构的差异程度;按照差异程度从小到大的顺序对每个真实交互数据进行排序,得到排序后的交互数据;确定排序后的交互数据中排名靠前的多个交互数据为匹配成功的交互数据。
9.可选地,基于测试数据对多个测试设备之间的数据交互进行测试包括:接收多个测试设备中的目标设备发送的请求数据包;获取测试数据中与请求数据包匹配的目标测试数据;基于目标测试数据,生成请求数据包对应的响应数据包;发送响应数据包至目标设备。
10.可选地,获取测试数据中与请求数据包匹配的目标测试数据包括:确定请求数据
包对应的第一协议结构;获取测试数据中的目标测试数据,其中,目标测试数据的数据结构与第一协议结构匹配成功。
11.可选地,基于目标测试数据,生成请求数据包对应的响应数据包包括:基于目标设备对应的协议表,确定响应数据包对应的第二协议结构;按照第二协议结构对目标测试数据进行封装,生成响应数据包。
12.可选地,在基于传输协议结构,从真实交互数据集中获取测试数据之后,该方法还包括:输出测试数据;接收测试数据对应的反馈结果,其中,反馈结果用于表征对测试数据进行修改所得到的结果;基于测试数据和反馈结果,对多个测试设备之间的数据交互进行测试。
13.根据本发明其中一实施例,还提供了一种数据交互的测试装置,包括:采集模块,用于采集真实交互数据集,其中,真实交互数据集用于表征多个测试设备之间真实发送的交互数据;确定模块,用于确定多个测试设备之间的传输协议结构;获取模块,用于基于传输协议结构,从真实交互数据集中获取测试数据;测试模块,用于基于测试数据对多个测试设备之间的数据交互进行测试。
14.可选地,获取模块包括:结构确定单元,用于确定真实交互数据集中每个真实交互数据的数据结构;匹配单元,用于将每个真实交互数据的数据结构与传输协议结构进行匹配,得到匹配成功的交互数据;数据确定单元,用于确定匹配成功的交互数据为测试数据。
15.可选地,匹配单元包括:第一转换子单元,用于将每个真实交互数据的数据结构转换为树状结构,得到每个真实交互数据对应的第一格式树;第二转换子单元,用于将传输协议结构转换为树状结构,得到第二格式树;匹配子单元,用于基于每个真实交互数据对应的第一格式树和第二格式树之间的距离,得到匹配成功的交互数据。
16.可选地,匹配子单元还用于:基于每个真实交互数据对应的第一格式树与第二格式树之间的距离,确定每个真实交互数据对应的差异程度,其中,差异程度用于表征每个真实交互数据的数据结构与传输协议结构的差异程度按照差异程度从小到大的顺序对每个真实交互数据进行排序,得到排序后的交互数据;确定排序后的交互数据中排名靠前的多个交互数据为匹配成功的交互数据。
17.可选地,测试模块包括:接收单元,用于接收多个测试设备中的目标设备发送的请求数据包;获取单元,用于获取测试数据中与请求数据包匹配的目标测试数据;生成单元,用于基于目标测试数据,生成请求数据包对应的响应数据包;发送单元,用于发送响应数据包至目标设备。
18.可选地,获取单元包括:第一确定子单元,用于确定请求数据包对应的第一协议结构;获取子单元,用于获取测试数据中的目标测试数据,其中,目标测试数据的数据结构与第一协议结构匹配成功。
19.可选地,生成单元包括:第二确定子单元,用于基于目标设备对应的协议表,确定响应数据包对应的第二协议结构;生成子单元,用于按照第二协议结构对目标测试数据进行封装,生成响应数据包。
20.可选地,该装置还包括:输出模块,用于输出测试数据;接收模块,用于接收测试数据对应的反馈结果,其中,反馈结果用于表征对测试数据进行修改所得到的结果;测试模块还用于基于测试数据和反馈结果,对多个测试设备之间的数据交互进行测试。
21.根据本发明其中一实施例,还提供了一种非易失性存储介质,该非易失性存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任一项中的数据交互的测试方法。
22.根据本发明其中一实施例,还提供了一种电子装置,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项中的数据交互的测试方法。
23.在本发明至少部分实施例中,可以采集真实交互数据集,并在确定多个测试设备之间的传输协议结构之后,基于传输协议结构从真实交互数据集中获取数据构建测试数据,进一步可以利用从真实数据集中获取的数据进行数据交互的测试过程,实现多个测试设备之间数据交互的测试目的。容易注意到的是,由于测试数据是从真实交互数据集中自动获取的,不仅无需人工编写测试数据,而且可以获取更加全面和真实的测试数据,尽可能在自检和测试中遇到线上问题,从而达到了提高测试效率和准确率,降低人力成本的技术效果,进而解决了相关技术中数据交互的测试方法的测试效率和准确率较低的技术问题。
附图说明
24.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
25.图1是本发明实施例的一种数据交互的测试方法的移动终端的硬件结构框图;
26.图2是根据本发明其中一实施例的数据交互的测试方法的流程图;
27.图3a是根据本发明其中一实施例的客户端发给服务端的数据的格式的树状结构的示意图;
28.图3b是根据本发明其中一实施例的服务端发给客户端的数据的格式的树状结构的示意图;
29.图4是根据本发明其中一实施例的可选的数据交互的测试方法的流程图;
30.图5是根据本发明其中一实施例的数据交互的测试装置的结构框图。
具体实施方式
31.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
32.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
device,简称为hid)。例如:键盘和鼠标、游戏手柄、其他专用游戏控制器(如:方向盘、鱼竿、跳舞毯、遥控器等)。部分人体学接口设备除了提供输入功能之外,还可以提供输出功能,例如:游戏手柄的力反馈与震动、控制器的音频输出等。
40.显示设备110可以例如平视显示器(hud)、触摸屏式的液晶显示器(lcd)和触摸显示器(也被称为“触摸屏”或“触摸显示屏”)。该液晶显示器可使得用户能够与移动终端的用户界面进行交互。在一些实施例中,上述移动终端具有图形用户界面(gui),用户可以通过触摸触敏表面上的手指接触和/或手势来与gui进行人机交互,此处的人机交互功能可选的包括如下交互:创建网页、绘图、文字处理、制作电子文档、游戏、视频会议、即时通信、收发电子邮件、通话界面、播放数字视频、播放数字音乐和/或网络浏览等、用于执行上述人机交互功能的可执行指令被配置/存储在一个或多个处理器可执行的计算机程序产品或可读存储介质中。
41.在一种可能的实施方式中,本发明实施例提供了一种数据交互的测试方法。图2是根据本发明其中一实施例的数据交互的测试方法的流程图,如图2所示,该方法包括如下步骤:
42.步骤s202,采集真实交互数据集,其中,真实交互数据集用于表征多个测试设备之间真实发生的交互数据。
43.上述步骤中的多个测试设备可以是指真实环境中会发生数据交互,且需要对数据交互过程进行联调,一般数据交互多在两个或两个以上设备之间进行,因此,上述步骤中的多个测试设备可以是指两个或两个以上测试设备。在真实环境中,需要进行联调的设备种类很多,多个测试设备的类型可以相同也可以不同,可以是客户端,也可以是服务器,而且在不同的测试场景中,不同测试设备实现的功能也往往不同,例如,以游戏开发场景为例,上述的多个测试设备分别可以是游戏服务端和游戏客户端。
44.上述步骤中的交互数据可以是真实环境中多个测试设备之间进行数据交互的具体数据,在不同应用场景中,交互数据的具体类型不同,例如,仍以游戏开发场景为例,上述的交互数据可以是针对常规的游戏逻辑的数据,例如,针对游戏登录,交易,组队离队等动作,相应的交互数据可以包含玩家账号,玩家名字,物品编号,队伍人数等;交互数据也可以是针对不同游戏玩法的数据,例如,针对一个打气球小游戏,相应的交互数据可以包含游戏得分,游戏时间,游戏次数等;交互数据还可以是针对系统消息的数据,例如,针对系统发送的活动奖励,相应的交互数据可以包含道具编号,金钱,数量等。
45.为了确保联调工作更加贴近真实环境,避免人工编写测试数据带来的各种问题,在本发明实施例中,可以在真实环境中多个测试设备进行数据交互的时候,对真实发生的交互数据进行收集,并存储在数据库中,以方便后续对多个测试设备进行联调。例如,仍以游戏开发场景为例,可以在服务端作为正式服为客户端提供游戏服务的情况下,下载并收集服务端和客户端的交互数据,构建真实交互数据集。
46.步骤s204,确定多个测试设备之间的传输协议结构。
47.上述步骤中的传输协议结构可以是多个测试设备进行联调时,实现数据交互所使用的协议结构。多个测试设备的联调工作往往涉及不同功能的测试,而且针对不同功能往往指定了不同的协议结构进行数据交互,为了确保联调工作更加接近真实环境,在不同的测试场景中,可以根据实际测试需要确定相应的传输协议结构。
48.在一种可选的实施例中,多个测试设备在进行数据交互之前会对传输协议进行协商定,每个测试设备可以在协议表中存储已经商定好的通信协议,此处的协议表可以是通信协议的描述表,多个测试设备在进行数据交互时会按照该表执行。例如,仍以游戏开发场景为例进行说明,协议表以如下表1所示:
49.表1
50.协议编号数据格式返回的协议编号99001login:{uid:string,password:string}12345
51.此处的协议编号和数据格式可以是接收到的交互数据所采用的协议结构对应的编号和相应的结构,返回的协议编号可以是针对接收到的数据,需要返回数据所采用的协议格式。
52.步骤s206,基于传输协议结构,从真实交互数据集中获取测试数据。
53.在一种可选的实施例中,不同传输协议结构应用的交互数据不同,因此,可以基于传输协议结构,从采集到的真实交互数据集中获取相同协议结构的交互数据,作为测试数据。例如,以上表1所示的协议表为例,可以基于返回的协议编号从真实交互数据集中获取测试数据。
54.步骤s208,基于测试数据对多个测试设备之间的数据交互进行测试。
55.在一种可选的实施例中,在从真实交互数据集中获取测试数据之后,可以基于测试数据进行具体测试,也即,直接基于测试数据构建交互数据并实现数据交互,进一步根据不同测试设备是否反馈预期数据来确定相应的测试结果。
56.采用本发明上述实施例,可以采集真实交互数据集,并在确定多个测试设备之间的传输协议结构之后,基于传输协议结构从真实交互数据集中获取数据构建测试数据,进一步可以利用从真实数据集中获取的数据进行数据交互的测试过程,实现多个测试设备之间数据交互的测试目的。容易注意到的是,由于测试数据是从真实交互数据集中自动获取的,不仅无需人工编写测试数据,而且可以获取更加全面和真实的测试数据,尽可能在自检和测试中遇到线上问题,从而达到了提高测试效率和准确率,降低人力成本的技术效果,进而解决了相关技术中数据交互的测试方法的测试效率和准确率较低的技术问题。
57.可选地,基于传输协议结构,从真实交互数据集中获取测试数据包括:确定真实交互数据集中每个真实交互数据的数据结构;将每个真实交互数据的数据结构与传输协议结构进行匹配,得到匹配成功的交互数据;确定匹配成功的交互数据为测试数据。
58.真实交互数据集中包含有大量交互数据,不同交互数据的协议结构不同,为了能够获取到更加准确的测试数据,可以在确定出传输协议结构之后,可以通过协议结构匹配的方式,从真实交互数据集中获取到最终用于数据交互测试的测试数据。此处的匹配可以是指协议格式相同,或者协议格式相似度大于一定的阈值。
59.在一种可选的实施例中,为了达到快速匹配的目的,可以预先针对真实交互数据集中不同的交互数据,确定其采用的协议结构对应的编号,然后按照协议编码对不同数据进行存储,但是,该方案需要对预先对真实交互数据集中的大量数据进行分析处理并重新存储。在另一种可选的实施例中,为了避免对真实交互数据集进行重新存储,可以针对每个真实交互数据的数据格式,构建不同的树状结构,称为格式树,传输协议结构同样可以构建树状结构,在此基础上,可以通过树编辑距离算法计算出不同树状结构之间的距离,进而根
据距离确定匹配成功的交互数据。
60.可选地,将每个真实交互数据的数据结构与传输协议结构进行匹配,得到匹配成功的交互数据包括:将每个真实交互数据的数据结构转换为树状结构,得到每个真实交互数据对应的第一格式树;将传输协议结构转换为树状结构,得到第二格式树;基于每个真实交互数据对应的第一格式树和第二格式树之间的距离,得到匹配成功的交互数据。
61.在采集到真实交互数据集合之后,可以对真实交互数据进行分析,根据数据结构进行统计,得到不同数据结构的交互数据,然后可以将不同的数据结构转换为格式树,例如,以登录操作的数据结构为例,该数据结构以login关键字开头,包含子关键字账号密码:password,角色id:uid,相应的格式树变现为login关键字下面连接着名为uid和password的两个节点。
62.对于第一格式树和第二格式树,可以通过相关技术中的树编辑距离算法计算出两个树之间的差异,也即,得到第一格式树和第二格式树之间的距离,距离越近表示差异越小。在一种可选的实施例中,可以从所有的第一格式树中筛选出距离最小的5%的第二格式树,并将筛选出的第二格式树对应的真实交互数据作为匹配成功的交互数据。
63.通过上述方案,可以通过将真实交互数据的数据结构和传输协议结构转换为格式树,并基于格式树之间的距离确定匹配成功的交互数据,达到提高数据匹配效率,减少人工成本的效果。
64.可选地,基于每个真实交互数据对应的第一格式树和第二格式树之间的距离,得到匹配成功的交互数据包括:基于每个真实交互数据对应的第一格式树与第二格式树之间的距离,确定每个真实交互数据对应的差异程度,其中,差异程度用于表征每个真实交互数据的数据结构与传输协议结构的差异程度;按照差异程度从小到大的顺序对每个真实交互数据进行排序,得到排序后的交互数据;确定排序后的交互数据中排名靠前的多个交互数据为匹配成功的交互数据。
65.上述步骤中的排名靠前的多个交互数据的数量可以根据实际需要进行确定,例如,可以是所有真实交互数据的总数量的5%,但不仅限于此。
66.在一种可选的实施例中,在通过树编辑距离算法计算出两个格式树之间的距离之后,可以基于该距离确定两个格式树之间的差异程度,其中,距离越小,表明差异程度越低;距离越大,表明差异程度越高。进一步地,可以按照差异程度从小到大的顺序进行排序,然后筛选出排名靠前的多个交互数据作为匹配成功的交互数据,也即,筛选出差异程度最小的多个交互数据作为匹配成功的交互数据,然后利用这些数据作为测试数据进行测试。
67.例如,仍以游戏开发场景为例进行说明,服务端和客户端制定协议,包括客户端发送给服务端的c2s(client-to-server,客户端至服务端)和服务端发送给客户端的s2c(server-to-client,服务端至客户端)协议,分别下表2和表3所示,其中,表2为c2s协议,表3为s2c协议:
68.表2
[0069][0070]
表3
[0071][0072]
上述协议内容解释如下:
[0073]
99001表示:客户端发给服务端的数据的格式,采用树状结构表示如图3a所示;
[0074]
77001表示:服务端发送给客户端的数据的格式,采用树状结构表示如图3b所示。
[0075]
通过上述方案,通过格式树之间的距离确定差异程度,并筛选出差异程度最小的多个交互数据作为测试数据,达到提高测试数据确定准确度的效果。
[0076]
可选地,基于测试数据对多个测试设备之间的数据交互进行测试包括:接收多个测试设备中的目标设备发送的请求数据包;获取测试数据中与请求数据包匹配的目标测试数据;基于目标测试数据,生成请求数据包对应的响应数据包;发送响应数据包至目标设备。
[0077]
为了降低多个测试设备之间的耦合程度,使得多个测试设备可以独立进行开发和自检,提高团队工作任务的饱和度,减少团队中人员配比不成比例而带来的时间上的协调问题,在一种可选的实施例中,可以预先构建一个自动调用的服务,该服务的原理是拦截任
意一个测试设备(即上述的目标设备)发送的数据,然后根据该数据的协议编号,在该测试设备对应的协议表中查找相应的回复协议编号,然后基于该回复协议编号从测试数据中提取出相应的目标测试数据,最后直接在本地程序中返回基于目标测试数据生成的响应数据包,模拟多个测试设备之间的数据交互过程。
[0078]
例如,仍以游戏开发场景为例进行说明,假设目标设备为客户端,一个数据交互的测试过程是:客户端发送a协议的数据,然后服务端返回b协议的数据。可以在客户端本地构建一个虚拟服务,客户端发送a协议的数据时,可以先发送到虚拟服务中,虚拟服务收到a协议的数据之后,可以根据协议编号查询协议表,确定需要返回b协议的数据,因此,可以根据真实交互数据构建b协议的数据,并直接返回给客户端,无需将a协议的数据发送给服务端,并等待服务端返回b协议的数据。
[0079]
可选地,获取测试数据中与请求数据包匹配的目标测试数据包括:确定请求数据包对应的第一协议结构;获取测试数据中的目标测试数据,其中,目标测试数据的数据结构与第一协议结构匹配成功。
[0080]
在一种可选的实施例中,可以通过对请求数据包进行解析,确定该请求数据包对应的第一协议结构,进而确定相应的协议编号,进一步通过查询协议表可以确定需要返回的数据的第二协议结构,并从测试数据中筛选出符合该协议结构的目标测试数据。
[0081]
通过上述方案,通过确定请求数据包对应的第一协议结构,来进行目标测试数据的筛选,达到了提高目标测试数据的筛选效率和筛选准确度的效果。
[0082]
可选地,基于目标测试数据,生成请求数据包对应的响应数据包包括:基于目标设备对应的协议表,确定响应数据包对应的第二协议结构;按照第二协议结构对目标测试数据进行封装,生成响应数据包。
[0083]
上述步骤中的协议表可以是如表1至表3所示的协议表,但不仅限于此,可以存储多个测试设备进行数据交互时采用的所有通信协议。
[0084]
在一种可选的实施例中,可以通过查询如上述表1至表3所示的协议表,确定出需要返回的响应数据包对应的第二协议结构,并按照该协议结构对筛选出的目标测试数据进行封装,得到最终的响应数据包,并返回给目标设备。
[0085]
通过上述方案,通过协议表确定第二协议结构,并利用第二协议结构进行数据封装,可以降低联调带来的不确定性,避免协议数据的随意修改,并生成更加符合真实情况的响应数据包,达到了提高响应数据包的准确度的效果。
[0086]
可选地,在基于传输协议结构,从真实交互数据集中获取测试数据之后,该方法还包括:输出测试数据;接收测试数据对应的反馈结果,其中,反馈结果用于表征对测试数据进行修改所得到的结果;基于测试数据和反馈结果,对多个测试设备之间的数据交互进行测试。
[0087]
在一种可选的实施例中,为了确保测试数据的覆盖更加全面,筛选出的测试数据可以输出给测试用户进行查看,由测试用户根据实际需要进行自行编辑,得到反馈结果,进一步可以基于未修改的测试数据和已修改的反馈结果进行测试。
[0088]
例如,仍以游戏开发场景为例进行说明,对于登录操作的协议,相应的测试数据如下所示:
[0089][0090]
测试用户可以对上述数据进行确认和修改。
[0091]
下面结合图4,仍以游戏开发场景为例对本发明一种优选的实施例进行详细说明,如图4所示,具体流程如下:下载正式服的真实交互数据至数据库;根据数据结构对数据库中存储的数据统计整理,得到不同数据结构的数据;解析服务端和客户端的协议表,根据制定的协议结构来,从数据库中筛选出相同和相似结构的数据作为测试数据;在开始测试之后,当服务端或客户端发出协议数据时,协议调用服务可以对协议数据进行连接,根据发出的协议在协议表中查找到对应的回调协议,然后提取到这个回调协议的测试数据,再直接返回回调协议数据来模拟客户端或服务端的通信,从而脱离对客户端或服务端对对方的依赖。
[0092]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0093]
在本实施例中还提供了一种数据交互的测试装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“单元”、“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0094]
图5是根据本发明其中一实施例的数据交互的测试装置的结构框图,如图5所示,该装置包括:
[0095]
采集模块52,用于采集真实交互数据集,其中,真实交互数据集用于表征多个测试设备之间真实发送的交互数据。
[0096]
确定模块54,用于确定多个测试设备之间的传输协议结构。
[0097]
获取模块56,用于基于传输协议结构,从真实交互数据集中获取测试数据。
[0098]
测试模块58,用于基于测试数据对多个测试设备之间的数据交互进行测试。
[0099]
可选地,获取模块包括:结构确定单元,用于确定真实交互数据集中每个真实交互数据的数据结构;匹配单元,用于将每个真实交互数据的数据结构与传输协议结构进行匹配,得到匹配成功的交互数据;数据确定单元,用于确定匹配成功的交互数据为测试数据。
[0100]
可选地,匹配单元包括:第一转换子单元,用于将每个真实交互数据的数据结构转
换为树状结构,得到每个真实交互数据对应的第一格式树;第二转换子单元,用于将传输协议结构转换为树状结构,得到第二格式树;匹配子单元,用于基于每个真实交互数据对应的第一格式树和第二格式树之间的距离,得到匹配成功的交互数据。
[0101]
可选地,匹配子单元还用于:基于每个真实交互数据对应的第一格式树与第二格式树之间的距离,确定每个真实交互数据对应的差异程度,其中,差异程度用于表征每个真实交互数据的数据结构与传输协议结构的差异程度按照差异程度从小到大的顺序对每个真实交互数据进行排序,得到排序后的交互数据;确定排序后的交互数据中排名靠前的多个交互数据为匹配成功的交互数据。
[0102]
可选地,测试模块包括:接收单元,用于接收多个测试设备中的目标设备发送的请求数据包;获取单元,用于获取测试数据中与请求数据包匹配的目标测试数据;生成单元,用于基于目标测试数据,生成请求数据包对应的响应数据包;发送单元,用于发送响应数据包至目标设备。
[0103]
可选地,获取单元包括:第一确定子单元,用于确定请求数据包对应的第一协议结构;获取子单元,用于获取测试数据中的目标测试数据,其中,目标测试数据的数据结构与第一协议结构匹配成功。
[0104]
可选地,生成单元包括:第二确定子单元,用于基于目标设备对应的协议表,确定响应数据包对应的第二协议结构;生成子单元,用于按照第二协议结构对目标测试数据进行封装,生成响应数据包。
[0105]
可选地,该装置还包括:输出模块,用于输出测试数据;接收模块,用于接收测试数据对应的反馈结果,其中,反馈结果用于表征对测试数据进行修改所得到的结果;测试模块还用于基于测试数据和反馈结果,对多个测试设备之间的数据交互进行测试。
[0106]
需要说明的是,上述各个模块、单元、子单元是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块、单元、子单元均位于同一处理器中;或者,上述各个模块、单元、子单元以任意组合的形式分别位于不同的处理器中。
[0107]
本发明的实施例还提供了一种非易失性存储介质,该非易失性存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0108]
可选地,在本实施例中,上述非易失性存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0109]
s1,采集真实交互数据集,其中,真实交互数据集用于表征多个测试设备之间真实发生的交互数据;
[0110]
s2,确定多个测试设备之间的传输协议结构;
[0111]
s3,基于传输协议结构,从真实交互数据集中获取测试数据;
[0112]
s4,基于测试数据对多个测试设备之间的数据交互进行测试。
[0113]
可选地,在本实施例中,上述非易失性存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
[0114]
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0115]
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0116]
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0117]
s1,采集真实交互数据集,其中,真实交互数据集用于表征多个测试设备之间真实发生的交互数据;
[0118]
s2,确定多个测试设备之间的传输协议结构;
[0119]
s3,基于传输协议结构,从真实交互数据集中获取测试数据;
[0120]
s4,基于测试数据对多个测试设备之间的数据交互进行测试。
[0121]
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0122]
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0123]
在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0124]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0125]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0126]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0127]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
技术特征:
1.一种数据交互的测试方法,其特征在于,包括:采集真实交互数据集,其中,所述真实交互数据集用于表征多个测试设备之间真实发生的交互数据;确定所述多个测试设备之间的传输协议结构;基于所述传输协议结构,从所述真实交互数据集中获取测试数据;基于所述测试数据对所述多个测试设备之间的数据交互进行测试。2.根据权利要求1所述的方法,其特征在于,基于所述传输协议结构,从所述真实交互数据集中获取所述测试数据包括:确定所述真实交互数据集中每个真实交互数据的数据结构;将所述每个真实交互数据的数据结构与所述传输协议结构进行匹配,得到匹配成功的交互数据;确定所述匹配成功的交互数据为所述测试数据。3.根据权利要求2所述的方法,其特征在于,将所述每个真实交互数据的数据结构与所述传输协议结构进行匹配,得到所述匹配成功的交互数据包括:将所述每个真实交互数据的数据结构转换为树状结构,得到所述每个真实交互数据对应的第一格式树;将所述传输协议结构转换为树状结构,得到第二格式树;基于所述每个真实交互数据对应的第一格式树和所述第二格式树之间的距离,得到所述匹配成功的交互数据。4.根据权利要求3所述的方法,其特征在于,基于所述每个真实交互数据对应的第一格式树和所述第二格式树之间的距离,得到所述匹配成功的交互数据包括:基于所述每个真实交互数据对应的第一格式树与所述第二格式树之间的距离,确定所述每个真实交互数据对应的差异程度,其中,所述差异程度用于表征所述每个真实交互数据的数据结构与所述传输协议结构的差异程度按照所述差异程度从小到大的顺序对所述每个真实交互数据进行排序,得到排序后的交互数据;确定所述排序后的交互数据中排名靠前的多个交互数据为所述匹配成功的交互数据。5.根据权利要求1所述的方法,其特征在于,基于所述测试数据对所述多个测试设备之间的数据交互进行测试包括:接收所述多个测试设备中的目标设备发送的请求数据包;获取所述测试数据中与所述请求数据包匹配的目标测试数据;基于所述目标测试数据,生成所述请求数据包对应的响应数据包;发送所述响应数据包至所述目标设备。6.根据权利要求5所述的方法,其特征在于,获取所述测试数据中与所述请求数据包匹配的所述目标测试数据包括:确定所述请求数据包对应的第一协议结构;获取所述测试数据中的所述目标测试数据,其中,所述目标测试数据的数据结构与所述第一协议结构匹配成功。7.根据权利要求5所述的方法,其特征在于,基于所述目标测试数据,生成所述请求数
据包对应的响应数据包包括:基于所述目标设备对应的协议表,确定所述响应数据包对应的第二协议结构;按照所述第二协议结构对所述目标测试数据进行封装,生成所述响应数据包。8.根据权利要求1至7中任意一项所述的方法,其特征在于,在基于所述传输协议结构,从所述真实交互数据集中获取所述测试数据之后,所述方法还包括:输出所述测试数据;接收所述测试数据对应的反馈结果,其中,所述反馈结果用于表征对所述测试数据进行修改所得到的结果;基于所述测试数据和所述反馈结果,对所述多个测试设备之间的数据交互进行测试。9.一种数据交互的测试装置,其特征在于,包括:采集模块,用于采集真实交互数据集,其中,所述真实交互数据集用于表征多个测试设备之间真实发送的交互数据;确定模块,用于确定所述多个测试设备之间的传输协议结构;获取模块,用于基于所述传输协议结构,从所述真实交互数据集中获取测试数据;测试模块,用于基于所述测试数据对所述多个测试设备之间的数据交互进行测试。10.一种非易失性存储介质,其特征在于,所述非易失性存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至8任一项中所述的数据交互的测试方法。11.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至8任一项中所述的数据交互的测试方法。
技术总结
本发明公开了一种数据交互的测试方法和装置。该方法包括:采集真实交互数据集,其中,真实交互数据集用于表征多个测试设备之间真实发生的交互数据;确定多个测试设备之间的传输协议结构;基于传输协议结构,从真实交互数据集中获取测试数据;基于测试数据对多个测试设备之间的数据交互进行测试。本发明解决了相关技术中数据交互的测试方法的测试效率和准确率较低的技术问题。确率较低的技术问题。确率较低的技术问题。
技术研发人员:陈灼康
受保护的技术使用者:网易(杭州)网络有限公司
技术研发日:2022.02.16
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-11944.html