CN107704375A - 一种录制和回放网络端口上行数据的系统和方法 - Google Patents
一种录制和回放网络端口上行数据的系统和方法 Download PDFInfo
- Publication number
- CN107704375A CN107704375A CN201610645237.4A CN201610645237A CN107704375A CN 107704375 A CN107704375 A CN 107704375A CN 201610645237 A CN201610645237 A CN 201610645237A CN 107704375 A CN107704375 A CN 107704375A
- Authority
- CN
- China
- Prior art keywords
- event
- data
- file
- recorded
- manager
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明属于计算机技术领域,具体涉及一种录制和回放网络端口上行数据的系统和方法。该系统包括录制模块和回放模块,所述录制模块加载于待测软件内部,供待测软件加载调用,记录端口的上行网络事件和通信数据,保存成本地文件;所述回放模块通过加载和解析录制模块录制的文件,按照记录的相对时间和链路信息,适时触发网络事件,数据发送。本发明不仅丰富了服务器软件问题排查的手段,解决了压力测试过程中压力模拟的难度,极大降低了测试难度和成本。
Description
技术领域
本发明属于计算机技术领域,具体涉及一种录制和回放网络端口上行数据的系统和方法。
背景技术
通信软件是一种用于通信交流的互动式软件,随着通信技术的迅速发展,各种通讯软件层出不穷,通讯软件具有文本编辑、图像处理、聊天、播放音视频等各种功能,为了保证用户能够正常使用软件,常常需要对软件进行测试。
参考专利文献CN103853651公开了一种软件测试方法和装置,包括:接收用户打开软件测试操控页面的指令;展示软件测试操控页面,使得用户在软件测试操控页面上对待测试软件进行测试;获取用户对待测试软件进行测试时,生成的软件测试信息和软件体验信息。参考专利文献CN104023352公开了一种面向移动通信平台的即时通信软件侧信道测试系统,包括移动通信设备模拟平台、侧信道信息采集平台、通用PC平台和通信功能验证平台,通用PC平台上设置有侧信道分析平台,测试即时通信软件加密执行结果的正确性、对采集到的功耗曲线进行分析,形成侧信道分析结果。
在软件行业,高并发通信软件因其并发特性,不论调试还是测试都较困难。一是模拟真实环境的高并发场景成本高,难度大;另一是无法模拟还原某一特定时段的网络环境,导致问题排查困难,效率低下,无法进行可靠的回归测试,验证问题的解决效果。
发明内容
针对现有技术存在的不足之处,本发明提出了一种录制和回放网络端口上行数据的系统和方法,该系统通监听网络端口的上行通信事件和通信数据进行本地实时录制保存。回放时,可通过保存的数据模拟该端口上行网络事件和通信数据,实现对录制时段网络环境接近真实的还原。可用于高并发环境下的通信服务软件的调试,也可用于模拟循环使用的高并发压力测试环境,能有效降低开发成本和测试成本。
本发明采用如下技术方案:
一种录制和回放网络端口上行数据的系统,它包括录制模块和回放模块,所述录制模块加载于待测软件内部,供待测软件加载调用,记录端口的上行网络事件和通信数据,保存成本地文件;所述回放模块通过加载和解析录制模块录制的文件,按照记录的相对时间和链路信息,适时触发网络事件,数据发送。
进一步的,录制模块包括录制接口、第一事件管理器和数据管理器,录制接口用于记录监上行网络事件类型及其基本属性,并将待测软件传入的事件参数封装成事件对象并打上时间戳放入数据管理器;数据管理器用于将事件对象的通信数据写入数据文件并返回偏移地址;第一事件管理器用于保存所有待录制的上行网络事件,将事件对象的属性进行序列化,顺序存储到事件文件中。
更进一步的,事件对象的属性包括事件类型、相对时间、IP地址、端口、数据长度和偏移地址。
更进一步的,第一事件管理器保存上行网络事件具体包括以下步骤,
S141,判断当前事件是否为开始录制的首个事件,如果是则将该事件的时间戳赋值作为起始相对时间戳,否则转到步骤S142;
S142,将当前事件的时间戳减去起始相对时间戳,转换计算成以秒为单位的相对时间;
S143,将事件对象序列化为二进制数据,并按相对时间顺序写入事件文件。
进一步的,回放模块包括事件加载器、定时器、第二事件管理器和事件模拟器,事件加载器用于加载录制过程中生成的事件文件和数据文件,并接受定时器触发,对事件进行反序列化,生成事件对象,提交给第二事件管理器进行处理;第二事件管理器按照相对时间顺序管理事件对象,将事件对象投递到事件模拟器中进行事件模拟;定时器用于管理定时周期,以驱动事件加载器生成事件对象和第二事件管理器计算相对时间;事件模拟器将第二事件管理器提交的事件对象,以客户端IP端口为唯一标识,模拟跟待测软件网络端口的上行网络事件。
一种录制和回放网络端口上行数据的方法,包括以下步骤,
S1,录制模块加载于待测软件内部,供待测软件加载调用,记录端口的上行网络事件和通信数据,保存成本地文件;
S2,回放模块通过加载和解析录制模块录制的文件,按照记录的相对时间和链路信息,适时触发网络事件,数据发送。
进一步的,录制模块包括录制接口、第一事件管理器和数据管理器,录制过程步骤如下,
S11,在待测软件中加载录制模块,并启动监听网络端口,当有上行网络事件发生时,录制接口记录监听到的上行网络事件类型及其基本属性;
S12,录制接口将待测软件传入的事件参数封装成事件对象并打上时间戳后,放入数据管理器的待处理队列;
S13,数据管理器检测到有新的待处理事件后,从待处理队列中取出事件对象,判断事件对象的数据长度是否为零,如果是则将事件对象放入第一事件管理器的待处理队列,否则将数据写入数据文件,将返回的偏移地址保存到事件对象中并释放数据内容对应的内存,然后将事件对象放入第一事件管理器的待处理队列;
S14,第一事件管理器检测到有新的待处理事件后,从待处理队列中取出事件对象,将事件对象的属性进行序列化,顺序存储到事件文件中。
更进一步的,步骤14中事件对象的属性包括事件类型、相对时间、IP地址、端口、数据长度和偏移地址。
更进一步的,步骤S14具体包括以下步骤,
S141,判断当前事件是否为开始录制的首个事件,如果是则将该事件的时间戳赋值作为起始相对时间戳,否则转到步骤S142;
S142,将当前事件的时间戳减去起始相对时间戳,转换计算成以秒为单位的相对时间;
S143,将事件对象序列化为二进制数据,并按相对时间顺序写入事件文件。
进一步的,回放模块包括事件加载器、定时器、第二事件管理器和事件模拟器,回访过程具体步骤如下,
S21,用户选择待回放事件文件和数据文件路径,配置待测服务器IP和端口、数据加载周期T等控制参数,启动回放,触发事件加载器开始预加载事件对象;
S22,事件加载器根据文件路径,打开事件文件和数据文件,先预先加载前T秒内的所有事件对象,顺序放到第二事件管理器的待处理队列中;
S23,启动定时器,定时器按照周期为T1秒进行循环计时,每间隔T1秒发送一次第二事件管理器的定时通知,每隔T/2秒,触发一次事件加载器的定时通知;
S24,事件加载器每次收到定时通知,则启动加载流程,加载事件对象放到第二事件管理器的待处理队列中;
S25,第二事件管理器本地管理一个计数值t,初始值为0,每次收到定时通知,则对t累加计数1,之后按照队列顺序依次比较第二事件管理器待处理队列中的事件对象的相对时间与t的大小,直到遇到相对时间大于t的事件对象,停止比较,取出队列中所有相对时间小于等于t的事件对象顺序放入事件模拟器的待处理队列中;
S26,事件模拟器检测到有新的待处理事件后,按照顺序依次取出事件对象进行处理,判断事件类型,根据不同的事件类型对事件进行不同的处理。
更进一步的,步骤S22具体包括以下步骤,
S221,从事件文件中读取数据,进行反序列化,生成事件对象;
S222,根据反序列化生成事件对象的数据长度和偏移地址,从数据文件对应的偏移地址开始读取对应数据长度的数据到内存,并将内存地址或者引用赋值给事件对象的数据内容属性;
S223,判断事件对象的相对时间是否大于T,如果是则预加载结束,转到步骤S224,否则转到步骤S221,;
S224,将最后一个加载的事件对象的相对时间Tlast保存在事件加载器中,作为下次加载的相对起始时间。
更进一步的,步骤S24具体包括以下步骤,
S241,从事件文件反序列化下一个事件对象;
S242,根据反序列化生成的对象的数据长度和偏移地址,从数据文件对应的偏移地址开始读取对应数据长度的数据到内存,并将内存地址或者引用赋值给事件对象的数据内容属性;
S243,判断当前事件对象的相对时间是否大于Tlast+T/2,如果是,则结束加载转到步骤S244,否则转到步骤S241;
S244,将最后一个加载的事件对象的相对时间Tlast保存在事件加载器中,作为下次加载的相对起始时间,并将已加载的所有事件对象顺序放到第二事件管理器的待处理队列中。
本发明提出了一种录制和回放网络端口上行数据的系统和方法,该系统通过对待测软件网络监听端口的上行通信事件和通信数据进行实时录制保存,并在需要时通过回放模块进行加载重现,模拟出录制期间的网络环境。可作为服务器软件问题排查的手段,也可作为压力测试的主要工具。不仅丰富了服务器软件问题排查的手段,解决了压力测试过程中压力模拟的难度,极大降低了测试难度和成本。此外,本发明还支持分布是架构部署,可以理论上无限扩展,模拟更大的并发网络环境,适用更多的开发调试和测试场合,方便灵活。
附图说明
图1是一种录制和回放网络端口上行数据的系统结构图;
图2是录制模块的结构示意图;
图3是回放模块的结构示意图;
图4是事件对象处理完成整体示意图;
图5是分布式部署架构图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。图中的组件并未按比例绘制,而类似的组件符号通常用来表示类似的组件。
现结合附图和具体实施方式对本发明进一步说明。
参阅图1所示,为本发明提出一种录制和回放网络端口上行数据的系统结构图,它包括录制模块和回放模块,录制模块加载于待测软件内部,可以以任何合适的任何形式存在(如,源代码、JAR、DLL等),其作用就是提供录制方法,供待测软件加载调用,记录端口的上行网络事件和通信数据,保存成本地文件;回放模块通过加载和解析录制模块录制的文件,按照记录的相对时间和链路信息,适时触发网络事件,数据发送,实现对录制环境的模拟重现。
参阅图2所示,为录制模块的结构示意图,录制模块包括录制接口、第一事件管理器和数据管理器,录制接口用于记录监听端口上行网络事件类型及其基本属性,并将待测软件传入的事件参数封装成事件对象并打上时间戳放入数据管理器;数据管理器用于将事件对象的通信数据写入数据文件并返回偏移地址;第一事件管理器用于保存所有待录制的上行网络事件,将事件对象的属性进行序列化,顺序存储到事件文件中。录制动作由待测软件捕获到上行网络事件或者通信数据时触发;第一事件管理器在录制事件时,将事件对应的通信数据通过数据管理器写入数据文件并返回偏移地址,最后将偏移地址和网络事件基础属性写入事件文件中,依此循环直至录制结束。
参阅图3所示,为回放模块的结构示意图,回放模块包括事件加载器、定时器、第二事件管理器和事件模拟器,事件加载器用于加载录制过程中生成的事件文件和数据文件,并接受定时器触发,对事件进行反序列化,生成事件对象,提交给第二事件管理器进行处理;第二事件管理器按照相对时间顺序管理事件对象,将事件对象投递到事件模拟器中进行事件模拟;定时器用于管理定时周期,以驱动事件加载器生成事件对象和第二事件管理器计算相对时间;事件模拟器将第二事件管理器提交的事件对象,以客户端IP端口为唯一标识,模拟跟待测软件网络端口的上行网络事件,最终实现回放。回放过程中要先打开待测软件,同时监听网络端口,然后打开回放模块进程,开始进行回放。整个过程直到事件文件中的所有事件均加载完成且通过事件模拟器模拟完毕,或者回放模块进程被关闭时结束回放过程。
本发明还提出一种录制和回放网络端口上行数据的方法,它包括以下步骤,
S1,录制模块加载于待测软件内部,供待测软件加载调用,记录端口的上行网络事件和通信数据,保存成本地文件。
录制模块包括录制接口、第一事件管理器和数据管理器,录制过程步骤如下,
S11,在待测软件中加载录制模块(可以使源代码、JAR包、DLL等多种形式),并启动监听网络端口,当有上行网络事件发生时,待测软件将网络端口监听到的上行事件类型(包括链接事件、数据接收事件、断链事件、数据接收等)及其基本属性通过调用录制模块提供的接口进行记录。录制接口名称可自定义,接口参数包括但不仅限于“事件类型、客户端IP、客户端端口、数据和数据长度”等。一种可行的录制接口参考定义为:
RecNetEvent(Type,IP,PORT,DATA,DATALEN)。
S12,待测软件调用录制接口后,录制接口将待测软件传入的事件参数封装成事件对象并打上时间戳后,放入数据管理器的待处理队列后立即返回。录制接口和数据管理器之间的交互是异步的,避免待测软件调用录制接口时阻塞等待,影响待测软件自身的功能和性能。事件对象的属性包括但不仅限于下表1中的内容:
表1 事件对象的属性
属性 | 描述 |
事件类型 | 对事件类型的编码,用于区分不同类型的事件 |
时间戳 | 事件发生时的当前系统时间 |
IP | 事件对应的客户端IP |
端口 | 事件对应的客户端端口 |
数据长度 | 事件数据长度 |
偏移地址 | 事件数据在数据文件中的偏移地址,未写入数据文件时为0 |
数据内容 | 事件数据在内存中的位置,可以使指针或者对象引用 |
S13,数据管理器检测到有新的待处理事件后,从待处理队列中取出事件对象,判断事件对应的数据长度(录制接口传入的数据长度参数)。如果数据长度为0,则将事件对象放入第一事件管理器的待处理队列后返回;如果长度不为0,则将数据写入数据文件,将返回的偏移地址保存到事件对象中并释放数据内容对应的内存,然后则将事件对象放入第一事件管理器的待处理队列后返回。数据管理器与第一事件管理器的交互也是异步的。数据文件没有特定的格式,只是按照先后将数据内容顺序写入文件,并返回写入的偏移地址。
S14,第一事件管理器检测到有新的待处理事件后,从待处理队列中取出事件对象,将事件对象的属性进行序列化,顺序存储到事件文件中。事件的属性包含但不仅限与表1中的内容。事件文件以序列化的事件对象为单位保存事件数据,每个事件数据的长度和组成结构一致,所有事件属性均以不同长度的整数类型表示,其可行的序列化参考结构如下表2所示。
表2 序列化参考结构
对象属性 | 事件类型 | 相对时间 | IP地址 | 端口 | 数据长度 | 偏移地址 |
属性长度 | 1 Byte | 4 Byte | 4 Byte | 2 Byte | 4 Byte | 4 Byte |
其中,事件类型根据类型编码,以1字节整数表示;相对时间是事件相对与第一个事件的偏移时间间隔,以4字节整数表示,单位为秒;IP地址为客户端IP地址,以4字节整数表示;端口为客户端的端口,以2字节整数标识;数据长度为事件数据的长度,以4字节整数标识;偏移地址为事件数据存储在数据文件中的偏移地址,也以4字节整数表示,最大文件长度为4G。
第一事件管理器的每一个事件对象处理过程可进一步细分如下:
S141,判断当前事件是否为开始录制的首个事件,如果是则将该事件的时间戳赋值作为起始相对时间戳,否则转到步骤S142;
S142,将当前事件的时间戳减去起始相对时间戳,转换计算成以秒为单位的相对时间;
S143,按照表2所示事件序列化结构,将事件对象序列化为二进制数据,并按相对时间顺序写入事件文件。
参阅图4所示,为事件对象处理完成整体示意图。
S15,从录制开始到录制结束,持续上述步骤,直到待测程序关闭或者调用录制接口停止录制过程,录制模块完成清理工作后,完成一个录制周期。录制结束后生成的事件文件和数据文件,可直接通过回放模块进行回放。
S2,回放模块通过加载和解析录制模块录制的文件,按照记录的相对时间和链路信息,适时触发网络事件,数据发送。
回放模块包括事件加载器、定时器、第二事件管理器和事件模拟器,回访过程具体步骤如下,
S21,回放进程启动后,进行包括事件加载器、定时器、第二事件管理器、事件模拟器在内的初始化工作;同时弹出回放控制界面,让用户选择待回放事件文件和数据文件路径,配置待测服务器IP和端口、数据加载周期T等控制参数,启动回放,触发事件加载器开始预加载事件对象。
S22,事件加载器根据文件路径,打开事件文件和数据文件,先预先加载前T秒(可配置)内的所有事件对象,顺序放到第二事件管理器的待处理队列中。事件加载器预加载事件对象的过程如下:
S221,按照上表2定义序列化结构的数据长度从事件文件中读取对应长度的数据,并进行反序列化,生成事件对象,对象属性见上表2;
S222,根据反序列化生成事件对象的数据长度和偏移地址,从数据文件对应的偏移地址开始读取对应数据长度的数据到内存,并将内存地址或者引用赋值给事件对象的数据内容属性;
S223,判断事件对象的相对时间是否大于T,如果是则预加载结束,转到步骤S224,否则转到步骤S221,;
S224,将最后一个加载的事件对象的相对时间Tlast保存在事件加载器中,作为下次加载的相对起始时间。
S23,启动定时器,定时器按照周期为T1秒进行循环计时,每间隔T1秒发送一次第二事件管理器的定时通知,每隔T/2秒,触发一次事件加载器的定时通知。
S24,事件加载器每次收到定时通知,则启动加载流程,加载事件对象放到第二事件管理器的待处理队列中。该流程不同于步骤S22的预加载流程,具体流程步骤如下:
S241,从事件文件反序列化下一个事件对象;
S242,根据反序列化生成的对象的数据长度和偏移地址,从数据文件对应的偏移地址开始读取对应数据长度的数据到内存,并将内存地址或者引用赋值给事件对象的数据内容属性;
S243,判断当前事件对象的相对时间是否大于Tlast+T/2,如果是,则结束加载转到步骤S244,否则转到步骤S241;
S244,将最后一个加载的事件对象的相对时间Tlast保存在事件加载器中,作为下次加载的相对起始时间,并将已加载的所有事件对象顺序放到第二事件管理器的待处理队列中。
S25,第二事件管理器本地管理一个计数值t,初始值为0,每次收到定时通知,则对t累加计数1,之后按照队列顺序依次比较第二事件管理器待处理队列中的事件对象的相对时间与t的大小,直到遇到相对时间大于t的事件对象,停止比较,取出队列中所有相对时间小于等于t的事件对象顺序放入事件模拟器的待处理队列中。
S26,事件模拟器检测到有新的待处理事件后,按照顺序依次取出事件对象进行处理,判断事件类型,若为建链事件,则创建一条新的链路连接到待测服务器,并用事件属性中的IP和端口进行唯一标识;若为断开链接事件,则断开IP和端口对应的链路;若为发送数据事件,则向IP和端口的对应的链路发送事件数据;等等。依此类推,按照顺序依次处理待处理队列中事件对象。
S27,重复上述步骤S23至步骤S26,直至事件文件中的所有事件均加载完成且通过事件模拟器模拟完毕,或者回放模块进程被关闭时,回放过程结束。
单进程的回放能够模拟的并发链路有限,为了应对更大并发量的场景,除了进程部署外,本发明还支持以分布式架构进行部署,可以无限扩展和回放更大的并发压力下的网络端口上行数据。参阅图5所示,为分布式部署架构图,回放模块的事件模拟器可以单独出来成为独立进程进行分布式集群部署,独立出来的事件模拟器进程与第二事件管理器之间采用进程间通信的方式,采用基于IP端口的一致性哈希算法进行负载通信,保证统一客户端的事件投递到同一个事件模拟进程中进行处理,从而实现模拟压力的可扩展。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (12)
1.一种录制和回放网络端口上行数据的系统,其特征在于:它包括录制模块和回放模块,所述录制模块加载于待测软件内部,供待测软件加载调用,记录端口的上行网络事件和通信数据,保存成本地文件;所述回放模块通过加载和解析录制模块录制的文件,按照记录的相对时间和链路信息,适时触发网络事件,数据发送。
2.如权利要求1所述录制和回放网络端口上行数据的系统,其特征在于:所述录制模块包括录制接口、第一事件管理器和数据管理器,录制接口用于记录监上行网络事件类型及其基本属性,并将待测软件传入的事件参数封装成事件对象并打上时间戳放入数据管理器;数据管理器用于将事件对象的通信数据写入数据文件并返回偏移地址;第一事件管理器用于保存所有待录制的上行网络事件,将事件对象的属性进行序列化,顺序存储到事件文件中。
3.如权利要求2所述录制和回放网络端口上行数据的系统,其特征在于:所述事件对象的属性包括事件类型、相对时间、IP地址、端口、数据长度和偏移地址。
4.如权利要求3所述录制和回放网络端口上行数据的系统,其特征在于:所述第一事件管理器保存上行网络事件具体包括以下步骤,
S141,判断当前事件是否为开始录制的首个事件,如果是则将该事件的时间戳赋值作为起始相对时间戳,否则转到步骤S142;
S142,将当前事件的时间戳减去起始相对时间戳,转换计算成以秒为单位的相对时间;
S143,将事件对象序列化为二进制数据,并按相对时间顺序写入事件文件。
5.如权利要求3所述录制和回放网络端口上行数据的系统,其特征在于:所述回放模块包括事件加载器、定时器、第二事件管理器和事件模拟器,事件加载器用于加载录制过程中生成的事件文件和数据文件,并接受定时器触发,对事件进行反序列化,生成事件对象,提交给第二事件管理器进行处理;第二事件管理器按照相对时间顺序管理事件对象,将事件对象投递到事件模拟器中进行事件模拟;定时器用于管理定时周期,以驱动事件加载器生成事件对象和第二事件管理器计算相对时间;事件模拟器将第二事件管理器提交的事件对象,以客户端IP端口为唯一标识,模拟跟待测软件网络端口的上行网络事件。
6.一种录制和回放网络端口上行数据的方法,其特征在于:包括以下步骤,
S1,录制模块加载于待测软件内部,供待测软件加载调用,记录端口的上行网络事件和通信数据,保存成本地文件;
S2,回放模块通过加载和解析录制模块录制的文件,按照记录的相对时间和链路信息,适时触发网络事件,数据发送。
7.如权利要求6所述录制和回放网络端口上行数据的方法,其特征在于:所述录制模块包括录制接口、第一事件管理器和数据管理器,录制过程步骤如下,
S11,在待测软件中加载录制模块,并启动监听网络端口,当有上行网络事件发生时,录制接口记录监听到的上行网络事件类型及其基本属性;
S12,录制接口将待测软件传入的事件参数封装成事件对象并打上时间戳后,放入数据管理器的待处理队列;
S13,数据管理器检测到有新的待处理事件后,从待处理队列中取出事件对象,判断事件对象的数据长度是否为零,如果是则将事件对象放入第一事件管理器的待处理队列,否则将数据写入数据文件,将返回的偏移地址保存到事件对象中并释放数据内容对应的内存,然后将事件对象放入第一事件管理器的待处理队列;
S14,第一事件管理器检测到有新的待处理事件后,从待处理队列中取出事件对象,将事件对象的属性进行序列化,顺序存储到事件文件中。
8.如权利要求7所述录制和回放网络端口上行数据的方法,其特征在于:所述步骤14中事件对象的属性包括事件类型、相对时间、IP地址、端口、数据长度和偏移地址。
9.如权利要求8所述录制和回放网络端口上行数据的方法,其特征在于:所述步骤S14具体包括以下步骤,
S141,判断当前事件是否为开始录制的首个事件,如果是则将该事件的时间戳赋值作为起始相对时间戳,否则转到步骤S142;
S142,将当前事件的时间戳减去起始相对时间戳,转换计算成以秒为单位的相对时间;
S143,将事件对象序列化为二进制数据,并按相对时间顺序写入事件文件。
10.如权利要求8所述录制和回放网络端口上行数据的方法,其特征在于:
所述回放模块包括事件加载器、定时器、第二事件管理器和事件模拟器,回访过程具体步骤如下,
S21,用户选择待回放事件文件和数据文件路径,配置待测服务器IP和端口、数据加载周期T等控制参数,启动回放,触发事件加载器开始预加载事件对象;
S22,事件加载器根据文件路径,打开事件文件和数据文件,先预先加载前T秒内的所有事件对象,顺序放到第二事件管理器的待处理队列中;
S23,启动定时器,定时器按照周期为T1秒进行循环计时,每间隔T1秒发送一次第二事件管理器的定时通知,每隔T/2秒,触发一次事件加载器的定时通知;
S24,事件加载器每次收到定时通知,则启动加载流程,加载事件对象放到第二事件管理器的待处理队列中;
S25,第二事件管理器本地管理一个计数值t,初始值为0,每次收到定时通知,则对t累加计数1,之后按照队列顺序依次比较第二事件管理器待处理队列中的事件对象的相对时间与t的大小,直到遇到相对时间大于t的事件对象,停止比较,取出队列中所有相对时间小于等于t的事件对象顺序放入事件模拟器的待处理队列中;
S26,事件模拟器检测到有新的待处理事件后,按照顺序依次取出事件对象进行处理,判断事件类型,根据不同的事件类型对事件进行不同的处理。
11.如权利要求10所述录制和回放网络端口上行数据的方法,其特征在于:
所述步骤S22具体包括以下步骤,
S221,从事件文件中读取数据,进行反序列化,生成事件对象;
S222,根据反序列化生成事件对象的数据长度和偏移地址,从数据文件对应的偏移地址开始读取对应数据长度的数据到内存,并将内存地址或者引用赋值给事件对象的数据内容属性;
S223,判断事件对象的相对时间是否大于T,如果是则预加载结束,转到步骤S224,否则转到步骤S221,;
S224,将最后一个加载的事件对象的相对时间Tlast保存在事件加载器中,作为下次加载的相对起始时间。
12.如权利要求11所述录制和回放网络端口上行数据的方法,其特征在于:
所述步骤S24具体包括以下步骤,
S241,从事件文件反序列化下一个事件对象;
S242,根据反序列化生成的对象的数据长度和偏移地址,从数据文件对应的偏移地址开始读取对应数据长度的数据到内存,并将内存地址或者引用赋值给事件对象的数据内容属性;
S243,判断当前事件对象的相对时间是否大于Tlast+T/2,如果是,则结束加载转到步骤S244,否则转到步骤S241;
S244,将最后一个加载的事件对象的相对时间Tlast保存在事件加载器中,作为下次加载的相对起始时间,并将已加载的所有事件对象顺序放到第二事件管理器的待处理队列中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610645237.4A CN107704375A (zh) | 2016-08-09 | 2016-08-09 | 一种录制和回放网络端口上行数据的系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610645237.4A CN107704375A (zh) | 2016-08-09 | 2016-08-09 | 一种录制和回放网络端口上行数据的系统和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107704375A true CN107704375A (zh) | 2018-02-16 |
Family
ID=61168858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610645237.4A Pending CN107704375A (zh) | 2016-08-09 | 2016-08-09 | 一种录制和回放网络端口上行数据的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107704375A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110177076A (zh) * | 2019-04-16 | 2019-08-27 | 凯通科技股份有限公司 | 面向多协议多类型设备接入方法、电子设备及存储介质 |
CN111061631A (zh) * | 2019-11-29 | 2020-04-24 | 珠海金山网络游戏科技有限公司 | 移动终端游戏回测方法及系统 |
CN111694757A (zh) * | 2020-08-04 | 2020-09-22 | 北京字节跳动网络技术有限公司 | 应用程序的测试方法、装置、电子设备及计算机可读存储介质 |
CN112491571A (zh) * | 2019-09-11 | 2021-03-12 | 比亚迪股份有限公司 | 网络数据调试方法和装置,存储介质 |
CN112881052A (zh) * | 2021-01-14 | 2021-06-01 | 深圳市杉川机器人有限公司 | 构建移动机器人的工作场景的方法及装置 |
CN112953810A (zh) * | 2019-12-10 | 2021-06-11 | 北京沃东天骏信息技术有限公司 | 一种网络请求的处理方法和装置 |
CN113595829A (zh) * | 2021-07-30 | 2021-11-02 | 北京达佳互联信息技术有限公司 | 压力测试方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060136187A1 (en) * | 1999-12-15 | 2006-06-22 | Microsoft Corporation | Server recording and client playback of computer network characteristics |
CN1997000A (zh) * | 2005-12-31 | 2007-07-11 | 腾讯科技(深圳)有限公司 | 一种基于虚拟主机的web服务器及用户获取访问数据的方法 |
CN104079435A (zh) * | 2014-07-10 | 2014-10-01 | 南威软件股份有限公司 | 一种以太网流量再生方法 |
CN104751868A (zh) * | 2013-12-31 | 2015-07-01 | 海能达通信股份有限公司 | 语音录制方法、通话录音回放方法以及相关装置和系统 |
CN104915542A (zh) * | 2015-05-08 | 2015-09-16 | 珠海金山网络游戏科技有限公司 | 一种基于数据同步的网游录像与回放的方法 |
CN105099833A (zh) * | 2015-09-14 | 2015-11-25 | 北京华青融天技术有限责任公司 | 一种业务测试方法、装置以及系统 |
-
2016
- 2016-08-09 CN CN201610645237.4A patent/CN107704375A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060136187A1 (en) * | 1999-12-15 | 2006-06-22 | Microsoft Corporation | Server recording and client playback of computer network characteristics |
CN1997000A (zh) * | 2005-12-31 | 2007-07-11 | 腾讯科技(深圳)有限公司 | 一种基于虚拟主机的web服务器及用户获取访问数据的方法 |
CN104751868A (zh) * | 2013-12-31 | 2015-07-01 | 海能达通信股份有限公司 | 语音录制方法、通话录音回放方法以及相关装置和系统 |
CN104079435A (zh) * | 2014-07-10 | 2014-10-01 | 南威软件股份有限公司 | 一种以太网流量再生方法 |
CN104915542A (zh) * | 2015-05-08 | 2015-09-16 | 珠海金山网络游戏科技有限公司 | 一种基于数据同步的网游录像与回放的方法 |
CN105099833A (zh) * | 2015-09-14 | 2015-11-25 | 北京华青融天技术有限责任公司 | 一种业务测试方法、装置以及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110177076A (zh) * | 2019-04-16 | 2019-08-27 | 凯通科技股份有限公司 | 面向多协议多类型设备接入方法、电子设备及存储介质 |
CN112491571A (zh) * | 2019-09-11 | 2021-03-12 | 比亚迪股份有限公司 | 网络数据调试方法和装置,存储介质 |
CN112491571B (zh) * | 2019-09-11 | 2022-03-18 | 比亚迪股份有限公司 | 网络数据调试方法和装置,存储介质 |
CN111061631A (zh) * | 2019-11-29 | 2020-04-24 | 珠海金山网络游戏科技有限公司 | 移动终端游戏回测方法及系统 |
CN112953810A (zh) * | 2019-12-10 | 2021-06-11 | 北京沃东天骏信息技术有限公司 | 一种网络请求的处理方法和装置 |
CN111694757A (zh) * | 2020-08-04 | 2020-09-22 | 北京字节跳动网络技术有限公司 | 应用程序的测试方法、装置、电子设备及计算机可读存储介质 |
CN112881052A (zh) * | 2021-01-14 | 2021-06-01 | 深圳市杉川机器人有限公司 | 构建移动机器人的工作场景的方法及装置 |
CN112881052B (zh) * | 2021-01-14 | 2024-02-20 | 深圳市杉川机器人有限公司 | 构建移动机器人的工作场景的方法及装置 |
CN113595829A (zh) * | 2021-07-30 | 2021-11-02 | 北京达佳互联信息技术有限公司 | 压力测试方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107704375A (zh) | 一种录制和回放网络端口上行数据的系统和方法 | |
CN104615477B (zh) | 分析fpga的方法和系统 | |
CN100562033C (zh) | 一种程控交换机的自动化测试工具和方法 | |
US8984490B1 (en) | Modeling and testing of interactions between components of a software system | |
CN112187585B (zh) | 网络协议测试方法及装置 | |
CN108268364A (zh) | 异常事件回放方法、装置及设备 | |
CN109388556B (zh) | 一种测试过程的分析方法及装置 | |
CN1893641A (zh) | 展示操作状态数据的数字媒体播放器 | |
US20070220481A1 (en) | Limited source code regeneration based on model modification | |
CN111881014B (zh) | 一种系统测试方法、装置、存储介质及电子设备 | |
CN102014016A (zh) | 一种网络协议缺陷测试系统及方法 | |
CN109558317A (zh) | 测试用例的处理方法及装置 | |
US20160321036A1 (en) | Dynamically monitoring code execution activity to identify and manage inactive code | |
CN108717391A (zh) | 测试过程的监控装置、方法及计算机可读存储介质 | |
CN112115038A (zh) | 一种应用测试方法、装置和存储介质 | |
CN102073590B (zh) | 一种基于事件模拟的用户界面测试方法及装置 | |
CN115221071A (zh) | 芯片验证方法、装置、电子设备和存储介质 | |
CN102025555B (zh) | Ip多媒体子系统性能测试的方法 | |
CN107423090A (zh) | 一种Flash播放器异常日志管理方法及系统 | |
CN114095032A (zh) | 基于Flink和RVR的数据流压缩方法、边缘计算系统及存储介质 | |
CN101146147B (zh) | 一种单板信号的辅助测试系统及方法 | |
JP2007249949A (ja) | フォーマットする試験結果の文脈を提供する変数値を格納する装置 | |
CN107544894A (zh) | 一种日志处理的方法、装置及服务器 | |
CN115002011A (zh) | 流量双向测试方法、装置、电子设备及存储介质 | |
CN101510170A (zh) | 一种对MIDlet生命周期事件记录回放的测试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180216 |