CN111010316B - 一种流量回放方法、装置及系统 - Google Patents

一种流量回放方法、装置及系统 Download PDF

Info

Publication number
CN111010316B
CN111010316B CN201911304311.6A CN201911304311A CN111010316B CN 111010316 B CN111010316 B CN 111010316B CN 201911304311 A CN201911304311 A CN 201911304311A CN 111010316 B CN111010316 B CN 111010316B
Authority
CN
China
Prior art keywords
response message
request
terminal
message
playback
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.)
Active
Application number
CN201911304311.6A
Other languages
English (en)
Other versions
CN111010316A (zh
Inventor
张镜昌
阮伙星
严江
张扬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Vipshop Information Technology Co ltd
Original Assignee
Guangzhou Vipshop Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Vipshop Information Technology Co ltd filed Critical Guangzhou Vipshop Information Technology Co ltd
Priority to CN201911304311.6A priority Critical patent/CN111010316B/zh
Publication of CN111010316A publication Critical patent/CN111010316A/zh
Application granted granted Critical
Publication of CN111010316B publication Critical patent/CN111010316B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

Abstract

本发明公开一种流量回放方法、装置及系统,方法包括:终端将生产环境的流量数据中的请求报文和响应报文导入测试数据库中;从测试数据库中读取目标请求报文,基于目标请求报文模拟生成第一请求,并将预期响应报文写入redis中;将第一请求发送给开放平台网关,以使开放平台网关将第一请求转换成第二请求后发送给回放服务器;在回放服务器基于第二请求从redis中获取对应的响应报文,并基于获取到的响应报文生成第二响应报文,以及将第二响应报文返回给开放平台网关后,从开放平台网关接收对基于第二响应报文进行转换得到的第一响应报文;对第一响应报文进行解析出目标请求报文的响应报文,将响应报文与测试数据库中的预期响应报文进行对比,输出对比结果。

Description

一种流量回放方法、装置及系统
技术领域
本发明涉及系统测试技术领域,尤其涉及一种流量回放方法、装置及系统。
背景技术
随时网络技术的不断发展,测试是保障网络设备可靠性和稳定性的关键环节。流量回放方法是一种将真实网络流量存储记录并进行还原回放的网络测试方法,通过将捕获得到的真实网络流量还原回放到测试网络,可以再现实际的网络场景,达到考察被测系统在实际网络环境中的功能和性能的目的。流量回放方法是一种能对各类网络/安全设备进行客观、全面、系统测试的重要方法。
现有的流量回放方案有以下的缺点:
1、不支持将生产的流量导在测试环境回放;
2、不支持增删改接口的流量回放;
3、接口模拟器需要及时维护涉及接口的jar包定义文件,才能完成响应报文的模拟,而由于线上流量数据复杂,系统繁多,需要维护依赖系统的sdk和版本号,导致测试工作量巨大。
发明内容
为了解决上述背景技术中提到的至少一个问题,本发明提供了一种流量回放方法、装置及系统。
根据本发明的一个实施例,提供了一种流量回放方法,所述方法包括:
终端获取生产环境的流量数据,并将所述流量数据中的请求报文和响应报文导入测试数据库中;
所述终端在检测到回放指令时,从所述测试数据库中读取目标请求报文,基于所述目标请求报文模拟生成基于第一协议的第一请求,并将所述目标请求报文的预期响应报文写入redis中;
所述终端将所述第一请求发送给开放平台网关,以使所述开放平台网关将所述第一请求转换成基于第二协议的第二请求后发送给回放服务器;
在所述回放服务器基于所述第二请求从所述redis中获取对应的响应报文,并基于获取到的所述响应报文生成基于第二协议的第二响应报文,以及将所述第二响应报文返回给所述开放平台网关后,所述终端从所述开放平台网关接收对基于所述第二响应报文进行转换得到的基于第一协议的第一响应报文;
所述终端对所述第一响应报文进行解析出所述目标请求报文的响应报文,将所述响应报文与所述测试数据库中的预期响应报文进行对比,输出对比结果。
进一步地,所述终端获取生产环境的流量数据,包括:
所述终端在检测到查询指令时,从流量数据库中查询对应的流量数据并导出为流量文件,其中,所述流量数据库中保存的流量数据是由所述开放平台网关采集并通过Kafka消息队列下发的。
进一步地,所述流量文件为CSV文件,所述将所述流量数据中的请求报文和响应报文导入测试数据库中,包括:
所述终端将所述CSV文件转换为包括请求报文和预期响应报文的Excel文件,并将所述Excel文件上传到所述测试数据库中。
根据本发明的一个实施例,提供了一种流量回放方法,所述方法包括:
在开放平台网关接收到终端发送的基于第一协议的第一请求,并将所述第一请求转换成基于第二协议的第二请求发送给回放服务器后,所述回放服务器基于所述第二请求从redis中获取对应的响应报文,其中,所述第一请求是所述终端基于从测试数据库中读取到的目标请求报文模拟生成的,所述目标请求报文的预期响应报文被所述终端写入redis中;
所述回放服务器基于获取到的所述响应报文生成基于第二协议的第二响应报文;
所述回放服务器将所述第二响应报文发送给所述开放平台网关,以使开放平台网关在将所述第二响应报文进行转换得到基于第一协议的第一响应报文后,将所述第一响应报文发送至所述终端,所述第一响应报文用于供所述终端解析出所述目标请求报文的响应报文,并将所述响应报文与所述测试数据库中的预期响应报文进行对比,输出对比结果。
进一步地,所述回放服务器基于所述第二请求从redis中获取对应的响应报文,包括:
所述回放服务器对所述第二请求进行解析出请求参数、服务名称、接口名称和版本号信息,并根据解析出的所述请求参数、所述服务名称、所述接口名称和所述版本号信息,从所述redis中获取对应的响应报文;
所述回放服务器基于获取到的所述预期响应报文生成基于第二协议的第二响应报文,包括:
所述回放服务器根据解析出的所述服务名称、所述接口名称和所述版本号信息,从预先部署的服务实例中调取对应的接口描述信息;
所述回放服务器对所述响应报文和所述接口描述信息进行序列化处理,生成所述第二响应报文。
根据本发明的一个实施例,提供了一种流量回放方法,所述方法包括:
终端获取生产环境的流量数据,并将所述流量数据中的请求报文和响应报文导入测试数据库中;
所述终端在检测到回放指令时,从所述测试数据库中读取目标请求报文,基于所述目标请求报文模拟生成基于第一协议的第一请求,并将所述目标请求报文的预期响应报文写入redis中;
所述终端将所述第一请求发送给开放平台网关,以使所述开放平台网关将所述第一请求转换成基于第二协议的第二请求后发送给回放服务器;
所述回放服务器基于所述第二请求从所述redis中获取对应的响应报文,并基于获取到的所述响应报文生成基于第二协议的第二响应报文;
所述回放服务器将所述第二响应报文返回给所述开放平台网关,以使所述开放平台网关在对基于所述第二响应报文进行转换得到基于第一协议的第一响应报文后,将所述第一响应报文发送至所述终端;
所述终端对所述第一响应报文进行解析出所述目标请求报文的响应报文,将所述响应报文与所述测试数据库中的预期响应报文进行对比,输出对比结果。
根据本发明的一个实施例,提供了一种流量回放装置,应用于终端,所述装置包括:
获取模块,用于所述终端获取生产环境的流量数据;
导入模块,用于所述终端将所述流量数据中的请求报文和响应报文导入测试数据库中;
模拟模块,用于所述终端在检测到回放指令时,从所述测试数据库中读取目标请求报文,基于所述目标请求报文模拟生成基于第一协议的第一请求,并将所述目标请求报文的预期响应报文写入redis中;
发送模块,用于所述终端将所述第一请求发送给开放平台网关,以使所述开放平台网关将所述第一请求转换成基于第二协议的第二请求后发送给回放服务器;
接收模块,用于在所述回放服务器基于所述第二请求从所述redis中获取对应的响应报文,并基于获取到的所述响应报文生成基于第二协议的第二响应报文,以及将所述第二响应报文返回给所述开放平台网关后,所述终端从所述开放平台网关接收对基于所述第二响应报文进行转换得到的基于第一协议的第一响应报文;
对比模块,用于所述终端对所述第一响应报文进行解析出所述目标请求报文的响应报文,并将所述响应报文与所述测试数据库中的预期响应报文进行对比,输出对比结果。
进一步地,所述获取模块具体用于:
所述终端在检测到查询指令时,从流量数据库中查询对应的流量数据并导出为流量文件,其中,所述流量数据库中保存的流量数据是由所述开放平台网关采集并通过Kafka消息队列下发的。
根据本发明的一个实施例,提供了一种流量回放装置,应用于回放服务器,所述装置包括:
接收模块,用于在开放平台网关接收到终端发送的基于第一协议的第一请求,并将所述第一请求转换成基于第二协议的第二请求发送给回放服务器后,所述回放服务器接收所述第二请求,其中,所述第一请求是所述终端基于从测试数据库中读取到的目标请求报文模拟生成的,所述目标请求报文的预期响应报文被所述终端写入redis中;
获取模块,用于所述回放服务器基于所述第二请求从redis中获取对应的响应报文;
生成模块,用于所述回放服务器基于获取到的所述响应报文生成基于第二协议的第二响应报文;
发送模块,用于所述回放服务器将所述第二响应报文发送给所述开放平台网关,以使开放平台网关在将所述第二响应报文进行转换得到基于第一协议的第一响应报文后,将所述第一响应报文发送至所述终端,所述第一响应报文用于供所述终端解析出所述目标请求报文的响应报文,并将所述响应报文与所述测试数据库中的预期响应报文进行对比,输出对比结果。
根据本发明的又一个实施例,提供了一种流量回放系统,包括终端和回放服务器;
所述终端包括如上述实施例所述的流量回放装置;
所述回放服务器包括上述实施例所述的流量回放装置。
根据本发明的又一个实施例,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例所述方法的步骤。
根据本发明的又一个实施例,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例所述的方法的步骤。
本发明实施例提供的技术方案带来的有益效果至少包括:
1、打破场景限制,将生产环境的流量放在线下测试环境回放、支持增删查改全部接口,这是现有的流量回放方案所不具备的功能。
2、相比于现有技术中的流量回放方案中需要维护java版本的sdk,才能完成响应报文的模拟,由于无需jar包的加入,不需要维护java版本的sdk,只需要获取线上的返回报文即可模拟接口的返回,由此极大地降低了测试工作量。
3、不依赖其他多余技术组件,无需修改被测系统,使用简单便捷。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种流量回放方法的流程示意图;
图2a是本发明实施例提供的新增用例集的界面示意图;
图2b是本发明实施例提供的触发流量回放的界面示意图;
图2c是本发明实施例提供的流量回放执行结果的界面示意图;
图3是本发明实施例提供的一种流量回放方法的流程示意图;
图4是本发明实施例提供的一种流量回放方法的流程示意图;
图5是本发明实施例提供的一种流量回放装置的结构示意图;
图6是本发明实施例提供的一种流量回放装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
此外,在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
实施例一
本发明实施例提供了一种流量回放方法,参考图1所示,该方法可以包括:
步骤S101,终端获取生产环境的流量数据。
其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机等。
具体地,终端在检测到查询指令时,从流量数据库中查询对应的流量数据并导出为流量文件,其中,流量数据库中保存的流量数据是由开放平台网关采集并通过Kafka消息队列下发的。
这里,流量数据包括请求报文和响应报文,其中,请求报文包括但不限于请求参数、服务名称、接口名称和版本号信息,响应报文中包括字段名称及其对应的数据值。
本实施例中,测试人员可以通过终端从流量数据库中查询出用于流量回放的流量数据,导出为CSV(Comma-Separated Values)文件,例如,从流量数据库中查询出指定时间段内的流量数据。CSV文件以纯文本的形式存储表格数据。
步骤S102,终端将流量数据中的请求报文和响应报文导入测试数据库中。
具体地,终端将CSV文件转换为包括请求报文和预期响应报文的Excel文件,并将Excel文件上传到测试数据库中。
其中,一个Excel文件中包括的所有流量数据构成一个测试用例集。
本实施例中,通过终端将流量数据中的请求报文和响应报文导入测试数据库中,这样无需额外配置工作,流量数据能够永久保存在测试数据库,同时支持可以多个份测试用例集,并可以随时进行流量回放测,实现了将生产环境的流量放在线下测试环境回放。
步骤S103,终端在检测到回放指令时,从测试数据库中读取目标请求报文。
其中,第一协议具体为HTTP协议(超文本传送协议)。
具体地,终端在检测到测试人员输入的回放指令时,从测试数据库中读取该回放指令所指示的测试用例集包含的每条流量数据,将读取到的每条流量数据中的请求报文作为目标请求报文。这里,一条流量数据可以作为一个测试用例以用于流量回放。
步骤S104,终端基于目标请求报文模拟生成基于第一协议的第一请求,并将第一请求发送给开放平台网关。
具体地,终端基于该目标请求报文模拟生成HTTP请求,将HTTP请求发送给开放平台网关。
可以理解的是,终端从测试数据库中读取到的目标请求报文的数量可以为多个,基于多个目标请求报文模拟生成多个基于第一协议的第一请求,并将多个第一请求发送给开放平台网关。
步骤S105,终端将目标请求报文的预期响应报文写入redis中。
本实施例中,通过将redis作为数据库,利用redis高并发处理的性能,能够快速地进行数据查询。
需要说明的是,本发明实施例对步骤S104和步骤S105的执行顺序不作具体限定,以同时执行步骤S104和步骤S105作为优选方案。
步骤S106,开放平台网关将第一请求转换成基于第二协议的第二请求后发送给回放服务器。
其中,第二协议具体为OSP协议。这里,OSP采用了基于二进制的通讯协议,以消息为基本通讯单元;每条消息包含消息头和消息体。协议设计上以无状态为原则,每条消息包含调用所需的所有信息,一次调用通过一次消息交换(请求/响应)完成。
本实施例中,开放平台网关在收到终端发送的HTTP请求后,将HTTP请求转换成OSP请求,将OSP请求发送给回放服务器。
步骤S107,回放服务器基于第二请求从redis中获取对应的响应报文。
具体地,回放服务器接收到开放平台网关发送的OSP请求后,对OSP请求进行解析出请求参数、服务名称、接口名称和版本号信息;根据解析出的请求参数、服务名称、接口名称和版本号信息,从redis中获取对应的响应报文,并根据解析出的服务名称、接口名称和版本号信息,从预先部署的服务实例中调取对应的接口描述信息,最后对响应报文和接口描述信息进行序列化处理,生成OSP响应报文。
本实施例中,由于回放服务器根据从来自开放平台网关发送的OSP请求中解析出的请求参数、服务名称、接口名称和版本号信息,直接从redis中获取所对应的响应报文,因此即便在增删改接口的情形下,依然能够实现流量回放;另外,由于回放服务器是通过根据解析出的服务名称、接口名称和版本号信息,从预先部署的服务实例中调取对应的接口描述信息,这样能够不需要jar包的加入,不需要维护java版本的sdk,只需要获取线上的返回报文即可模拟接口的返回,由此能够极大地降低测试工作量。
步骤S108,回放服务器基于获取到的响应报文生成基于第二协议的第二响应报文,并将第二响应报文返回给开放平台网关。
具体地,回放服务器基于获取到的响应报文生成OSP响应报文,将OSP响应报文返回给开放平台网关。
步骤S109,开放平台网关在对基于第二响应报文进行转换得到基于第一协议的第一响应报文后,将第一响应报文发送至终端。
具体地,开放平台网关在对OSP响应报文进行反序列化处理,得到目标请求报文的响应报文,将响应报文处理为HTTP响应报文,并将HTTP响应报文发送至终端。
步骤S110,终端对第一响应报文进行解析出目标请求报文的响应报文,将响应报文与测试数据库中的预期响应报文进行对比,输出对比结果。
具体地,终端对从开放平台网关返回的HTTP响应报文进行解析,得到目标请求报文的响应报文,将响应报文与测试数据库中的预期响应报文进行对比,具体来说,将响应报文与预期响应报文中的各具有相同字段名称的实际值和预期值进行对比,若相等,则判定测试用例的状态为通过,若不相等,则判定测试用例的状态为失败,在得到对比结果后,输出对比结果以呈现给测试人员。
本发明实施例提供的流量回放方法,通过终端获取生产环境的流量数据并将流量数据中的请求报文和响应报文导入测试数据库中,由此实现了将生产环境的流量放在线下测试环境回放;另外,通过终端基于目标请求报文模拟生成基于第一协议的第一请求,并将目标请求报文的预期响应报文写入redis中,由此,当终端将第一请求通过开放平台网关进行转换得到基于第二协议的第二请求并发送到回放服务器后,回放服务器可以基于第二请求从redis获取对应的响应报文,这样即便在增删改接口的情形下,依然能够实现流量回放;另外,本发明实施例提供的技术方案不需要jar包的加入,不需要维护java版本的sdk,只需要获取线上的返回报文即可模拟接口的返回,使用简单便捷,能够极大地降低测试工作量。
下面结合图2a至图2c对本发明实施例提供的技术方案做进一步说明。图2a是本发明实施例提供的新增用例集的界面示意图,在图2a所示的界面上,测试人员可以将从流量数据库中导出的CSW文件通过Excel文件的方式导入到测试数据库中,图2b是本发明实施例提供的触发流量回放的界面示意图,在图2b所示的界面上,测试人员可以从用例集列表中选取需要进行流量回放的用例集,并对选中的用例集进行一键触发以执行流量回放。图2c是本发明实施例提供的流量回放执行结果的界面示意图,在图2c所示的界面上显示出各个用例的返回数据与预期返回的对比结果以及对应的创建时间。
实施例二
本发明实施例提供了一种流量回放方法,参考图3所示,该方法可以包括:
步骤S301,终端获取生产环境的流量数据,并将流量数据中的请求报文和响应报文导入测试数据库中。
具体地,步骤S301的实现过程可以参照上述实施例一中的步骤S101至步骤S102,此处不再赘述。
步骤S302,终端在检测到回放指令时,从测试数据库中读取目标请求报文,基于目标请求报文模拟生成基于第一协议的第一请求,并将目标请求报文的预期响应报文写入redis中。
其中,第一协议具体可以为HTTP协议。
步骤S303,终端将第一请求发送给开放平台网关,以使开放平台网关将第一请求转换成基于第二协议的第二请求后发送给回放服务器。
其中,第二协议具体可以为OSP协议。
具体地,步骤S302至步骤S303的实现过程可以参照上述实施例一中的步骤S103至步骤S105,此处不再赘述。
步骤S304,在回放服务器基于第二请求从redis中获取对应的响应报文,并基于获取到的响应报文生成基于第二协议的第二响应报文,以及将第二响应报文返回给开放平台网关后,终端从开放平台网关接收对基于第二响应报文进行转换得到的基于第一协议的第一响应报文。
步骤S305,终端对第一响应报文进行解析出目标请求报文的响应报文,将响应报文与测试数据库中的预期响应报文进行对比,输出对比结果。
具体地,步骤S305的实现过程可以参照上述实施例一中的步骤S110,此处不再赘述。
本发明实施例提供的流量回放方法,通过终端获取生产环境的流量数据并将流量数据中的请求报文和响应报文导入测试数据库中,由此实现了将生产环境的流量放在线下测试环境回放;另外,通过终端基于目标请求报文模拟生成基于第一协议的第一请求,并将目标请求报文的预期响应报文写入redis中,由此,当终端将第一请求通过开放平台网关进行转换得到基于第二协议的第二请求并发送到回放服务器后,回放服务器可以基于第二请求从redis获取对应的响应报文,这样即便在增删改接口的情形下,依然能够实现流量回放;另外,本发明实施例提供的技术方案不需要jar包的加入,不需要维护java版本的sdk,只需要获取线上的返回报文即可模拟接口的返回,使用简单便捷,能够极大地降低测试工作量。
实施例三
本发明实施例提供了一种流量回放方法,参考图4所示,该方法可以包括:
步骤S401,在开放平台网关接收到终端发送的基于第一协议的第一请求,并将第一请求转换成基于第二协议的第二请求发送给回放服务器后,回放服务器基于第二请求从redis中获取对应的响应报文,其中,第一请求是终端基于从测试数据库中读取到的目标请求报文模拟生成的,目标请求报文的预期响应报文被终端写入redis中。
其中,第一协议具体可以为HTTP协议,第二协议具体可以为OSP协议。
具体地,步骤S401的实现过程可以参照上述实施例一中的步骤S107,此处不再赘述。
步骤S402,回放服务器基于获取到的响应报文生成基于第二协议的第二响应报文。
步骤S403,回放服务器将第二响应报文发送给开放平台网关,以使开放平台网关在将第二响应报文进行转换得到基于第一协议的第一响应报文后,将第一响应报文发送至终端,第一响应报文用于供终端解析出目标请求报文的响应报文,并将响应报文与测试数据库中的预期响应报文进行对比,输出对比结果。
具体地,步骤S402至步骤S403的实现过程可以参照上述实施例一中的步骤S108,此处不再赘述。
本发明实施例提供的流量回放方法,通过终端获取生产环境的流量数据并将流量数据中的请求报文和响应报文导入测试数据库中,由此实现了将生产环境的流量放在线下测试环境回放;另外,通过终端基于目标请求报文模拟生成基于第一协议的第一请求,并将目标请求报文的预期响应报文写入redis中,由此,当终端将第一请求通过开放平台网关进行转换得到基于第二协议的第二请求并发送到回放服务器后,回放服务器可以基于第二请求从redis获取对应的响应报文,这样即便在增删改接口的情形下,依然能够实现流量回放;另外,本发明实施例提供的技术方案不需要jar包的加入,不需要维护java版本的sdk,只需要获取线上的返回报文即可模拟接口的返回,使用简单便捷,能够极大地降低测试工作量。
实施例四
本发明实施例提供了一种流量回放装置,该流量回放装置应用于终端,参考图5所示,该流量回放装置可以包括:
获取模块51,用于终端获取生产环境的流量数据;
导入模块52,用于终端将流量数据中的请求报文和响应报文导入测试数据库中;
模拟模块53,用于终端在检测到回放指令时,从测试数据库中读取目标请求报文,基于目标请求报文模拟生成基于第一协议的第一请求,并将目标请求报文的预期响应报文写入redis中;
发送模块54,用于终端将第一请求发送给开放平台网关,以使开放平台网关将第一请求转换成基于第二协议的第二请求后发送给回放服务器;
接收模块55,用于在回放服务器基于第二请求从redis中获取对应的响应报文,并基于获取到的响应报文生成基于第二协议的第二响应报文,以及将第二响应报文返回给开放平台网关后,终端从开放平台网关接收对基于第二响应报文进行转换得到的基于第一协议的第一响应报文;
对比模块56,用于终端对第一响应报文进行解析出目标请求报文的响应报文,并将响应报文与测试数据库中的预期响应报文进行对比,输出对比结果。
进一步地,获取模块51具体用于:
终端在检测到查询指令时,从流量数据库中查询对应的流量数据并导出为流量文件,其中,流量数据库中保存的流量数据是由开放平台网关采集并通过Kafka消息队列下发的。
进一步地,流量文件为CSV文件,导入模块52具体用于:
终端将CSV文件转换为包括请求报文和预期响应报文的Excel文件,并将Excel文件上传到测试数据库中。
需要说明的是:本实施例提供的流量回放装置中,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,本实施例的流量回放装置与实施例二中的流量回放方法实施例属于同一构思,其具体实现过程和有益效果详见流量回放方法实施例,这里不再赘述。
实施例五
本发明实施例提供了一种流量回放装置,该流量回放装置应用于回放服务器,参考图6所示,该流量回放装置可以包括:
接收模块61,用于在开放平台网关接收到终端发送的基于第一协议的第一请求,并将第一请求转换成基于第二协议的第二请求发送给回放服务器后,回放服务器接收第二请求,其中,第一请求是终端基于从测试数据库中读取到的目标请求报文模拟生成的,目标请求报文的预期响应报文被终端写入redis中;
获取模块62,用于回放服务器基于第二请求从redis中获取对应的响应报文;
生成模块63,用于回放服务器基于获取到的响应报文生成基于第二协议的第二响应报文;
发送模块64,用于回放服务器将第二响应报文发送给开放平台网关,以使开放平台网关在将第二响应报文进行转换得到基于第一协议的第一响应报文后,将第一响应报文发送至终端,第一响应报文用于供终端解析出目标请求报文的响应报文,并将响应报文与测试数据库中的预期响应报文进行对比,输出对比结果。
进一步地,获取模块62具体用于:
回放服务器对第二请求进行解析出请求参数、服务名称、接口名称和版本号信息,并根据解析出的请求参数、服务名称、接口名称和版本号信息,从redis中获取对应的响应报文;
生成模块63具体用于:
回放服务器根据解析出的服务名称、接口名称和版本号信息,从预先部署的服务实例中调取对应的接口描述信息;
回放服务器对响应报文和接口描述信息进行序列化处理,生成第二响应报文。
需要说明的是:本实施例提供的流量回放装置中,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,本实施例的流量回放装置与实施例三中的流量回放方法实施例属于同一构思,其具体实现过程和有益效果详见流量回放方法实施例,这里不再赘述。
实施例六
本发明实施例提供了一种流量回放系统,该流量回放系统可以包括终端和回放服务器,其中,终端包括如上述实施例四的流量回放装置,回放服务器包括上述实施例五的流量回放装置。
根据本发明的又一个实施例,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例的流量回放方法的步骤。
根据本发明的又一个实施例,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例的流量回放方法的步骤。
本领域内的技术人员应明白,本发明实施例中的实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例中可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例中可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例中是参照根据本发明实施例中实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例中范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (15)

1.一种流量回放方法,其特征在于,所述方法包括:
终端获取生产环境的流量数据,并将所述流量数据中的请求报文和响应报文导入测试数据库中;
所述终端在检测到回放指令时,从所述测试数据库中读取目标请求报文,基于所述目标请求报文模拟生成基于第一协议的第一请求,并将所述目标请求报文的预期响应报文写入redis中;
所述终端将所述第一请求发送给开放平台网关,以使所述开放平台网关将所述第一请求转换成基于第二协议的第二请求后发送给回放服务器;
在所述回放服务器根据从来自所述开放平台网关发送的第二请求中解析出的请求参数、服务名称、接口名称和版本号信息,直接从所述redis中获取对应的响应报文,并基于获取到的所述响应报文生成基于第二协议的第二响应报文,以及将所述第二响应报文返回给所述开放平台网关后,所述终端从所述开放平台网关接收对基于所述第二响应报文进行转换得到的基于第一协议的第一响应报文;
所述终端对所述第一响应报文进行解析出所述目标请求报文的响应报文,将所述响应报文与所述测试数据库中的预期响应报文进行对比,输出对比结果。
2.根据权利要求1所述的方法,其特征在于,所述终端获取生产环境的流量数据,包括:
所述终端在检测到查询指令时,从流量数据库中查询对应的流量数据并导出为流量文件,其中,所述流量数据库中保存的流量数据是由所述开放平台网关采集并通过Kafka消息队列下发的。
3.根据权利要求2所述的方法,其特征在于,所述流量文件为CSV文件,所述将所述流量数据中的请求报文和响应报文导入测试数据库中,包括:
所述终端将所述CSV文件转换为包括请求报文和预期响应报文的Excel文件,并将所述Excel文件上传到所述测试数据库中。
4.一种流量回放方法,其特征在于,所述方法包括:
在开放平台网关接收到终端发送的基于第一协议的第一请求,并将所述第一请求转换成基于第二协议的第二请求发送给回放服务器后,所述回放服务器根据从来自所述开放平台网关发送的第二请求中解析出的请求参数、服务名称、接口名称和版本号信息,直接从redis中获取对应的响应报文,其中,所述第一请求是所述终端基于从测试数据库中读取到的目标请求报文模拟生成的,所述目标请求报文的预期响应报文被所述终端写入redis中;
所述回放服务器基于获取到的所述响应报文生成基于第二协议的第二响应报文;
所述回放服务器将所述第二响应报文发送给所述开放平台网关,以使开放平台网关在将所述第二响应报文进行转换得到基于第一协议的第一响应报文后,将所述第一响应报文发送至所述终端,所述第一响应报文用于供所述终端解析出所述目标请求报文的响应报文,并将所述响应报文与所述测试数据库中的预期响应报文进行对比,输出对比结果。
5.根据权利要求4所述的方法,其特征在于,
所述回放服务器基于获取到的所述响应报文生成基于第二协议的第二响应报文,包括:
所述回放服务器根据解析出的所述服务名称、所述接口名称和所述版本号信息,从预先部署的服务实例中调取对应的接口描述信息;
所述回放服务器对所述响应报文和所述接口描述信息进行序列化处理,生成所述第二响应报文。
6.一种流量回放方法,其特征在于,所述方法包括:
终端获取生产环境的流量数据,并将所述流量数据中的请求报文和响应报文导入测试数据库中;
所述终端在检测到回放指令时,从所述测试数据库中读取目标请求报文,基于所述目标请求报文模拟生成基于第一协议的第一请求,并将所述目标请求报文的预期响应报文写入redis中;
所述终端将所述第一请求发送给开放平台网关,以使所述开放平台网关将所述第一请求转换成基于第二协议的第二请求后发送给回放服务器;
所述回放服务器根据从来自所述开放平台网关发送的第二请求中解析出的请求参数、服务名称、接口名称和版本号信息,直接从所述redis中获取对应的响应报文,并基于获取到的所述响应报文生成基于第二协议的第二响应报文;
所述回放服务器将所述第二响应报文返回给所述开放平台网关,以使所述开放平台网关在对基于所述第二响应报文进行转换得到基于第一协议的第一响应报文后,将所述第一响应报文发送至所述终端;
所述终端对所述第一响应报文进行解析出所述目标请求报文的响应报文,将所述响应报文与所述测试数据库中的预期响应报文进行对比,输出对比结果。
7.根据权利要求6所述的方法,其特征在于,所述终端获取生产环境的流量数据,包括:
所述终端在检测到查询指令时,从流量数据库中查询对应的流量数据并导出为流量文件,其中,所述流量数据库中保存的流量数据是由所述开放平台网关采集并通过Kafka消息队列下发的。
8.根据权利要求7所述的方法,其特征在于,所述流量文件为CSV文件,所述将所述流量数据中的请求报文和响应报文导入测试数据库中,包括:
所述终端将所述CSV文件转换为包括请求报文和预期响应报文的Excel文件,并将所述Excel文件上传到所述测试数据库中。
9.根据权利要求6所述的方法,其特征在于,所述回放服务器基于获取到的所述响应报文生成基于第二协议的第二响应报文,包括:
所述回放服务器根据解析出的所述服务名称、所述接口名称和所述版本号信息,从预先部署的服务实例中调取对应的接口描述信息;
所述回放服务器对所述响应报文和所述接口描述信息进行序列化处理,生成所述第二响应报文。
10.一种流量回放装置,其特征在于,应用于终端,所述装置包括:
获取模块,用于所述终端获取生产环境的流量数据;
导入模块,用于所述终端将所述流量数据中的请求报文和响应报文导入测试数据库中;
模拟模块,用于所述终端在检测到回放指令时,从所述测试数据库中读取目标请求报文,基于所述目标请求报文模拟生成基于第一协议的第一请求,并将所述目标请求报文的预期响应报文写入redis中;
发送模块,用于所述终端将所述第一请求发送给开放平台网关,以使所述开放平台网关将所述第一请求转换成基于第二协议的第二请求后发送给回放服务器;
接收模块,用于在所述回放服务器根据从来自所述开放平台网关发送的第二请求中解析出的请求参数、服务名称、接口名称和版本号信息,直接从所述redis中获取对应的响应报文,并基于获取到的所述响应报文生成基于第二协议的第二响应报文,以及将所述第二响应报文返回给所述开放平台网关后,所述终端从所述开放平台网关接收对基于所述第二响应报文进行转换得到的基于第一协议的第一响应报文;
对比模块,用于所述终端对所述第一响应报文进行解析出所述目标请求报文的响应报文,并将所述响应报文与所述测试数据库中的预期响应报文进行对比,输出对比结果。
11.根据权利要求10所述的装置,其特征在于,所述获取模块具体用于:
所述终端在检测到查询指令时,从流量数据库中查询对应的流量数据并导出为流量文件,其中,所述流量数据库中保存的流量数据是由所述开放平台网关采集并通过Kafka消息队列下发的。
12.根据权利要求11所述的装置,其特征在于,所述流量文件为CSV文件,所述导入模块用于所述终端将所述CSV文件转换为包括请求报文和预期响应报文的Excel文件,并将所述Excel文件上传到所述测试数据库中。
13.一种流量回放装置,其特征在于,应用于回放服务器,所述装置包括:
接收模块,用于在开放平台网关接收到终端发送的基于第一协议的第一请求,并将所述第一请求转换成基于第二协议的第二请求发送给回放服务器后,所述回放服务器接收所述第二请求,其中,所述第一请求是所述终端基于从测试数据库中读取到的目标请求报文模拟生成的,所述目标请求报文的预期响应报文被所述终端写入redis中;
获取模块,用于所述回放服务器根据从来自所述开放平台网关发送的第二请求中解析出的请求参数、服务名称、接口名称和版本号信息,直接从redis中获取对应的响应报文;
生成模块,用于所述回放服务器基于获取到的所述响应报文生成基于第二协议的第二响应报文;
发送模块,用于所述回放服务器将所述第二响应报文发送给所述开放平台网关,以使开放平台网关在将所述第二响应报文进行转换得到基于第一协议的第一响应报文后,将所述第一响应报文发送至所述终端,所述第一响应报文用于供所述终端解析出所述目标请求报文的响应报文,并将所述响应报文与所述测试数据库中的预期响应报文进行对比,输出对比结果。
14.根据权利要求13所述的装置,其特征在于,所述生成模块用于:
所述回放服务器根据解析出的所述服务名称、所述接口名称和所述版本号信息,从预先部署的服务实例中调取对应的接口描述信息;
所述回放服务器对所述响应报文和所述接口描述信息进行序列化处理,生成所述第二响应报文。
15.一种流量回放系统,其特征在于,包括终端和回放服务器;
所述终端包括如权利要求10至12任一所述的流量回放装置;
所述回放服务器包括如权利要求13或14所述的流量回放装置。
CN201911304311.6A 2019-12-17 2019-12-17 一种流量回放方法、装置及系统 Active CN111010316B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911304311.6A CN111010316B (zh) 2019-12-17 2019-12-17 一种流量回放方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911304311.6A CN111010316B (zh) 2019-12-17 2019-12-17 一种流量回放方法、装置及系统

Publications (2)

Publication Number Publication Date
CN111010316A CN111010316A (zh) 2020-04-14
CN111010316B true CN111010316B (zh) 2021-08-06

Family

ID=70116429

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911304311.6A Active CN111010316B (zh) 2019-12-17 2019-12-17 一种流量回放方法、装置及系统

Country Status (1)

Country Link
CN (1) CN111010316B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782452A (zh) * 2020-07-03 2020-10-16 携程商旅信息服务(上海)有限公司 接口对比测试的方法、系统、设备和介质
CN112256557A (zh) * 2020-09-16 2021-01-22 蘑菇物联技术(深圳)有限公司 程序回归测试方法、装置、系统、计算机设备及存储介质
CN114448825A (zh) * 2020-11-06 2022-05-06 行吟信息科技(上海)有限公司 流量比对方法、装置、设备及存储介质
CN112637085B (zh) * 2020-12-08 2023-02-17 广州品唯软件有限公司 流量录制方法、装置、计算机设备和存储介质
CN112631921A (zh) * 2020-12-28 2021-04-09 广州品唯软件有限公司 提升流量回放覆盖面方法、系统和存储介质
CN112799944A (zh) * 2021-01-29 2021-05-14 中国工商银行股份有限公司 系统性能测试方法及系统
CN113938408B (zh) * 2021-10-14 2023-07-11 平安银行股份有限公司 一种数据流量测试方法、装置、服务器及存储介质
CN114500348B (zh) * 2021-12-22 2023-06-23 天翼云科技有限公司 一种cdn网关测试方法及系统
CN115643314B (zh) * 2022-10-21 2024-02-23 中电金信软件有限公司 一种系统交替的信息确认方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103178996A (zh) * 2013-03-15 2013-06-26 烽火通信科技股份有限公司 分布式包交换芯片模型验证系统及验证方法
CN106330599A (zh) * 2016-08-16 2017-01-11 济南大学 Android应用程序网络流量多线程采集系统及方法
CN108513149A (zh) * 2017-02-28 2018-09-07 北京新唐思创教育科技有限公司 一种直播延迟测试方法及其装置
CN108683697A (zh) * 2018-03-28 2018-10-19 青岛海尔科技有限公司 连接Redis内存数据库的方法、系统、选择器和服务器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155890A (zh) * 2015-04-02 2016-11-23 深圳市腾讯计算机系统有限公司 平台测试方法和系统
CN106708718B (zh) * 2015-07-22 2020-11-24 北京京东尚科信息技术有限公司 服务框架接口测试方法与装置
CN106326109B (zh) * 2016-08-09 2019-09-03 北京金山安全软件有限公司 一种新应用的测试方法及装置
CN106331147B (zh) * 2016-09-09 2019-09-06 深圳市彬讯科技有限公司 一种redis分布式调用方法
CN106878108B (zh) * 2017-03-01 2019-12-20 广州品唯软件有限公司 网络流量回放测试方法及装置
US20190180141A1 (en) * 2017-12-08 2019-06-13 Nicira, Inc. Unsupervised machine learning for clustering datacenter nodes on the basis of network traffic patterns
CN109271325B (zh) * 2018-10-26 2022-11-04 携程旅游网络技术(上海)有限公司 应用的测试方法、系统、电子设备和存储介质
CN110262979B (zh) * 2019-06-27 2022-08-02 苏宁消费金融有限公司 一种基于mock平台的模拟第三方数据源测试方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103178996A (zh) * 2013-03-15 2013-06-26 烽火通信科技股份有限公司 分布式包交换芯片模型验证系统及验证方法
CN106330599A (zh) * 2016-08-16 2017-01-11 济南大学 Android应用程序网络流量多线程采集系统及方法
CN108513149A (zh) * 2017-02-28 2018-09-07 北京新唐思创教育科技有限公司 一种直播延迟测试方法及其装置
CN108683697A (zh) * 2018-03-28 2018-10-19 青岛海尔科技有限公司 连接Redis内存数据库的方法、系统、选择器和服务器

Also Published As

Publication number Publication date
CN111010316A (zh) 2020-04-14

Similar Documents

Publication Publication Date Title
CN111010316B (zh) 一种流量回放方法、装置及系统
CN110532169A (zh) 接口测试用例生成方法、装置、计算机设备及存储介质
US9639444B2 (en) Architecture for end-to-end testing of long-running, multi-stage asynchronous data processing services
CN108628748B (zh) 自动化测试管理方法和自动化测试管理系统
CN109309596B (zh) 一种压力测试方法、装置及服务器
CN109815119B (zh) 一种app链接渠道的测试方法及装置
CN110750458A (zh) 大数据平台测试方法、装置、可读存储介质及电子设备
CN112231402A (zh) 一种异构数据实时同步方法、装置、设备和存储介质
CN117215910A (zh) 接口测试框架生成方法、测试方法、电子设备及存储介质
CN109359109B (zh) 一种基于分布式流计算的数据处理方法及系统
CN114416597A (zh) 测试用例记录的生成方法和装置
CN114281549A (zh) 数据的处理方法及装置
CN105988917A (zh) 异常信息获取方法及装置
CN110266610A (zh) 流量识别方法、装置、电子设备
CN116610656B (zh) 便携式跨网数据采集方法及装置
CN109901990B (zh) 一种业务系统的测试方法、装置及设备
CN107885659A (zh) 对客户端的请求模拟响应的方法及装置、设备
CN114201400A (zh) 代码调试方法、装置、计算机可读存储介质及服务器
CN117955878A (zh) 网络质量检测方法、装置、电子设备及存储介质
CN116701155A (zh) 一种数据处理方法及装置、存储介质及电子设备
Kabamba et al. Advanced Strategies for Precise and Transparent Debugging of Performance Issues in In-Memory Data Store-Based Microservices
CN114546863A (zh) 一种自动化压测脚本生成方法及装置
CN113419738A (zh) 接口文档的生成方法、装置及接口管理设备
CN114884799A (zh) 集群告警功能的测试方法、系统、设备和存储介质
CN116795723A (zh) 链式单元测试处理方法、装置及计算机设备

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
GR01 Patent grant
GR01 Patent grant