CN112702436B - 流量录制方法、装置、计算机设备和存储介质 - Google Patents
流量录制方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112702436B CN112702436B CN202011589163.XA CN202011589163A CN112702436B CN 112702436 B CN112702436 B CN 112702436B CN 202011589163 A CN202011589163 A CN 202011589163A CN 112702436 B CN112702436 B CN 112702436B
- Authority
- CN
- China
- Prior art keywords
- call request
- flow
- response information
- local
- application server
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
本申请涉及一种流量录制方法、装置、计算机设备和存储介质。上述方法包括:接收应用服务器根据第一调用请求发起的第二调用请求,第一调用请求为调用应用服务器上运行的目标聚合服务的请求,第二调用请求为调用目标聚合服务的链路中的外部服务的请求;对第二调用请求进行流量录制,并将第二调用请求转发至测试环境中对应的外部服务器;接收外部服务器返回的针对第二调用请求的第二响应信息,并对第二响应信息进行流量录制。采用本方法能够在本地上录制聚合服务后端调用链路中外部服务的请求和响应流量。
Description
技术领域
本申请涉及软件测试技术领域,特别是涉及一种流量录制方法、装置、计算机设备和存储介质。
背景技术
随着软件测试技术的发展,出现了流量录制和回放技术,流量录制和回放技术,是指对生产环境下的业务流量执行录制,并将录制后的业务流量用于在生产环境或测试环境中进行回放的一种测试技术。通过流量录制可以抓取真实流量,通过回放可以重用真实流量进行后续的测试。
在传统的流量录制过程中,一般只能录制应用服务的前端发送的请求流量以及应用服务返回至前端的响应流量。但是,对于聚合服务,其整个链路除了包含与前端的交互之外,其后端还包含复杂的调用外部服务的逻辑,然而,在聚合服务的真实调用或测试过程中,传统的流量录制方法无法覆盖聚合服务后端调用链路上的这部分请求和响应流量。
发明内容
基于此,有必要针对上述技术问题,提供一种能够在本地上录制聚合服务后端链路中请求和响应流量的流量录制方法、装置、计算机设备和存储介质。
一种流量录制方法,上述方法包括:
接收应用服务器根据第一调用请求发起的第二调用请求,第一调用请求为调用应用服务器上运行的目标聚合服务的请求,第二调用请求为调用目标聚合服务的链路中的外部服务的请求;
对第二调用请求进行流量录制,并将第二调用请求转发至测试环境中对应的外部服务器;
接收外部服务器返回的针对第二调用请求的第二响应信息,并对第二响应信息进行流量录制。
在一个实施例中,接收应用服务器根据第一调用请求发起的第二调用请求之前,方法还包括:向应用服务器发送第一调用请求,并对第一调用请求进行流量录制;
在一个实施例中,在接收外部服务器返回的针对第二调用请求的第二响应信息之后,方法还包括:将第二响应信息转发至应用服务器,接收应用服务器返回的针对第一调用请求的第一响应信息,并对第一响应信息进行流量录制。
在一个实施例中,第二调用请求由应用服务器发送至模拟服务器,并通过模拟服务器转发至本地计算机。
在一个实施例中,上述方法还包括:在目标聚合服务的应用程序域上配置环境变量,以使应用服务器将第二请求发送至模拟服务器;将目标聚合服务的链路中的外部服务的mock桩注册到模拟服务器,以使模拟服务器在接收到第二调用请求时,将第二调用请求转发至本地计算机。
在一个实施例中,上述方法还包括:根据录制的第二调用请求的流量和第二响应信息的流量生成对应的外部服务的用例数据。
在一个实施例中,在根据录制的第二调用请求的流量和第二响应信息的流量生成对应的外部服务的用例数据之前,上述方法还包括:将录制的第二调用请求的流量和第二响应信息的流量存入缓存数据库;根据录制的第二调用请求的流量和第二响应信息的流量生成对应的外部服务的用例数据,包括:根据缓存数据库中有效的第二调用请求的流量和有效的第二响应信息的流量生成对应的外部服务的用例数据。
在一个实施例中,上述方法还包括:利用录制的第一调用请求的流量、第一响应信息的流量、第二调用请求的流量以及第二响应信息的流量对应用服务器上运行的待测试聚合服务进行测试。
在一个实施例中,利用录制的第一调用请求的流量、第一响应信息的流量、第二调用请求的流量以及第二响应信息的流量对应用服务器上运行的待测试聚合服务进行测试,包括:
根据录制的第一调用请求的流量向应用服务器发送第三调用请求,第三调用请求为调用应用服务器上运行的待测试聚合服务的请求;
接收应用服务器根据第三调用请求发起的调用待测试聚合服务的链路中的外部服务的第四调用请求;
根据录制的第二调用请求的流量将第四调用请求与第二调用请求进行比较断言校验;
若比较断言校验成功,获取录制的第二响应信息的流量,并根据录制的第二响应信息的流量将第二响应信息发送至应用服务器;
接收应用服务器返回的针对第三调用请求的第三响应信息;
在一个实施例中,上述方法还包括:根据录制的第一响应信息的流量将第三响应信息与第一响应信息进行比较断言校验。
一种流量录制装置,上述装置包括:
外部请求接收模块,用于接收应用服务器根据第一调用请求发起的第二调用请求,第一调用请求为调用应用服务器上运行的目标聚合服务的请求,第二调用请求为调用目标聚合服务的链路中的外部服务的请求;
外部请求转发模块,用于对第二调用请求进行流量录制,并将第二调用请求转发至测试环境中对应的外部服务器;
外部响应接收模块,用于接收外部服务器返回的针对第二调用请求的第二响应信息,并对第二响应信息进行流量录制。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的流量录制方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的流量录制方法的步骤。
上述流量录制方法、装置、计算机设备和存储介质,在运行有聚合服务的应用服务器以及运行有该聚合服务链路中的外部服务的外部服务器之间引入了本地计算机,通过本地计算机将目标聚合服务调用外部服务的请求转发给外部服务器,并接收外部服务器返回的响应信息,可以在本地计算机上实现对聚合服务后端调用链路中的请求和响应流量的录制。
附图说明
图1为一个实施例中流量录制方法的应用环境图;
图2为一个实施例中流量录制方法的流程示意图;
图3为一个实施例中利用录制的第一调用请求的流量、第一响应信息的流量、第二调用请求的流量以及第二响应信息的流量对应用服务器上运行的待测试聚合服务进行测试步骤的流程示意图;
图4为一个应用实例中聚合服务功能测试过程中实现流量录制的技术构架示意图;
图5为一个应用实例中通过回放录制的流量数据对待测试聚合服务进行测试的技术构架示意图;
图6为一个实施例中流量录制装置的结构框图;
图7A为一个实施例中计算机设备中服务器的内部结构图;
图7B为一个实施例中计算机设备中终端的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请提供的流量录制方法,可以应用于如图1所示的应用环境中。其中,本地计算机102、应用服务器104以及外部服务器106可以通过网络进行通信。本地计算机102接收应用服务器104根据第一调用请求发起的第二调用请求,对第二调用请求进行流量录制,并将第二调用请求转发至测试环境中对应的外部服务器106,接收外部服务器106返回的针对第二调用请求的第二响应信息,并对第二响应信息进行流量录制。
其中,本地计算机可以包括本地终端模块1022和本地代理模块1024,本地终端模块1022可以但不限于由各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备组成,本地代理模块1024可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种流量录制方法,以该方法应用于图1中的本地计算机为例进行说明,包括以下步骤:
步骤S202:接收应用服务器根据第一调用请求发起的第二调用请求,第一调用请求为调用应用服务器上运行的目标聚合服务的请求,第二调用请求为调用目标聚合服务的链路中的外部服务的请求。
其中,目标聚合服务是指被录制流量的聚合模式的应用服务,聚合模式是最常用的应用服务组合模式,其根据业务流程处理的需要,以一定的顺序调用依赖的多个外部服务(微服务),对依赖的外部服务返回的数据进行组合、加工和转换,最后以一定的形式返回给调用方。应用服务器上运行有目标聚合服务。第一调用请求是指调用应用服务器上运行的目标聚合服务的请求。第二调用请求是指目标聚合服务调用其链路中所依赖的外部服务的请求。
具体地,运行有目标聚合服务的应用服务器在接收到本地计算机中的本地终端模块发送的调用其上运行的目标聚合服务的第一调用请求时,可以将目标聚合服务根据第一调用请求发起的调用链路后端相关外部服务的第二调用请求转发至本地计算机中的本地代理模块。本地计算机中的本地代理模块接收该第二调用请求。
步骤S204:对第二调用请求进行流量录制,并将第二调用请求转发至测试环境中对应的外部服务器。
其中,外部服务器上运行有与第二调用请求对应的外部服务。测试环境是指模拟出的接近真实生产环境的环境,例如,可以是staging测试环境。
具体地,本地计算机中的本地代理模块在接收到应用服务器发送的第二调用请求时,可以将第二调用请求转发至测试环境中对应的外部服务器,在接收第二调用请求或将第二调用请求进行转发的过程中,可以动态对第二调用请求进行流量录制,从而在本地上获得第二调用请求的流量数据。
步骤S206:接收外部服务器返回的针对第二调用请求的第二响应信息,并对第二响应信息进行流量录制。
其中,第二响应信息为外部服务器上运行的外部服务针对第二调用请求返回的响应信息。
具体地,本地计算机中的本地代理模块在接收到外部服务器返回的第二响应信息时,可以对第二响应信息进行流量录制,从而在本地上获得第二响应请求的流量数据。
上述流量录制方法,在运行有聚合服务的应用服务器以及运行有该聚合服务链路中的外部服务的外部服务器之间引入了本地计算机,通过本地计算机将目标聚合服务调用外部服务的请求转发给外部服务器,并接收外部服务器返回的响应信息,可以在本地计算机上实现对聚合服务后端调用链路中外部服务请求和响应流量的录制。
在一个实施例中,接收应用服务器根据第一调用请求发起的第二调用请求之前,上述方法还包括:向应用服务器发送第一调用请求,并对第一调用请求进行流量录制。
具体地,本地计算机中的本地终端模块可以向应用服务器发起调用应用服务器上运行的目标聚合服务的第一调用请求,应用服务器接收到第一调用请求后启用目标聚合服务,在目标聚合服务被启用时,目标聚合服务会发起调用后端链路中所依赖的外部服务的第二调用请求,此时,应用服务器可以将第二调用请求转发至本地计算机中的本地代理模块。其中,本地计算机中的本地终端模块可以在发送第一调用请求的过程中对第一调用请求进行流量录制,以在本地上获得第一调用请求的流量数据。
在一个实施例中,在接收外部服务器返回的针对第二调用请求的第二响应信息之后,上述方法还包括:将第二响应信息转发给应用服务器,接收应用服务器返回的针对第一调用请求的第一响应信息,并对第一响应信息进行流量录制。
具体地,在本地计算机中的本地代理模块接收到外部服务器返回的第二响应信息之后,进一步可以将第二响应信息转发给应用服务器,应用服务器上运行的目标聚合服务根据外部服务返回的第二响应信息生成针对第一调用请求的第一响应信息,应用服务器将第一响应信息返回至本地计算机中的本地终端模块,本地终端模块可以在接收第一响应信息的过程中对第一响应信息进行流量录制,以在本地上获得第一响应信息的流量数据。
上述两个实施例,分别增加了通过本地计算机对目标聚合服务的第一调用请求和第一返回响应的流量录制,通过上述两个实施例的结合,在目标聚合服务的测试过程中,可以在本地上获取到目标聚合服务完整链路中请求和响应的流量数据,即包括目标聚合服务的调用请求、目标聚合服务的响应、目标聚合服务调用各外部服务的调用请求以及各外部服务的响应。不需要在录制了前端流量后再分别针对后端的各外部服务器单独进行测试,从而可以提高聚合服务流量录制的效率。
在一个实施例中,第二调用请求由应用服务器发送至模拟服务器,并通过模拟服务器转发至本地计算机。本实施例,通过借助部署模拟服务器的方式可以实现将目标聚合服务调用外部服务的第二调用请求转发给本地计算机。模拟服务器的搭建框架不限,例如,可以采用vmock server等。
在一个实施例中,上述方法还包括:在目标聚合服务的应用程序域上配置环境变量,以使应用服务器将第二请求发送至模拟服务器;将目标聚合服务的链路中的外部服务的mock桩注册到模拟服务器,以使模拟服务器在接收到第二调用请求时,将第二调用请求转发至本地计算机。
在本实施例中,通过在目标聚合服务的应用程序域上配置环境变量,可以实现应用服务器将调用外部服务的第二调用请求转发至模拟服务器的功能,例如,对于vmockserver而言,环境变量可以参考如下配置:VIP_OSP_LOCAL_PROXY=vmock-server.tools.vipshop.com:3080。
此外,通过预先将目标聚合服务的链路中的外部服务的mock桩注册到模拟服务器,模拟服务器在接收到第二调用请求时,就可以实现将其转发至对应的外部服务器的功能。进一步,当本地计算机中的本地代理模块接收到外部服务器返回的针对第二调用请求的第二响应信息时,也可以借助模拟服务器的中转将第二响应信息转发给应用服务器。
本实施例,通过部署模拟服务器的形式不仅可以实现请求或响应的中转,而且对于整个测试过程而言,通过搭建模拟服务器还可以在测试环境中缺少某个或某些需要被调用的外部服务时,通过静态模板或者代码组装的形式模拟缺少的外部服务返回相应的响应信息,从而确保聚合服务的整个测试过程完整流畅的进行。
在一个实施例中,上述方法还包括:根据录制的第二调用请求的流量和第二响应信息的流量生成对应的外部服务的用例数据。
在本实施例中,可以根据录制的调用目标聚合服务的链路中外部服务的第二调用请求以及外部服务对应返回的第二响应信息的流量数据,生成目标聚合服务的链路中各外部服务对应的测试用例数据。本实施例,通过抓取真实的流量数据并根据真实的流量数据生成相应服务的用例数据,可以提高自动化测试用例的生成效率,提高流量数据的利用率,从而减轻测试人员编写自动化测试用例的工作量。
进一步,还可以根据录制的第一调用请求和第一响应信息的流量数据,生成目标聚合服务的测试用例数据,至此,在针对目标聚合服务的测试过程中,不仅可以根据抓取的前端请求和响应的流量生成目标聚合服务的用例数据,还可以根据抓取的后端请求和响应的流量生成链路中各外部服务的用例数据,提高了用例数据生成的效率,减轻了测试人员编写自动化用例的工作量和用例数据维护的成本。
在一个实施例中,在根据录制的第二调用请求的流量和第二响应信息的流量生成对应的外部服务的用例数据之前,该方法还包括:将录制的第二调用请求的流量和第二响应信息的流量存入缓存数据库;根据录制的第二调用请求的流量和第二响应信息的流量生成对应的外部服务的用例数据,包括:根据缓存数据库中有效的第二调用请求的流量和有效的第二响应信息的流量生成对应的外部服务的用例数据。
本实施例,在生成持久化的用例数据之前,还可以先将录制的流量数据暂存入缓存数据库中,通过设置缓存数据库数据失效时间,可以实现后续有效数据对在前无效数据的覆盖,从而提高有效用例数据的生成效率,提高持久化的用例数据的可用性。
在一个实施例中,上述方法还包括:利用录制的第一调用请求的流量、第一响应信息的流量、第二调用请求的流量以及第二响应信息的流量对应用服务器上运行的待测试聚合服务进行测试。
本实施例,通过对录制的流量数据进行回放,可以实现待测试聚合服务的功能测试或回归测试等。其中,待测试聚合服务可以是目标聚合服务本身,也可以是增加或修改了某一调用链路的目标聚合服务或某些代码修改后的目标聚合服务等。
在对待测试聚合服务的测试过程中,由于可以回放预先录制的调用外部服务的请求和响应的流量数据,因此不再需要与外部服务器进行交互,也不需要采用传统的静态模板或者单纯的通过代码组装来模拟外部服务的返回,可以高效、简单地实现对待测试聚合服务的测试。采用本实施例的方法对待测试聚合服务进行功能测试可以提效20%左右,进行回归测试可以提效80%左右。
在一个实施例中,利用录制的第一调用请求的流量、第一响应信息的流量、第二调用请求的流量以及第二响应信息的流量对应用服务器上运行的待测试聚合服务进行测试,具体可以包括下述步骤:
步骤S302:(本地计算机中的本地终端模块)根据录制的第一调用请求的流量向应用服务器发送第三调用请求,第三调用请求为调用应用服务器上运行的待测试聚合服务的请求。
步骤S304:(本地计算机中的本地模拟模块)接收应用服务器根据第三调用请求发起的调用待测试聚合服务的外部服务的第四调用请求。
步骤S306:(本地计算机中的本地模拟模块)根据录制的第二调用请求的流量将第四调用请求与第二调用请求进行比较断言校验。
步骤S308:若比较断言校验成功,(本地计算机中的本地模拟模块)获取录制的第二响应信息的流量,并根据录制的第二响应信息的流量将第二响应信息发送给应用服务器。
步骤S310:(本地计算机中的本地模拟模块)接收应用服务器返回的针对第三调用请求的第三响应信息。
其中,第三调用请求是指本地计算机通过回放录制的第一调用请求的流量,并对流量数据进行重新转化组装后向应用服务器发送的调用被测试应用服务的请求。第四调用请求是指被测试应用服务被调用后其调用链路中所依赖的外部服务的请求。第三响应信息是指被测试应用服务针对第三调用请求返回的响应。比较断言可以通过比较请求或响应中报文的相似度来实现,是否校验成功所依据的相似度阈值可以根据需要进行设置。本地模拟模块与本地代理模块可以通过相同或不同的服务器实现。
进一步地,本地计算机中的本地模拟模块还可以根据录制的第一响应信息的流量将第三响应信息与第一响应信息进行比较断言校验。
在一个实施例中,也可以借助部署模拟服务器的形式,应用服务器将第四调用请求先发送至模拟服务器,再通过模拟服务器转发至本地计算机的本地模拟模块。进一步还可以根据录制的第二响应信息的流量数据将第二响应信息先返回给模拟服务器,再通过模拟服务器转发给应用服务器。
下面,结合一个应用实例,对本申请涉及的流量录制方法进行进一步详细说明。如图4所示,图4示出了一个应用实例中聚合服务功能测试过程中实现流量录制的技术构架示意图。流量录制的过程,具体可以包括下述步骤:
1、本地代理(本地代理模块)将所有需要转发的外部服务的mock桩注册到vmockserver。
2、本地客户端(本地终端模块)请求目标聚合服务的服务器或接口。
3、运行有目标聚合服务的应用服务器将调用外部服务的请求全部转发到vmockserver(此处通过在被测域上配置环境变量实现:VIP_OSP_LOCAL_PROXY=vmock-server.tools.vipshop.com:3080)
4、基于第1步,vmock server将调用外部服务的请求再次转发到本地代理。
5、本地代理再次将调用外部服务的请求转发到staging环境的真实外部服务器。
6、staging环境的真实服务器应答返回信息(响应信息)。
7、本地代理拿到外部服务的返回信息后,将返回信息同步给vmock server。
8、vmock server将外部服务的返回信息同步给目标聚合服务。
9、目标聚合服务根据外部服务的返回信息同步返回结果给本地客服端,整个链路实现闭环。
基于上述步骤,此时,在本地上已获取到所有外部服务的请求和返回信息,以及目标聚合服务的请求和返回结果,此时可以将信息缓存到redis中,同时配置失效时间(可以默认一小时)。进一步,测试人员在确认本次测试结果有效后,可以通过工具将redis中缓存的结果,持久化到mysql数据库中,生成有效的测试用例数据。
参考图5所示,图5示出了一个应用实例中通过回放录制的流量数据对待测试聚合服务进行测试的技术构架示意图,具体可以包括下述步骤:
1、本地mock(本地模拟模块)将需要转发的待测试聚合服务(被测应用)的外部服务的mock桩注册到vmock server。
2、本地客户端(本地终端模块)从mysql数据库中获取已录制的目标聚合服务的调用请求,将录制的请求数据转化组装后向待测试聚合服务发起调用请求。
3、待测试聚合服务收到请求后,将调用外部服务的请求全部转发到vmockserver。
4、vmock server将调用外部服务的请求转发到本地mock。
5、本地mock从mysql数据库中根据匹配条件(默认全匹配)捞取已录制的外部服务的请求所对应的返回信息,将录制的外部服务的返回信息返回给vmock server。
6、vmock server将录制的外部服务的返回信息同步给待测试聚合服务。
7、待测试聚合服务根据外部服务的返回信息同步返回结果至本地客户端。
基于上述步骤,本地客户端可以将第7步待测试聚合服务的同步返回结果与mysql数据库中已录制的同步返回结果进行比较断言,同时,将待测试聚合服务发起的外部服务请求报文与已录制的外部服务请求报文进行比较断言。
应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种流量录制装置,包括:外部请求接收模块10、外部请求转发模块20和外部响应接收模块30,其中:
外部请求接收模块10,用于接收应用服务器根据第一调用请求发起的第二调用请求,第一调用请求为调用应用服务器上运行的目标聚合服务的请求,第二调用请求为调用目标聚合服务的链路中的外部服务的请求;
外部请求转发模块20,用于对第二调用请求进行流量录制,并将第二调用请求转发至测试环境中对应的外部服务器;
外部响应接收模块30,用于接收外部服务器返回的针对第二调用请求的第二响应信息,并对第二响应信息进行流量录制。
在一个实施中,上述装置还包括本地终端模块40,用于在接收应用服务器根据第一调用请求发起的第二调用请求之前,向应用服务器发送第一调用请求,并对第一调用请求进行流量录制;
在一个实施例中,外部响应接收模块30还用于在接收外部服务器返回的针对第二调用请求的第二响应信息之后,将第二响应信息转发给应用服务器,本地终端模块40还用于接收应用服务器返回的针对第一调用请求的第一响应信息,并对第一响应信息进行流量录制。
在一个实施例中,外部请求接收模块10还用于在目标聚合服务的应用程序域上配置环境变量,以使应用服务器将第二请求发送至模拟服务器,将目标聚合服务的链路中的外部服务的mock桩注册到模拟服务器,以使模拟服务器在接收到第二调用请求时,将第二调用请求转发至本地计算机。
在一个实施例中,上述装置还包括用例数据生成模块50,用于根据录制的第二调用请求的流量和第二响应信息的流量生成对应的外部服务的用例数据。
在一个实施例中,用例数据生成模块50在根据录制的第二调用请求的流量和第二响应信息的流量生成对应的外部服务的用例数据之前,将录制的第二调用请求的流量和第二响应信息的流量存入缓存数据库,根据缓存数据库中有效的第二调用请求的流量和有效的第二响应信息的流量生成对应的外部服务的用例数据。
在一个实施例中,上述装置还包括本地模拟模块60,用于利用录制的第一调用请求的流量、第一响应信息的流量、第二调用请求的流量以及第二响应信息的流量对应用服务器上运行的待测试聚合服务进行测试。
在一个实施例中,本地模拟模块60根据录制的第一调用请求的流量向应用服务器发送第三调用请求,第三调用请求为调用应用服务器上运行的待测试聚合服务的请求,接收应用服务器根据第三调用请求发起的调用待测试聚合服务的链路中的外部服务的第四调用请求,根据录制的第二调用请求的流量将第四调用请求与第二调用请求进行比较断言校验,若比较断言校验成功,获取录制的第二响应信息的流量,并根据录制的第二响应信息的流量将第二响应信息发送至应用服务器,接收应用服务器返回的针对第三调用请求的第三响应信息。
在一个实施例中,本地模拟模块60还用于根据录制的第一响应信息的流量将第三响应信息与第一响应信息进行比较断言校验。
关于流量录制装置的具体限定可以参见上文中对于流量录制方法的限定,在此不再赘述。上述流量录制装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以包括服务器和终端。服务器内部结构图可以如图7A所示,终端内部结构图可以如图7B所示。服务器包括通过系统总线连接的处理器、存储器、网络接口。终端包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与其他设备通过网络连接通信。终端的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。该计算机设备上的计算机程序被处理器执行时以实现一种流量录制方法。
本领域技术人员可以理解,图7A和7B中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:接收应用服务器根据第一调用请求发起的第二调用请求,第一调用请求为调用应用服务器上运行的目标聚合服务的请求,第二调用请求为调用目标聚合服务的链路中的外部服务的请求;对第二调用请求进行流量录制,并将第二调用请求转发至测试环境中对应的外部服务器;接收外部服务器返回的针对第二调用请求的第二响应信息,并对第二响应信息进行流量录制。
在一个实施例中,处理器执行计算机程序实现接收应用服务器根据第一调用请求发起的第二调用请求之前,还实现向应用服务器发送第一调用请求,并对第一调用请求进行流量录制。
在一个实施例中,处理器执行计算机程序实现在接收外部服务器返回的针对第二调用请求的第二响应信息之后,还实现将第二响应信息转发至应用服务器,接收应用服务器返回的针对第一调用请求的第一响应信息,并对第一响应信息进行流量录制。
在一个实施例中,处理器执行计算机程序实现第二调用请求由应用服务器发送至模拟服务器,并通过模拟服务器转发至本地计算机。
在一个实施例中,处理器执行计算机程序还实现在目标聚合服务的应用程序域上配置环境变量,以使应用服务器将第二请求发送至模拟服务器;将目标聚合服务的链路中的外部服务的mock桩注册到模拟服务器,以使模拟服务器在接收到第二调用请求时,将第二调用请求转发至本地计算机。
在一个实施例中,处理器执行计算机程序还实现根据录制的第二调用请求的流量和第二响应信息的流量生成对应的外部服务的用例数据。
在一个实施例中,处理器执行计算机程序实现在根据录制的第二调用请求的流量和第二响应信息的流量生成对应的外部服务的用例数据之前,还实现将录制的第二调用请求的流量和第二响应信息的流量存入缓存数据库,根据缓存数据库中有效的第二调用请求的流量和有效的第二响应信息的流量生成对应的外部服务的用例数据。
在一个实施例中,处理器执行计算机程序还实现利用录制的第一调用请求的流量、第一响应信息的流量、第二调用请求的流量以及第二响应信息的流量对应用服务器上运行的待测试聚合服务进行测试。
在一个实施例中,处理器执行计算机程序实现利用录制的第一调用请求的流量、第一响应信息的流量、第二调用请求的流量以及第二响应信息的流量对应用服务器上运行的待测试聚合服务进行测试时,具体实现根据录制的第一调用请求的流量向应用服务器发送第三调用请求,第三调用请求为调用应用服务器上运行的待测试聚合服务的请求;接收应用服务器根据第三调用请求发起的调用待测试聚合服务的链路中的外部服务的第四调用请求;根据录制的第二调用请求的流量将第四调用请求与第二调用请求进行比较断言校验;若比较断言校验成功,获取录制的第二响应信息的流量,并根据录制的第二响应信息的流量将第二响应信息发送至应用服务器;接收应用服务器返回的针对第三调用请求的第三响应信息。
在一个实施例中,处理器执行计算机程序还实现根据录制的第一响应信息的流量将第三响应信息与第一响应信息进行比较断言校验。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收应用服务器根据第一调用请求发起的第二调用请求,第一调用请求为调用应用服务器上运行的目标聚合服务的请求,第二调用请求为调用目标聚合服务的链路中的外部服务的请求;对第二调用请求进行流量录制,并将第二调用请求转发至测试环境中对应的外部服务器;接收外部服务器返回的针对第二调用请求的第二响应信息,并对第二响应信息进行流量录制。
在一个实施例中,计算机程序被处理器执行实现接收应用服务器根据第一调用请求发起的第二调用请求之前,还实现向应用服务器发送第一调用请求,并对第一调用请求进行流量录制。
在一个实施例中,计算机程序被处理器执行实现在接收外部服务器返回的针对第二调用请求的第二响应信息之后,还实现将第二响应信息转发至应用服务器,接收应用服务器返回的针对第一调用请求的第一响应信息,并对第一响应信息进行流量录制。
在一个实施例中,计算机程序被处理器执行实现第二调用请求由应用服务器发送至模拟服务器,并通过模拟服务器转发至本地计算机。
在一个实施例中,计算机程序被处理器执行还实现在目标聚合服务的应用程序域上配置环境变量,以使应用服务器将第二请求发送至模拟服务器;将目标聚合服务的链路中的外部服务的mock桩注册到模拟服务器,以使模拟服务器在接收到第二调用请求时,将第二调用请求转发至本地计算机。
在一个实施例中,计算机程序被处理器执行还实现根据录制的第二调用请求的流量和第二响应信息的流量生成对应的外部服务的用例数据。
在一个实施例中,计算机程序被处理器执行实现在根据录制的第二调用请求的流量和第二响应信息的流量生成对应的外部服务的用例数据之前,还实现将录制的第二调用请求的流量和第二响应信息的流量存入缓存数据库,根据缓存数据库中有效的第二调用请求的流量和有效的第二响应信息的流量生成对应的外部服务的用例数据。
在一个实施例中,计算机程序被处理器执行还实现利用录制的第一调用请求的流量、第一响应信息的流量、第二调用请求的流量以及第二响应信息的流量对应用服务器上运行的待测试聚合服务进行测试。
在一个实施例中,计算机程序被处理器执行实现利用录制的第一调用请求的流量、第一响应信息的流量、第二调用请求的流量以及第二响应信息的流量对应用服务器上运行的待测试聚合服务进行测试时,具体实现根据录制的第一调用请求的流量向应用服务器发送第三调用请求,第三调用请求为调用应用服务器上运行的待测试聚合服务的请求;接收应用服务器根据第三调用请求发起的调用待测试聚合服务的链路中的外部服务的第四调用请求;根据录制的第二调用请求的流量将第四调用请求与第二调用请求进行比较断言校验;若比较断言校验成功,获取录制的第二响应信息的流量,并根据录制的第二响应信息的流量将第二响应信息发送至应用服务器;接收应用服务器返回的针对第三调用请求的第三响应信息。
在一个实施例中,计算机程序被处理器执行还实现根据录制的第一响应信息的流量将第三响应信息与第一响应信息进行比较断言校验。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (12)
1.一种流量录制方法,所述方法应用于本地计算机,所述本地计算机包括本地终端模块和本地代理模块,所述方法包括:
所述本地终端模块向应用服务器发送第一调用请求,以使得所述应用服务器根据所述第一调用请求发起第二调用请求,并将所述第二调用请求发送至所述本地代理模块;其中,所述第一调用请求为调用所述应用服务器上运行的目标聚合服务的请求,所述第二调用请求为调用所述目标聚合服务的链路中的外部服务的请求;
所述本地代理模块接收所述应用服务器发送的所述第二调用请求;其中,所述第二调用请求由所述应用服务器发送至模拟服务器,并通过所述模拟服务器转发至所述本地计算机的所述本地代理模块;
所述本地代理模块对所述第二调用请求进行流量录制,并将所述第二调用请求转发至测试环境中对应的外部服务器;
所述本地代理模块接收所述外部服务器返回的针对所述第二调用请求的第二响应信息,并对所述第二响应信息进行流量录制。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述本地终端模块向所述应用服务器发送第一调用请求时,在所述本地终端模块上对所述第一调用请求进行流量录制。
3.根据权利要求2所述的方法,其特征在于,所述本地代理模块接收所述外部服务器返回的针对所述第二调用请求的第二响应信息之后,所述方法还包括:
所述本地代理模块将所述第二响应信息转发至所述应用服务器,接收所述应用服务器返回的针对所述第一调用请求的第一响应信息,并对所述第一响应信息进行流量录制。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标聚合服务的应用程序域上配置环境变量,以使所述应用服务器将所述第二调用请求发送至所述模拟服务器;
将所述目标聚合服务的链路中的外部服务的mock桩注册到所述模拟服务器,以使所述模拟服务器在接收到所述第二调用请求时,将所述第二调用请求转发至所述本地计算机的所述本地代理模块。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述本地计算机根据录制的所述第二调用请求的流量和所述第二响应信息的流量生成对应的外部服务的用例数据。
6.根据权利要求5所述的方法,其特征在于,所述本地计算机根据录制的所述第二调用请求的流量和所述第二响应信息的流量生成对应的外部服务的用例数据之前,所述方法还包括:
将录制的所述第二调用请求的流量和所述第二响应信息的流量存入缓存数据库;
所述根据录制的所述第二调用请求的流量和所述第二响应信息的流量生成对应的外部服务的用例数据,包括:根据所述缓存数据库中有效的第二调用请求的流量和有效的第二响应信息的流量生成对应的外部服务的用例数据。
7.根据权利要求3所述的方法,其特征在于,所述方法还包括:
利用所述本地计算机上录制的所述第一调用请求的流量、所述第一响应信息的流量、所述第二调用请求的流量以及所述第二响应信息的流量对所述应用服务器上运行的待测试聚合服务进行测试。
8.根据权利要求7所述的方法,其特征在于,所述利用所述本地计算机上录制的所述第一调用请求的流量、所述第一响应信息的流量、所述第二调用请求的流量以及所述第二响应信息的流量对所述应用服务器上运行的待测试聚合服务进行测试,包括:
所述本地终端模块根据录制的所述第一调用请求的流量向所述应用服务器发送第三调用请求,所述第三调用请求为调用所述应用服务器上运行的所述待测试聚合服务的请求;
本地模拟模块接收所述应用服务器根据所述第三调用请求发起的调用所述待测试聚合服务的链路中的外部服务的第四调用请求;
所述本地模拟模块根据录制的所述第二调用请求的流量将所述第四调用请求与所述第二调用请求进行比较断言校验;
若比较断言校验成功,所述本地模拟模块获取录制的所述第二响应信息的流量,并根据录制的所述第二响应信息的流量将所述第二响应信息发送至所述应用服务器;
所述本地模拟模块接收所述应用服务器返回的针对所述第三调用请求的第三响应信息。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:所述本地模拟模块根据录制的所述第一响应信息的流量将所述第三响应信息与所述第一响应信息进行比较断言校验。
10.一种流量录制装置,其特征在于,所述流量录制装置应用于本地计算机,所述本地计算机包括本地终端模块和本地代理模块,所述装置包括:
外部请求接收模块,用于通过所述本地终端模块向应用服务器发送第一调用请求,以使得所述应用服务器根据所述第一调用请求发起第二调用请求,并将所述第二调用请求发送至所述本地代理模块;其中,所述第一调用请求为调用所述应用服务器上运行的目标聚合服务的请求,所述第二调用请求为调用所述目标聚合服务的链路中的外部服务的请求;
外部请求转发模块,用于通过本地代理模块接收所述应用服务器发送的所述第二调用请求,并对所述第二调用请求进行流量录制,并将所述第二调用请求转发至测试环境中对应的外部服务器;其中,所述第二调用请求由所述应用服务器发送至模拟服务器,并通过所述模拟服务器转发至所述本地计算机的所述本地代理模块;
外部响应接收模块,用于通过本地代理模块接收所述外部服务器返回的针对所述第二调用请求的第二响应信息,并对所述第二响应信息进行流量录制。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至9中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011589163.XA CN112702436B (zh) | 2020-12-29 | 2020-12-29 | 流量录制方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011589163.XA CN112702436B (zh) | 2020-12-29 | 2020-12-29 | 流量录制方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112702436A CN112702436A (zh) | 2021-04-23 |
CN112702436B true CN112702436B (zh) | 2023-06-20 |
Family
ID=75513108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011589163.XA Active CN112702436B (zh) | 2020-12-29 | 2020-12-29 | 流量录制方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112702436B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113315828B (zh) * | 2021-05-25 | 2022-11-29 | 平安银行股份有限公司 | 一种流量录制方法、装置及流量录制设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603283A (zh) * | 2016-12-13 | 2017-04-26 | 广州唯品会信息科技有限公司 | 一种模拟服务的方法、装置及集中管理平台 |
CN106776313A (zh) * | 2016-12-13 | 2017-05-31 | 广州唯品会信息科技有限公司 | 一种模拟服务的方法、装置及集中管理平台 |
US10015205B1 (en) * | 2014-07-23 | 2018-07-03 | Microsoft Israel Research And Development (2002) Ltd. | Techniques for traffic capture and reconstruction |
CN109560990A (zh) * | 2018-12-17 | 2019-04-02 | 同盾控股有限公司 | 一种互联网应用测试方法及装置 |
CN111625452A (zh) * | 2020-05-22 | 2020-09-04 | 上海哔哩哔哩科技有限公司 | 流量回放方法和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949406B2 (en) * | 2008-08-14 | 2015-02-03 | International Business Machines Corporation | Method and system for communication between a client system and a server system |
US9886366B2 (en) * | 2016-03-25 | 2018-02-06 | Microsoft Technology Licensing, Llc | Replay-suitable trace recording by service container |
-
2020
- 2020-12-29 CN CN202011589163.XA patent/CN112702436B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10015205B1 (en) * | 2014-07-23 | 2018-07-03 | Microsoft Israel Research And Development (2002) Ltd. | Techniques for traffic capture and reconstruction |
CN106603283A (zh) * | 2016-12-13 | 2017-04-26 | 广州唯品会信息科技有限公司 | 一种模拟服务的方法、装置及集中管理平台 |
CN106776313A (zh) * | 2016-12-13 | 2017-05-31 | 广州唯品会信息科技有限公司 | 一种模拟服务的方法、装置及集中管理平台 |
CN109560990A (zh) * | 2018-12-17 | 2019-04-02 | 同盾控股有限公司 | 一种互联网应用测试方法及装置 |
CN111625452A (zh) * | 2020-05-22 | 2020-09-04 | 上海哔哩哔哩科技有限公司 | 流量回放方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112702436A (zh) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110008118B (zh) | 页面数据测试方法、装置、计算机设备和存储介质 | |
WO2020140663A1 (zh) | 微服务灰度发布方法、装置、计算机设备和存储介质 | |
WO2020253061A1 (zh) | 页面生成方法、装置、计算机设备和存储介质 | |
CN108959430B (zh) | 广告推广数据获取方法、装置及设备 | |
US8799861B2 (en) | Performance-testing a system with functional-test software and a transformation-accelerator | |
CN109144487B (zh) | 进件业务开发方法、装置、计算机设备和存储介质 | |
CN110730171A (zh) | 业务请求的处理方法、装置、系统、电子设备及存储介质 | |
CN111275448A (zh) | 人脸数据处理方法、装置和计算机设备 | |
CN111475376A (zh) | 处理测试数据的方法、装置、计算机设备和存储介质 | |
TW202213217A (zh) | 安全的服務請求處理方法及裝置 | |
CN113949697B (zh) | 数据分发方法、装置、电子设备及存储介质 | |
CN112702436B (zh) | 流量录制方法、装置、计算机设备和存储介质 | |
CN113271364B (zh) | 服务编排数据的共享系统、方法、计算机设备及存储介质 | |
CN112162925A (zh) | 一种基于服务虚拟化的测试方法和系统 | |
CN114189553A (zh) | 一种流量回放方法、系统及计算设备 | |
CN111935092B (zh) | 一种基于第三方应用的信息交互方法、装置和电子设备 | |
CN113362173A (zh) | 防重机制验证方法、验证系统、电子设备及存储介质 | |
CN111327680A (zh) | 认证数据同步方法、装置、系统、计算机设备和存储介质 | |
CN108345508B (zh) | 接口调用测试方法和装置 | |
CN116010926A (zh) | 登陆认证方法、装置、计算机设备和存储介质 | |
CN113568652A (zh) | 应用系统处理方法、装置、计算机设备和存储介质 | |
CN111274176B (zh) | 一种信息处理方法、电子设备、系统及存储介质 | |
CN114461595A (zh) | 发送消息的方法、装置、介质和电子设备 | |
CN112306337B (zh) | 一种会议同屏系统、方法、装置、计算机设备及存储介质 | |
CN112165597B (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 |