CN111045650A - Mocker联调工具的设计方法、装置及计算机设备 - Google Patents
Mocker联调工具的设计方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN111045650A CN111045650A CN201911276047.XA CN201911276047A CN111045650A CN 111045650 A CN111045650 A CN 111045650A CN 201911276047 A CN201911276047 A CN 201911276047A CN 111045650 A CN111045650 A CN 111045650A
- Authority
- CN
- China
- Prior art keywords
- class
- mocker
- function
- mockaspect
- annotation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种Mocker联调工具的设计方法、装置及计算机设备,所述方法包括,定义一个MockAspect类,在MockAspect类上加上第一注解,以把MockAspect类标识为一个切面可供容器读取;定义第一函数方法,在第一函数方法上添加第二注解,以使当一个类添加了第一函数方法添加的注解后,这个类中定义的所有函数方法都会是一个切面;定义第二函数方法,在第二函数方法的方法体内添加切面的增强功能;配置MockAspect类,给MockAspect类添加第三注解,注解内容为MockAspect类的初始化条件;在项目配置文件中,配置Mocker的开关触发属性,从而控制Mocker模拟接口的开停。本发明设计的Mocker联调工具,使得该Mocker联调工具在进行调试时,对Mocker模拟接口的控制更加简单快捷,提高调试效率。
Description
技术领域
本发明涉及联调工具的设计方法、装置及计算机设备,尤其是指一种Mocker联调工具的设计方法、装置及计算机设备。
背景技术
Mocker是用在当后端开发人员尚未完成业务逻辑开发之前,但前端开发已完成了开发工作时,提供给前端开发人员进行前端交互联调的工具,它可以模拟请求接口的返回值,让前端开发人员可以提前进行接口联调,大大提高了开发的并行效率。但是,后端开发人员在完成开发之后,需要取消模拟接口功能,让前端可以调用后端真正的业务接口。现有Mocker联调工具取消模拟接口通常的做法就是注释掉相关的Mock代码,当需要使用模拟接口时,需要将注释掉的代码取消。由于调试过程中需要在模拟接口的启停中来回切换,造成调试的时间成本高,效率低,因此需要对Mocker联调工具提出一种新的设计。
发明内容
本发明所要解决的技术问题是:提供一种Mocker联调工具的设计方法、装置及计算机设备,以提高Mocker联调工具的调试效率。
为了解决上述技术问题,本发明采用的技术方案为:一种Mocker联调工具的设计方法,包括以下步骤,
定义一个MockAspect类,在MockAspect类上加上第一注解,以把MockAspect类标识为一个切面可供容器读取;
定义第一函数方法,在第一函数方法上添加第二注解,以使当一个类添加了第一函数方法添加的注解后,这个类中定义的所有函数方法都会是一个切面;
定义第二函数方法,在第二函数方法的方法体内添加切面的增强功能;
配置MockAspect类,给MockAspect类添加第三注解,注解内容为MockAspect类的初始化条件;
在项目配置文件中,配置Mocker的开关触发属性,从而控制Mocker模拟接口的开停。
进一步的,所述MockAspect类的初始化条件为,
当mock.enabled=true时初始化该类,此时开启Mocker;当没有配置该属性或者该属性值mock.enabled=false时,关闭Mocker。
进一步的,所述第二函数方法的方法体内添加切面的增强功能为实现模拟请求接口的返回值功能。
本发明还提供了一种Mocker联调工具的设计装置,所述Mocker联调工具的设计装置包括,
MockAspect类定义模块,用于定义一个MockAspect类,在MockAspect类上加上第一注解,以把MockAspect类标识为一个切面可供容器读取;
第一函数方法定义模块,用于定义第一函数方法,在第一函数方法上添加第二注解,以使当一个类添加了第一函数方法添加的注解后,这个类中定义的所有函数方法都会是一个切面;
第二函数方法定义模块,用于定义第二函数方法,在第二函数方法的方法体内添加切面的增强功能;
MockAspect类配置模块,用于配置MockAspect类,给MockAspect类添加第三注解,注解内容为MockAspect类的初始化条件;
Mocker配置模块,用于在项目配置文件中,配置Mocker的开关触发属性,从而控制Mocker模拟接口的开停。
进一步的,所述MockAspect类配置模块中,MockAspect类的初始化条件为,
当mock.enabled=true时初始化该类,此时开启Mocker;当没有配置该属性或者该属性值mock.enabled=false时,关闭Mocker。
进一步的,所述第二函数方法定义模块中,第二函数方法的方法体内添加切面的增强功能为实现模拟请求接口的返回值功能。
本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的Mocker联调工具的设计方法。
本发明的有益效果在于:通过上述方法设计的Mocker联调工具,使得该Mocker联调工具在进行调试时,能够通过在项目配置文件中,配置Mocker的开关触发属性,从而控制Mocker模拟接口的开启或停止,不需要再去将注释掉相关的Mock代码及取消注释,使得对Mocker模拟接口的控制更加简单快捷,提高调试效率。
附图说明
下面结合附图详述本发明的具体结构。
图1为本发明实施例的Mocker联调工具的设计方法流程图;
图2为本发明实施例的Mocker联调工具的设计装置框图;
图3为本发明实施例的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如图1所示,本发明第一实施例为:一种Mocker联调工具的设计方法,包括以下步骤,
S10、定义一个MockAspect类,在MockAspect类上加上第一注解,以把MockAspect类标识为一个切面可供容器读取;
S20、定义第一函数方法,在第一函数方法上添加第二注解,以使当一个类添加了第一函数方法添加的注解后,这个类中定义的所有函数方法都会是一个切面;
S30、定义第二函数方法,在第二函数方法的方法体内添加切面的增强功能;
S40、配置MockAspect类,给MockAspect类添加第三注解,注解内容为MockAspect类的初始化条件;
S50、在项目配置文件中,配置Mocker的开关触发属性,从而控制Mocker模拟接口的开停。
进一步的,所述MockAspect类的初始化条件为,
当mock.enabled=true时初始化该类,此时开启Mocker;当没有配置该属性或者该属性值mock.enabled=false时,关闭Mocker。
进一步的,所述第二函数方法的方法体内添加切面的增强功能为实现模拟请求接口的返回值功能。
本实施例中,具体的实现过程如下,
第一,先定义一个类MockAspect,再这个类上加@Aspect注解,表示这个类使用AOP机制;
第二,先定义一个publicvoidaspect()方法,在该方法上添加@Pointcut("@within(com.lls.framework.web.annotation.BaseRestControll er)")注解,意思就是,当一个类添加了BaseRestController这个注解之后,这个类中定义的所有方法都会是一个切面,在这个切面做方法的增强,即一些额外的功能,当流程进入到这个方法之后,会执行这些额外的功能。
第三,定义方法publicObjectaroundMethod(ProceedingJoinPointjt),并在这个方法上添加@Around("aspect()"),aspect()是定义了切面,aroundMethod方法中就是具体的增强功能。在方法体中实现模拟请求接口的返回值功能。
第四,在配置管理MockAspect类时,在MockAspect类中添加注解@ConditionalOnProperty(value="mock.enabled",havingValue="true",matchIfMissing=false),意思是当mock.enabled=true时初始化该类,此时开启Mocker,当没有配置该属性或者该属性值mock.enabled=false时,关闭Mocker
第五,在项目配置文件application.properties文件中,根据需要配置mock.enabled属性,从而控制Mocker的开停。
当按照上述方式设计出的Mocker联调工具进行调试时,调试步骤如下:
当一个http请求过来时,Mocker的***会拦截该请求;***判断请求地址的是不是带有“mocker”这个关键字,如果没带有,请求会走真实的接口;如果请求地址带有Mocker关键字,说明请求会走模拟接口。此时mocker会根据请求调用的方法的返回值类型,模拟值返回给调用方。比如,如果返回的是String类型,那么mocker会随机模拟一个String类型的值,如:“abdc”;如果是Integer类型,那么mocker会随机模拟一个Integer类型的值,如:123。
本实施例的技术效果在于:通过上述方法设计的Mocker联调工具,使得该Mocker联调工具在进行调试时,能够通过在项目配置文件中,配置Mocker的开关触发属性,从而控制Mocker模拟接口的开启或停止,不需要再去将注释掉相关的Mock代码及取消注释,使得对Mocker模拟接口的控制更加简单快捷,提高调试效率。
如图2所示,本发明的第二实施例为:一种Mocker联调工具的设计装置,所述Mocker联调工具的设计装置包括,
MockAspect类定义模块10,用于定义一个MockAspect类,在MockAspect类上加上第一注解,以把MockAspect类标识为一个切面可供容器读取;
第一函数方法定义模块20,用于定义第一函数方法,在第一函数方法上添加第二注解,以使当一个类添加了第一函数方法添加的注解后,这个类中定义的所有函数方法都会是一个切面;
第二函数方法定义模块30,用于定义第二函数方法,在第二函数方法的方法体内添加切面的增强功能;
MockAspect类配置模块40,用于配置MockAspect类,给MockAspect类添加第三注解,注解内容为MockAspect类的初始化条件;
Mocker配置模块50,用于在项目配置文件中,配置Mocker的开关触发属性,从而控制Mocker模拟接口的开停。
进一步的,所述MockAspect类配置模块40中,MockAspect类的初始化条件为,
当mock.enabled=true时初始化该类,此时开启Mocker;当没有配置该属性或者该属性值mock.enabled=false时,关闭Mocker。
进一步的,所述第二函数方法定义模块30中,第二函数方法的方法体内添加切面的增强功能为实现模拟请求接口的返回值功能。
本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的Mocker联调工具的设计方法。
本发明的有益效果在于:通过上述方法设计的Mocker联调工具,使得该Mocker联调工具在进行调试时,能够通过在项目配置文件中,配置Mocker的开关触发属性,从而控制Mocker模拟接口的开启或停止,不需要再去将注释掉相关的Mock代码及取消注释,使得对Mocker模拟接口的控制更加简单快捷,提高调试效率。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述Mocker联调工具的设计装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述Mocker联调工具的设计装置可以实现为一种计算机程序的形式,该计算机程序可以在如图3所示的计算机设备上运行。
请参阅图3,图3是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图3,该计算机设备500包括通过***总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作***5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种Mocker联调工具的设计方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种Mocker联调工具的设计方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现上述Mocker联调工具的设计方法。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机***中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中计算机程序包括程序指令。该程序指令被处理器执行时使处理器执行上述Mocker联调工具的设计方法。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (7)
1.一种Mocker联调工具的设计方法,其特征在于:包括以下步骤,
定义一个MockAspect类,在MockAspect类上加上第一注解,以把MockAspect类标识为一个切面可供容器读取;
定义第一函数方法,在第一函数方法上添加第二注解,以使当一个类添加了第一函数方法添加的注解后,这个类中定义的所有函数方法都会是一个切面;
定义第二函数方法,在第二函数方法的方法体内添加切面的增强功能;
配置MockAspect类,给MockAspect类添加第三注解,注解内容为MockAspect类的初始化条件;
在项目配置文件中,配置Mocker的开关触发属性,从而控制Mocker模拟接口的开停。
2.如权利要求1所述的Mocker联调工具的设计方法,其特征在于:所述MockAspect类的初始化条件为,
当mock.enabled=true时初始化该类,此时开启Mocker;当没有配置该属性或者该属性值mock.enabled=false时,关闭Mocker。
3.如权利要求1所述的Mocker联调工具的设计方法,其特征在于:所述第二函数方法的方法体内添加切面的增强功能为实现模拟请求接口的返回值功能。
4.一种Mocker联调工具的设计装置,其特征在于:所述Mocker联调工具的设计装置包括,
MockAspect类定义模块,用于定义一个MockAspect类,在MockAspect类上加上第一注解,以把MockAspect类标识为一个切面可供容器读取;
第一函数方法定义模块,用于定义第一函数方法,在第一函数方法上添加第二注解,以使当一个类添加了第一函数方法添加的注解后,这个类中定义的所有函数方法都会是一个切面;
第二函数方法定义模块,用于定义第二函数方法,在第二函数方法的方法体内添加切面的增强功能;
MockAspect类配置模块,用于配置MockAspect类,给MockAspect类添加第三注解,注解内容为MockAspect类的初始化条件;
Mocker配置模块,用于在项目配置文件中,配置Mocker的开关触发属性,从而控制Mocker模拟接口的开停。
5.如权利要求4所述的Mocker联调工具的设计装置,其特征在于:所述MockAspect类配置模块中,MockAspect类的初始化条件为,
当mock.enabled=true时初始化该类,此时开启Mocker;当没有配置该属性或者该属性值mock.enabled=false时,关闭Mocker。
6.如权利要求4所述的Mocker联调工具的设计装置,其特征在于:所述第二函数方法定义模块中,第二函数方法的方法体内添加切面的增强功能为实现模拟请求接口的返回值功能。
7.一种计算机设备,其特征在于:所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至3中任一项所述的Mocker联调工具的设计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911276047.XA CN111045650A (zh) | 2019-12-12 | 2019-12-12 | Mocker联调工具的设计方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911276047.XA CN111045650A (zh) | 2019-12-12 | 2019-12-12 | Mocker联调工具的设计方法、装置及计算机设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111045650A true CN111045650A (zh) | 2020-04-21 |
Family
ID=70236745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911276047.XA Pending CN111045650A (zh) | 2019-12-12 | 2019-12-12 | Mocker联调工具的设计方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111045650A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446063A (zh) * | 2018-09-18 | 2019-03-08 | 深圳壹账通智能科技有限公司 | 接口测试方法、装置、计算机设备和存储介质 |
CN110147326A (zh) * | 2019-05-23 | 2019-08-20 | 四川新网银行股份有限公司 | 基于Redis数据库的微服务自动化测试方法 |
CN110502224A (zh) * | 2019-08-22 | 2019-11-26 | 深圳前海环融联易信息科技服务有限公司 | 基于http请求的接口模拟方法、装置和计算机设备 |
-
2019
- 2019-12-12 CN CN201911276047.XA patent/CN111045650A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109446063A (zh) * | 2018-09-18 | 2019-03-08 | 深圳壹账通智能科技有限公司 | 接口测试方法、装置、计算机设备和存储介质 |
CN110147326A (zh) * | 2019-05-23 | 2019-08-20 | 四川新网银行股份有限公司 | 基于Redis数据库的微服务自动化测试方法 |
CN110502224A (zh) * | 2019-08-22 | 2019-11-26 | 深圳前海环融联易信息科技服务有限公司 | 基于http请求的接口模拟方法、装置和计算机设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976761B (zh) | 软件开发工具包的生成方法、装置及终端设备 | |
CN103049375B (zh) | 一种摄像头在线调试方法 | |
WO2019169723A1 (zh) | 测试用例选择方法、装置、设备以及计算机可读存储介质 | |
CN114580344B (zh) | 测试激励生成方法、验证方法、验证***及相关设备 | |
CN110377462B (zh) | 接口测试方法、装置及终端设备 | |
US8838430B1 (en) | Detection of memory access violation in simulations | |
CN103988211B (zh) | 用于增加计算机安全的方法和*** | |
CN109471851A (zh) | 数据处理方法、装置、服务器和存储介质 | |
WO2019019702A1 (zh) | 算法的生成方法、装置、终端设备及存储介质 | |
CN110554998A (zh) | 一种通过替换函数内部指令的钩子方法、装置、终端及存储介质 | |
CN111797020A (zh) | 基于动态字节码的mock数据方法及装置 | |
CN111538659B (zh) | 业务场景的接口测试方法、***、电子设备和存储介质 | |
CN114461223A (zh) | 一种代码生成方法、装置及终端设备 | |
CN109388435A (zh) | 实现app同时多次开启操作的方法和装置 | |
CN111385661B (zh) | 语音控制全屏播放的方法、装置、终端及存储介质 | |
CN108322542B (zh) | 数据更新方法、***、装置以及计算机可读存储介质 | |
US7664776B1 (en) | Methods and apparatus for dynamic form definition | |
US9003364B2 (en) | Overriding system attributes and function returns in a software subsystem | |
CN111045650A (zh) | Mocker联调工具的设计方法、装置及计算机设备 | |
CN114995790A (zh) | 一种组件开发方法、装置、计算机可读介质及电子设备 | |
CN114003421B (zh) | 虚拟机超时机制测试方法、***、终端及存储介质 | |
CN112764729B (zh) | 应用软件开发方法、装置、计算机设备及可读存储介质 | |
CN115599401A (zh) | 自定义模型的发布方法、装置、设备及介质 | |
CN115576711A (zh) | 一种返回数据模拟方法、***及计算设备 | |
WO2023059389A1 (en) | What-if analysis for notebooks |
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 |