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

基于动态解析的MES系统并发性能测试数据接收方法与流程

2023-01-17 13:24:36 来源:中国专利 TAG:

基于动态解析的mes系统并发性能测试数据接收方法
技术领域
1.本发明涉及mes系统并发性能测试领域,具体涉及基于动态解析的mes系统并发性能测试数据接收方法。


背景技术:

2.mes系统是智能制造的核心组织部分,包含了各类计划、看板等。系统数据动态实时变化,实时管理性强。mes系统中,采用各商用性能软件或自开发性能测试软件并发性能测试时,对于录制的socket协议脚本,每个请求都会发送和接收一定长度的数据流,即messend buffer和mesrecvbuffer,这两个buffer后面都会有个数字,这个数字表示buffer的长度,是一个固定的值。当做性能测试时,执行每次请求后响应的数据很多时候是不定长的,如果mesrecvbuffer的长度与响应的数据长度不一致,运行测试程序就会报错。如mes系统中,做性能测试涉及到日期时间的数据,对于前端一般都是以人们熟悉的格式来展示,如2018/8/21 11:18:46这样容易被人们接受。但是后台代码中一般会将它转为double类型的数据进行处理,也方便存储,如43333.47136574074,这样每次请求后收到服务器的响应数据会由于日期时间的double类型的数据长度动态变化,从而会导致mesrecvbuffer的长度与响应的数据长度不一致,脚本会报错误。所以需要自定义函数,动态解析并接收不定长响应数据流,因此,亟需一种切实可行的方法获取动态解析长度。


技术实现要素:

3.针对现有技术的不足,本发明提供了基于动态解析的mes系统并发性能测试数据接收方法,通过对响应数据中动态字节数据的处理,完成数据流的全部接收。
4.为实现上述目的,本发明提供了基于动态解析的mes系统并发性能测试数据接收方法,包括:s1、采集响应数据的动态变化字节数据;s2、获取所述动态变化字节数据中的特殊变化字节;s3、利用所述特殊变化字节得到特殊变化字节类型值;s4、利用所述动态变化字节数据得到指定接收字节;s5、利用所述特殊变化字节类型值与指定接收字节进行完整接收处理。
5.优选的,所述采集响应数据的动态变化字节数据包括:获取响应数据的响应数据包标识;根据所述响应数据包标识得到响应数据包容量;获取所述响应数据包容量得到动态变化字节数据。
6.进一步的,获取所述响应数据包容量得到动态变化字节数据包括:根据所述响应数据包容量获取所述响应数据包容量中动态变化的字节值作为动态变化字节数据。
7.优选的,获取所述动态变化字节数据中的特殊变化字节包括:
判断所述动态变化字节数据中是否只存在动态变化字节数据包长度,若是,则利用所述动态变化字节数据作为特殊变化字节,否则,获取所述动态变化字节数据中动态变化字节数据包长度作为特殊变化字节。
8.优选的,利用所述特殊变化字节得到特殊变化字节类型值包括:利用所述特殊变化字节基于内存处理方法得到特殊变化字节类型值。
9.进一步的,利用所述特殊变化字节基于内存处理方法得到特殊变化字节类型值包括:利用所述特殊变化字节基于整型地址得到特殊变化字节类型值。
10.优选的,利用所述动态变化字节数据得到指定接收字节包括:根据所述动态变化字节数据基于字符串的缓存区间转换得到动态变化字节数据对应的指定接收字节。
11.优选的,利用所述特殊变化字节类型值与指定接收字节进行完整接收处理包括:根据所述特殊变化字节类型值获取动态变化字节数据包长度对应的响应数据流;利用所述动态变化字节数据包长度对应的响应数据流根据所述指定接收字节进行完整接收处理。
12.与最接近的现有技术相比,本发明具有的有益效果:通过采集并处理数据包中的动态字节部分,简化了完整数据接收的步骤,提高了全部数据接收的成功率,通过动态解析长度,接收不定长响应数据流,将脚本继续能正常运行下去,从而让性能测试得以进行。
附图说明
13.图1是本发明提供的基于动态解析的mes系统并发性能测试数据接收方法的流程图;图2是本发明提供的一种基于动态解析的mes系统并发性能测试实际应用方法的流程图。
具体实施方式
14.下面结合附图对本发明的具体实施方式作进一步的详细说明。
15.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
16.实施例1:本发明提供了基于动态解析的mes系统并发性能测试数据接收方法,如图1所示,包括:s1、采集响应数据的动态变化字节数据;s2、获取所述动态变化字节数据中的特殊变化字节;s3、利用所述特殊变化字节得到特殊变化字节类型值;s4、利用所述动态变化字节数据得到指定接收字节;
s5、利用所述特殊变化字节类型值与指定接收字节进行完整接收处理。
17.s1具体包括:s1-1、获取响应数据的响应数据包标识;s1-2、根据所述响应数据包标识得到响应数据包容量;s1-3、获取所述响应数据包容量得到动态变化字节数据。
18.s1-3具体包括:s1-3-1、根据所述响应数据包容量获取所述响应数据包容量中动态变化的字节值作为动态变化字节数据。
19.s2具体包括:s2-1、判断所述动态变化字节数据中是否只存在动态变化字节数据包长度,若是,则利用所述动态变化字节数据作为特殊变化字节,否则,获取所述动态变化字节数据中动态变化字节数据包长度作为特殊变化字节。
20.s3具体包括:s3-1、利用所述特殊变化字节基于内存处理方法得到特殊变化字节类型值。
21.s3-1具体包括:s3-1-1、利用所述特殊变化字节基于整型地址得到特殊变化字节类型值。
22.s4具体包括:s4-1、根据所述动态变化字节数据基于字符串的缓存区间转换得到动态变化字节数据对应的指定接收字节。
23.s5具体包括:s5-1、根据所述特殊变化字节类型值获取动态变化字节数据包长度对应的响应数据流;s5-2、利用所述动态变化字节数据包长度对应的响应数据流根据所述指定接收字节进行完整接收处理。
24.实施例2:本发明提供了一种基于动态解析的mes系统并发性能测试实际应用方法,如图2所示,包括:步骤1:接收响应数据中动态变化的bytes:因为返回数据包recv中,数据包大小,比如下面数据包,包大小为1285,后面接收数据,会按照这个大小去接收,可能会随真实情况发生变化,如可能会随着数据库里的字段,如obj_id长度变化或者时间字符串长度变化,导致recv中数据包大小变化。本次举例已时间字符串长度会随时间变化而变化,所以recv数据包,包大小会变,每个数据包,开头会有数据包标识,如\xea 。后面4个字节为本次数据包大小。所以我们先接收响应数据中动态变化的bytes,代码mes_receive_ex("socket121", "buf641", "numberofbytestomesrecv =6", messlastarg);即1-6字节,包含了包头和包长度。
25.步骤2:提取其中变化的字节:因为我们接收了1-6字节,里面有包头标识和包长度,我们需要的是包长度,所以我们提取出3-6字节,代码userbufferptr = mes_get_received_buffer ("socket121", 2, 4, null);这样就提取到了3-6字节数据
步骤3:把数据按内存拷贝到另一个整型地址里,计算出数据类型值:即基于内存处理方法,所述内存处理方法包括:通过自定义函数,通过把数据按内存拷贝到另一个整型地址里,动态解析出数据长度 ,即把提取到的3-6字节数据拷贝到一个整型地址里,计算出数据类型的值代码“mesmemcpy(&numberofbytes,userbufferptr,4);”,这样就拿到了数据包的大小值,是整型数值numberofbytes。
26.步骤4:把格式化后的数据类型,存储到字符串的缓存区间里去,转为能够指定要接收的字节数,即为char类型代码:messprintf(numberofbytesstring, "numberofbytestomesrecv =%d", numberofbytes);步骤5:按照响应流长度,接收剩下的数据流:按照指定要接收的字节数,即包体大小numberofbytesstring,接收后面的数据流代码:mes_receive_ex("socket121", "buf641", numberofbytesstring, messlastarg);完成接收处理。
27.本实施例中,一种基于动态解析的mes系统并发性能测试实际应用方法,方法流程的代码如下:mes_receive_ex("socket121","buf641","numberofbytestomesrecv=6", esslastarg);//接收响应数据中的前6个bytes userbufferptr = mes_get_received_buffer ("socket121", 2, 4, null);//取3-6位上的字节转换成int类型 mesmemcpy(&numberofbytes,userbufferptr,4);mes_output_message("输出数据流长度
‑‑‑‑
%d",numberofbytes);//把数据按内存拷贝到另一个整型地址里,计算出数据流长度 messprintf(numberofbytesstring,"numberofbytestomesrecv=%d",numberofbytes);mes_output_message("%s",numberofbytesstring);//把格式化后的数据类型,存储到字符串的缓存区间里去mes_receive_ex("socket121", "buf641", numberofbytesstring, messlastarg);//按照响应流长度,接收剩下的数据流。
28.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
29.本发明是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序
指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
30.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
31.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
32.最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献