CN114189553B - 一种流量回放方法、系统及计算设备 - Google Patents

一种流量回放方法、系统及计算设备 Download PDF

Info

Publication number
CN114189553B
CN114189553B CN202111412263.XA CN202111412263A CN114189553B CN 114189553 B CN114189553 B CN 114189553B CN 202111412263 A CN202111412263 A CN 202111412263A CN 114189553 B CN114189553 B CN 114189553B
Authority
CN
China
Prior art keywords
proxy server
playback
data
server
traffic
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
CN202111412263.XA
Other languages
English (en)
Other versions
CN114189553A (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.)
Tianjin Chezhijia Software Co ltd
Original Assignee
Tianjin Chezhijia Software 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 Tianjin Chezhijia Software Co ltd filed Critical Tianjin Chezhijia Software Co ltd
Priority to CN202111412263.XA priority Critical patent/CN114189553B/zh
Publication of CN114189553A publication Critical patent/CN114189553A/zh
Application granted granted Critical
Publication of CN114189553B publication Critical patent/CN114189553B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种流量回放方法、系统及计算设备,方法在计算设备中执行,包括步骤:基于第一环境变量确定指定的代理服务器;基于第二环境变量确定当前网络状态是否是网络隔离状态;以及如果是网络隔离状态,则创建容器并启动所述代理服务器,以通过代理服务器获取流量数据并执行流量回放。根据本发明的技术方案,在确定当前处于网络隔离状态下才会执行流量回放,这样,能确保在流量回放执行过程中的网络隔离,防止将请求发送到真实环境下的应用服务器。

Description

