CN112559361A - 流量回放方法、装置、设备及计算机可读介质 - Google Patents
流量回放方法、装置、设备及计算机可读介质 Download PDFInfo
- Publication number
- CN112559361A CN112559361A CN202011527398.6A CN202011527398A CN112559361A CN 112559361 A CN112559361 A CN 112559361A CN 202011527398 A CN202011527398 A CN 202011527398A CN 112559361 A CN112559361 A CN 112559361A
- Authority
- CN
- China
- Prior art keywords
- flow
- data
- service
- target
- test case
- 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
Images
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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Abstract
本申请涉及软件工程技术领域,尤其涉及一种流量回放方法、装置、设备及计算机可读介质。该方法包括:获取测试用例的配置数据,测试用例为对待验证服务进行测试的场景实例;根据配置数据在生产环境中录制目标线上服务产生的第一流量,目标线上服务的运行参数中包括测试用例的配置数据;从第一流量中选取与测试用例匹配的目标流量在待验证服务中回放。本申请通过将真实生产环境下的线上流量和测试用例结合,根据用例进行流量回放,从而在流量录制、回放的全过程有针对性的融入测试用例,进而提高流量回放覆盖的场景,提升流量回放的测试效果。
Description
技术领域
本申请涉及软件工程技术领域,尤其涉及一种流量回放方法、装置、设备及计算机可读介质。
背景技术
一个产品的上线,需要经过开发测试环节,而随着功能不断地迭代,测试要回归的功能越来越多,功能越来越复杂,如何对功能进行覆盖尽可能多的场景的测试成为软件工程领域亟需解决的问题。
目前,相关技术中,功能测试流程,大致为研发开发完成->测试进行验证->UAT环境验证->上线。在UAT环境验证中采用流量录制回放技术。目前流量录制回放的技术主要有Nginx层流量录制,直接回放到目标服务;基于业务代码层的引用;基于访问日志回收;基于TCP/IP层的引流等。但是相关技术中均未能将流量录制回放与用例打通整合,流量回放时与用例的贴合度较低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种流量回放方法、装置、设备及计算机可读介质,以解决不能在流量录制、回放的全过程有针对性的融入测试用例的技术问题。
根据本申请实施例的一个方面,本申请提供了一种流量回放方法,包括:获取测试用例的配置数据,测试用例为对待验证服务进行测试的场景实例;根据配置数据在生产环境中录制目标线上服务产生的第一流量,目标线上服务的运行参数中包括测试用例的配置数据;从第一流量中选取与测试用例匹配的目标流量在待验证服务中回放。
可选地,获取测试用例的配置数据包括:确定测试用例的依赖应用;查找依赖应用的数据接口和应用录制参数;确定数据接口的接口地址、接口录制参数,及数据接口的输入参数的数据类型、入参数量,数据接口的输出参数的数据类型、出参数量;将应用录制参数、接口地址、接口录制参数,及输入参数的数据类型、入参数量,输出参数的数据类型、出参数量作为配置数据。
可选地,根据配置数据在生产环境中录制目标线上服务产生的第一流量包括:确定录制时段;监听数据接口并抓取录制时段中目标线上服务接收到的数据请求;抓取目标线上服务响应数据请求而输出的反馈数据,第一流量包括数据请求和反馈数据。
可选地,从第一流量中选取与测试用例匹配的目标流量在待验证服务中回放包括:提取数据请求中与测试用例的输入参数的数量及数据类型匹配的目标数据请求;将目标数据请求发送至待验证服务;接收待验证服务响应目标数据请求输出的第一反馈数据,以完成流量回放。
可选地,从第一流量中选取与测试用例匹配的目标流量在待验证服务中回放,还包括:提取数据请求的类别标识;按照类别标识将数据请求划分为多个请求组,一个请求组中的数据请求具有同一个类别标识;根据每个请求组中数据请求的数量确定多个请求组之间的流量比;在进行多个测试用例的压力测试时,从多个请求组中按照流量比提取出目标数据请求发送给待验证服务,以进行多个测试用例的流量回放。
可选地,从第一流量中选取与测试用例匹配的目标流量在待验证服务中回放之后,该方法还包括:确定目标线上服务响应目标数据请求输出的第二反馈数据;在第一反馈数据与第二反馈数据一致的情况下,确定待验证服务通过测试用例的验证。
可选地,从第一流量中选取与测试用例匹配的目标流量在待验证服务中回放之后,该方法还包括:获取测试业务的流程节点;确定各个流程节点的调用接口,各个调用接口按照流程节点在测试业务中的流程顺序排列,形成调用链;为各个调用接口添加对应的测试用例;将第一流量按照调用链在测试业务中回放;在所有流程节点均通过测试用例的验证的情况下,确定测试业务通过验证。
根据本申请实施例的另一方面,本申请提供了一种流量回放装置,包括:配置数据获取模块,用于获取测试用例的配置数据,测试用例为对待验证服务进行测试的场景实例;流量录制模块,用于根据配置数据在生产环境中录制目标线上服务产生的第一流量,目标线上服务的运行参数中包括测试用例的配置数据;流量回放模块,用于从第一流量中选取与测试用例匹配的目标流量在待验证服务中回放。
根据本申请实施例的另一方面,本申请提供了一种电子设备,包括存储器、处理器、通信接口及通信总线,存储器中存储有可在处理器上运行的计算机程序,存储器、处理器通过通信总线和通信接口进行通信,处理器执行计算机程序时实现上述方法的步骤。
根据本申请实施例的另一方面,本申请还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述的方法。
本申请实施例提供的上述技术方案与相关技术相比具有如下优点:
本申请技术方案为获取测试用例的配置数据,测试用例为对待验证服务进行测试的场景实例;根据配置数据在生产环境中录制目标线上服务产生的第一流量,目标线上服务的运行参数中包括测试用例的配置数据;从第一流量中选取与测试用例匹配的目标流量在待验证服务中回放。本申请通过将真实生产环境下的线上流量和测试用例结合,根据用例进行流量回放,从而在流量录制、回放的全过程有针对性的融入测试用例,进而提高流量回放覆盖的场景,提升流量回放的测试效果。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本申请实施例提供的一种可选的流量回放方法硬件环境示意图;
图2为根据本申请实施例提供的一种可选的流量回放方法流程图;
图3为根据本申请实施例提供的一种可选的流量回放系统结构图;
图4为根据本申请实施例提供的一种可选的流量回放装置框图;
图5为本申请实施例提供的一种可选的电子设备结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
用户验收测试(User Acceptance Test,UAT),或用户可接受测试,是系统开发生命周期方法论的一个阶段,这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。这是管理性和防御性控制。
流量回放,通过记录线上流量,在开发或者测试环境回放,即拦截线上服务接收到的请求和该线上服务对该请求的响应,从而在测试服务中按照请求的拦截顺序依次输入请求,模拟用户请求,并将测试服务对该请求的响应与线上服务的响应进行对比,来发现测试服务的系统是否能够正常运行,降低代码变动给系统带来的风险。
相关技术中,功能测试流程,大致为研发开发完成->测试进行验证->UAT环境验证->上线。在UAT环境验证中采用流量录制回放技术。目前流量录制回放的技术主要有Nginx层流量录制,直接回放到目标服务;基于业务代码层的引用;基于访问日志回收;基于TCP/IP层的引流等。但是相关技术中均未能将流量录制回放与用例打通整合,流量回放时与用例的贴合度较低。
为了解决背景技术中提及的问题,根据本申请实施例的一方面,提供了一种流量回放方法的实施例。
可选地,在本申请实施例中,上述流量回放方法可以应用于如图1所示的由终端101和服务器103所构成的硬件环境中,流量回放系统可以搭载在上述终端,也可以搭建于上述服务器中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务,可在服务器上或独立于服务器设置数据库105,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101包括但不限于PC、手机、平板电脑等。
本申请实施例中的一种流量回放方法可以由服务器103来执行,还可以是由服务器103和终端101共同执行,如图2所示,该方法可以包括以下步骤:
步骤S202,获取测试用例的配置数据,测试用例为对待验证服务进行测试的场景实例。
本申请实施例中,上述测试用例可以是用于对待验证服务进行多场景测试的用例,具体可以为各个用例的接口及接口配置等参数。
可选地,获取测试用例的配置数据具体可以包括以下步骤:
步骤1,确定测试用例的依赖应用;
步骤2,查找依赖应用的数据接口和应用录制参数;
步骤3,确定数据接口的接口地址、接口录制参数,及数据接口的输入参数的数据类型、入参数量,数据接口的输出参数的数据类型、出参数量;
步骤4,将应用录制参数、接口地址、接口录制参数,及输入参数的数据类型、入参数量,输出参数的数据类型、出参数量作为配置数据。
本申请实施例中,测试用例都是基于具体的应用程序来设置的,在应用程序中又可以具体到该应用程序中的具体方法,即函数,例如,购物程序中,商品搜索方法、商品下单方法、商品支付方法、商品退款方法等,对每一个方法都可以设置测试用例,以测试这些方法、购物系统是否能够按照预期正确运行。
对于应用程序中的每一个方法,测试用例都需要明确该方法的数据接口,进一步的,需要确定各个接口的接口地址、接口录制参数,及各个接口的输入参数的数据类型、入参数量,数据接口的输出参数的数据类型、出参数量。对于一个方法而言,不同的输入参数,产生的用例是不一样的,例如对于saveProduct(保存商品接口),电脑这一类目的输入参数包括电子产品、价格、型号、配置参数等,而衣服这一类目的输入参数包括服饰、价格、尺码等,两个类目的输入参数的数量和数据类型都不相同,从而同一个方法(saveProduct)产生了不同的用例。
本申请实施例中,可以预先配置了测试用例后,流量回放系统根据测试用例的依赖应用,来获取该依赖应用的数据接口,及接口地址、接口录制参数,及数据接口的输入参数的数据类型、入参数量,数据接口的输出参数的数据类型、出参数量,这样在进行流量录制时,就可以根据实时流量中的请求数据、响应数据确定实时流量归属的测试用例。还可以根据配置的多个测试用例的用例范围、用例之间的比例,控制数据收集的数量,从而有针对性地进行线上流量录制。
步骤S204,根据配置数据在生产环境中录制目标线上服务产生的第一流量,目标线上服务的运行参数中包括测试用例的配置数据。
本申请实施例中,生产环境即线上环境,用户使用的环境。目标线上服务为根据配置数据确定的所要录制流量的应用程序,或该应用程序中的具体服务,上述第一流量为该目标线上服务在一定时间段内与用户进行交互从而产生的传输数据。
可选地,根据配置数据在生产环境中录制目标线上服务产生的第一流量包括:
步骤1,确定录制时段;
步骤2,监听数据接口并抓取录制时段中目标线上服务接收到的数据请求;
步骤3,抓取目标线上服务响应数据请求而输出的反馈数据,第一流量包括数据请求和反馈数据。
本申请实施例中,系统可以在录制时段内持续监听该测试用例的依赖应用的数据接口,并将经过该数据接口传输的所有数据抓取下来并保存,从而完成流量录制,经过该数据接口传输的所有数据包括用户请求、及目标线上服务响应用户请求的反馈数据。
本申请实施例中,流量录制可以基于业务代码的引入来实现,可以基于JVM agent动态代理或者代码层面的面向切面编程(Aspect Oriented Programming,AOP)/过滤器filter实现。面向切面编程是通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是面向对象程序设计(Object Oriented Programming,OOP)的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
获取第一流量后,可以将第一流量发送到消息队列,从而实现线上系统与流量回放系统,甚至于还包括测试系统之间的相互隔离。
本申请实施例中,还可以将录制的流量,根据接口配置动态的解析出各个用户请求中携带的输入参数的信息,包括输入参数的数量、数据类型等,从而结构化存储流量数据,并且还根据动态解析的结果确定各个用户请求所归属的测试用例。
步骤S206,从第一流量中选取与测试用例匹配的目标流量在待验证服务中回放。
本申请实施例中,流量回放可以是离线回放,即抓取用户的请求、及目标线上服务响应用户请求的反馈数据后保存,再根据一系列筛选条件进行流量回放,还可以是实时在线回放,即抓取用户请求后,将用户请求实时转发给测试系统中的待验证服务,并按照抓取时间,模拟用户请求,并获取待验证服务响应请求的数据,实现在线回放。
可选地,从第一流量中选取与测试用例匹配的目标流量在待验证服务中回放包括:
步骤1,提取数据请求中与测试用例的输入参数的数量及数据类型匹配的目标数据请求;
步骤2,将目标数据请求发送至待验证服务;
步骤3,接收待验证服务响应目标数据请求输出的第一反馈数据,以完成流量回放。
本申请实施例中,可以提取出与测试用例相匹配的流量,即用户请求,将这些用户请求按照抓取的时间戳发送至待验证服务,以模拟真实的用户交互,最后接收待验证服务返回的第一反馈数据,完成流量回放。
可选地,从第一流量中选取与测试用例匹配的目标流量在待验证服务中回放,还包括:
步骤1,提取数据请求的类别标识;
步骤2,按照类别标识将数据请求划分为多个请求组,一个请求组中的数据请求具有同一个类别标识;
步骤3,根据每个请求组中数据请求的数量确定多个请求组之间的流量比;
步骤4,在进行多个测试用例的压力测试时,从多个请求组中按照流量比提取出目标数据请求发送给待验证服务,以进行多个测试用例的流量回放。
本申请实施例中,可以根据测试用例的范围、各个测试用例之间的比例来全选或者部分选择流量进行回放,可以控制流量回放的比例及具体回放的数量,从而有针对性地进行测试用例验证。上述数据请求的类别标识为该数据请求中携带的类目标识,以电商应用为例,上述类别标识为商品类目,如电脑、衣服等,用以区分不同的用例,具有相同类别标识的请求可以划分到一个请求组中,如关于电脑的请求划为一组,关于衣服的请求划为一组。再根据各个请求组的大下,即各个请求组中数据请求的多少,从而确定各个请求组之间的流量比。在对具体的测试用例进行流量回放时,就可以根据该流量比选择全部或部分流量进行回放。
本申请实施例中,可以对回放记录进行查看、重试、标记等操作,查看即观察待验证服务响应用户请求输出的第一反馈数据,重试及重新向待验证服务发送用户请求,标记则是在查看的过程中,对于需要着重观测的、出现异常的第一反馈数据进行标记等。
本申请实施例中,进行流量回放之后,还需要进行回放统计,无论离线还是实时回放都需要对回放结果进行统计,比如回放次数、成功数、失败数等。
本申请技术方案为获取测试用例的配置数据,测试用例为对待验证服务进行测试的场景实例;根据配置数据在生产环境中录制目标线上服务产生的第一流量,目标线上服务的运行参数中包括测试用例的配置数据;从第一流量中选取与测试用例匹配的目标流量在待验证服务中回放。本申请通过将真实生产环境下的线上流量和测试用例结合,根据用例进行流量回放,从而在流量录制、回放的全过程有针对性的融入测试用例,进而提高流量回放覆盖的场景,提升流量回放的测试效果。
本申请实施例中,流量回放的目的是为了测试待验证服务是否达到投产标准,因此需要进行用例验证和业务链的业务验证。
可选地,从第一流量中选取与测试用例匹配的目标流量在待验证服务中回放之后,该方法还包括:确定目标线上服务响应目标数据请求输出的第二反馈数据;在第一反馈数据与第二反馈数据一致的情况下,确定待验证服务通过测试用例的验证。
本申请实施例中,通过比较待验证服务输出的第一反馈数据和线上服务输出的第二反馈数据,从而进行用例验证。用例验证可以是对比数据的一致性,还可以根据预设的用例对比配置信息进行比较,或者,还可以根据接口层的对比配置信息进行比较。
可选地,从第一流量中选取与测试用例匹配的目标流量在待验证服务中回放之后,该方法还包括:获取测试业务的流程节点;确定各个流程节点的调用接口,各个调用接口按照流程节点在测试业务中的流程顺序排列,形成调用链;为各个调用接口添加对应的测试用例;将第一流量按照调用链在测试业务中回放;在所有流程节点均通过测试用例的验证的情况下,确定测试业务通过验证。
本申请实施例中,对于业务链的业务验证,需要编排工作流,即确定业务流程的各个流程节点的调用接口,各个调用接口按照业务流程顺序排列,形成调用链,再为调用链中的各个调用接口添加测试用例,最后进行整个业务链的流量回放。例如,用户进行支付操作时,接口依赖查询接口、营销接口、支付渠道接口等,以查询接口作为入口层,依次添加查询接口的测试用例、营销接口的测试用例及支付渠道接口的测试用例。回放任务的时候,可以具体观察被依赖接口的测试用例是否通过,在所有流程节点均通过测试用例的验证的情况下,确定测试业务通过验证。
可选地,本申请实施例还提供一种可选的流量回放系统,如图3所示,用户登录线上环境,系统判断是否需要录制流量,若需要录制流量,则从流量回放平台中的录制配置获取监控录制参数,按照监控参数录制用户在业务方法中发出的数据请求和业务系统反馈的响应数据,并将数据请求和响应数据通过消息队列发送至流量回放平台进行流量录制结果的存储,已完成流量录制。
流量回放平台中,通过应用管理模块配置各个应用、服务的录制参数,工作人员可以在应用管理模块中修改录制参数。接口管理模块用于管理数据接口。流量管理模块用于提供流量查询接口,工作人员可以通过流量管理模块查询、下载流量数据。实时回放模块用于进行实时流量回放,并可以查询实时回放结果,还可以记录回放失败结果,用于研究回放失败原因。若实时回放,则将存储的流量通过回放器进行回放,以对需要验证的服务、环境等进行验证。离线回放模块用于进行离线回放,需要创建回放任务,并获取存储的流量数据,进而通过回放器进行回放,同样对需要验证的服务、环境等进行验证。回放器可以将流量回放结果和流量录制结果进行对比,对比结果可以与流量录制、回放结果共同存储于一个位置,便于进行结果分析。回放器管理模块可以查看回放器的状态,工作人员可以通过回放器管理模块对回放器进行维护。用例管理用于管理测试用例。流量回放平台的配置信息可以存储与数据库中。
根据本申请实施例的又一方面,如图4所示,提供了一种流量回放装置,包括:配置数据获取模块401,用于获取测试用例的配置数据,测试用例为对待验证服务进行测试的场景实例;流量录制模块403,用于根据配置数据在生产环境中录制目标线上服务产生的第一流量,目标线上服务的运行参数中包括测试用例的配置数据;流量回放模块405,用于从第一流量中选取与测试用例匹配的目标流量在待验证服务中回放。
需要说明的是,该实施例中的配置数据获取模块401可以用于执行本申请实施例中的步骤S202,该实施例中的流量录制模块403可以用于执行本申请实施例中的步骤S204,该实施例中的流量回放模块405可以用于执行本申请实施例中的步骤S206。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
可选地,该配置数据获取模块,具体用于:确定测试用例的依赖应用;查找依赖应用的数据接口和应用录制参数;确定数据接口的接口地址、接口录制参数,及数据接口的输入参数的数据类型、入参数量,数据接口的输出参数的数据类型、出参数量;将应用录制参数、接口地址、接口录制参数,及输入参数的数据类型、入参数量,输出参数的数据类型、出参数量作为配置数据。
可选地,该流量录制模块,具体用于:确定录制时段;监听数据接口并抓取录制时段中目标线上服务接收到的数据请求;抓取目标线上服务响应数据请求而输出的反馈数据,第一流量包括数据请求和反馈数据。
可选地,该流量回放模块,具体用于:提取数据请求中与测试用例的输入参数的数量及数据类型匹配的目标数据请求;将目标数据请求发送至待验证服务;接收待验证服务响应目标数据请求输出的第一反馈数据,以完成流量回放。
可选地,该流量回放模块,还用于:提取数据请求的类别标识;按照类别标识将数据请求划分为多个请求组,一个请求组中的数据请求具有同一个类别标识;根据每个请求组中数据请求的数量确定多个请求组之间的流量比;在进行多个测试用例的压力测试时,从多个请求组中按照流量比提取出目标数据请求发送给待验证服务,以进行多个测试用例的流量回放。
可选地,该流量回放装置,还包括用例验证模块,用于:确定目标线上服务响应目标数据请求输出的第二反馈数据;在第一反馈数据与第二反馈数据一致的情况下,确定待验证服务通过测试用例的验证。
可选地,该流量回放装置,还包括业务验证模块,用于:获取测试业务的流程节点;确定各个流程节点的调用接口,各个调用接口按照流程节点在测试业务中的流程顺序排列,形成调用链;为各个调用接口添加对应的测试用例;将第一流量按照调用链在测试业务中回放;在所有流程节点均通过测试用例的验证的情况下,确定测试业务通过验证。
根据本申请实施例的另一方面,本申请提供了一种电子设备,如图5所示,包括存储器501、处理器503、通信接口505及通信总线507,存储器501中存储有可在处理器503上运行的计算机程序,存储器501、处理器503通过通信接口505和通信总线507进行通信,处理器503执行计算机程序时实现上述方法的步骤。
上述电子设备中的存储器、处理器通过通信总线和通信接口进行通信。所述通信总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
根据本申请实施例的又一方面还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质。
可选地,在本申请实施例中,计算机可读介质被设置为存储用于所述处理器执行以下步骤的程序代码:
获取测试用例的配置数据,测试用例为对待验证服务进行测试的场景实例;
根据配置数据在生产环境中录制目标线上服务产生的第一流量,目标线上服务的运行参数中包括测试用例的配置数据;
从第一流量中选取与测试用例匹配的目标流量在待验证服务中回放。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本申请实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种流量回放方法,其特征在于,包括:
获取测试用例的配置数据,其中,所述测试用例为对待验证服务进行测试的场景实例;
根据所述配置数据在生产环境中录制目标线上服务产生的第一流量,其中,所述目标线上服务的运行参数中包括所述测试用例的所述配置数据;
从所述第一流量中选取与所述测试用例匹配的目标流量在所述待验证服务中回放。
2.根据权利要求1所述的方法,其特征在于,获取测试用例的配置数据包括:
确定所述测试用例的依赖应用;
查找所述依赖应用的数据接口和应用录制参数;
确定所述数据接口的接口地址、接口录制参数,及所述数据接口的输入参数的数据类型、入参数量,所述数据接口的输出参数的数据类型、出参数量;
将所述应用录制参数、所述接口地址、所述接口录制参数,及所述输入参数的数据类型、入参数量,所述输出参数的数据类型、出参数量作为所述配置数据。
3.根据权利要求2所述的方法,其特征在于,根据所述配置数据在生产环境中录制目标线上服务产生的第一流量包括:
确定录制时段;
监听所述数据接口并抓取所述录制时段中所述目标线上服务接收到的数据请求;
抓取所述目标线上服务响应所述数据请求而输出的反馈数据,其中,所述第一流量包括所述数据请求和所述反馈数据。
4.根据权利要求3所述的方法,其特征在于,从所述第一流量中选取与所述测试用例匹配的目标流量在所述待验证服务中回放包括:
提取所述数据请求中与所述测试用例的输入参数的数量及数据类型匹配的目标数据请求;
将所述目标数据请求发送至所述待验证服务;
接收所述待验证服务响应所述目标数据请求输出的第一反馈数据,以完成流量回放。
5.根据权利要求4所述的方法,其特征在于,从所述第一流量中选取与所述测试用例匹配的目标流量在所述待验证服务中回放,还包括:
提取所述数据请求的类别标识;
按照所述类别标识将所述数据请求划分为多个请求组,其中,一个所述请求组中的所述数据请求具有同一个所述类别标识;
根据每个所述请求组中所述数据请求的数量确定多个所述请求组之间的流量比;
在进行多个所述测试用例的压力测试时,从多个所述请求组中按照所述流量比提取出目标数据请求发送给所述待验证服务,以进行多个所述测试用例的流量回放。
6.根据权利要求4所述的方法,其特征在于,从所述第一流量中选取与所述测试用例匹配的目标流量在所述待验证服务中回放之后,所述方法还包括:
确定所述目标线上服务响应所述目标数据请求输出的第二反馈数据;
在所述第一反馈数据与所述第二反馈数据一致的情况下,确定所述待验证服务通过所述测试用例的验证。
7.根据权利要求1至6任一所述的方法,其特征在于,从所述第一流量中选取与所述测试用例匹配的目标流量在所述待验证服务中回放之后,所述方法还包括:
获取测试业务的流程节点;
确定各个所述流程节点的调用接口,其中,各个所述调用接口按照所述流程节点在所述测试业务中的流程顺序排列,形成调用链;
为各个所述调用接口添加对应的所述测试用例;
将所述第一流量按照所述调用链在所述测试业务中回放;
在所有所述流程节点均通过所述测试用例的验证的情况下,确定所述测试业务通过验证。
8.一种流量回放装置,其特征在于,包括:
配置数据获取模块,用于获取测试用例的配置数据,其中,所述测试用例为对待验证服务进行测试的场景实例;
流量录制模块,用于根据所述配置数据在生产环境中录制目标线上服务产生的第一流量,其中,所述目标线上服务的运行参数中包括所述测试用例的所述配置数据;
流量回放模块,用于从所述第一流量中选取与所述测试用例匹配的目标流量在所述待验证服务中回放。
9.一种电子设备,包括存储器、处理器、通信接口及通信总线,所述存储器中存储有可在所述处理器上运行的计算机程序,所述存储器、所述处理器通过所述通信总线和所述通信接口进行通信,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7任一项所述的方法的步骤。
10.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1至7任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011527398.6A CN112559361A (zh) | 2020-12-22 | 2020-12-22 | 流量回放方法、装置、设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011527398.6A CN112559361A (zh) | 2020-12-22 | 2020-12-22 | 流量回放方法、装置、设备及计算机可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112559361A true CN112559361A (zh) | 2021-03-26 |
Family
ID=75030795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011527398.6A Pending CN112559361A (zh) | 2020-12-22 | 2020-12-22 | 流量回放方法、装置、设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559361A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112765045A (zh) * | 2021-04-07 | 2021-05-07 | 四川新网银行股份有限公司 | 一种基于案例模板的流量回放方法 |
CN113065850A (zh) * | 2021-04-02 | 2021-07-02 | 京东数科海益信息科技有限公司 | 用于智能外呼机器人的话术测试方法及装置 |
CN113312259A (zh) * | 2021-05-26 | 2021-08-27 | 深圳前海微众银行股份有限公司 | 一种接口测试方法及装置 |
CN113472687A (zh) * | 2021-07-15 | 2021-10-01 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
CN113468061A (zh) * | 2021-07-15 | 2021-10-01 | 浙江百应科技有限公司 | 一种基于录制回放的自动化测试方法、装置及电子设备 |
CN113641583A (zh) * | 2021-08-16 | 2021-11-12 | 拉扎斯网络科技(上海)有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
CN113742228A (zh) * | 2021-09-02 | 2021-12-03 | 杭州网易云音乐科技有限公司 | 测试、数据回放及录制方法、系统、装置、设备及介质 |
CN114003451A (zh) * | 2021-10-27 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 一种接口测试方法、装置、系统及介质 |
CN114124747A (zh) * | 2021-10-15 | 2022-03-01 | 微梦创科网络科技(中国)有限公司 | 一种流量压测系统 |
CN114900445A (zh) * | 2022-04-28 | 2022-08-12 | 北京百度网讯科技有限公司 | 流量录制方法、装置及电子设备 |
CN115033495A (zh) * | 2022-08-02 | 2022-09-09 | 荣耀终端有限公司 | 一种压测模型创建方法及电子设备 |
CN115203063A (zh) * | 2022-09-16 | 2022-10-18 | 平安银行股份有限公司 | 基于实时录制的生产流量重跑风险程序的回放方法及系统 |
CN115242676A (zh) * | 2022-07-28 | 2022-10-25 | 度小满科技(北京)有限公司 | 软件系统容量压力测试方法、装置、电子设备及存储介质 |
CN115396346A (zh) * | 2022-08-30 | 2022-11-25 | 北京知道创宇信息技术股份有限公司 | 仿真压力测试方法、装置、系统和电子设备 |
CN115834443A (zh) * | 2022-09-07 | 2023-03-21 | 深圳依时货拉拉科技有限公司 | 流量回放方法、装置、计算机设备和存储介质 |
CN116719750A (zh) * | 2023-08-11 | 2023-09-08 | 海马云(天津)信息技术有限公司 | 软件测试方法及装置、服务器设备和存储介质 |
CN116974948A (zh) * | 2023-09-22 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 业务系统测试方法、系统、设备和介质 |
CN114124747B (zh) * | 2021-10-15 | 2024-04-30 | 微梦创科网络科技(中国)有限公司 | 一种流量压测系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572444A (zh) * | 2014-12-10 | 2015-04-29 | 网易(杭州)网络有限公司 | 一种游戏性能云测试平台及其测试方法 |
CN110221983A (zh) * | 2019-06-19 | 2019-09-10 | 深圳市腾讯网域计算机网络有限公司 | 测试方法、装置、计算机可读存储介质和计算机设备 |
CN110334007A (zh) * | 2019-05-27 | 2019-10-15 | 深圳壹账通智能科技有限公司 | 一种功能接口调用验证方法及装置、电子设备及存储介质 |
CN110413508A (zh) * | 2019-06-25 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 一种业务系统安全保障的数据处理方法、装置及系统 |
CN110457199A (zh) * | 2018-05-08 | 2019-11-15 | 北京京东尚科信息技术有限公司 | 性能测试的方法和装置 |
CN111045952A (zh) * | 2019-12-16 | 2020-04-21 | 广州品唯软件有限公司 | 软件测试方法、流量回放装置、终端设备及可读存储介质 |
CN111078560A (zh) * | 2019-12-18 | 2020-04-28 | 北京嘀嘀无限科技发展有限公司 | 基于流量剪枝的测试方法、装置、电子设备及存储介质 |
CN111506511A (zh) * | 2020-04-21 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 一种测试用例生成方法、装置、电子设备及介质 |
CN112100052A (zh) * | 2020-08-07 | 2020-12-18 | 北京奇艺世纪科技有限公司 | 一种接口测试场景的回放方法及装置 |
-
2020
- 2020-12-22 CN CN202011527398.6A patent/CN112559361A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572444A (zh) * | 2014-12-10 | 2015-04-29 | 网易(杭州)网络有限公司 | 一种游戏性能云测试平台及其测试方法 |
CN110457199A (zh) * | 2018-05-08 | 2019-11-15 | 北京京东尚科信息技术有限公司 | 性能测试的方法和装置 |
CN110334007A (zh) * | 2019-05-27 | 2019-10-15 | 深圳壹账通智能科技有限公司 | 一种功能接口调用验证方法及装置、电子设备及存储介质 |
CN110221983A (zh) * | 2019-06-19 | 2019-09-10 | 深圳市腾讯网域计算机网络有限公司 | 测试方法、装置、计算机可读存储介质和计算机设备 |
CN110413508A (zh) * | 2019-06-25 | 2019-11-05 | 阿里巴巴集团控股有限公司 | 一种业务系统安全保障的数据处理方法、装置及系统 |
CN111045952A (zh) * | 2019-12-16 | 2020-04-21 | 广州品唯软件有限公司 | 软件测试方法、流量回放装置、终端设备及可读存储介质 |
CN111078560A (zh) * | 2019-12-18 | 2020-04-28 | 北京嘀嘀无限科技发展有限公司 | 基于流量剪枝的测试方法、装置、电子设备及存储介质 |
CN111506511A (zh) * | 2020-04-21 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 一种测试用例生成方法、装置、电子设备及介质 |
CN112100052A (zh) * | 2020-08-07 | 2020-12-18 | 北京奇艺世纪科技有限公司 | 一种接口测试场景的回放方法及装置 |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113065850A (zh) * | 2021-04-02 | 2021-07-02 | 京东数科海益信息科技有限公司 | 用于智能外呼机器人的话术测试方法及装置 |
CN112765045A (zh) * | 2021-04-07 | 2021-05-07 | 四川新网银行股份有限公司 | 一种基于案例模板的流量回放方法 |
CN113312259A (zh) * | 2021-05-26 | 2021-08-27 | 深圳前海微众银行股份有限公司 | 一种接口测试方法及装置 |
CN113312259B (zh) * | 2021-05-26 | 2023-12-29 | 深圳前海微众银行股份有限公司 | 一种接口测试方法及装置 |
CN113468061A (zh) * | 2021-07-15 | 2021-10-01 | 浙江百应科技有限公司 | 一种基于录制回放的自动化测试方法、装置及电子设备 |
CN113472687A (zh) * | 2021-07-15 | 2021-10-01 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
CN113472687B (zh) * | 2021-07-15 | 2023-12-05 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
CN113641583A (zh) * | 2021-08-16 | 2021-11-12 | 拉扎斯网络科技(上海)有限公司 | 数据处理方法、装置、电子设备、存储介质及程序产品 |
CN113742228A (zh) * | 2021-09-02 | 2021-12-03 | 杭州网易云音乐科技有限公司 | 测试、数据回放及录制方法、系统、装置、设备及介质 |
CN113742228B (zh) * | 2021-09-02 | 2023-12-15 | 杭州网易云音乐科技有限公司 | 测试、数据回放及录制方法、系统、装置、设备及介质 |
CN114124747A (zh) * | 2021-10-15 | 2022-03-01 | 微梦创科网络科技(中国)有限公司 | 一种流量压测系统 |
CN114124747B (zh) * | 2021-10-15 | 2024-04-30 | 微梦创科网络科技(中国)有限公司 | 一种流量压测系统 |
CN114003451A (zh) * | 2021-10-27 | 2022-02-01 | 苏州浪潮智能科技有限公司 | 一种接口测试方法、装置、系统及介质 |
CN114003451B (zh) * | 2021-10-27 | 2023-08-25 | 苏州浪潮智能科技有限公司 | 一种接口测试方法、装置、系统及介质 |
CN114900445A (zh) * | 2022-04-28 | 2022-08-12 | 北京百度网讯科技有限公司 | 流量录制方法、装置及电子设备 |
CN114900445B (zh) * | 2022-04-28 | 2024-04-16 | 北京百度网讯科技有限公司 | 流量录制方法、装置及电子设备 |
CN115242676A (zh) * | 2022-07-28 | 2022-10-25 | 度小满科技(北京)有限公司 | 软件系统容量压力测试方法、装置、电子设备及存储介质 |
CN115242676B (zh) * | 2022-07-28 | 2023-10-03 | 度小满科技(北京)有限公司 | 软件系统容量压力测试方法、装置、电子设备及存储介质 |
CN115033495B (zh) * | 2022-08-02 | 2022-12-20 | 荣耀终端有限公司 | 一种压测模型创建方法及电子设备 |
CN115033495A (zh) * | 2022-08-02 | 2022-09-09 | 荣耀终端有限公司 | 一种压测模型创建方法及电子设备 |
CN115396346A (zh) * | 2022-08-30 | 2022-11-25 | 北京知道创宇信息技术股份有限公司 | 仿真压力测试方法、装置、系统和电子设备 |
CN115834443A (zh) * | 2022-09-07 | 2023-03-21 | 深圳依时货拉拉科技有限公司 | 流量回放方法、装置、计算机设备和存储介质 |
CN115203063A (zh) * | 2022-09-16 | 2022-10-18 | 平安银行股份有限公司 | 基于实时录制的生产流量重跑风险程序的回放方法及系统 |
CN116719750A (zh) * | 2023-08-11 | 2023-09-08 | 海马云(天津)信息技术有限公司 | 软件测试方法及装置、服务器设备和存储介质 |
CN116719750B (zh) * | 2023-08-11 | 2023-12-22 | 海马云(天津)信息技术有限公司 | 软件测试方法及装置、服务器设备和存储介质 |
CN116974948A (zh) * | 2023-09-22 | 2023-10-31 | 腾讯科技(深圳)有限公司 | 业务系统测试方法、系统、设备和介质 |
CN116974948B (zh) * | 2023-09-22 | 2024-01-09 | 腾讯科技(深圳)有限公司 | 业务系统测试方法、系统、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112559361A (zh) | 流量回放方法、装置、设备及计算机可读介质 | |
USRE48681E1 (en) | System and method for tracking web interactions with real time analytics | |
CN109120429B (zh) | 一种风险识别方法及系统 | |
CN108696399B (zh) | 业务服务的测试方法和装置 | |
CN112100052B (zh) | 一种接口测试场景的回放方法及装置 | |
CN104765678A (zh) | 对移动终端设备上的应用进行测试的方法及装置 | |
CN110222042B (zh) | 用于确定已核对业务数据的方法、装置、设备及系统架构 | |
CN107908548A (zh) | 一种生成测试用例的方法和装置 | |
CN113315828B (zh) | 一种流量录制方法、装置及流量录制设备、存储介质 | |
CN111522728A (zh) | 自动化测试用例的生成方法、电子设备及可读存储介质 | |
CN112860569A (zh) | 一种自动化测试方法、装置、电子设备和存储介质 | |
CN112199276B (zh) | 微服务架构的变更检测方法、装置、服务器及存储介质 | |
CN112650688A (zh) | 自动化回归测试方法、关联设备以及计算机程序产品 | |
CN110838067B (zh) | 一种房产交易数据处理方法、装置、服务器及存储介质 | |
CN113448834A (zh) | 埋点测试方法、装置、电子设备及存储介质 | |
CN113656307A (zh) | 一种系统容量评估方法、装置、设备和介质 | |
CN112948262A (zh) | 一种系统测试方法、装置、计算机设备和存储介质 | |
CN110825609B (zh) | 服务的测试方法、装置和系统 | |
CN111708712A (zh) | 用户行为测试用例的生成方法、流量回放方法及电子设备 | |
CN113535538A (zh) | 应用全链路自动化测试方法、装置、电子设备和存储介质 | |
CN111144987A (zh) | 异常购物行为的限制方法、限制组件及购物系统 | |
CN112199275B (zh) | 一种组件接口测试分析方法、装置、服务器以及存储介质 | |
CN113689232B (zh) | 对人群召回服务进行检测的方法、装置及电子设备 | |
CN111984519A (zh) | 一种用于业务系统的测试方法及其装置 | |
WO2024087949A1 (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176 Applicant after: Jingdong Technology Holding Co.,Ltd. Address before: Room 221, 2 / F, block C, 18 Kechuang 11th Street, Daxing District, Beijing, 100176 Applicant before: Jingdong Digital Technology Holding Co., Ltd |