CN116346660A - 基于依赖替换服务的数据处理方法、装置、设备及介质 - Google Patents
基于依赖替换服务的数据处理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116346660A CN116346660A CN202310317951.0A CN202310317951A CN116346660A CN 116346660 A CN116346660 A CN 116346660A CN 202310317951 A CN202310317951 A CN 202310317951A CN 116346660 A CN116346660 A CN 116346660A
- Authority
- CN
- China
- Prior art keywords
- target
- service
- access request
- message
- determining
- 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
- 230000001419 dependent effect Effects 0.000 title claims abstract description 73
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 128
- 238000004891 communication Methods 0.000 claims abstract description 29
- 238000003860 storage Methods 0.000 claims abstract description 22
- 230000006870 function Effects 0.000 claims description 43
- 238000012545 processing Methods 0.000 claims description 42
- 230000004044 response Effects 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012216 screening Methods 0.000 claims description 6
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000013522 software testing Methods 0.000 abstract description 5
- 238000012360 testing method Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 12
- 238000013473 artificial intelligence Methods 0.000 description 11
- 238000004519 manufacturing process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000011981 development test Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012356 Product development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 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/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- 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/14—Arrangements for monitoring or testing data switching networks using software, i.e. software packages
-
- 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/50—Testing arrangements
-
- 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/563—Data redirection of data network streams
-
- 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)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了基于依赖替换服务的数据处理方法、装置、设备及存储介质,属于软件测试技术领域。该方法包括:获取目标网关的访问请求,根据目标网关的通信协议对访问请求进行解析得到目标报文;从目标报文中提取得到目标字段,根据目标字段确定目标报文是否符合依赖替换服务规则;确定目标报文符合依赖替换服务规则,根据目标字段命中的目标规则生成目标报文对应的预期结果,将预期结果返回至目标网关;或者,确定目标报文不符合依赖替换服务规则,将目标报文的访问请求转发至真实服务,真实服务的反馈结果并返回至目标网关,方案可以应用于更多的Mock服务场景,反馈的结果可以包含真实的业务场景含义。
Description
技术领域
本申请涉及软件测试技术领域,尤其涉及一种基于依赖替换服务的数据处理方法、装置、设备及介质。
背景技术
在计算机软件测试过程中,对于一个软件来说,由于该软件使用的场景多种多样,因此,为保证该软件上线时适配各类场景,需要对该软件进行覆盖不同场景的测试。
然而,想要对该软件进行所需的多种场景的测试,就需要准备所需的对应场景的测试数据,而在制造数据的过程当中最困难的问题点不是造数耗时长;而是现有条件下或者因为环境阻碍问题导致无法造出各类场景下合适的数据;其中,造数即各类场景下测试数据的准备与获取过程。此外,在对一组关联系统中的一个系统进行测试时,为保证该系统的测试效率,需要将该系统从该组的众多关联系统中独立出来,进行单独测试,然而,为保证该系统的测试精度,又需要使用该组中的所有其他关联系统的数据来支撑,进行数据测试。
相关技术方案中针对上述问题所提出的方法是引入Mock(引入依赖服务替身)服务,即进行数据模拟,Mock工具在使用过程中能够人工模拟出想要的任何场景或关联系统下的数据。
但是,相关技术方案中,所实现的开放平台的Mock服务,往往比较单一,即支持的协议单一,支持的框架单一;并且,存在一些开放平台的Mock无法链接多个接口的上下文关系,即如果多个接口相互依赖的时候,相关技术方案中开放平台的Mock服务往往无能为力。
发明内容
本申请实施例的主要目的在于提出一种基于依赖替换服务的数据处理方法、装置、设备及存储介质,旨在使得产品服务框架能够适用于更多的场景,提供更多的接口链接并使得反馈结果更为丰富。
为实现上述目的,本申请实施例的第一方面提出了一种基于依赖替换服务的数据处理方法,所述方法包括以下步骤:
获取目标网关的访问请求,根据所述目标网关的通信协议对所述访问请求进行解析得到目标报文;
从所述目标报文中提取得到目标字段,根据所述目标字段确定所述目标报文是否符合依赖替换服务规则;
确定所述目标报文符合所述依赖替换服务规则,根据所述目标字段命中的目标规则生成所述目标报文对应的预期结果,将所述预期结果返回至所述目标网关;
或者,确定所述目标报文不符合所述依赖替换服务规则,将所述目标报文的访问请求转发至真实服务,获取所述真实服务的反馈结果并返回至所述目标网关。
在一些可行的实施例中,在获取目标网关的访问请求,根据所述目标网关的通信协议对所述访问请求进行解析得到目标报文这一步骤之后,所述方法包括:
通过动态代理对所述访问请求进行拦截;
将拦截后的所述访问请求转发至依赖替换服务,根据所述目标规则生成所述目标报文对应的预期结果,并将所述预期结果返回至所述目标网关。
在一些可行的实施例中,在将拦截后的所述访问请求转发至依赖替换服务,根据所述目标规则生成所述目标报文对应的预期结果,并将所述预期结果返回至所述目标网关这一步骤之后,所述方法包括:
确定所述依赖替换服务所返回的内容中不包括所述预期结果;
将拦截后的所述访问请求转发至所述真实服务,通过所述真实服务中的真实方法函数对所述目标报文进行处理得到所述访问请求的反馈结果,将所述反馈结果并返回至所述目标网关。
在一些可行的实施例中,所述将拦截后的所述访问请求转发至所述真实服务,通过所述真实服务中的真实方法函数对所述目标报文进行处理得到所述访问请求的反馈结果,将所述反馈结果并返回至所述目标网关,包括:
向所述依赖替换服务中的目标方法函数添加名称后缀;
在所述真实服务的原类中新增与添加名称后缀的目标方法函数相对应的第一方法函数,
构建所述目标方法函数与所述第一方法函数的链接,通过所述链接对所述目标报文进行处理得到所述访问请求的反馈结果,将所述反馈结果并返回至所述目标网关。
在一些可行的实施例中,所述确定所述目标报文符合所述依赖替换服务规则,根据所述目标字段命中的目标规则生成所述目标报文对应的预期结果,将所述预期结果返回至所述目标网关,包括:
确定所述目标报文中的统一资源标识符;
确定所述统一资源标识符中存在目标关键字,根据所述目标关键字确定所述统一资源标识符对应的依赖替换服务的接口路径;
将所述目标报文对应的访问请求推送至所述接口路径对应的目标接口,通过所述目标接口解析所述访问请求的目标场景参数;
根据所述目标场景参数确定所述预期结果中的响应数据,将所述响应数据返回至所述目标网关。
在一些可行的实施例中,所述根据所述目标场景参数确定所述预期结果中的响应数据,将所述响应数据返回至所述目标网关,包括:
从所述目标场景参数中提取得到场景方法参数及场景组件参数;
根据所述场景方法参数以及所述场景组件参数构建所述目标场景参数对应的编程模块,并确定所述编程模块中与所述场景方法参数对应第二方法函数;
根据所述第二方法函数确定所述目标场景参数对应的所述响应数据。
在一些可行的实施例中,所述确定所述统一资源标识符中存在目标关键字,根据所述目标关键字确定所述统一资源标识符对应的依赖替换服务的接口路径,包括:
获取所述统一资源标识符的数据层次结构;
对所述数据层次结构进行筛选,根据筛选确定所述统一资源标识符的所述接口路径。
为实现上述目的,本申请实施例的第二方面提出了一种基于依赖替换服务的数据处理装置,所述装置包括:
请求获取单元,用于获取目标网关的访问请求,根据所述目标网关的通信协议对所述访问请求进行解析得到目标报文;
报文解析单元,用于从所述目标报文中提取得到目标字段,根据所述目标字段确定所述目标报文是否符合依赖替换服务规则;
替换服务单元,用于确定所述目标报文符合所述依赖替换服务规则,根据所述目标字段命中的目标规则生成所述目标报文对应的预期结果,将所述预期结果返回至所述目标网关;
真实服务单元,用于确定所述目标报文不符合所述依赖替换服务规则,将所述目标报文的访问请求转发至真实服务,获取所述真实服务的反馈结果并返回至所述目标网关。
为实现上述目的,本申请实施例的第三方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法。
为实现上述目的,本申请实施例的第四方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法。
本申请提出的基于依赖替换服务的数据处理方法、装置、设备及存储介质;其中方法基于Mock服务,首先获取网关的访问请求,根据该访问请求解析得到对应的目标报文,并且根据报文中是否存在依赖替换服务对应的目标字段;通过目标字段的触发方式,能够实现更为灵活的配置方式,一个应用环境下可以将固定的流量接入到Mock服务中,而其余的流量则不受影响,避免出现一刀切的情况;方法还可以根据依赖替换服务规则,若目标报文并不需要启用依赖替换服务,则会直接访问真实服务,并得到对应的反馈结果,能够避免反馈结果单一的情况;本申请技术方案通过规则的匹配,连接多个接口,进而方案的应用场景更为丰富,且反馈的结果可以包含真实的业务场景含义。
附图说明
图1是本申请实施例提供的基于依赖替换服务的数据处理方法的流程图;
图2是本申请实施例转换机与前置机之间信息交互过程示意图;
图3是图1中的步骤S106的流程图;
图4是图1中的步骤S103的流程图;
图5是图4中的步骤S1034的流程图;
图6是已知报文协议格式的定制化Mock实现过程示意图;
图7是未知报文协议格式的定制化Mock实现过程示意图;
图8是本申请实施例提供的基于依赖替换服务的数据处理装置的结构示意图;
图9是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
首先,对本申请中涉及的若干名词进行解析:
人工智能(artificial intelligence,AI):是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学;人工智能是计算机科学的一个分支,人工智能企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能可以对人的意识、思维的信息过程的模拟。人工智能还是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
信息抽取(Information Extraction):从自然语言文本中抽取指定类型的实体、关系、事件等事实信息,并形成结构化数据输出的文本处理技术。信息抽取是从文本数据中抽取特定信息的一种技术。文本数据是由一些具体的单位构成的,例如句子、段落、篇章,文本信息正是由一些小的具体的单位构成的,例如字、词、词组、句子、段落或是这些具体的单位的组合。抽取文本数据中的名词短语、人名、地名等都是文本信息抽取,当然,文本信息抽取技术所抽取的信息可以是各种类型的信息。
引入依赖服务替身(Mock)服务,是指在实际产品开发过程中,某个服务或前端依赖一个服务接口,该接口可能依赖多个底层服务或模块,或第三方接口,例如,服务A依赖服务B,服务B又依赖服务C;这种依赖的问题会导致原本的需求目的是要验证服务A,但由于所依赖的服务B或者服务C不稳定或者未开发完成,导致工作无法正常开展。解决这类问题的核心的思路:引入依赖服务替身,即引入Mock服务。
软件测试(Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换句话说,软件测试是一种实际输出与预期输出之间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
基于前述的技术原理内容,本申请实施例提供了一种基于依赖替换服务的数据处理方法、装置、设备及存储介质,旨在使得产品服务框架能够支持更多的使用场景,能够满足更为复杂的接口功能需求以及结果反馈能够提供真实的业务含义。
本申请实施例提供的数据处理方法和装置、电子设备及存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中的数据处理方法。
本申请实施例同样可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请实施例提供的基于依赖替换服务的数据处理方法,涉及人工智能技术领域。本申请实施例提供的基于依赖替换服务的数据处理方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现基于依赖替换服务的数据处理方法的应用等,但并不局限于以上形式。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本申请的各个具体实施方式中,当涉及到需要根据用户信息、用户行为数据,用户历史数据以及用户位置信息等与用户身份或特性相关的数据进行相关处理时,都会先获得用户的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关国家和地区的相关法律法规和标准。此外,当本申请实施例需要获取用户的敏感个人信息时,会通过弹窗或者跳转到确认页面等方式获得用户的单独许可或者单独同意,在明确获得用户的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的用户相关数据。
根据背景技术方案中所指出,相关技术方案通常采用定制化的Mock服务,其通常具有侵入性,即有源代码的侵入,往往会造成很大的风险,比如Mock代码被发到生产,可能存在造成重大的生产事故的可能。并且相关技术方案中Mock配置不够灵活,往往一刀切,对于测试中的所有请求都会由Mock处理,从而导致返回的结果不够真实,往往返回的都是些单一类型的返回结果,即Mock的结果没有真实的业务含义,往往只是为了让调用方获取一个正确的返回,使代码能正常运行下去,场景不够丰富。除此之外,相关技术方案中采用的一些开放平台的Mock无法链接多个接口的上下文关系,即如果多个接口相互依赖的时候,开放平台的Mock往往无能为力。
针对上述所指出的技术问题或缺陷,本申请技术方案提供了一种全场景智能化Mock的构想,方案实施例的处理结果更丰富,根据配置的规则,得到多种内容以及样式的处理结果,处理的结果不会一成不变,Mock服务并不单单只是返回一个正确的返回,而是正确的并且具有业务含义的返回。并且,本申请技术方案中的Mock服务基于应用程序本身外部部署,对于网关来说只是改了一个配置,将服务提供方的地址和端口改成Mock地址即可。Mock服务的加入完全没有侵入性,不会因引入Mock服务而导致生产的问题。
如图1所示,为本申请实施例提供的基于依赖替换服务的数据处理方法的一个可选的流程图,图1中的方法可以包括但不限于包括步骤S101至步骤S104:
S101、获取目标网关的访问请求,根据目标网关的通信协议对访问请求进行解析得到目标报文。
其中,在产品开发测试的场景中,访问请求可以是指包含了目标获取对象的请求消息;实施例中的测试场景包括但不限于前后端联调、单元测试以及第三方接口依赖的测试。实施例中的目标网关即为访问请求获取对应目标数据的路由中必经的网关。实施例中通信协议包括但不限于系统转换机与前置机之间的通讯协议。
示例性地,在前后端联调的场景中,一个前端页面开发,现在需要开发一个功能:下一个订单,支付页面的接口,根据支付结果,支付成功,展示支付成功页,支付失败,展示支付失败页。为了同步开发完成任务,此时,实施例可以根据接口文档的规定,把接口的地址和入参传过去,然后Mock服务接口的不同返回界面,来完成前端的开发任务。
又例如,在单元测试的场景中,由于单元测试仅针对当前单元进行测试,这就要求所有的内部或者外部依赖都应该是稳定的,采用Mock服务的方法模拟跟本单元依赖的其他单元,可以将测试重点放在当前单元功能,排除外界因素干扰,提升测试精准度。
又例如,在第三方接口依赖的调用测试场景中,在实现接口自动化的过程中,有时候需要调用第三方的接口,但是另一方的接口服务无法进行直接控制,无法掌握测试环境的服务的开启或者关闭的状态,为自动化接口测试带来很多的麻烦,此时就可以通过Mock服务来模拟接口的返回数据,模拟各种第三方异常时的返回。
具体在实施例中,实施例中的Mock服务器设置在实施例系统架构的外部,网关并不直接连接真实的服务地址,而是连接至Mock服务。在实施例的测试环境中,Mock服务接收到请求后,根据协议格式解析报文。示例性地,如图2所示,在实施例中,根据Mock模拟前置机所确定的实施例中转换机与Mock模拟前置机之间的通讯协议;进而,实施例中的Mock服务需要按照这一通信协议的协议规则,对接收的访问请求进行解析,那么Mock服务就需要按照协议规则去解析,一个完整的访问请求消息包含多次通讯类似于Tcp的三方握手,Mock服务就需要根据不同类型的消息做不同的处理,以得到对应的目标报文。
S102、从目标报文中提取得到目标字段,根据目标字段确定目标报文是否符合依赖替换服务规则。
具体在实施例中,目标字段可以是报文中用于判断该请求是否需要的Mock服务的字段内容。实施例中的依赖替换服务规则,即Mock服务的处理规则,实施例中Mock服务虽然是作为依赖服务的替身,但器并不需要使用原本处理逻辑构造实现一个完整的新的服务逻辑,例如,现在有一个A服务依赖B服务,需要通过Mock服务来替换B服务,设置一个假的B服务替身。因此,在一些可选的实施例方式中,目标字段的作用可以用于判断该请求报文所指向的服务是否为Mock服务,进而目标字段的可以采用简单的标识的方式来实现。示例性地,实施例中可以根据报文头中的客户信息,接口编号等判断此请求是否需要Mock服务。
S103、确定目标报文符合依赖替换服务规则,根据目标字段命中的目标规则生成目标报文对应的预期结果,将预期结果返回至目标网关。
具体在实施例中,通过步骤S102进行判断请求报文是否指向(需要启用)Mock服务,如果需要Mock服务,则可以根据报文中的目标字段,确认该请求报文所命中的具体处理规则,即目标规则;然后根据该规则进行处理,处理成预期的结果,并返回给网关。
示例性地,由于实施例中Mock服务其实就是做了一个简单的服务B,它不需要实现原有服务B负载的处理逻辑,只需按服务A需要服务B返回的处理逻辑给出对应返回数据即可。需要进一步补充说明的是,实施例中的服务或接口协议可以包括两种,一种是RPC,另一种是HTTP/HTTPS,Mock原理都类似,要么是修改原服务地址为Mock服务地址,要么是拦截原服务的请求Mock返回值,总之实施例构造了一个服务替身,替代原有服务。
或者,S104、确定目标报文不符合依赖替换服务规则,将目标报文的访问请求转发至真实服务,获取真实服务的反馈结果并返回至目标网关。
具体在实施例中,通过步骤S102进行判断请求报文是否指向(需要启用)Mock服务,如果不需要指向(需要启用)Mock服务,实施例则将原请求转发到真实的服务地址,并将真实服务的返回结果返回给网关。
在一些可行的实施方式中,实施例可以既支持已知报文协议格式的Mock实现过程,也支持未知报文协议格式的Mock实现过程。由于不知道外部系统(被Mock的系统)的报文协议,无法解码,所以不能采用外部Mock的方式,而是采用内部Mock的方式。进而实施例中,在获取目标网关的访问请求,根据目标网关的通信协议对访问请求进行解析得到目标报文这一步骤S101之后,还可以包括步骤S105-S106:
S105、通过动态代理对访问请求进行拦截。
具体在实施例中,由于对未知报文协议格式无法直接解码,因此,实施例中需要通过动态代理的方式对所有的访问请求进行拦截。更近一步地,实施例中动态代理是通过使用反射,动态地获取抽象接口的类型,从而获取相关特性进行代理。
S106、将拦截后的访问请求转发至依赖替换服务,根据目标规则生成目标报文对应的预期结果,并将预期结果返回至目标网关。
具体在实施例中,将拦截后的访问请求进行字节码修改,实现对某些类或者方法的动态代理,进而根据修改字节码之后的请求报文确认该请求报文所命中的具体处理规则,即目标规则;然后根据该规则进行处理,处理成预期的结果,并返回给网关。
需要说明的是,实施例中字节码(Byte-code)是一种包含执行程序、由一序列op代码/数据对组成的二进制文件。示例性地,在一种可行的实施方案中,实施例中以编译时织入的AOP框架为例,在该跨框架需要提供Mock服务的定的位置,添加一个名为Proxy0.class的代理类文件;然后通过最简单的方法,直接把class文件,拖拽到IDEA工具中,自动反编译为Java文件。实施例中通过类似代理的过程中可以确定,修改字节码之后的请求报文从Object中继承来的equals(),toString()和hashCode()等方法都生成了对应的实现。并且在实施例中可以统一调用java.lang.reflect.InvocationHandler对象中的invoke()方法,只是传入的参数和Method方法有所不同。所以无论动态代理什么方法,其实执行的依旧是InvocationHandler中的逻辑。
在一些可行的实施方式中,在将拦截后的访问请求转发至依赖替换服务,根据目标规则生成目标报文对应的预期结果,并将预期结果返回至目标网关这一步骤之后,实施例的数据处理方法还可以包括步骤S107-S108:
S107、确定依赖替换服务所返回的内容中不包括预期结果。
S108、将拦截后的访问请求转发至真实服务,通过真实服务中的真实方法函数对目标报文进行处理得到访问请求的反馈结果,将反馈结果并返回至目标网关。
具体在实施例中,网关在获取了从Mock服务中反馈的数据中根据Mock服务的返回判断Mock是否已经处理,如果处理了则代理方法直接返回,不需要真实的方法(或函数)再处理,如果Mock服务没有处理,则调用真实的方法(或函数)处理该请求。
在一些可行的实施方式中,如图3所示,实施例方法中,将拦截后的访问请求转发至真实服务,通过真实服务中的真实方法函数对目标报文进行处理得到访问请求的反馈结果,将反馈结果并返回至目标网关这一步骤S106可以进一步包括步骤:
S1061、向依赖替换服务中的目标方法函数添加名称后缀;
S1062、在真实服务的原类中新增与添加名称后缀的目标方法函数相对应的第一方法函数;
S1063、构建目标方法函数与第一方法函数的链接,通过链接对目标报文进行处理得到访问请求的反馈结果,将反馈结果并返回至目标网关。
其中,目标方法函数可以是指进行字节码修改之前的方法或类文件;第一方法函数是在Mock服务中新增的与目标方法函数对应的方法或者类文件。
示例性地,实施例在类被加载到JVM之前对类进行编辑修改,将Mock服务中的目标方法名增加一个特别后缀,然后再在原类中添加一个和目标方法名一样的方法,在新增的方法中建立一个真实应用到Mock服务的连接。实现代码如下所示:
其中,AspectService.recv()就是一个桥梁,建立起了Mock服务与真实应用的连接,当Mock无法处理时,再调用原有的真实方法recv$Mock_TARGET。实施例中对某些类或者方法的动态代理,能够解决流量拦截问题;是对源代码没有任何侵入性,也并没有改变源代码的逻辑。
在一些可行的实施方式中,如图4所示,实施例方法中确定目标报文符合依赖替换服务规则,根据目标字段命中的目标规则生成目标报文对应的预期结果,将预期结果返回至目标网关这一步骤S103,可以包括步骤S1031-S1034:
S1031、确定目标报文中的统一资源标识符;
具体在实施例中,在前端开发测试服务中,由于后端搭建未完成,需要利用Mock数据进行开发测试,此时,开发测试服务单元所在的终端可以是客户端。统一资源标识符是一个用于标识某一互联网资源名称的字符串,其中,标识符允许用户对任何的资源通过特定的协议进行交互操作。
S1032、确定统一资源标识符中存在目标关键字,根据目标关键字确定统一资源标识符对应的依赖替换服务的接口路径;
具体在实施例中,目标关键字是指用于判断数据请求是否为单一数据请求的标识符,例如,通用关键字可以是multiReq。依赖替换服务的接口路径,即Mock接口路径;其中,Mock接口路径是指数据请求进行Mock数据需要的Mock接口对应的标识符,例如,若某一Mock接口对应的标识为:“bx1_name”则Mock接口对应的Mock接口路径可以为:“/bx1_name”。
S1033、将目标报文对应的访问请求推送至接口路径对应的目标接口,通过目标接口解析访问请求的目标场景参数;
具体在实施例中,Mock接口是指接收数据请求的接口。Mock目标场景参数是指不同的场景需求下,对应的不同的Mock数据结构参数或者,生成对应的不同Mock数据结构参数的函数名称等。例如,在一种可行的实施方式中,若需求的Mock数据结构参数为:房价、位置、周围环境,则Mock目标场景参数可以是房价、位置、周围环境,若生成Mock数据结构参数房价、位置、周围环境的函数为room.getRoom,则目标场景参数还可以是room.getRoom。在另一种可行的实施方式中,若需求的Mock数据结构参数为:底薪、业绩、奖金,则Mock目标场景参数可以是底薪、业绩、奖金,若生成Mock数据结构参数底薪、业绩、奖金的函数为salary.getSalary,则目标场景参数还可以是salary.getSalary。
S1034、根据目标场景参数确定预期结果中的响应数据,将响应数据返回至目标网关;
具体在实施例中,Mock请求数据是指数据请求需要的响应数据。实施例根据Mock目标场景参数,生成数据请求的Mock请求数据,确保了Mock数据的准确性,从而提高了Mock测试的效率。
更为具体地,实施例首先通过接收客户端发送的数据请求,并获取数据请求中的统一资源标识符,进一步地,通过识别统一资源标识符中是否包含预设的通用关键字,判断数据请求是否是单一数据请求,确定了Mock服务的服务方式;其次,在统一资源标识符中包含通用关键字时,解析统一资源标识符的Mock接口路径,确定了统一资源标识符对应的数据请求所需要使用到的Mock接口,从而确保生成的Mock数据为数据请求所需要的响应数据;进一步地,将数据请求推送至Mock接口路径对应的Mock接口,并利用Mock接口解析数据请求的Mock目标场景参数,以获取Mock数据的生成环境,确保Mock数据生成的准确率,最后,根据Mock目标场景参数,生成数据请求的Mock请求数据,并将Mock请求数据返回至客户端,确保了Mock请求数据是在目标场景参数环境中生成,从而提高了Mock数据生成的准确率。因此,本发明实施例提出的Mock数据生成方法提高了Mock数据生成的准确率。
在一些可行的实施方式中,实施例方法中确定统一资源标识符中存在目标关键字,根据目标关键字确定统一资源标识符对应的依赖替换服务的接口路径这一步骤包括步骤S10321-S10322:
S10321、获取统一资源标识符的数据层次结构;
具体在实施例中,数据层次结构是指统一资源标识符的层次划分情况。
S10322、对数据层次结构进行筛选,根据筛选确定统一资源标识符的接口路径;
具体在实施例中,通过扫描读取统一资源标识符,获取统一资源标识符的数据层次结构,再根据数据层次结构,利用预设的匹配模板,筛选出统一资源标识符的Mock接口路径,以确定数据请求需要的Mock接口,从而提高Mock数据的准确性。
在一些可行的实施中,如图5所示,实施例方法中根据目标场景参数确定预期结果中的响应数据,将响应数据返回至目标网关这一步骤S1034,可以包括S10341-S10343:
S10341、从目标场景参数中提取得到场景方法参数及场景组件参数;
具体在实施例中,场景组件参数是指用于生成编程模块的参数代码。场景方法参数是指用于生成特定函数的参数代码。实施例中可利用Mock接口对Mock目标场景参数进行解析,得到场景方法参数及场景组件参数,并根据场景方法参数及场景组件参数生成数据请求对应的Mock请求数据。
S10342、根据场景方法参数以及场景组件参数构建目标场景参数对应的编程模块,并确定编程模块中与场景方法参数对应第二方法函数;
具体在实施例中,生成Mock目标场景参数对应的目标数据,得到Mock请求数据。场景组件参数是指用于生成编程模块的参数代码;场景方法参数是指用于生成特定函数的参数代码。实施例中可利用Mock接口对Mock目标场景参数进行解析,得到场景方法参数及场景组件参数,并根据场景方法参数及场景组件参数生成数据请求对应的Mock请求数据。
S10343、根据第二方法函数确定目标场景参数对应的响应数据;
具体在实施例中,提取Mock请求数据中的目标地址;实施例根据目标地址,构建Mock请求数据对应的Mock接口与目标地址之间的数据链路;实施例可以通过数据链路,将Mock请求数据返回至目标地址对应的客户端。其中,目标地址是指Mock请求数据的去向地址。数据链路是指用于传输数据的链路。
下面结合说明书附图,对本申请技术方案的完整实施过程进行完整、详细的描述如下:
如图6所示,实施例在已知报文协议格式的定制化Mock实现过程如下:
在系统外部放一个Mock服务器,网关不连接真实的服务地址,而是连Mock服务。Mock服务接收到请求后,根据协议格式解析报文。例如某系统转换机与前置机之间已经确定了通讯协议,实施例中Mock服务器就需要按照该协议规则去解析,一个完整的消息包含多次通讯类似于Tcp的三方握手,Mock就需要根据不同类型的消息做不同的处理。然后,实施例需要根据报文中的某个字段和Mock规则来判断,这次请求是否需要Mock;例如,根据报文头中的客户信息,接口编号等判断此请求是否需要Mock。如果不需要,则将原请求转发到真实的服务地址,并将真实服务的返回结果返回给网关。如果需要Mock,则根据报文中的某些字段确认命中某一条处理规则,然后根据这条规则处理,处理成预期的结果,并返回给网关。通过前述的步骤实现了Mock的自由配置,Mock结果可配置,更为灵活。
如图7所示,实施例在未知报文协议格式的定制化Mock实现过程如下:
由于实施例未获悉外部系统的报文协议,无法解码,所以不能采用外部Mock的方式,而是采用内部Mock的方式。内部Mock的实现方式类似于动态代理,对字节码进行修改;例如,实施例在类被加载到JVM之前对类进行编辑修改,将Mock的目标方法名增加一个特别后缀,然后再在原类中添加一个和目标方法名一样的方法,在新增的方法中建立一个真实应用到Mock的连接。实施例可以实现对某些类或者方法的动态代理,解决流量拦截问题。实施例对源代码没有任何侵入性,也并没有改变源代码的逻辑。
请参阅图8,本申请实施例还提供一种基于依赖替换服务的数据处理装置,可以实现上述基于依赖替换服务的数据处理方法,该装置包括:
请求获取单元,用于获取目标网关的访问请求,根据目标网关的通信协议对访问请求进行解析得到目标报文;
报文解析单元,用于从目标报文中提取得到目标字段,根据目标字段确定目标报文是否符合依赖替换服务规则;
替换服务单元,用于确定目标报文符合依赖替换服务规则,根据目标字段命中的目标规则生成目标报文对应的预期结果,将预期结果返回至目标网关;
真实服务单元,用于确定目标报文不符合依赖替换服务规则,将目标报文的访问请求转发至真实服务,获取真实服务的反馈结果并返回至目标网关。
该数据处理装置的具体实施方式与上述基于依赖替换服务的数据处理方法的具体实施例基本相同,在此不再赘述。
进一步补充的是,实施例中软件平台构架可以包括预设MOCK平台和ESG服务治理平台,并且,该预设MOCK平台需要预先对接该ESG服务治理平台,后期通过ESG服务治理平台作为中转平台将ESG协议的返回信息传输给测试系统,具体对接方式采用批量注册链接的形式,原理如下:在MOCK平台的spirngboot初始化时,加入配置类,此配置类实现功能如下:首先定义和ESG服务治理平台约定的一些信息并放入一个对象,称为对象A,包括,URL、目标对象编码、系统编码、IP、端口等;然后利用EsgConfigUtil中的setProperties方法接收对象A生成一个具体的ESG实例;最后从模拟信息数据库里面拿到待模拟信息中的ESG协议格式的请求信息的URL集合和MOCK平台下相对应的请求服务的服务编码,并放入一个容器,利用AutoDriveUtils中的export方法将所有的容器加入到队列,此队列依次注册服务到Zookeeper中,从而实现预设MOCK平台与ESG服务治理平台之间的对接。
本申请实施例还提供了一种电子设备,电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述基于依赖替换服务的数据处理方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
该电子设备在运行的过程中可以执行下述步骤:
获取目标网关的访问请求,根据目标网关的通信协议对访问请求进行解析得到目标报文;从目标报文中提取得到目标字段,根据目标字段确定目标报文是否符合依赖替换服务规则;确定目标报文符合依赖替换服务规则,根据目标字段命中的目标规则生成目标报文对应的预期结果,将预期结果返回至目标网关;或者,确定目标报文不符合依赖替换服务规则,将目标报文的访问请求转发至真实服务,获取真实服务的反馈结果并返回至目标网关。
请参阅图9,图9示意了另一实施例的电子设备的硬件结构,电子设备包括:
处理器901,可以采用通用的CPU(CentralProcessingUnit,中央处理器)、微处理器、应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器902,可以采用只读存储器(ReadOnlyMemory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(RandomAccessMemory,RAM)等形式实现。存储器902可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器902中,并由处理器901来调用执行本申请实施例的基于依赖替换服务的数据处理方法;
输入/输出接口903,用于实现信息输入及输出;
通信接口904,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;
总线905,在设备的各个组件(例如处理器901、存储器902、输入/输出接口903和通信接口904)之间传输信息;
其中处理器901、存储器902、输入/输出接口903和通信接口904通过总线905实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述基于依赖替换服务的数据处理方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
该可读存储介质存储用可以执行下述步骤过程的应用程序:
获取目标网关的访问请求,根据目标网关的通信协议对访问请求进行解析得到目标报文;从目标报文中提取得到目标字段,根据目标字段确定目标报文是否符合依赖替换服务规则;确定目标报文符合依赖替换服务规则,根据目标字段命中的目标规则生成目标报文对应的预期结果,将预期结果返回至目标网关;或者,确定目标报文不符合依赖替换服务规则,将目标报文的访问请求转发至真实服务,获取真实服务的反馈结果并返回至目标网关。
本申请实施例提供的基于依赖替换服务的数据处理方法、数据处理装置、电子设备及存储介质;存在着至少以下的优点或者能够带来对应的有益效果:
1.更灵活的配置,一个环境下可以将固定的流量切到Mock中(比如配置某些账号走Mock),而其余的流量则不受影响,不会存在一刀切的情况。
2.处理结果更丰富,根据配置的规则,想处理成什么样,就处理成什么样,处理的结果不会一成不变,Mock并不单单只是返回一个正确的返回,而是正确的并且具有业务含义的返回。
3.Mock基于应用程序本身外部部署,对于网关来说只是改了一个配置,将服务提供方的地址和端口改成Mock地址即可。完全没有侵入性,不会对生产的问题。
4.支持流量转发,Mock本身也是一个代理服务器。
5.支持多种微服务框架之间的Mock,相关技术方案中的Mock往往不支持微服务。
本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (10)
1.基于依赖替换服务的数据处理方法,其特征在于,所述方法包括:
获取目标网关的访问请求,根据所述目标网关的通信协议对所述访问请求进行解析得到目标报文;
从所述目标报文中提取得到目标字段,根据所述目标字段确定所述目标报文是否符合依赖替换服务规则;
确定所述目标报文符合所述依赖替换服务规则,根据所述目标字段命中的目标规则生成所述目标报文对应的预期结果,将所述预期结果返回至所述目标网关;
或者,确定所述目标报文不符合所述依赖替换服务规则,将所述目标报文的访问请求转发至真实服务,获取所述真实服务的反馈结果并返回至所述目标网关。
2.根据权利要求1所述的方法,其特征在于,在获取目标网关的访问请求,根据所述目标网关的通信协议对所述访问请求进行解析得到目标报文这一步骤之后,所述方法包括:
通过动态代理对所述访问请求进行拦截;
将拦截后的所述访问请求转发至依赖替换服务,根据所述目标规则生成所述目标报文对应的预期结果,并将所述预期结果返回至所述目标网关。
3.根据权利要求2所述的方法,其特征在于,在将拦截后的所述访问请求转发至依赖替换服务,根据所述目标规则生成所述目标报文对应的预期结果,并将所述预期结果返回至所述目标网关这一步骤之后,所述方法包括:
确定所述依赖替换服务所返回的内容中不包括所述预期结果;
将拦截后的所述访问请求转发至所述真实服务,通过所述真实服务中的真实方法函数对所述目标报文进行处理得到所述访问请求的反馈结果,将所述反馈结果并返回至所述目标网关。
4.根据权利要求2所述的方法,其特征在于,所述将拦截后的所述访问请求转发至所述真实服务,通过所述真实服务中的真实方法函数对所述目标报文进行处理得到所述访问请求的反馈结果,将所述反馈结果并返回至所述目标网关,包括:
向所述依赖替换服务中的目标方法函数添加名称后缀;
在所述真实服务的原类中新增与添加名称后缀的目标方法函数相对应的第一方法函数,
构建所述目标方法函数与所述第一方法函数的链接,通过所述链接对所述目标报文进行处理得到所述访问请求的反馈结果,将所述反馈结果并返回至所述目标网关。
5.根据权利要求1所述的方法,其特征在于,所述确定所述目标报文符合所述依赖替换服务规则,根据所述目标字段命中的目标规则生成所述目标报文对应的预期结果,将所述预期结果返回至所述目标网关,包括:
确定所述目标报文中的统一资源标识符;
确定所述统一资源标识符中存在目标关键字,根据所述目标关键字确定所述统一资源标识符对应的依赖替换服务的接口路径;
将所述目标报文对应的访问请求推送至所述接口路径对应的目标接口,通过所述目标接口解析所述访问请求的目标场景参数;
根据所述目标场景参数确定所述预期结果中的响应数据,将所述响应数据返回至所述目标网关。
6.根据权利要求5所述的方法,其特征在于,所述根据所述目标场景参数确定所述预期结果中的响应数据,将所述响应数据返回至所述目标网关,包括:
从所述目标场景参数中提取得到场景方法参数及场景组件参数;
根据所述场景方法参数以及所述场景组件参数构建所述目标场景参数对应的编程模块,并确定所述编程模块中与所述场景方法参数对应第二方法函数;
根据所述第二方法函数确定所述目标场景参数对应的所述响应数据。
7.根据权利要求6所述的方法,其特征在于,所述确定所述统一资源标识符中存在目标关键字,根据所述目标关键字确定所述统一资源标识符对应的依赖替换服务的接口路径,包括:
获取所述统一资源标识符的数据层次结构;
对所述数据层次结构进行筛选,根据筛选确定所述统一资源标识符的所述接口路径。
8.基于依赖替换服务的数据处理装置,其特征在于,所述装置包括:
请求获取单元,用于获取目标网关的访问请求,根据所述目标网关的通信协议对所述访问请求进行解析得到目标报文;
报文解析单元,用于从所述目标报文中提取得到目标字段,根据所述目标字段确定所述目标报文是否符合依赖替换服务规则;
替换服务单元,用于确定所述目标报文符合所述依赖替换服务规则,根据所述目标字段命中的目标规则生成所述目标报文对应的预期结果,将所述预期结果返回至所述目标网关;
真实服务单元,用于确定所述目标报文不符合所述依赖替换服务规则,将所述目标报文的访问请求转发至真实服务,获取所述真实服务的反馈结果并返回至所述目标网关。
9.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的基于依赖替换服务的数据处理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的基于依赖替换服务的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310317951.0A CN116346660A (zh) | 2023-03-22 | 2023-03-22 | 基于依赖替换服务的数据处理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310317951.0A CN116346660A (zh) | 2023-03-22 | 2023-03-22 | 基于依赖替换服务的数据处理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116346660A true CN116346660A (zh) | 2023-06-27 |
Family
ID=86885401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310317951.0A Pending CN116346660A (zh) | 2023-03-22 | 2023-03-22 | 基于依赖替换服务的数据处理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116346660A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881145A (zh) * | 2023-07-10 | 2023-10-13 | 易方达基金管理有限公司 | 基于流量回放的接口测试方法、装置、设备以及存储介质 |
-
2023
- 2023-03-22 CN CN202310317951.0A patent/CN116346660A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881145A (zh) * | 2023-07-10 | 2023-10-13 | 易方达基金管理有限公司 | 基于流量回放的接口测试方法、装置、设备以及存储介质 |
CN116881145B (zh) * | 2023-07-10 | 2024-03-15 | 易方达基金管理有限公司 | 基于流量回放的接口测试方法、装置、设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7371141B2 (ja) | リアルタイムデータフロープログラミング言語のためのツールおよび方法 | |
CN110198247B (zh) | 接口测试方法及系统 | |
JP6494609B2 (ja) | カスタマイズされたソフトウェア開発キット(sdk)生成のための方法および装置 | |
DK3011444T3 (en) | METHOD AND APPARATUS FOR CODE VIRTUALIZATION AND GENERATION OF REMOTE PROCESS CALLS | |
US20160119155A1 (en) | Engine for processing content rules associated with locations in a page | |
US20170344921A1 (en) | Method and apparatus for triggering execution of a workflow over a network | |
CN112187558B (zh) | 数据校验方法、装置、电子设备 | |
CN107634947A (zh) | 限制恶意登录或注册的方法和装置 | |
CN110543297A (zh) | 用于生成源码的方法和装置 | |
CN113238740A (zh) | 代码生成方法、代码生成装置、存储介质及电子设备 | |
CN108694120A (zh) | 测试服务组件的方法和装置 | |
CN116346660A (zh) | 基于依赖替换服务的数据处理方法、装置、设备及介质 | |
CN111506305B (zh) | 工具包生成方法、装置、计算机设备及可读存储介质 | |
CN113778897A (zh) | 接口的自动测试方法、装置、设备及存储介质 | |
CN116795701A (zh) | 一种接口程序的通用测试实例的生成方法和装置 | |
CN113032586B (zh) | 对文本中的时间信息进行提取的方法、装置及电子设备 | |
Schmiedmayer et al. | Reducing the impact of breaking changes to web service clients during web API evolution | |
CN111651191B (zh) | 应用于微服务构架的单应用打包方法及系统 | |
CN113032256A (zh) | 自动化测试方法、装置、计算机系统和可读存储介质 | |
CN112433752A (zh) | 页面解析方法、装置、介质及电子设备 | |
CN110377463A (zh) | 接口测试方法、装置、终端及计算机可读存储介质 | |
CN118170692B (zh) | 代码测试方法 | |
CN117354162A (zh) | 网络仿真拓扑生成方法、系统、电子设备及存储介质 | |
CN118051429A (zh) | 测试处理方法及系统 | |
CN114880209A (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 |