一种流量回放方法、系统及计算设备
技术领域
本发明涉及互联网技术领域,尤其涉及一种流量回放方法、流量回放系统及计算设备。
背景技术
目前,随着互联网技术的深入发展,敏捷开发代替传统开发,迭代快、上线周期短,同时对软件质量要求较高。面对这种情况,利用流量回放工具来帮助测试和开发人员优化测试场景、提升工作效率、保障软件质量,已成为一种重要的软件质量检测手段。
现有的流量录制回放工具包括GoReplay、TCPCopy、OTDD等,这些工具仅有服务的请求/返回流量,只能应用于查询类只读系统的测试,应用范围受限。另外,随着流量回放工具在日常迭代测试中的使用,流量回放工具的运行环境暴露了一些问题:当无法对子调用返回值进行Mock时,回放过程请求就会发送到真实环境,造成垃圾数据,影响客户使用。
为此,需要一种流量回放方法,来解决上述技术方案中存在的问题。
发明内容
为此,本发明提供一种流量回放方法、流量回放系统及计算设备,以解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供一种流量回放方法,在计算设备中执行,包括步骤:基于第一环境变量确定指定的代理服务器;基于第二环境变量确定当前网络状态是否是网络隔离状态;以及如果是网络隔离状态,则创建容器并启动所述代理服务器,以通过代理服务器获取流量数据并执行流量回放。
可选地,在根据本发明的流量回放方法中,所述代理服务器包括第一端口和第二端口,创建容器并启动代理服务器的步骤包括:容器基于代理服务器的域名和第一端口号来请求获取代理服务器的IP,并基于所述IP和第二端口号来请求获取代理服务器的响应代码;如果获取到所述IP和响应代码,则启动所述代理服务器。
可选地,在根据本发明的流量回放方法中,所述流量数据包含请求数据、响应数据以及响应过程数据,获取流量数据并执行流量回放的步骤包括;基于流量数据创建相应的回放任务,并执行所述回放任务。
可选地,在根据本发明的流量回放方法中,通过代理服务器获取流量数据并执行流量回放包括:调用所述代理服务器的远程接口,通过所述远程接口向代理服务器发送远程操作指令,以控制代理服务器获取流量数据并执行流量回放。
可选地,在根据本发明的流量回放方法中,所述远程接口适于基于Post请求方法向代理服务器发送远程操作指令和签名数据,以便代理服务器对所述签名数据进行验证后执行所述远程操作指令。
可选地,在根据本发明的流量回放方法中,所述代理服务器与认证服务器相连,适于将所述远程操作指令和签名数据发送至认证服务器,以请求认证服务器对所述签名数据进行验证并获取认证服务器的授权许可,并适于在获取到认证服务器的授权许可后,执行所述远程操作指令以执行流量回放。
可选地,在根据本发明的流量回放方法中,所述代理服务器进一步适于:检查域名白名单是否为空,如果不为空,则将所述远程操作指令和签名数据发送至认证服务器,以请求认证服务器对所述签名数据进行验证;以及删除所述域名白名单。
可选地,在根据本发明的流量回放方法中,所述签名数据包括容器对应的IP、端口号、时间戳、业务线标识中的一种或多种。
根据本发明的一个方面,提供一种流量回放系统,客户端,适于执行如上所述的方法;以及代理服务器,适于在客户端创建容器时启动,并适于获取流量数据并执行流量回放。
可选地,在根据本发明的流量回放系统中,所述客户端适于调用所述代理服务器的远程接口,通过远程接口向代理服务器发送远程操作指令,以控制代理服务器获取流量数据并执行流量回放。
可选地,在根据本发明的流量回放系统中,所述远程接口适于基于Post请求方法向代理服务器发送远程操作指令和签名数据,以便代理服务器对所述签名数据进行验证后执行所述远程操作指令。
可选地,在根据本发明的流量回放系统中,还包括:认证服务器,与所述代理服务器相连;所述代理服务器适于将所述远程操作指令和签名数据发送至认证服务器,以请求认证服务器对所述签名数据进行验证并获取认证服务器的授权许可,并适于在获取到认证服务器的授权许可后,执行所述远程操作指令以执行流量回放。
根据本发明的一个方面,提供一种计算设备,包括:至少一个处理器;存储器,存储有程序指令,其中,程序指令被配置为适于由上述至少一个处理器执行,所述程序指令包括用于执行如上所述的流量回放方法的指令。
根据本发明的一个方面,提供一种存储有程序指令的可读存储介质,当该程序指令被计算设备读取并执行时,使得该计算设备执行如上所述的流量回放方法。
根据本发明的技术方案,提供了一种流量回放方法及系统,在确定当前处于网络隔离状态下才会执行流量回放,这样,能确保在流量回放执行过程中的网络隔离,防止将请求发送到真实环境下的应用服务器。进一步地,本发明通过调用远程接口来远程操作代理服务器,便于在日常调试、测试过程中的灵活使用。而且,利用认证服务器对远程接口的请求数据进行签名认证,代理服务器在获得授权许可后才会执行远程操作指令,这样,能够避免远程接口的签名被伪造或截取后被非法调用的安全隐患,进一步避免了在流量回放过程中出现异常访问线上真实环境、误操作等问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的流量回放系统100的示意图;
图2示出了根据本发明一个实施例的计算设备200的示意图;以及
图3示出了根据本发明一个实施例的流量回放方法300的流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的流量回放系统100的示意图。
如图1所示,流量回放系统100包括客户端110、代理服务器120、以及认证服务器130。其中,客户端110包括待测试的应用。代理服务器120与认证服务器130相连。
客户端110即测试人员或用户所使用的终端设备,其具体可以是桌面电脑、笔记本电脑等个人计算机,也可以是手机、平板电脑、多媒体设备、智能可穿戴设备等,但不限于此。
代理服务器120用于执行流量回放,其可以实现为现有技术中的任何一种代理服务器,本发明对代理服务器的具体种类不作限制。例如,代理服务器可以实现为Nginx服务器。
认证服务器130用于提供签名认证服务。认证服务器130具体可以实现为桌面电脑、笔记本电脑、处理器芯片、手机、平板电脑等计算设备,但不限于此,也可以是驻留在计算设备上的应用程序。
客户端110的待测试应用可以基于第一环境变量确定指定的代理服务器,以便通过代理服务器来实现录制流量数据并执行流量回放。并且,基于第二环境变量检查当前网络状态是否是网络隔离状态。如果是网络隔离状态,可以确定当前处于可执行流量回放的测试环境,随后通过创建容器(Docker)来启动代理服务器120,以便通过代理服务器120获取录制的流量数据并执行流量回放。
在一种实现方式中,第一环境变量例如为ENABLE_JVM_SANDBOX_REPEATER。第二环境变量例如为ENABLE_JVM_SANDBOX_REPLAY_AND_BLOCK_NET。
在一个实施例中,代理服务器120通过获取录制的流量数据,基于流量数据来创建相应的回放任务,并通过执行回放任务来实现执行流量回放。具体地,流量数据可以包含请求数据、响应数据以及响应过程数据。代理服务器在获取到流量数据后,可以编辑请求数据、响应数据以及响应过程数据。例如,通过编辑响应数据来实现模拟服务器的响应(Mock),通过编辑响应过程数据来模拟网络抖动、网络异常等状况,从而满足多维度测试需求。
需要说明的是,线上环境的容器无法基于IP和端口号的方式访问线下环境(网络隔离环境下)的容器。基于此,在一个实施例中,本发明预先在网络隔离环境下为代理服务器中配置两个端口分别为第一端口(Node1)、第二端口(Node2)。其中,第一端口用于返回代理服务器的IP,第二端口用于返回固定字符以作为代理服务器的响应代码。这里,代理服务器例如可以实现为Nginx服务器,但本发明不限于此。
在创建容器时,容器可以基于代理服务器的域名和第一端口号Node1来请求从代理服务器的第一端口获取代理服务器的IP(curl“Nginx服务器域名+Node1”)。如果获取到第一端口返回的代理服务器的IP,则基于代理服务器的IP和第二端口号Node2来请求从代理服务器的第二端口获取代理服务器的响应代码(curl“IP:PORT+Node2”)。
如果获取到第一端口返回的代理服务器的IP,并且获取到第二端口返回的响应代码,可以确定是在网络隔离环境下访问代理服务器,这种情况下才会在创建容器时启动代理服务器。
在一个实施例中,代理服务器120提供有远程接口125,客户端110在通过代理服务器获取流量数据并执行流量回放时,可以调用代理服务器120的远程接口125,通过远程接口125向代理服务器120发送远程操作指令,以便远程控制代理服务器120获取流量数据、执行流量回放。这里,代理服务器120从远程接口获取到远程操作指令后,通过执行远程操作指令来实现执行流量回放,例如编辑请求数据、响应数据以及响应过程数据等操作来实现模拟服务器的响应。
在一个实施例中,客户端110通过调用代理服务器的远程接口来向代理服务器120发送远程操作指令和签名数据,代理服务器120在执行远程操作指令之前,首先将接收到的远程操作指令和签名数据发送至与代理服务器相连的认证服务器130,请求认证服务器130对签名数据进行验证,以便在签名数据验证通过之后对执行远程操作指令进行授权,从而获取认证服务器的授权许可。在获取到认证服务器130的授权许可之后,代理服务器120可以执行客户端的远程操作指令,以便通过执行远程控制指令来执行流量回放。
在一个实施例中,代理服务器120还与缓存服务器相连。代理服务器在执行流量回放时,基于流量数据来创建回放任务,并选择回放环境。并且,在创建回放任务后,可以将回放任务对应的待测应用名称、回放环境名称、容器IP、回放任务标识、回放状态写入缓存服务器。随后,可以执行回放任务。缓存服务器例如可以实现为Redis缓存服务器。
在一个实施例中,本发明的客户端110、代理服务器120、认证服务器130分别可以实现为一种计算设备,使得本发明的流量回放方法300可以在计算设备中执行。
图2示出了根据本发明一个实施例的计算设备200的结构图。如图2所示,在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统220、一个或者多个应用222以及程序数据224。应用222实际上是多条程序指令,其用于指示处理器204执行相应的操作。在一些实施方式中,应用222可以布置为在操作系统上使得处理器204利用程序数据224进行操作。
计算设备200还可以包括储存接口总线234。储存接口总线234实现了从储存设备232(例如,可移除储存器236和不可移除储存器238)经由总线/接口控制器230到基本配置202的通信。操作系统220、应用222以及数据224的至少一部分可以存储在可移除储存器236和/或不可移除储存器238上,并且在计算设备200上电或者要执行应用222时,经由储存接口总线234而加载到系统存储器206中,并由一个或者多个处理器204来执行。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备200中,计算设备中的应用222包括执行流量回放方法300的多条程序指令,这些程序指令可以被处理器204执行,以便计算设备200通过执行本发明的流量回放方法300以确保在网络隔离环境下执行流量回放。
图3示出了根据本发明一个实施例的流量回放方法300的流程图。方法300适于在客户端(例如前述计算设备200)中执行,具体可以在客户端的待测试应用中执行。
如图3所示,方法300始于步骤S310。
在步骤S310中,基于第一环境变量来确定是否指定了代理服务器,并确定所指定的代理服务器,以便通过代理服务器来实现录制流量数据并执行流量回放。这里,代理服务器可以作为流量回放工具来执行流量回放。
具体地,基于第一环境变量来判断虚拟机参数中是否指定了代理服务器来作为流量回放工具。在一种实现方式中,虚拟机例如为JVM(Java Virtual Machine,Java虚拟机),第一环境变量例如为ENABLE_JVM_SANDBOX_REPEATER。如果基于第一环境变量确定虚拟机参数中指定了代理工具Agent.jar,则可以确定指定了相应的代理服务器。
随后在步骤S320中,检查当前网络状态是否是网络隔离状态,以确定当前是否处于流量回放环境。这里,可以基于第二环境变量来确定网络状态是否是网络隔离状态。
在一种实现方式中,第二环境变量例如为ENABLE_JVM_SANDBOX_REPLAY_AND_BLOCK_NET,通过仅在网络隔离状态下设置该第二环境变量,从而可以基于该第二环境变量来确定是否是网络隔离状态。如果是网络隔离状态,确定当前处于流量回放环境,并可以执行流量回放。进一步地,可以基于第二环境变量并结合Docker集群统一设置的环境变量CLUSTER_ENV(生产/预发/测试)来判断当前是否是流量回放环境。
具体地,在步骤S330中,如果是网络隔离状态,确定当前处于流量回放环境,创建容器(Docker)并在创建容器时启动代理服务器,以通过代理服务器来获取流量数据并执行流量回放。这里,在网络隔离状态下创建容器时可以动态生成启动脚本,通过启动脚本可以启动代理服务器120,使得代理服务器随容器创建时启动。
需要说明的是,流量回放是指通过获取录制的流量数据,并基于流量数据重新发起服务请求,与该请求对应的第三方交互流量进行Mock,从而实现对应用的测试。
根据本发明的技术方案,在确定当前处于网络隔离环境下才会执行流量回放,这样,确保流量回放的执行过程是在网络隔离的测试环境下,从而能防止将请求发送到真实环境下的应用服务器。
根据本发明的一个实施例,代理服务器120通过获取录制的流量数据,基于流量数据来创建相应的回放任务,之后,通过执行回放任务来实现执行流量回放。
具体地,流量数据可以包含请求数据、响应数据以及响应过程数据。代理服务器在获取到流量数据后,可以编辑请求数据、响应数据以及响应过程数据。例如,通过编辑响应数据来实现模拟服务器的响应(Mock),通过编辑响应过程数据来模拟网络抖动、网络异常等状况,从而满足多维度测试需求。
需要说明的是,线上环境的容器无法基于IP和端口号的方式访问线下环境(网络隔离环境下)的容器。基于此,在一个实施例中,本发明预先在网络隔离环境下为代理服务器中配置两个端口分别为第一端口(Node1)、第二端口(Node2)。其中,第一端口用于返回代理服务器的IP,第二端口用于返回固定字符以作为代理服务器的响应代码。这里,代理服务器例如可以实现为Nginx服务器,但本发明不限于此。
在该实施例中,在创建容器时,容器可以利用curl命令,基于代理服务器的域名和第一端口号Node1来请求从代理服务器的第一端口获取代理服务器的IP(curl“Nginx服务器域名+Node1”)。如果获取到第一端口返回的代理服务器的IP,则基于代理服务器的IP和第二端口号Node2来请求从代理服务器的第二端口获取代理服务器的响应代码(curl“IP:PORT+Node2”)。
如果获取到第一端口返回的代理服务器的IP,并且获取到第二端口返回的响应代码,可以确定是在网络隔离环境下访问代理服务器,这种情况下代理服务器才会随着容器的创建而启动。
根据本发明的一个实施例,代理服务器120提供有远程接口125,客户端在通过代理服务器获取流量数据并执行流量回放时,可以调用代理服务器的远程接口,通过远程接口向代理服务器发送远程操作指令,以便远程控制代理服务器获取流量数据、执行流量回放。这里,代理服务器从远程接口获取到远程操作指令后,通过执行远程操作指令来实现执行流量回放,例如编辑请求数据、响应数据以及响应过程数据等操作。
在一种实现方式中,远程接口可以基于Post请求方法向代理服务器发送远程操作指令,在发送远程操作指令时还同步发送签名数据,以便代理服务器对签名进行验证,在对前面验证通过后才执行远程操作指令。例如,服务器可以根据接收到的Post请求数据来构造签名,并基于构造的签名来对客户端通过远程接口发送的签名数据进行验证。这里,签名数据例如包括容器对应的IP、端口号、时间戳、业务线标识等数据。
另外,为了避免远程接口的签名被伪造或截取后被非法调用,可以利用认证服务器130来进行认证和授权。在一个实施例中,客户端在调用代理服务器的远程接口之前,首先向认证服务器请求获取一次授权许可。之后,客户端可以调用远程接口125以向代理服务器120发送远程操作指令和签名数据,代理服务器120在执行远程操作指令之前,首先将接收到的远程操作指令和签名数据发送至与代理服务器相连的认证服务器130,请求认证服务器130对签名数据进行验证,以便在签名数据验证通过之后对执行远程操作指令进行授权,从而获取认证服务器的授权许可。
在获取到认证服务器130的授权许可之后,代理服务器120可以执行客户端的远程操作指令,以便通过执行远程控制指令来执行流量回放。
在一个实施例中,通过对代理服务器中的域名白名单或域名黑名单进行预置和修改,可以避免访问真实的应用服务器,实现网络隔离。在一种实现方式中,代理服务器在接收到远程操作指令和签名数据后,在请求获取认证服务器的授权许可之前,先检查代理服务器中的域名白名单是否为空,如果域名白名单为空,则可以直接获取流量数据并执行流量回放。如果域名白名单不为空,则将远程操作指令和签名数据发送至认证服务器,以请求获取认证服务器的授权许可。并且,在获取到认证服务器的授权许可之后,删除域名白名单,随后可以基于流量数据生成回放任务并执行回放任务。通过删除代理服务器的域名白名单,能够避免代理服务器访问真实的应用服务器,进一步确保流量回放在网络隔离环境下执行。
在一个实施例中,代理服务器还与缓存服务器相连。代理服务器在执行流量回放时,基于流量数据来创建回放任务,并选择回放环境。并且,在创建回放任务后,可以将回放任务对应的待测应用名称、回放环境名称、容器IP、回放任务标识、回放状态写入缓存服务器。随后,可以执行回放任务。缓存服务器例如可以实现为Redis缓存服务器。
进一步地,在执行每一个回放任务时,首先可以查询缓存服务器中是否存储有回放任务的相关信息,例如通过判断缓存服务器中是否包含当前执行的回放任务对应的容器IP、回放状态等信息来确定。如果缓存服务器中存储有当前执行的回放任务的相关信息,则基于当前执行的回放任务的相关信息来更新缓存服务器中的回放任务信息。如果缓存服务器中不存在当前执行的回放任务的相关信息,则将当前执行的回放任务的相关信息新建存储在缓存服务器中。
根据本发明的流量回放方法,在确定当前处于网络隔离状态下才会执行流量回放,这样,能确保在流量回放执行过程中的网络隔离,防止将请求发送到真实环境下的应用服务器。进一步地,本发明通过调用远程接口来远程操作代理服务器,便于在日常调试、测试过程中的灵活使用。而且,利用认证服务器对远程接口的请求数据进行签名认证,代理服务器在获得授权许可后才会执行远程操作指令,这样,能够避免远程接口的签名被伪造或截取后被非法调用的安全隐患,从而进一步避免了在流量回放过程中出现异常访问线上真实环境、误操作等问题。
A7、如A6所述的方法,其中,所述代理服务器进一步适于:检查域名白名单是否为空,如果不为空,则将所述远程操作指令和签名数据发送至认证服务器,以请求认证服务器对所述签名数据进行验证;以及删除所述域名白名单。
A8、如A5-A7中任一项所述的方法,其中,所述签名数据包括容器对应的IP、端口号、时间戳、业务线标识中的一种或多种。
B11、如B10所述的方法,其中,所述远程接口适于基于Post请求方法向代理服务器发送远程操作指令和签名数据,以便代理服务器对所述签名数据进行验证后执行所述远程操作指令。
B12、如B11所述的方法,其中,还包括:认证服务器,与所述代理服务器相连;所述代理服务器适于将所述远程操作指令和签名数据发送至认证服务器,以请求认证服务器对所述签名数据进行验证并获取认证服务器的授权许可,并适于在获取到认证服务器的授权许可后,执行所述远程操作指令以执行流量回放。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,移动终端一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的流量回放方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。

