CN115529250A - 流量回放方法、装置、电子设备及存储介质 - Google Patents
流量回放方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115529250A CN115529250A CN202210989949.3A CN202210989949A CN115529250A CN 115529250 A CN115529250 A CN 115529250A CN 202210989949 A CN202210989949 A CN 202210989949A CN 115529250 A CN115529250 A CN 115529250A
- Authority
- CN
- China
- Prior art keywords
- request
- playback
- data
- traffic
- recorded data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 230000004044 response Effects 0.000 claims abstract description 87
- 230000015654 memory Effects 0.000 claims description 20
- 238000012545 processing Methods 0.000 abstract description 6
- 230000002829 reductive effect Effects 0.000 abstract description 6
- 238000012360 testing method Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013515 script Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004040 coloring Methods 0.000 description 2
- 238000010835 comparative analysis Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 244000035744 Hura crepitans Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000007488 abnormal function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013112 stability test Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/022—Capturing of monitoring data by sampling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/04—Processing captured monitoring data, e.g. for logfile generation
- H04L43/045—Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提出一种流量回放方法、装置、电子设备及存储介质;该流量回放方法包括响应于第一流量请求,获取响应数据;在第一流量请求为回放请求的情况下,查找对应的录制数据;对比响应数据和录制数据,确定回放结果。本申请实施例提供的技术方案,通过在查找对应的录制数据之前,判断第一流量请求是否为回放请求,可以避免不是回放请求的情况下,查找不到录制数据而判断为***错误的情况,同时也可以减少查找录制数据的处理量,提高流量回放效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种流量回放方法、装置、电子设备及存储介质。
背景技术
随着互联网行业的业务规模不断扩大,***设计也越来越复杂。在业务复杂度的***上进行业务快速迭代时,对***的鲁棒性、兼容性、测试覆盖率以及实效性也提出了更高的要求。人人往往通过更多的自动化回归脚本和人工编写的脚本,来适应这种要求。但是,由于***每时每刻都在演化,自动化回归脚本的正确性和实效性很难得到保证,同时人工编写的脚本不能有效地覆盖大量的真实业务场景。
为了减缓复杂度之熵对***迭代造成的影响,通常需要采用流量回放技术来保障在业务场景、服务架构复杂下的***测试,将线上真实的数据流转化为覆盖全面的回归测试用例。流量回放技术,是指对生产环境下的业务流量执行录制,并将录制后的业务流量用于在生产环境或测试环境中进行回放的一种测试技术。然而,现有的流量回放技术会将很多非***错误误判为***错误,导致效率低下。
发明内容
本申请实施例提供一种流量回放方法、装置、电子设备及存储介质,以解决上述问题。
第一方面,本申请实施例提供了一种流量回放方法,包括:
响应于第一流量请求,获取响应数据;
在第一流量请求为回放请求的情况下,查找对应的录制数据;
对比响应数据和录制数据,确定回放结果。
在一种实施方式中,响应于第一流量请求,获取响应数据之前,还包括:
接收第二流量请求,确定第二流量请求的链路标识;链路标识用于标识响应第二流量请求的链路中调用的调用事件;
通过配置的录制切面和录制切点,记录调用事件的出参和入参;
拦截第二流量请求和调用事件,并将第二流量请求、调用事件以及调用事件的出参和入参存储为录制数据。
在一种实施方式中,还包括:
解析所述第一流量请求的请求头中的标识信息;及
在所述标识信息包括回放标识的情况下,确定所述第一流量请求为回放请求。
在一种实施方式中,在第一流量请求为回放请求的情况下,查找对应的录制数据,包括:
确定响应数据的检索信息,检索信息包括类型和索引信息;
根据检索信息,查找检索信息对应的至少一条录制数据;
获取至少一条录制数据中的入参与响应数据中的入参的匹配度;
在匹配度满足第一预设阈值的情况下,返回该录制数据为对应第一流量请求的录制数据。
在一种实施方式中,还包括:
在未返回录制数据为对应第一流量请求的录制数据的情况下,获取响应数据的类型和入参;
在录制数据的数据库中查找与响应数据的类型相同以及与响应数据的入参匹配度满足第二预设阈值的入参的录制数据,返回该录制数据为对应第一流量请求的录制数据。
在一种实施方式中,还包括:
在录制数据的数据库中未查找到与响应数据的类型相同以及与响应数据的入参匹配度满足第二预设阈值的入参的录制数据的情况下,确定与响应数据的类型相同且与响应数据的入参匹配度最大的录制数据,返回该录制数据为对应第一流量请求的录制数据。
在一种实施方式中,计算两个入参之间的匹配度具体包括:
分别获取第一入参的字符串信息和第二入参的字符串信息;
获取两个字符串信息中相似字符的个数;
确定相似字符的个数与第一入参的字符串信息中字符总个数的比值为第一入参和第二入参之间的匹配度。
在一种实施方式中,该方法还包括:
获取预设的回放规则;
根据所述回放规则,查找对应的录制数据;以及根据所述回放规则对比所述响应数据和所述录制数据。
第二方面,本申请实施例提供了一种流量回放装置,包括:
响应模块,用于响应于第一流量请求,获取响应数据;
查找模块,用于在第一流量请求为回放请求的情况下,查找对应的录制数据;
对比模块,用于对比响应数据和录制数据,确定回放结果。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,以使至少一个处理器能够执行上述各方面人一种实施方式中的流量回放方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质存储计算机指令,当计算机指令在计算机上运行时,上述各方面任一种实施方式中的流量回放方法被执行。
本申请实施例提供的流量回放方法、装置、电子设备及可读存储介质包括以下优点:在查找对应的录制数据之前,先判断第一流量请求是否为回放请求,若是则再查找对应的录制数据,从而避免第一流量请求不是回放请求的情况下,因查找不到录制数据而被误判为***错误,同时也可以减少查找录制数据的处理量,提高流量回放效率。
附图说明
图1为根据本申请一实施例的流量回放方法的应用架构图。
图2为根据本申请一实施例的流量回放方法的流程示意图。
图3为根据本申请一实施例的流量录制方法的流程示意图。
图4为根据本申请一实施例的查找录制数据的流程示意图。
图5为根据本申请一实施例的查找录制数据的另一流程示意图。
图6为根据本申请一实施例的流量回放装置的示意图。
图7为根据本申请另一实施例的流量回放装置的示意图。
图8是用来实现本申请实施例的流量回放方法的电子设备的框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个申请实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
以下为本申请的术语解释:
流量回放,是指对生产环境下的业务流量执行录制,并将录制后的业务流量用于在生产环境或测试环境中进行回放的一种测试技术,包括录制阶段和回放阶段。
录制阶段,用于生成录制流量。所述录制流量是通过录制生产环境中的目标服务的服务流量得到的。所述服务流量是所述目标服务和客户端交互期间产生的真实流量。
回放阶段,用于将所述录制流量用于对测试环境中的目标服务进行回放操作,即:将所述录制流量输入至所述测试环境中的目标服务中,并判断所述测试环境中的目标服务的响应数据和所述生成环境中的目标服务输出的响应数据是否是一致的。
相关的流量回放技术中:
TCP-Copy:基于TCP/HTTP网络协议层,只能实现一些页面只读功能验证,且无法实现跨环境的流量回放。
GO-replay:非Java技术栈,二次扩展开发和维护成本较高,应用不够广泛。
JVM-sandbox:提供底层核心能力,缺乏场景配套功能。所述JVM SandBox是一种基于JVM平台实时无侵入AOP(Aspect Oriented Programming,面向切面编程)框架容器。
有鉴于此,本申请实施例在于提供一种流量回放方法、装置、电子设备及可读存储介质。
图1为根据本申请一实施例的流量回放方法的应用架构图。需要说明的是,流量回放关联某个组件/接口,组件/接口可以提供各类业务服务。录制生产环境中的组件/接口和回放染色环境中的组件/接口是同一个组件/接口。其中,在录制生产环境中可以提供录制服务(Record-Agent),在回放染色环境中可以提供回放服务(Replay-Agent)。
需要说明的是,录制和回放服务底层基于JVM-sandbox等开发,以插件等形式提供配套能力。
基于图1所示的架构,流量回放的功能可以包括如下:
(1)当有用户的真实请求过来时,会被录制服务检测到并将数据加密整理后发送到Kafka(分布式发布订阅消息***)平台,相应地相应结果也会被收集并发送到消息队列中。
(2)流量回放平台(Replay-Service)会监听Kafka上的消息,收集数据并存储至数据库(如DB/ES)中,作为录制数据。
(3)用户可以使用流量回放平台进行请求回放,即将录制的数据在回放应用上进行回放。
(4)为了区分是真实的请求数据还是回放的数据,流量回放平台会对回放的响应数据进行改写,用来做标识识别。
(5)收集到响应数据后,流量回放平台会自动完成数据结果的判断,并生成报表进行展示。
下面,将基于上述示例性应用架构提供若干个实施例,来说明流量回放方案。本申请实施例的流量回放方案用于对迭代后的业务***(也即待测试业务***)进行测试,以确保业务***核心链路的稳定运行。业务***可以包括网页***、小程序或者App等。
图2示出根据本申请一实施例的流量回放方法的流程图。如图2所示,该流量回放方法可以包括:
S210,响应于第一流量请求,获取响应数据。
第一流量请求为待测试业务***接收或者获取到的流量请求。待测试业务***可以响应第一流量请求,并获取响应数据。响应数据包括响应过程中的调用事件、调用事件的入参和出参以及响应结果。
其中,第一流量请求可能是用于回放测试的回放请求(mock request),也可能是用于获取响应结果的真实请求(真实request)。第一流量请求可以基于HTTP或其他协议。
S220,在第一流量请求为回放请求的情况下,查找对应的录制数据。
接到所述第一流量请求后,会先判断第一流量请求是否为回放请求,在确定为回放请求的情况下,才查找对应的录制数据。可以避免在第一流量请求为真实请求的情况下,获取的响应数据查找不到对应的录制数据而判定为***错误的情况。
S230,对比响应数据和录制数据,确定回放结果。
根据响应数据的响应结果和录制数据的录制结果,判断回放结果是否成功。可以理解,响应结果和录制结果为一致的情况下,回放结果为成功;否则,可能为失败。
响应结果和录制结果一致,说明被测试的组件/接口功能正常,未随软件版本迭代而出现问题。
响应结果和录制结果不一致,说明被测试的组件/接口功能出现异常,需要进行维护。
在回放结果为失败的情况下,对比响应数据和录制数据中的调用事件,以及调用事件的入参和出参,用于分析失败的具体原因。例如,失败的具体原因可能是:第二次调用事件的时候,出参不同,第三次调用事件的出参不同,以及第四次调用事件的事件内容不同。
在一个示例中,第三次调用事件的出参不同,以及第四次调用事件的事件内容不同,可能是由于第二次调用事件的出参不同导致的。
本申请实施例中,可以通过列表的方式,提供每一次调用事件的对比分析,以方便查看和分析回放失败的具体原因。
本申请实施例提供的流量回放方法,通过在查找对应的录制数据之前,判断第一流量请求是否为回放请求,可以避免不是回放请求的情况下,查找不到录制数据而判断为***错误的情况,同时也可以减少查找录制数据的处理量,提高流量回放效率。
在一种实施方式中,如图3所示,步骤S210之前,流量回放方法还包括:
S201,接收第二流量请求,确定第二流量请求的链路标识;链路标识用于标识响应第二流量请求的链路中调用的调用事件。
本申请实施例中,接收第二流量请求的为迭代之前的***,也即用于录制数据的录制***。该录制***可以是经过稳定性测试的,能够稳定运行的***,或者可以说是在线下运行过一段时间的***。
录制***可以在线下运行也可以在线上运行,会接收到用户大量的真实流量请求,即本申请实施例的第二流量请求。录制***响应于第二流量请求,获得录制数据。
本申请实施例中,通过链路标识(recordId),可以跟踪响应于第二流量请求时发生的调用事件。第二流量请求的链路标识可以为通过插件在第二流量请求中增加的标识信息。
S202,通过配置的录制切面和录制切点,记录调用事件的出参和入参。
本申请实施例通过配置录制切面确定需要记录的调用事件,通过配置录制切点确定执行录制操作的具***置,也即在录制切点位置执行录制操作,以记录调用事件的出参和入参。S203,拦截第二流量请求和调用事件,并将第二流量请求、调用事件以及调用事件的出参和入参存储为录制数据。
在业务***的入口层,通过过滤器(filter)拦截第二流量请求和调用事件,从而获取相关信息,以存储为录制数据。
本申请实施例中的录制数据包括第二流量请求、调用事件以及调用事件的出参和入参;可以方便与响应数据进行更详细的对比分析,使得获得的回放结果更利于分析。
在一种实施方式中,所述流量回放方法还可以包括:解析所述第一流量请求的请求头中的标识信息;在所述标识信息包括回放标识的情况下,确定所述第一流量请求是否为回放请求。
本申请实施例中,待测试业务***在响应于第一流量请求,获得响应结果时,如果该第一流量请求为回放请求,流量回放平台在响应结束的时候,会在第一流量请求的请求头中加入一个回放标识(例如,数字、字符等)。通过解析请求头中是否包含该回放标识,则可以确定该第一流量请求为回放请求。可以避免判断将真实流量请求的响应数据与录制数据比较,导致非***错误被误判为***错误。
本申请实施例中,待测试业务***在响应于第一流量请求,获得响应结果时,如果网络不好或者网络突然断连的情况下,由于没有响应结果,则流量回放平台不能在该第一流量请求头中加入回放标识。通过解析请求头(request header),可以判断为该第一流量请求不是回放请求,从而不会与录制数据进行比较。可以避免由于网络错误,导致的响应数据与录制数据不匹配,而被误判为***错误的情况。
在一种实施方式中,如图4和图5所示,步骤S220中在第一流量请求为回放请求的情况下,查找对应的录制数据,包括:
S221,确定响应数据的检索信息,检索信息包括类型和索引信息。
在一个示例中,响应数据的调用事件中包括多次的数据库查询,则可以确定该类型为数据库类型,第一次数据库查询的索引号可以为1,第二次数据库查询的索引号为2等。
S222,根据检索信息,查找检索信息对应的至少一条录制数据。
S223,获取至少一条录制数据中的入参与响应数据中的入参的匹配度。
S224,在匹配度满足第一预设阈值的情况下,返回该录制数据为对应第一流量请求的录制数据。
在一个示例中,第一预设阈值可以为90%。匹配度为100%的时候,表示两个入参完全相同。
本申请实施例中通过类型和索引信息查找录制数据,适用于接口中的类型插件均为同步的场景。可以快速地查找到同步接口场景下的录制数据,提高查询效率。
在一种实施方式中,步骤S220中在第一流量请求为回放请求的情况下,查找对应的录制数据,还包括:S225,在未返回录制数据为对应第一流量请求的录制数据的情况下,获取响应数据的类型和入参;在录制数据的数据库中查找与响应数据的类型相同以及与响应数据的入参匹配度满足第二预设阈值的入参的录制数据,返回该录制数据为对应第一流量请求的录制数据。
本申请实施例中,通过步骤S221-S224未查找到录制数据的情况下,再通过步骤S225的方法查找。以避免插件接口为异步的场景时,没有查找到录制数据而误判为***错误的情况。
本申请实施例中,查找到录制数据包括根据类型和索引信息未查找到录制数据;或者根据类型和索引信息查找到至少一条录制数据,但是至少一条录制数据中不包括与响应数据的入参的匹配度满足第一预设阈值的录制数据,因此,未能返回对应第一流量请求的录制数据。
由于业务***中,大部分为同步场景。本申请实施例中,首先通过类型和索引的方式,进行同步场景下的查找,可以快速地查找到同步接口场景下的录制数据,提高查询效率。如果查找到录制数据,则可以确定其为同步场景;如果未找到录制数据,再通过类型和入参相似度的方式查找,可以避免插件接口为异步的场景时,没有查找到录制数据而判断为***错误的情况。
本申请实施例中,第一预设阈值与第二预设阈值可以相同,也可以不同,本申请实施例对此不做限定。
在一种实施方式中,步骤S220中在第一流量请求为回放请求的情况下,查找对应的录制数据,还包括:
S226,在录制数据的数据库中未查找到与响应数据的类型相同以及与响应数据的入参匹配度满足第二预设阈值的入参的录制数据的情况下,确定与响应数据的类型相同且与响应数据的入参匹配度最大的录制数据,返回该录制数据为对应第一流量请求的录制数据。
本申请实施例中,通过步骤S226,可以通过获取入参的匹配度最大的录制数据作为第一流量请求对应的录制数据,避免返回的录制数据为空,直接判定为***错误的情况。
本申请实施例中,可以通过对预设类型的录制数据,与响应数据的入参进行匹配度计算,生成匹配度列表,输出匹配度较高的多条录制数据为对应第一流量请求的录制数据。可以用于研发人员逐个分析。
本申请实施例中,通过步骤S226的设置,使得可以设置较小的第二预设阈值,从而在步骤S225中,可以快速地进行匹配度比较,获得对应第一流量请求的录制数据,提高查询效率。
本申请实施例提供的如图4和图5所示的查询方式,可以快速、高效以及准确地获取对应第一流量请求的录制数据。
在一种实施方式中,计算两个入参之间的匹配度具体包括:
分别获取第一入参的字符串信息和第二入参的字符串信息;
获取两个字符串信息中相似字符的个数;
确定相似字符的个数与第一入参的字符串信息中字符总个数的比值为第一入参和第二入参之间的匹配度。
在一个示例中,第一入参的字符串信息为2018年10月3日,第二入参的字符串信息为2018年10月5日,则匹配度为90%。
又一个示例中,第一入参的字符串信息为2018年10月3日,第二入参的字符串信息为2018年8月5日,则匹配度为80%;
在一种实施方式中,流量回放方法还包括:获取预设的回放规则;根据回放规则,查找对应的录制数据。
在一个示例中,回放规则可以包括如下设置:
excludeFields(排除字段):设置排除的字段,即不用对该字段进行对比;其余字段一致,则可以表示回放成功。
focusFields(焦点字段):设置聚焦关注的字段,即对该焦点字段进行对比之后;如果该焦点字段一致,则可以表示回放成功。
Optimizations(优化计算):设置***内置功能,例如增加REQUEST_SIMILARITY(相似性请求)、PAGE_HELPER(人员分工制)插件,增加REQUEST_SIMILARITY插件,可以在步骤S221-S224未查询到录制数据的情况下,自动将匹配度降至80%,再进行查找。
requestChanges(请求转换):设置入参转换,能够将入参中的字符串进行替换,替换之后的字符串的匹配度匹配,则可以确认为匹配。
当跨环境进行录制和回放的时候,待测业务***与录制***会有很多不一致的地方,例如服务器ip、时间以及一些随机数等等。本申请实施例通过预设回放规则的方式,通过排除不需要对比的字段或者聚焦比较关心的业务字段的方式进行比较,使得本申请实施例的流量回放方法可以适用于跨环境的待测业务***的测试。
本申请实施例提供的流量回放平台,可以高效和准确地查找到与第一流量请求对应的录制数据,并且查找的录制数据全面,导致***错误误判较少,适用于跨环境的流量回放,场景配套广泛,可有效降低待测试业务***的二次拓展开发和维护成本。
需要说明的是,尽管以上述实施方式作为示例介绍了流量回放方法如上,但本领域技术人员能够理解,本申请应不限于此。
图6示出根据本申请一实施例的流量回放装置500的结构框图。如图6所示,该流量回放装置500可以包括:
响应模块510,用于响应于第一流量请求,获取响应数据;
查找模块520,用于在第一流量请求为回放请求的情况下,查找对应的录制数据;
对比模块530,用于对比响应数据和录制数据,确定回放结果。
在一种实施方式中,流量回放装置500还包括:
录制标识模块501,用于接收第二流量请求,确定第二流量请求的链路标识;链路标识用于标识响应第二流量请求的链路中调用的调用事件;
配置模块502,用于通过配置的录制切面和录制切点,记录调用事件的出参和入参;
存储模块503,用于拦截第二流量请求和调用事件,并将第二流量请求、调用事件以及调用事件的出参和入参存储为录制数据。
在一种实施方式中,查找模块520包括:
解析子模块,用于解析所述第一流量请求的请求头中的标识信息;
确定子模块,用于在所述标识信息包括回放标识的情况下,确定所述第一流量请求为回放请求。
在一种实施方式中,查找模块520包括:
检索信息确定子模块,用于确定响应数据的检索信息,检索信息包括类型和索引信息;
第一查找子模块,用于根据检索信息,查找检索信息对应的至少一条录制数据;
匹配度计算子模块,用于获取至少一条录制数据中的入参与响应数据中的入参的匹配度;
录制数据返回子模块,用于在匹配度满足第一预设阈值的情况下,返回该录制数据为对应第一流量请求的录制数据。
在一种实施方式中,查找模块520还用于:在未返回录制数据为对应第一流量请求的录制数据的情况下,获取响应数据的类型和入参;
在录制数据的数据库中查找与响应数据的类型相同以及与响应数据的入参匹配度满足第二预设阈值的入参的录制数据,返回该录制数据为对应第一流量请求的录制数据。
在一种实施方式中,查找模块520还用于:
在录制数据的数据库中未查找到与响应数据的类型相同以及与响应数据的入参匹配度满足第二预设阈值的入参的录制数据的情况下,确定与响应数据的类型相同且与响应数据的入参匹配度最大的录制数据,返回该录制数据为对应第一流量请求的录制数据。
在一种实施方式中,查找模块520中,匹配度计算子模块用于计算两个入参之间的匹配度,具体包括:
字符串信息获取子模块,用于分别获取第一入参的字符串信息和第二入参的字符串信息;
相似字符个数获取子模块,用于获取两个字符串信息中相似字符的个数;
匹配度确定子模块,用于确定相似字符的个数与第一入参的字符串信息中字符总个数的比值为第一入参和第二入参之间的匹配度。
在一种实施方式中,流量回放装置500还包括:
回放配置模块540,用于回放规则获取子模块,用于获取预设的回放规则;
查找模块520还用于根据所述回放规则,查找对应的录制数据;以及对比模块530还用于根据所述回放规则对比所述响应数据和所述录制数据。
本申请实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
图7示出根据本申请一实施例的电子设备的结构框图。如图7所示,该电子设备包括:存储器610和处理器620,存储器610内存储有可在处理器620上运行的指令。处理器620执行该指令时实现上述实施例中的流量回放方法。存储器610和处理器620的数量可以为一个或多个。该电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
该电子设备还可以包括通信接口630,用于与外界设备进行通信,进行数据交互传输。各个设备利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器620可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器610、处理器620及通信接口630集成在一块芯片上,则存储器610、处理器620及通信接口630可以通过内部接口完成相互间的通信。
应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Dignal Processing,DSP)、专用集成电路(Application Specific Sntegrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
本申请实施例提供了一种计算机可读存储介质(如上述的存储器610),其存储有计算机指令,该程序被处理器执行时实现本申请实施例中提供的方法。
可选的,存储器610可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据流量回放方法的电子设备的使用所创建的数据等。此外,存储器610可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器610可选包括相对于处理器620远程设置的存储器,这些远程存储器可以通过网络连接至流量回放方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包括于本申请的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或多个(两个或两个以上)用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分。并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。
应理解的是,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。上述实施例方法的全部或部分步骤是可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。上述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。该存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (11)
1.一种流量回放方法,其特征在于,包括:
响应于第一流量请求,获取响应数据;
在所述第一流量请求为回放请求的情况下,查找对应的录制数据;
对比所述响应数据和所述录制数据,确定回放结果。
2.根据权利要求1所述的方法,其特征在于,所述响应于第一流量请求,获取响应数据之前,还包括:
接收第二流量请求,确定所述第二流量请求的链路标识;所述链路标识用于标识响应所述第二流量请求的链路中调用的调用事件;
通过配置的录制切面和录制切点,记录所述调用事件的出参和入参;
拦截所述第二流量请求和所述调用事件,并将所述第二流量请求、所述调用事件以及所述调用事件的出参和入参存储为录制数据。
3.根据权利要求1所述的方法,其特征在于,还包括:
解析所述第一流量请求的请求头中的标识信息;及
在所述标识信息包括回放标识的情况下,确定所述第一流量请求为回放请求。
4.根据权利要求1所述的方法,其特征在于,所述在所述第一流量请求为回放请求的情况下,查找对应的录制数据,包括:
确定所述响应数据的检索信息,所述检索信息包括类型和索引信息;
根据所述检索信息,查找所述检索信息对应的至少一条录制数据;
获取所述至少一条录制数据中的入参与所述响应数据中的入参的匹配度;
在所述匹配度满足第一预设阈值的情况下,返回该录制数据为对应所述第一流量请求的录制数据。
5.根据权利要求4所述的方法,其特征在于,还包括:
在未返回录制数据为对应所述第一流量请求的录制数据的情况下,获取所述响应数据的类型和入参;
在录制数据的数据库中查找与所述响应数据的类型相同以及与所述响应数据的入参匹配度满足第二预设阈值的入参的录制数据,返回该录制数据为对应所述第一流量请求的录制数据。
6.根据权利要求5所述的方法,其特征在于,还包括:
在录制数据的数据库中未查找到与所述响应数据的类型相同以及与所述响应数据的入参匹配度满足第二预设阈值的入参的录制数据的情况下,确定与所述响应数据的类型相同且与所述响应数据的入参匹配度最大的录制数据,返回该录制数据为对应所述第一流量请求的录制数据。
7.根据权利要求4至6任一项所述的方法,其特征在于,计算两个入参之间的匹配度具体包括:
分别获取第一入参的字符串信息和第二入参的字符串信息;
获取两个字符串信息中相似字符的个数;
确定所述相似字符的个数与所述第一入参的字符串信息中字符总个数的比值为所述第一入参和所述第二入参之间的匹配度。
8.根据权利要求4至6任一项所述的方法,其特征在于,还包括:
获取预设的回放规则;
根据所述回放规则,查找对应的录制数据;以及根据所述回放规则对比所述响应数据和所述录制数据。
9.一种流量回放装置,其特征在于,包括:
响应模块,用于响应于第一流量请求,获取响应数据;
查找模块,用于在所述第一流量请求为回放请求的情况下,查找对应的录制数据;
对比模块,用于对比所述响应数据和所述录制数据,确定回放结果。
10.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-8中任一项所述的方法。
11.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210989949.3A CN115529250A (zh) | 2022-08-17 | 2022-08-17 | 流量回放方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210989949.3A CN115529250A (zh) | 2022-08-17 | 2022-08-17 | 流量回放方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115529250A true CN115529250A (zh) | 2022-12-27 |
Family
ID=84695856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210989949.3A Pending CN115529250A (zh) | 2022-08-17 | 2022-08-17 | 流量回放方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115529250A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120124074A1 (en) * | 2010-11-11 | 2012-05-17 | Verizon Patent And Licensing Inc. | Method and system for testing client-server applications |
CN105472296A (zh) * | 2014-09-09 | 2016-04-06 | 联想(北京)有限公司 | 实时性校验方法和装置 |
US20180137286A1 (en) * | 2016-11-16 | 2018-05-17 | International Business Machines Corporation | Method and apparatus for security testing of application flows that cannot be automated through http replay |
CN109783518A (zh) * | 2018-12-11 | 2019-05-21 | 深圳市优必选科技有限公司 | 一种信息查询方法、查询装置、存储介质及终端设备 |
CN111104323A (zh) * | 2019-12-17 | 2020-05-05 | 广州品唯软件有限公司 | 应用程序的功能测试方法、***、代理服务器及存储介质 |
CN111625452A (zh) * | 2020-05-22 | 2020-09-04 | 上海哔哩哔哩科技有限公司 | 流量回放方法和*** |
CN112637005A (zh) * | 2020-12-08 | 2021-04-09 | 广州品唯软件有限公司 | 流量回放方法、装置、计算机设备和存储介质 |
CN114661580A (zh) * | 2022-03-01 | 2022-06-24 | 上海复深蓝软件股份有限公司 | 流量录制回放方法、装置、计算机设备及存储介质 |
-
2022
- 2022-08-17 CN CN202210989949.3A patent/CN115529250A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120124074A1 (en) * | 2010-11-11 | 2012-05-17 | Verizon Patent And Licensing Inc. | Method and system for testing client-server applications |
CN105472296A (zh) * | 2014-09-09 | 2016-04-06 | 联想(北京)有限公司 | 实时性校验方法和装置 |
US20180137286A1 (en) * | 2016-11-16 | 2018-05-17 | International Business Machines Corporation | Method and apparatus for security testing of application flows that cannot be automated through http replay |
CN109783518A (zh) * | 2018-12-11 | 2019-05-21 | 深圳市优必选科技有限公司 | 一种信息查询方法、查询装置、存储介质及终端设备 |
CN111104323A (zh) * | 2019-12-17 | 2020-05-05 | 广州品唯软件有限公司 | 应用程序的功能测试方法、***、代理服务器及存储介质 |
CN111625452A (zh) * | 2020-05-22 | 2020-09-04 | 上海哔哩哔哩科技有限公司 | 流量回放方法和*** |
CN112637005A (zh) * | 2020-12-08 | 2021-04-09 | 广州品唯软件有限公司 | 流量回放方法、装置、计算机设备和存储介质 |
CN114661580A (zh) * | 2022-03-01 | 2022-06-24 | 上海复深蓝软件股份有限公司 | 流量录制回放方法、装置、计算机设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
张灿;薛云志;陈军成;: "一种基于Android平台GUI录制回放工具的设计与实现", 计算机应用与软件, no. 12, pages 6 - 9 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109284269B (zh) | 异常日志分析方法、装置、存储介质及服务器 | |
CN110928772B (zh) | 一种测试方法及装置 | |
CN110554958B (zh) | 图数据库测试方法、***、设备和存储介质 | |
CN110060139B (zh) | 账务处理方法及装置 | |
CN110647447B (zh) | 用于分布式***的异常实例检测方法、装置、设备和介质 | |
CN111563014A (zh) | 接口服务性能测试方法、装置、设备和存储介质 | |
CN111522728A (zh) | 自动化测试用例的生成方法、电子设备及可读存储介质 | |
CN108460068B (zh) | 报表导入导出的方法、装置、存储介质及终端 | |
CN112905323B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN109408361A (zh) | Monkey测试复原方法、装置、电子设备及计算机可读存储介质 | |
CN109359027A (zh) | Monkey测试方法、装置、电子设备及计算机可读存储介质 | |
CN112306833A (zh) | 应用程序的崩溃统计方法、装置、计算机设备及存储介质 | |
CN113220597B (zh) | 测试方法、测试装置、电子设备及存储介质 | |
CN112559525B (zh) | 数据检查***、方法、装置和服务器 | |
CN113138906A (zh) | 一种调用链数据采集方法、装置、设备及存储介质 | |
CN112948262A (zh) | 一种***测试方法、装置、计算机设备和存储介质 | |
CN115022201B (zh) | 一种数据处理功能测试方法、装置、设备及存储介质 | |
CN115529250A (zh) | 流量回放方法、装置、电子设备及存储介质 | |
CN114327988A (zh) | 一种可视化网络故障关系确定方法和装置 | |
CN114500249A (zh) | 一种根因定位方法和装置 | |
CN113760696A (zh) | 一种程序问题定位方法、装置、电子设备和存储介质 | |
CN111835566A (zh) | 一种***故障管理方法、装置及*** | |
CN111045983A (zh) | 核电站电子文件管理方法、装置、终端设备及介质 | |
CN113590488B (zh) | 模拟金融数据支撑的***测试方法与测试平台 | |
CN115718728A (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 |