CN114185799A - 创建虚拟对象的数据处理方法和装置 - Google Patents
创建虚拟对象的数据处理方法和装置 Download PDFInfo
- Publication number
- CN114185799A CN114185799A CN202111534665.7A CN202111534665A CN114185799A CN 114185799 A CN114185799 A CN 114185799A CN 202111534665 A CN202111534665 A CN 202111534665A CN 114185799 A CN114185799 A CN 114185799A
- Authority
- CN
- China
- Prior art keywords
- mock
- data
- calling
- stored
- information
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 26
- 238000000034 method Methods 0.000 claims abstract description 96
- 238000012545 processing Methods 0.000 claims description 40
- 230000015654 memory Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 12
- 238000013524 data verification Methods 0.000 abstract description 2
- 238000012360 testing method Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/362—Software debugging
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供一种创建虚拟对象的数据处理方法和装置,涉及数据验证技术领域,包括:响应于接收到的数据请求,获取预先创建的面向切面编程的调用切面,并获取调用切面当前的mock调用信息,数据请求指示获取用于创建虚拟对象的数据,根据调用切面从本地线程变量中调用mock数据,并确定mock数据中存储的mock调用信息,将当前的mock调用信息与存储的mock调用信息进行匹配,得到匹配结果,若匹配结果表征当前的mock调用信息与存储的mock调用信息相同,则根据存储的mock调用信息确定并输出用于创建虚拟对象的数据,避免了需预先编码或配置造成的弊端,提高了数据处理的效率、可靠性及准确性的技术效果。
Description
技术领域
本公开涉及数据验证技术领域,尤其涉及一种创建虚拟对象的数据处理方法和装置。
背景技术
mock是指在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便完成测试。
在现有技术中,在集成测试中,通常预先编写或者配置好需要mock的对象(如接口或者方法),并通过字节码技术生成被mock的对象来替代原真实对象,以完成集成测试。
但是,采用上述方法,需预先编码或配置好需要mock的对象,使得集成测试单一而缺乏灵活性。
发明内容
本公开实施例提供一种创建虚拟对象的数据处理方法和装置,用以解决效率低的问题。
第一方面,本公开实施例提供一种创建虚拟对象的数据处理方法,包括:
响应于接收到的数据请求,获取预先创建的面向切面编程的调用切面,并获取所述调用切面当前的mock调用信息,其中,所述数据请求指示获取用于创建虚拟对象的数据;
根据所述调用切面从本地线程变量中调用mock数据,并确定所述mock数据中存储的mock调用信息;
将所述当前的mock调用信息与所述存储的mock调用信息进行匹配,得到匹配结果,若所述匹配结果表征所述当前的mock调用信息与所述存储的mock调用信息相同,则根据所述存储的mock调用信息确定并输出用于创建虚拟对象的数据。
在一些实施例中,在根据所述调用切面从本地线程变量中调用mock数据之前,还包括:
响应于接收到http请求,基于预先创建的web拦截器获取所述http请求中的mock数据,并将所述mock数据存储到本地线程变量中,其中,所述http请求是在业务操作时发起的携带所述mock数据的请求,所述mock数据中包括用于创建虚拟对象的数据。
在一些实施例中,http请求为json格式的请求;将所述mock数据存储到本地线程变量中,包括:
基于所述web拦截器对所述json格式的请求进行反序列化处理,得到所述mock数据的调用信息和返回值;
将所述mock数据的调用信息存储至所述本地线程变量中,得到所述存储的mock调用信息,并将所述返回值存储至所述本地线程变量中,得到用于创建虚拟对象的数据。
在一些实施例中,基于所述web拦截器对所述json格式的请求进行反序列化处理,得到所述mock数据的调用信息和返回值,包括:
基于所述web拦截器对所述json格式的请求进行反序列化处理,得到用于继承通用基类的子类、以及所述mock数据的调用信息和返回值,并对所述子类的字段信息进行扩展,得到扩展后的字段信息;
将所述mock数据的调用信息和返回值存储至所述扩展后的字段信息。
在一些实施例中,所述存储的mock调用信息中包括存储的需要mock的类全路径、mock的方法、mock的键值对中的值,所述当前的mock调用信息包括当前的mock的类路径、mock的方法;将所述当前的mock调用信息与所述存储的mock调用信息进行匹配,得到匹配结果包括:
若存储的需要mock的类全路径包括所述当前的mock的类路径,则将存储的mock的方法与所述当前的mock调用信息中的mock的方法进行匹配,得到匹配结果;
以及,若所述匹配结果表征所述当前的mock调用信息与所述存储的mock调用信息相同,则根据所述存储的mock调用信息确定并输出用于创建虚拟对象的数据;包括:
若所述匹配结果表征存储的mock的方法与所述当前的mock调用信息中的mock的方法相同,则mock的键值对中的值确定并输出用于创建虚拟对象的数据。
在一些实施例中,在将所述当前的mock调用信息与所述存储的mock调用信息进行匹配,得到匹配结果之后,还包括:
若所述匹配结果表征所述当前的mock调用信息与所述存储的mock调用信息不相同,则从预设数据库中获取用于创建虚拟对象的数据。
第二方面,本公开实施例提供一种创建虚拟对象的数据处理装置,包括:
第一获取单元,用于响应于接收到的数据请求,获取预先创建的面向切面编程的调用切面,并获取所述调用切面当前的mock调用信息,其中,所述数据请求指示获取用于创建虚拟对象的数据;
调用单元,用于根据所述调用切面从本地线程变量中调用mock数据;
确定单元,用于确定所述mock数据中存储的mock调用信息;
匹配单元,用于将所述当前的mock调用信息与所述存储的mock调用信息进行匹配,得到匹配结果;
输出单元,用于若所述匹配结果表征所述当前的mock调用信息与所述存储的mock调用信息相同,则根据所述存储的mock调用信息确定并输出用于创建虚拟对象的数据。
在一些实施例中,所述装置还包括:
第二获取单元,用于响应于接收到http请求,基于预先创建的web拦截器获取所述http请求中的mock数据;
存储单元,用于将所述mock数据存储到本地线程变量中,其中,所述http请求是在业务操作时发起的携带所述mock数据的请求,所述mock数据中包括用于创建虚拟对象的数据。
在一些实施例中,http请求为json格式的请求;所述存储单元,包括:
处理子单元,用于基于所述web拦截器对所述json格式的请求进行反序列化处理,得到所述mock数据的调用信息和返回值;
存储子单元,用于将所述mock数据的调用信息存储至所述本地线程变量中,得到所述存储的mock调用信息,并将所述返回值存储至所述本地线程变量中,得到用于创建虚拟对象的数据。
在一些实施例中,处理子单元用于,基于所述web拦截器对所述json格式的请求进行反序列化处理,得到用于继承通用基类的子类、以及所述mock数据的调用信息和返回值,并对所述子类的字段信息进行扩展,得到扩展后的字段信息,并将所述mock数据的调用信息和返回值存储至所述扩展后的字段信息。
在一些实施例中,所述存储的mock调用信息中包括存储的需要mock的类全路径、mock的方法、mock的键值对中的值,所述当前的mock调用信息包括当前的mock的类路径、mock的方法;
所述匹配单元用于,若存储的需要mock的类全路径包括所述当前的mock的类路径,则将存储的mock的方法与所述当前的mock调用信息中的mock的方法进行匹配,得到匹配结果;
以及,所述输出单元用于,若所述匹配结果表征存储的mock的方法与所述当前的mock调用信息中的mock的方法相同,则mock的键值对中的值确定并输出用于创建虚拟对象的数据。
在一些实施例中,所述装置还包括:
第三获取单元,用于若所述匹配结果表征所述当前的mock调用信息与所述存储的mock调用信息不相同,则从预设数据库中获取用于创建虚拟对象的数据。
第三方面,本公开实施例提供一种电子设备,包括:存储器,处理器;
存储器,用于存储所述处理器可执行指令;
其中,所述处理器被配置为执行如第一方面所述的方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面所述的方法。
第五方面,本公开实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据第一方面所述的方法。
本公开实施例提供的创建虚拟对象的数据处理方法和装置,包括:响应于接收到的数据请求,获取预先创建的面向切面编程的调用切面,并获取调用切面当前的mock调用信息,其中,数据请求指示获取用于创建虚拟对象的数据,根据调用切面从本地线程变量中调用mock数据,并确定mock数据中存储的mock调用信息,将当前的mock调用信息与存储的mock调用信息进行匹配,得到匹配结果,若匹配结果表征当前的mock调用信息与存储的mock调用信息相同,则根据存储的mock调用信息确定并输出用于创建虚拟对象的数据,避免了相关技术中需预先编码或配置好需要mock的对象,使得集成测试单一而缺乏灵活性的弊端,提高了数据处理的效率,且提高了数据处理的可靠性和准确性的技术效果。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为根据本公开一个实施例的创建虚拟对象的数据处理方法的示意图;
图2为根据本公开另一实施例的创建虚拟对象的数据处理方法的示意图;
图3为根据本公开另一实施例的创建虚拟对象的数据处理方法的示意图;
图4为根据本公开实施例的mock数据的结构示意图;
图5为根据本公开一个实施例的创建虚拟对象的数据处理装置的示意图;
图6为根据本公开另一实施例的创建虚拟对象的数据处理装置的示意图;
图7为根据本公开实施例的创建虚拟对象的数据处理方法的电子设备的框图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
随着数据的多样化和复杂化,分布式服务被广泛的应用,各业务服务繁杂,各业务服务之间错综复杂,分布式服务间依赖性极强。任何一个业务领域往往都不是一个独立的系统,都会依赖其他系统或者同时被其他系统所依赖,这就让使得在测试某系统的过程中,对其他领域的系统有依赖。
例如,对于一个金融产品的销售系统,必然会依赖和受限于如客户系统、支付系统、账务系统等外部系统的接口和数据,这就给日常测试活动带来了沟通协调的高成本,低效率的问题。在需要对测试的内部系统的业务流程进行高效率测试发现问题的过程中,通过mock部分外部接口、数据构造、复杂逻辑方法的返回数据对需要测试的内部系统进行降级,是比较常见和通用的方法。
在相关技术中,常见的mock方法主要是以开源框架为主,如j mock、power mock、mock runner、easy mock、mock makers等。这些框架工具主要都是用于单元测试中,需要预先编写或者配置好需要mock的接口或者方法,在单元测试运行过程中,框架通过字节码技术生成被mock对象的子类来替代原真实的对象,以达到mock的目的。
然而,由于采用上述方法,在mock测试过程中,需要在代码工程中预先编写大量的测试代码或者预先配置好mock对象,才能在测试运行过程中达到mock的目的,因此不能动态地对其他类、方法进行mock。
且采用上述方法,在对服务集成测试或者前后端联合测试阶段,不能灵活、动态地设置mock对象。如当联合测试环境出现下游服务接口不可用、超时或者依赖数据不容易构造的情况时,测试的工作就会受到影响,要么等待下游服务恢复、在数据库构造数据或者通过开发手动修改代码重新部署的方式来测试,不仅对测试进度产生极大的影响还容易忘记修改过的代码直接上线。
为了避免上述技术问题中的至少一种,本公开的发明人经过创造性的劳动,得到了本公开的发明构思:将mock数据存储于线程变量中,在需要获取mock数据时,将需要mock的调用信息与mock数据中的mock调用信息进行比对,如果二者相同,则从线程变量中存储的mock数据进行反馈。
下面以具体地实施例对本公开的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。
根据本公开实施例的一个方面,本公开实施例提供了一种创建虚拟对象的数据处理方法。
请参阅图1,图1为根据本公开一个实施例的创建虚拟对象的数据处理方法的示意图。
如图1所示,该方法包括:
S101:响应于接收到的数据请求,获取预先创建的面向切面编程的调用切面,并获取调用切面当前的mock调用信息。
其中,数据请求指示获取用于创建虚拟对象的数据。需要创建的虚拟对象可以为服务,也可以为接口等,本实施例不做限定。
示例性的,本实施例的执行主体可以为创建虚拟对象的数据处理装置(简称为数据处理装置),数据处理装置可以为服务器(如本地服务器,或者,云端服务器),也可以为计算机,也可以为终端设备,也可以为处理器,也可以为芯片,等等,本实施例不做限定。
在一些实施例中,数据处理装置预先创建面向切面编程(aop)的调用切面,并可以对该调用切面进行配置,以将该调用切面配置为生产环境时不加载,以便当有数据请求,即有获取创建虚拟对象的数据的需求时,可以基于调用切面获取当前的mock调用信息。
其中,当前的mock调用信息中的“当前”用于与后文中的存储的mock调用信息进行区分,而不能理解为对当前的mock调用信息的内容的限定。
例如,当前的mock调用信息是指,为了获取创建虚拟对象的数据的mock的与调用相关的信息,如类或者方法等。
S102:根据调用切面从本地线程变量中调用mock数据,并确定mock数据中存储的mock调用信息。
基于上述分析,存储的mock调用信息是指,本地线程变量中存储的与mock数据相关的信息,如与mock调用相关的信息,如类或者方法,还包括mock数据,即创建虚拟对象的返回值等。
在本实施例中,引入了在本地线程变量中存储mock数据的特征,以当需要获取用于创建虚拟对象的数据时,可以基于本地线程变量实现,即基于本地线程变量中存储的mock数据实现,而无需每次都编写代码程序,或者,从预设数据库中调用,以提高数据处理的灵活性和可靠性,且提高数据处理的效率的技术效果。
S103:将当前的mock调用信息与存储的mock调用信息进行匹配,得到匹配结果,若匹配结果表征当前的mock调用信息与存储的mock调用信息相同,则根据存储的mock调用信息确定并输出用于创建虚拟对象的数据。
示例性的,以当前的mock调用信息包括调用方法(为了便于区分,将该调用方法称为需求调用方法,以表征创建虚拟对象的数据所需要的调用的方法),存储的mock调用信息包括调用方法(为了便于区分,将该调用方法称为实际调用方法,以表征存储的mock调用信息可以满足的创建虚拟对象的数据的调用方法)为例,数据处理装置判断需求调用方法与实际调用方法是否为相同的调用方法,如果是,则数据处理装置可以根据存储的mock调用信息确定并输出用于创建虚拟对象的数据。
基于上述分析可知,本公开实施例提供了一种创建虚拟对象的数据处理方法,包括:响应于接收到的数据请求,获取预先创建的面向切面编程的调用切面,并获取调用切面当前的mock调用信息,其中,数据请求指示获取用于创建虚拟对象的数据,根据调用切面从本地线程变量中调用mock数据,并确定mock数据中存储的mock调用信息,将当前的mock调用信息与存储的mock调用信息进行匹配,得到匹配结果,若匹配结果表征当前的mock调用信息与存储的mock调用信息相同,则根据存储的mock调用信息确定并输出用于创建虚拟对象的数据,在本实施例中,引入了:由调用切面从本地线程变量中获取存储的mock调用信息,并当存储的mock调用信息与当前的mock调用信息相同时,根据存储的mock调用信息确定用于创建虚拟对象的数据的技术特征,避免了相关技术中需预先编码或配置好需要mock的对象,使得集成测试单一而缺乏灵活性的弊端,提高了数据处理的效率,且提高了数据处理的可靠性和准确性的技术效果。
请参阅图2,图2为根据本公开另一实施例的创建虚拟对象的数据处理方法的示意图。
如图2所示,该方法包括:
S201:响应于接收到http请求,基于预先创建的web拦截器获取http请求中的mock数据,并将mock数据存储到本地线程变量中。
其中,http请求是在业务操作时发起的携带mock数据的请求,mock数据中包括用于创建虚拟对象的数据。
示例性的,关于本实施例与上述实施例中相同的技术特征,本实施例不做赘述。
其中,http是超文本传输协议,其定义了客户端与服务器之间的文本传输的规范。客户端(client)可以向服务器(server)发送http请求。服务器中部署有数据处理装置,数据处理装置可以预先创建web拦截器,以便当客户端向服务端发送http请求时,web拦截器对http请求进行拦截处理,以获取http请求中的mock数据,并将mock数据存储至本地线程变量中。
值得说明的是,在本实施例中,通过拦截http请求中的mock数据,并将mock数据存储至本地线程变量中,以便当需要创建虚拟对象的数据时,从本地线程变量中获取用于创建虚拟对象的数据,避免繁琐的编写代码程序的过程,节约人力物力成本,从而提高mock的效率、有效性、以及可靠性的技术效果。
在一些实施例中,http请求为json格式的请求;将mock数据存储到本地线程变量中,包括如下步骤:
第一步骤:基于web拦截器对json格式的请求进行反序列化处理,得到mock数据的调用信息和返回值。
其中,本实施例对反序列化处理的方式不做限定,例如,可以采用键值对字符串反序列化处理。
在一些实施例中,第一步骤可以包括如下子步骤:
第一子步骤:基于web拦截器对json格式的请求进行反序列化处理,得到用于继承通用基类的子类、以及mock数据的调用信息和返回值,并对子类的字段信息进行扩展,得到扩展后的字段信息。
第二子步骤:将mock数据的调用信息和返回值存储至扩展后的字段信息。
例如,web拦截器在获取到http请求时,可以创建一个子类继承通用基类,并对其进行字段信息(field)扩展处理,得到扩展后的字段信息,以便将http请求中的mock数据存储至该扩展后的字段信息中,相当于得到了mock数据的数据结构,以便将该数据结构存储至本地线程变量中,实现存储mock数据的可靠性和有效性的技术效果。
第二步骤:将mock数据的调用信息存储至本地线程变量中,得到存储的mock调用信息,并将返回值存储至本地线程变量中,得到用于创建虚拟对象的数据。
也就是说,在对json格式的请求进行反序列化处理,得到mock数据的调用信息和返回值之后,可以将得到的mock数据的调用信息和返回值均存储至本地线程变量中,而将得到的mock数据的调用信息存储至本地线程变量,可以得到存储的mock的调用信息,将得到的mock数据的返回至存储至本地线程变量,可以得到用于创建虚拟对象的数据,以提高存储至本地线程变量中的存储的mock调用信息和用于创建虚拟对象的数据的有效性和可靠性的技术效果。
在一些实施例中,在基于web拦截器获取到http请求时,可以有web拦截器判断http请求的格式类型,如http请求是否为json格式,如果是,则将http请求中的mock数据存储到本地线程变量。
S202:响应于接收到的数据请求,获取预先创建的面向切面编程的调用切面,并获取调用切面当前的mock调用信息。
其中,数据请求指示获取用于创建虚拟对象的数据。
S203:根据调用切面从本地线程变量中调用mock数据,并确定mock数据中存储的mock调用信息。
S204:判断当前的mock调用信息与存储的mock调用信息是否相同,若是,则执行S205,若否,则执行S206。
S205:根据存储的mock调用信息确定并输出用于创建虚拟对象的数据。
结合上述分析,若当前的mock调用信息与存储的mock调用信息相同,则可以将存储于本地线程变量中的返回值确定为用于创建虚拟对象的数据。
S206:从预设数据库中获取用于创建虚拟对象的数据。
也就是说,若当前的mock调用信息与存储的mock调用信息不相同,则根据数据请求执行相应的调用操作,如向数据库发起调用,以从数据库中获取用于创建虚拟对象的数据。
值得说明的是,在本实施例中,若当前的mock调用信息与存储的mock调用信息相同,则说明存储的mock数据可以满足需要创建的虚拟对象的数据的需求,则可以从本地线程变量中反馈返回值,以提高数据处理的效率,避免后续的调用造成的资源浪费的弊端,实现节约资源的技术效果;若当前的mock调用信息与存储的mock调用信息不相同,则说明存储的mock数据无法满足需要创建的虚拟对象的数据的需求,则执行相应的调用,以获取用于创建虚拟对象的数据,以提高数据处理的有效性的技术效果。
请参阅图3,图3为根据本公开另一实施例的创建虚拟对象的数据处理方法的示意图。
如图3所示,该方法包括:
S301:响应于接收到的数据请求,获取预先创建的面向切面编程的调用切面,并获取调用切面当前的mock调用信息。
其中,数据请求指示获取用于创建虚拟对象的数据。
同理,关于本实施例与上述实施例相同的技术特征,本实施例不再赘述。
S302:根据调用切面从本地线程变量中调用mock数据,并确定mock数据中存储的mock调用信息。
其中,存储的mock调用信息中包括存储的需要mock的类全路径、mock的方法、mock的键值对中的值,当前的mock调用信息包括当前的mock的类路径、mock的方法。
在一些实施例中,mock数据的结构可以参阅图4,如图4所示:
mock数据的结构中包括:需要mock的类全路径(class path)、mock的方法(method)、mock的键值对中的值(mock value)。
在另一些实施例中,mock数据的结构还可以包括mock数据被调用的信息,如调用的顺序等。
在另一些实施例中,mock数据的结构还可以包括mock数据的状态属性,状态属性为正常或者异常,以及mock数据的结构还包括,当mock数据的状态属性为异常时,异常的种类和/或异常全路径等。
S303:若存储的需要mock的类全路径包括当前的mock的类路径,则将存储的mock的方法与当前的mock调用信息中的mock的方法进行匹配,得到匹配结果。
S304:若匹配结果表征存储的mock的方法与当前的mock调用信息中的mock的方法相同,则mock的键值对中的值确定并输出用于创建虚拟对象的数据。
在本实施例中,通过判断存储的需要mock的类全路径是否包括当前的mock的类路径,以当判断结果为是时,即存储的需要mock的类全路径包括当前的mock的类路径时,进一步判断存储的mock的方法与mock调用信息中的mock的方法是否相同,并当判断结果为是时,即存储的mock的方法与mock调用信息中的mock的方法相同时,则将如图4中所示的mock数据的结构中获取并输出用于创建虚拟对象的数据(即mock的键值对中的值)。
在一些实施例中,在数据请求完整后,可以基于web拦截器对本地线程中的mock数据进行清空处理。
值得说明的是,本实施例与上述实施例中的部分特征可以组合成新的实施例,组合方式本实施例不做限定。
根据本公开实施例的另一个方面,本公开实施例还提供了一种创建虚拟对象的数据处理装置。
请参阅图5,图5为根据本公开一个实施例的创建虚拟对象的数据处理装置的示意图。
如图5所示,创建虚拟对象的数据处理装置500包括:
第一获取单元501,用于响应于接收到的数据请求,获取预先创建的面向切面编程的调用切面,并获取所述调用切面当前的mock调用信息,其中,所述数据请求指示获取用于创建虚拟对象的数据。
调用单元502,用于根据所述调用切面从本地线程变量中调用mock数据;
确定单元503,用于确定所述mock数据中存储的mock调用信息。
匹配单元504,用于将所述当前的mock调用信息与所述存储的mock调用信息进行匹配,得到匹配结果。
输出单元505,用于若所述匹配结果表征所述当前的mock调用信息与所述存储的mock调用信息相同,则根据所述存储的mock调用信息确定并输出用于创建虚拟对象的数据。
请参阅图6,图6为根据本公开另一实施例的创建虚拟对象的数据处理装置的示意图。
如图6所示,创建虚拟对象的数据处理装置600包括:
第一获取单元601,用于响应于接收到的数据请求,获取预先创建的面向切面编程的调用切面,并获取所述调用切面当前的mock调用信息,其中,所述数据请求指示获取用于创建虚拟对象的数据。
第二获取单元602,用于响应于接收到http请求,基于预先创建的web拦截器获取所述http请求中的mock数据。
存储单元603,用于将所述mock数据存储到本地线程变量中,其中,所述http请求是在业务操作时发起的携带所述mock数据的请求,所述mock数据中包括用于创建虚拟对象的数据。
在一些实施例中,http请求为json格式的请求;结合图6可知,存储单元603,包括:
处理子单元6031,用于基于所述web拦截器对所述json格式的请求进行反序列化处理,得到所述mock数据的调用信息和返回值。
在一些实施例中,处理子单元6031用于,基于所述web拦截器对所述json格式的请求进行反序列化处理,得到用于继承通用基类的子类、以及所述mock数据的调用信息和返回值,并对所述子类的字段信息进行扩展,得到扩展后的字段信息,并将所述mock数据的调用信息和返回值存储至所述扩展后的字段信息。
存储子单元6032,用于将所述mock数据的调用信息存储至所述本地线程变量中,得到所述存储的mock调用信息,并将所述返回值存储至所述本地线程变量中,得到用于创建虚拟对象的数据。
调用单元604,用于根据所述调用切面从本地线程变量中调用mock数据;
确定单元605,用于确定所述mock数据中存储的mock调用信息。
匹配单元606,用于将所述当前的mock调用信息与所述存储的mock调用信息进行匹配,得到匹配结果。
输出单元607,用于若所述匹配结果表征所述当前的mock调用信息与所述存储的mock调用信息相同,则根据所述存储的mock调用信息确定并输出用于创建虚拟对象的数据。
在一些实施例中,所述存储的mock调用信息中包括存储的需要mock的类全路径、mock的方法、mock的键值对中的值,所述当前的mock调用信息包括当前的mock的类路径、mock的方法;
匹配单元606用于,若存储的需要mock的类全路径包括所述当前的mock的类路径,则将存储的mock的方法与所述当前的mock调用信息中的mock的方法进行匹配,得到匹配结果。
以及,输出单元607用于,若所述匹配结果表征存储的mock的方法与所述当前的mock调用信息中的mock的方法相同,则mock的键值对中的值确定并输出用于创建虚拟对象的数据。
第三获取单元608,用于若所述匹配结果表征所述当前的mock调用信息与所述存储的mock调用信息不相同,则从预设数据库中获取用于创建虚拟对象的数据。
根据本公开的实施例,本公开还提供了一种电子设备和一种可读存储介质。
根据本公开的实施例,本公开还提供了一种计算机程序产品,程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
如图7所示,是根据本公开实施例的创建虚拟对象的数据处理方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,该电子设备包括:一个或多个处理器701、存储器702,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器701为例。
存储器702即为本公开所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本公开所提供的创建虚拟对象的数据处理方法。本公开的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本公开所提供的创建虚拟对象的数据处理方法。
存储器702作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本公开实施例中的创建虚拟对象的数据处理方法对应的程序指令/模块。处理器701通过运行存储在存储器702中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的创建虚拟对象的数据处理方法。
存储器702可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据创建虚拟对象的数据处理方法的电子设备的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器702可选包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至创建虚拟对象的数据处理方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
创建虚拟对象的数据处理方法的电子设备还可以包括:输入装置703和输出装置704。处理器701、存储器702、输入装置703和输出装置704可以通过总线或者其他方式连接,图7中以通过总线连接为例。
输入装置703可接收输入的数字或字符信息,以及产生与创建虚拟对象的数据处理方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置704可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种创建虚拟对象的数据处理方法,包括:
响应于接收到的数据请求,获取预先创建的面向切面编程的调用切面,并获取所述调用切面当前的mock调用信息,其中,所述数据请求指示获取用于创建虚拟对象的数据;
根据所述调用切面从本地线程变量中调用mock数据,并确定所述mock数据中存储的mock调用信息;
将所述当前的mock调用信息与所述存储的mock调用信息进行匹配,得到匹配结果,若所述匹配结果表征所述当前的mock调用信息与所述存储的mock调用信息相同,则根据所述存储的mock调用信息确定并输出用于创建虚拟对象的数据。
2.根据权利要求1所述的方法,在根据所述调用切面从本地线程变量中调用mock数据之前,还包括:
响应于接收到http请求,基于预先创建的web拦截器获取所述http请求中的mock数据,并将所述mock数据存储到本地线程变量中,其中,所述http请求是在业务操作时发起的携带所述mock数据的请求,所述mock数据中包括用于创建虚拟对象的数据。
3.根据权利要求2所述的方法,其中,http请求为json格式的请求;将所述mock数据存储到本地线程变量中,包括:
基于所述web拦截器对所述json格式的请求进行反序列化处理,得到所述mock数据的调用信息和返回值;
将所述mock数据的调用信息存储至所述本地线程变量中,得到所述存储的mock调用信息,并将所述返回值存储至所述本地线程变量中,得到用于创建虚拟对象的数据。
4.根据权利要求3所述的方法,其中,基于所述web拦截器对所述json格式的请求进行反序列化处理,得到所述mock数据的调用信息和返回值,包括:
基于所述web拦截器对所述json格式的请求进行反序列化处理,得到用于继承通用基类的子类、以及所述mock数据的调用信息和返回值,并对所述子类的字段信息进行扩展,得到扩展后的字段信息;
将所述mock数据的调用信息和返回值存储至所述扩展后的字段信息。
5.根据权利要求1-4中任一项所述的方法,其中,所述存储的mock调用信息中包括存储的需要mock的类全路径、mock的方法、mock的键值对中的值,所述当前的mock调用信息包括当前的mock的类路径、mock的方法;将所述当前的mock调用信息与所述存储的mock调用信息进行匹配,得到匹配结果包括:
若存储的需要mock的类全路径包括所述当前的mock的类路径,则将存储的mock的方法与所述当前的mock调用信息中的mock的方法进行匹配,得到匹配结果;
以及,若所述匹配结果表征所述当前的mock调用信息与所述存储的mock调用信息相同,则根据所述存储的mock调用信息确定并输出用于创建虚拟对象的数据;包括:
若所述匹配结果表征存储的mock的方法与所述当前的mock调用信息中的mock的方法相同,则mock的键值对中的值确定并输出用于创建虚拟对象的数据。
6.根据权利要求1-4中任一项所述的方法,在将所述当前的mock调用信息与所述存储的mock调用信息进行匹配,得到匹配结果之后,还包括:
若所述匹配结果表征所述当前的mock调用信息与所述存储的mock调用信息不相同,则从预设数据库中获取用于创建虚拟对象的数据。
7.一种创建虚拟对象的数据处理装置,包括:
第一获取单元,用于响应于接收到的数据请求,获取预先创建的面向切面编程的调用切面,并获取所述调用切面当前的mock调用信息,其中,所述数据请求指示获取用于创建虚拟对象的数据;
调用单元,用于根据所述调用切面从本地线程变量中调用mock数据;
确定单元,用于确定所述mock数据中存储的mock调用信息;
匹配单元,用于将所述当前的mock调用信息与所述存储的mock调用信息进行匹配,得到匹配结果;
输出单元,用于若所述匹配结果表征所述当前的mock调用信息与所述存储的mock调用信息相同,则根据所述存储的mock调用信息确定并输出用于创建虚拟对象的数据。
8.一种电子设备,包括:存储器,处理器;
存储器,用于存储所述处理器可执行指令;
其中,所述处理器被配置为执行如权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1-6中任一项所述的方法。
10.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111534665.7A CN114185799A (zh) | 2021-12-15 | 2021-12-15 | 创建虚拟对象的数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111534665.7A CN114185799A (zh) | 2021-12-15 | 2021-12-15 | 创建虚拟对象的数据处理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114185799A true CN114185799A (zh) | 2022-03-15 |
Family
ID=80543946
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111534665.7A Pending CN114185799A (zh) | 2021-12-15 | 2021-12-15 | 创建虚拟对象的数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114185799A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107220169A (zh) * | 2016-03-21 | 2017-09-29 | 阿里巴巴集团控股有限公司 | 一种模拟服务器返回定制化数据的方法和设备 |
US20180288187A1 (en) * | 2015-12-08 | 2018-10-04 | Alibaba Group Holding Limited | Access request conversion method and apparatus |
CN110083533A (zh) * | 2019-04-16 | 2019-08-02 | 贝壳技术有限公司 | 基于Mock服务的数据处理方法及装置 |
CN111478941A (zh) * | 2020-03-05 | 2020-07-31 | 平安银行股份有限公司 | Mock自动化运行方法、装置、计算机设备及存储介质 |
CN113722020A (zh) * | 2020-05-26 | 2021-11-30 | 腾讯科技(深圳)有限公司 | 接口调用方法、装置和计算机可读存储介质 |
-
2021
- 2021-12-15 CN CN202111534665.7A patent/CN114185799A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180288187A1 (en) * | 2015-12-08 | 2018-10-04 | Alibaba Group Holding Limited | Access request conversion method and apparatus |
CN107220169A (zh) * | 2016-03-21 | 2017-09-29 | 阿里巴巴集团控股有限公司 | 一种模拟服务器返回定制化数据的方法和设备 |
CN110083533A (zh) * | 2019-04-16 | 2019-08-02 | 贝壳技术有限公司 | 基于Mock服务的数据处理方法及装置 |
CN111478941A (zh) * | 2020-03-05 | 2020-07-31 | 平安银行股份有限公司 | Mock自动化运行方法、装置、计算机设备及存储介质 |
CN113722020A (zh) * | 2020-05-26 | 2021-11-30 | 腾讯科技(深圳)有限公司 | 接口调用方法、装置和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11445008B2 (en) | Data processing methods, electronic devices, and storage media | |
US10019298B2 (en) | Middleware interface and middleware interface generator | |
CN111400000B (zh) | 网络请求处理方法、装置、设备和存储介质 | |
CN111767090A (zh) | 小程序的启动方法、装置、电子设备以及存储介质 | |
CN111881387B (zh) | 用于小程序的数据处理方法、装置、设备和介质 | |
CN111752843A (zh) | 用于确定影响面的方法、装置、电子设备及可读存储介质 | |
KR102451678B1 (ko) | 스마트 계약을 기반으로 하는 데이터 처리 방법, 장치, 기기 및 저장 매체 | |
US11294651B2 (en) | Code execution method, device, and rendering apparatus | |
KR101747424B1 (ko) | 애플리케이션 설계와 구현을 통합하는 객체 지향 프로그래밍 장치, 및 방법 | |
US20200167209A1 (en) | Configurable Analytics For Microservices Performance Analysis | |
US9208058B2 (en) | Providing directional debugging breakpoints | |
CN112506854A (zh) | 页面模板文件的存储和页面生成方法、装置、设备及介质 | |
CN111782261A (zh) | 软件配置方法、装置、电子设备以及存储介质 | |
US11379201B2 (en) | Wrapping method, registration method, device, and rendering apparatus | |
CN111985760B (zh) | 数据内容的评价方法、装置、电子设备及存储介质 | |
CN112379951A (zh) | 服务接口的访问方法、装置、电子设备和介质 | |
WO2023169193A1 (zh) | 用于生成智能合约的方法和装置 | |
CN111414154A (zh) | 前端开发的方法、装置、电子设备和存储介质 | |
CN114185799A (zh) | 创建虚拟对象的数据处理方法和装置 | |
CN115145652A (zh) | 一种数据处理任务的创建方法、装置、设备及介质 | |
CN114217798A (zh) | 数据库表单界面的代码生成方法和装置 | |
CN114741294A (zh) | 一种页面的调试方法、装置、设备及存储介质 | |
CN113176907A (zh) | 接口数据调用方法、装置、计算机系统及可读存储介质 | |
CN108089899B (zh) | 查询报表的实现方法及装置 | |
US10223158B2 (en) | Application execution environment |
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 |