Claims (13)

1.一种流量回放方法,在客户端的待测试应用中执行,包括步骤:
预先在网络隔离环境下为代理服务器配置第一端口和第二端口,其中,所述第一端口用于返回代理服务器的IP,第二端口用于返回固定字符以作为代理服务器的响应代码;
基于第一环境变量来判断虚拟机参数中是否指定了代理服务器来作为流量回放工具,如果指定了代理服务器,则确定指定的代理服务器;
基于仅在网络隔离状态下设置的第二环境变量确定当前网络状态是否是网络隔离状态;以及
如果是网络隔离状态,则创建容器,所述容器适于基于代理服务器的域名和第一端口号来请求获取代理服务器的IP,并基于所述IP和第二端口号来请求获取代理服务器的响应代码,如果获取到所述IP和响应代码,则确定是在网络隔离环境下访问代理服务器并启动所述代理服务器,以通过代理服务器获取流量数据并执行流量回放以便对所述待测试应用进行测试,其中,所述流量数据包含请求数据、响应数据以及响应过程数据,以便所述代理服务器通过编辑所述响应数据来实现模拟服务器的响应,通过编辑所述响应过程数据来模拟网络抖动或网络异常。
2.如权利要求1所述的方法,其中,获取流量数据并执行流量回放的步骤包括:
基于流量数据创建相应的回放任务,并执行所述回放任务。
3.如权利要求1或2所述的方法,其中,通过代理服务器获取流量数据并执行流量回放,包括:
调用所述代理服务器的远程接口,通过所述远程接口向代理服务器发送远程操作指令,以控制代理服务器获取流量数据并执行流量回放。
4.如权利要求3所述的方法,其中,
所述远程接口适于基于Post请求方法向代理服务器发送远程操作指令和签名数据,以便代理服务器对所述签名数据进行验证后执行所述远程操作指令。
5.如权利要求4所述的方法,其中,
所述代理服务器与认证服务器相连,适于将所述远程操作指令和签名数据发送至认证服务器,以请求认证服务器对所述签名数据进行验证并获取认证服务器的授权许可,并适于在获取到认证服务器的授权许可后,执行所述远程操作指令以执行流量回放。
6.如权利要求5所述的方法,其中,所述代理服务器进一步适于:
检查域名白名单是否为空,如果不为空,则将所述远程操作指令和签名数据发送至认证服务器,以请求认证服务器对所述签名数据进行验证;以及
删除所述域名白名单。
7.如权利要求5所述的方法,其中,所述签名数据包括容器对应的IP、端口号、时间戳、业务线标识中的一种或多种。
8.一种流量回放系统,包括:
客户端,适于执行如权利要求1-7中任一项所述的方法;以及
代理服务器,适于在客户端创建容器时启动,并适于获取流量数据并执行流量回放。
9.如权利要求8所述的系统,其中,
所述客户端适于调用所述代理服务器的远程接口,通过远程接口向代理服务器发送远程操作指令,以控制代理服务器获取流量数据并执行流量回放。
10.如权利要求9所述的系统,其中,
所述远程接口适于基于Post请求方法向代理服务器发送远程操作指令和签名数据,以便代理服务器对所述签名数据进行验证后执行所述远程操作指令。
11.如权利要求10所述的系统,其中,还包括:
认证服务器,与所述代理服务器相连;
所述代理服务器适于将所述远程操作指令和签名数据发送至认证服务器,以请求认证服务器对所述签名数据进行验证并获取认证服务器的授权许可,并适于在获取到认证服务器的授权许可后,执行所述远程操作指令以执行流量回放。
12.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-7中任一项所述流量回放方法的指令。
13.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-7中任一项所述流量回放方法。
CN202111412263.XA 2021-11-25 2021-11-25 一种流量回放方法、系统及计算设备 Active CN114189553B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111412263.XA CN114189553B (zh) 2021-11-25 2021-11-25 一种流量回放方法、系统及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111412263.XA CN114189553B (zh) 2021-11-25 2021-11-25 一种流量回放方法、系统及计算设备

Publications (2)

Publication Number Publication Date
CN114189553A CN114189553A (zh) 2022-03-15
CN114189553B true CN114189553B (zh) 2024-05-31

Family

ID=80541554

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111412263.XA Active CN114189553B (zh) 2021-11-25 2021-11-25 一种流量回放方法、系统及计算设备

Country Status (1)

Country Link
CN (1) CN114189553B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114826994B (zh) * 2022-04-22 2023-08-29 重庆紫光华山智安科技有限公司 用户环境回放方法、系统、电子设备及可读存储介质
CN115203063B (zh) * 2022-09-16 2023-04-07 平安银行股份有限公司 基于实时录制的生产流量重跑风险程序的回放方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9836388B1 (en) * 2013-09-26 2017-12-05 Amazon Technologies, Inc. Software testing environment that includes a duplicating proxy service
CN111045952A (zh) * 2019-12-16 2020-04-21 广州品唯软件有限公司 软件测试方法、流量回放装置、终端设备及可读存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9558097B2 (en) * 2007-11-13 2017-01-31 Red Hat, Inc. Automated recording and playback of application interactions
US9785722B2 (en) * 2010-04-01 2017-10-10 Forsee Results, Inc. Systems and methods for remote replay of user interaction with a webpage
US8874761B2 (en) * 2013-01-25 2014-10-28 Seven Networks, Inc. Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols
US10067848B2 (en) * 2016-07-27 2018-09-04 Facebook, Inc. Methods and systems for benchmarking web browser performance

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9836388B1 (en) * 2013-09-26 2017-12-05 Amazon Technologies, Inc. Software testing environment that includes a duplicating proxy service
CN111045952A (zh) * 2019-12-16 2020-04-21 广州品唯软件有限公司 软件测试方法、流量回放装置、终端设备及可读存储介质

Also Published As

Publication number Publication date
CN114189553A (zh) 2022-03-15

Similar Documents

Publication Publication Date Title
CN114189553B (zh) 一种流量回放方法、系统及计算设备
CN111176794B (zh) 一种容器管理方法、装置及可读存储介质
WO2016173199A1 (zh) 一种移动应用单点登录方法及装置
CN113190464B (zh) mock测试方法、装置、电子设备及介质
US11444785B2 (en) Establishment of trusted communication with container-based services
CN111367821B (zh) 一种软件测试方法及系统
CN110795343A (zh) 测试系统、测试方法和计算设备
CN113938886A (zh) 身份认证平台测试方法、装置、设备及存储介质
CN111241523B (zh) 认证处理方法、装置、设备和存储介质
CN112699034B (zh) 虚拟登录用户构建方法、装置、设备及存储介质
JP7445685B2 (ja) オープンインタフェースの管理方法、電子機器、及び記憶媒体
CN111447178B (zh) 一种访问控制方法、系统及计算设备
CN111935092B (zh) 一种基于第三方应用的信息交互方法、装置和电子设备
CN112650689A (zh) 测试方法、装置、电子设备及存储介质
CN115576711A (zh) 一种返回数据模拟方法、系统及计算设备
US9787658B2 (en) Login system based on server, login server, and verification method thereof
CN116566629A (zh) 一种安全测试方法、装置、计算机设备及存储介质
CN112468356B (zh) 路由器接口测试方法、装置、电子设备和存储介质
US9609080B2 (en) Systems and methods for device identity delegation for application software
CN112417403A (zh) 一种基于GitLab API的系统自动化认证和授权处理方法
CN111835523A (zh) 一种数据请求方法、系统及计算设备
CN111240855A (zh) Api调试系统、方法、存储介质和计算机设备
CN112134910B (zh) 网络请求调试方法、装置、设备及存储介质
CN115242658B (zh) 开放系统访问方法、装置、计算机设备及存储介质
CN112711538B (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