CN111538606A - 一种测试模拟Dubbo接口的方法、装置及设备 - Google Patents
一种测试模拟Dubbo接口的方法、装置及设备 Download PDFInfo
- Publication number
- CN111538606A CN111538606A CN202010344240.9A CN202010344240A CN111538606A CN 111538606 A CN111538606 A CN 111538606A CN 202010344240 A CN202010344240 A CN 202010344240A CN 111538606 A CN111538606 A CN 111538606A
- Authority
- CN
- China
- Prior art keywords
- interface
- service
- dubbo
- simulated
- user
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- 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
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/549—Remote execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种测试模拟Dubbo接口的方法、装置及设备,通过设计与服务消费方设备对应的模块化的挡板系统,且该挡板系统包括操作界面,使得模拟服务提供方的接口以及完成测试的过程不再需要人工编写代码,用户在操作界面上进行简单的操作即可通过挡板系统完成对服务提供方Dubbo接口的模拟,并借助该模拟的Dubbo接口对该服务消费方的功能进行测试,实现了简单、方便的模拟Dubbo接口并对服务消费方设备的测试,为软件联调环境不成熟时服务消费方对其功能的测试带来了便利,大大降低了对测试人员的门槛。
Description
技术领域
本申请涉及远程过程测试(英文:Remote Procedure Call,简称:RPC)技术领域,特别是涉及一种测试模拟Dubbo接口的方法、装置及设备。
背景技术
在软件开发周期的迭代开发、迭代测试、功能测试和自动化测试等阶段,常常存在由于各方设备内部过于复杂、各方设备之间开发进度不同步等原因,造成软件联调环境不可用,无法在真实环境进行各项测试,这样,测试任务无法按时开展,影响产品的投产时间或投产质量,进而可能对公司造成巨大损失。
在RPC框架中通常包括服务提供方(英文:Provider)和服务消费方(英文:Consumer),服务提供方通过Dubbo接口为服务消费方提供服务。在对服务消费方设备进行测试时,通常通过编程模拟与该服务消费方设备通信的服务提供方Dubbo接口,依据该服务提供方的模拟接口对该服务消费方设备的功能进行测试。
目前,模拟服务提供方的接口以及完成测试的方式具体可以包括:方式一、对照被模拟接口,编写一模一样的接口名称,再实现该接口的方法体,方法体中只配置固定的返回结果,可见,该方式通过编写一套与真实环境接口完全一样的一套接口,将代码中的逻辑实现改为模拟的固定值,在服务消费方调用该模拟接口时,始终都会返回该固定结果,以达到模拟的目的;方式二、如果自带模拟方法,则需要在服务消费方编写模拟代理代码,对模拟的服务提供方接口编写实现类,该实现类中包含了模拟数据,并且在配置文件中配置该实现类,在服务消费方调用该模拟接口时需要配置参数指示到所配置的实现类。
可见,上述两种模拟服务提供方的接口以及完成测试的方式,均需要编写代码,技术门槛高,仅供熟悉编程的开发人员使用,测试人员难以上手使用。
基于此,亟待提供一种测试模拟Dubbo接口的方法,无需编写代码即可为用户提供简单、方便的对模拟Dubbo接口的测试方法,为软件联调环境不成熟时服务消费方对其功能的测试提供方便。
发明内容
为了解决上述技术问题,本申请实施例提供一种测试模拟Dubbo接口的方法、装置及设备,能够简单、方便实现对模拟Dubbo接口的测试,为产品的测试提供了便利。
第一方面,提供了一种测试模拟Dubbo接口的方法,应用于挡板系统,所述挡板系统与于服务消费方设备对应,所述服务消费方设备通过Dubbo协议和服务提供方设备通信,所述方法包括:
响应于用户触发的获取操作,获取所述服务提供方设备的Jar包和XML配置文件;
显示所述服务提供方设备的至少一个接口方法,所述至少一个接口方法为所述挡板系统对所述Jar包和所述XML配置文件进行解析后获得的;
响应于用户触发的从所述至少一个接口方法中选择目标接口方法的操作,并获取对所述目标接口方法的配置数据,得到第一模拟Dubbo接口,所述第一模拟Dubbo接口为所述挡板系统模拟的与所述服务消费方设备通信的所述服务提供方设备的第一真实Dubbo接口;
响应于用户触发的注册操作,将所述目标接口方法注册到ZooKeeper服务中,实现对所述服务消费方设备的测试。
可选地,所述响应于用户触发的从所述至少一个接口方法中选择目标接口方法的操作,并获取对所述目标接口方法的配置数据,得到第一模拟Dubbo接口,包括:
响应于用户触发的选择所述目标接口方法的操作,显示数据配置页面;
获得用户在所述数据配置页面输入的所述配置数据;
基于所述目标接口方法和所述配置数据,得到所述第一模拟Dubbo接口。
可选地,在用户触发所述注册操作之前,所述方法还包括:
响应于用户触发的启动ZooKeeper服务的操作,启动所述ZooKeeper服务,并提供服务地址。
可选地,所述将所述目标接口方法注册到ZooKeeper服务中,包括:
通过所述第一模拟Dubbo接口和所述服务地址,测试所述服务消费方设备的第二真实Dubbo接口调用所述第一模拟Dubbo接口时,所述服务消费方设备的功能。
可选地,所述方法还包括:
保存所述第一模拟Dubbo接口的相关参数。
第二方面,还提供了一种测试模拟Dubbo接口的装置,该装置应用于挡板系统,所述挡板系统与于服务消费方设备对应,所述服务消费方设备通过Dubbo协议和服务提供方设备通信,所述装置包括:
第一获取单元,用于响应于用户触发的获取操作,获取所述服务提供方设备的Jar包和XML配置文件;
显示单元,用于显示所述服务提供方设备的至少一个接口方法,所述至少一个接口方法为所述挡板系统对所述Jar包和所述XML配置文件进行解析后获得的;
第二获取单元,用于响应于用户触发的从所述至少一个接口方法中选择目标接口方法的操作,并获取对所述目标接口方法的配置数据,得到第一模拟Dubbo接口,所述第一模拟Dubbo接口为所述挡板系统模拟的与所述服务消费方设备通信的所述服务提供方设备的第一真实Dubbo接口;
注册单元,用于响应于用户触发的注册操作,将所述目标接口方法注册到ZooKeeper服务中,实现对所述服务消费方设备的测试。
可选地,所述第二获取单元,包括:
显示子单元,用于响应于用户触发的选择所述目标接口方法的操作,显示数据配置页面;
第一获取子单元,用于获得用户在所述数据配置页面输入的所述配置数据;
第二获取子单元,用于基于所述目标接口方法和所述配置数据,得到所述第一模拟Dubbo接口。
可选地,所述装置还包括:
启动单元,用于在用户触发所述注册操作之前,响应于用户触发的启动ZooKeeper服务的操作,启动所述ZooKeeper服务,并提供服务地址。
可选地,所述注册单元,具体用于:
通过所述第一模拟Dubbo接口和所述服务地址,测试所述服务消费方设备的第二真实Dubbo接口调用所述第一模拟Dubbo接口时,所述服务消费方设备的功能。
可选地,所述装置还包括:
保存单元,用于保存所述第一模拟Dubbo接口的相关参数。
第三方面,还提供了一种服务消费方设备,所述服务消费方设备包括存储器和处理器,其中,
所述存储器用于存储计算机程序或指令;
所述处理器用于调用所述存储器中存储的计算机程序或指令,使得所述服务消费方设备执行前述第一方面提供的方法。
第四方面,还提供了一种挡板系统,所述挡板系统与服务消费方设备对应;
所述挡板系统用于执行前述第一方面提供的方法,模拟与所述服务消费方设备通信的所述服务提供方设备的第一真实Dubbo接口,实现对所述服务消费方设备的测试。
第五方面,本申请还提供了计算机程序产品,包括计算机程序或计算机可读指令,当所述计算机程序或所述计算机可读指令在计算机上运行时,使得计算机执行前述第一方面提供的方法。
相较于现有技术,本申请实施例具有以下有益效果:
在本申请实施例中,提供了一种测试模拟Dubbo接口的方法,应用于挡板系统,所述挡板系统与于服务消费方设备对应,所述服务消费方设备通过Dubbo协议和服务提供方设备通信,所述方法包括:响应于用户触发的获取操作,获取所述服务提供方设备的Jar包和XML配置文件;显示所述服务提供方设备的至少一个接口方法,所述至少一个接口方法为所述挡板系统对所述Jar包和所述XML配置文件进行解析后获得的;响应于用户触发的从所述至少一个接口方法中选择目标接口方法的操作,并获取对所述目标接口方法的配置数据,得到第一模拟Dubbo接口,所述第一模拟Dubbo接口为所述挡板系统模拟的与所述服务消费方设备通信的所述服务提供方设备的第一真实Dubbo接口;响应于用户触发的注册操作,将所述目标接口方法注册到ZooKeeper服务中,实现对所述服务消费方设备的测试。
这样,通过在挡板系统设计的操作界面,并设计模块化的挡板系统,使得模拟服务提供方的接口以及完成测试的过程不再需要人工编写代码,用户在操作界面上进行简单的操作即可通过挡板系统完成对服务提供方Dubbo接口的模拟,并借助该模拟的Dubbo接口对该服务消费方的功能进行测试,实现了简单、方便的模拟Dubbo接口并对服务消费方设备的测试,为软件联调环境不成熟时服务消费方对其功能的测试带来了便利,大大降低了对测试人员的门槛。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种Dubbo框架的结构示意图;
图2为本申请实施例中一种挡板系统200的结构示意图;
图3a为本申请实施例中操作界面的一示意图;
图3b为本申请实施例中操作界面的另一示意图;
图4为本申请实施例中一种测试模拟Dubbo接口的方法的流程示意图;
图5为本申请实施例中一种测试模拟Dubbo接口的装置500的结构示意图;
图6为本申请实施例中一种服务消费方设备600的结构示意图。
具体实施方式
Dubbo协议作为一种Java RPC框架下的通信协议,用于协商确定参与通信双方进行通信需要遵循的规则。Dubbo协议是使用Java语言实现的,参见图1,为Dubbo框架的一示例性的结构示意图。该框架中包括:服务提供方设备101、服务消费方设备102、注册中心设备103、监控中心设备104和服务运行容器105。本申请实施例主要关注三部分::服务提供方设备101、服务消费方设备102和注册中心设备103。具体实现时,由服务提供方设备101为Dubbo服务的提供方,提供服务的过程包括:首先,将服务提供方设备101上待提供的服务注册到注册中心设备103中,注册之后服务消费方设备102就可以在订阅时发现该服务,进而去服务提供方设备101调用其提供的该服务。
本申请实施例中是在服务消费方设备102上模拟出服务提供方设备101和注册中心设备103,具体为:模拟出服务提供方设备101提供具体的服务(即,模拟服务提供方设备101提供该服务对应的Dubbo接口),并将该模拟出的服务注册到模拟的注册中心设备103上。在实际开发测试过程中,上述模拟可以视作在服务消费方设备102上开发了挡板系统,完成在服务消费方设备102上模拟服务提供方设备101和注册中心设备103,实现对服务消费方设备102上功能的测试。
目前,一种方式下,对照需要被模拟的Dubbo接口,编写一模一样的接口名称,再实现该接口的方法体,方法体中只配置固定的返回结果,可见,该方式通过编写一套与真实环境接口完全一样的一套接口,将代码中的逻辑实现改为模拟的固定值,在服务消费方调用该模拟Dubbo接口时,始终都会返回该固定结果,以达到模拟的目的。另一种方式下,如果自带模拟方法,则需要在服务消费方编写模拟代理代码,对模拟的服务提供方接口编写实现类,该实现类中包含了模拟数据,并且在配置文件中配置该实现类,在服务消费方调用该模拟接口时需要配置参数指示到所配置的实现类。
上述两种模拟服务提供方的Dubbo接口以及完成测试的方式,均需要编写代码,技术门槛高,仅供熟悉编程的开发人员使用,测试人员难以上手使用。而且,由于测试完成之后需要删除代码,使得模拟的Dubbo接口和数据无法得到复用,造成资源的浪费;在本地编写执行的模拟代码,导致无法与其他开发测试人员共享,开发测试人员不能够获知其他人已经编写的对同一接口的模拟代码,可能会造成重复劳动。而且,对于上述的第二种方式,由于代码都在服务消费方编写,容易导致代码入侵,从而引入与该服务消费方功能无关的漏洞,造成测试失败或者最终交付版本异常等问题。
发明人经过研究,针对上述方案中存在的易用性差、隔离性弱、无法复用和共享的不足,设计了本申请实施例的技术方案,具体包括:响应于用户在服务消费方设备的界面触发的获取操作,获取所述服务提供方设备的Jar包和XML配置文件;在服务消费方设备的界面显示所述服务提供方设备的至少一个接口方法,所述至少一个接口方法为所述服务消费方设备上的挡板系统对所述Jar包和所述XML配置文件进行解析后获得的;响应于用户在服务消费方设备的界面触发的从所述至少一个接口方法中选择目标接口方法的操作,并获取用户在服务消费方设备的界面对所述目标接口方法的配置数据,得到第一模拟Dubbo接口,所述第一模拟Dubbo接口为所述挡板系统模拟的与所述服务消费方设备通信的所述服务提供方设备的第一真实Dubbo接口;响应于用户在服务消费方设备的界面触发的注册操作,将所述目标接口方法注册到ZooKeeper服务中,实现对所述服务消费方设备的测试。这样,通过在服务消费方设备上设计操作界面,并设计模块化的挡板系统,使得模拟服务提供方的接口以及完成测试的过程不再需要人工编写代码,用户在操作界面上进行简单的操作即可通过挡板系统完成对服务提供方Dubbo接口的模拟,并借助该模拟的Dubbo接口对该服务消费方的功能进行测试,实现了简单、方便的模拟Dubbo接口并对服务消费方设备的测试,为软件联调环境不成熟时服务消费方对其功能的测试带来了便利,大大降低了对测试人员的门槛。
可以理解的是,针对现有方案易用性差的缺点,本申请实施例使用Web页面或者客户端界面的形式为用户展示一个人性化的操作界面,所有的操作都是在网页中完成的,用户不需要编写任何代码,仅仅在操作界面中进行操作即可完成模拟Dubbo接口。这样,即使是没有编写代码能力的测试人员也可以得心应手的使用该挡板系统。而且,开发人员也可以用这种更直观的配置方式进行功能的开发。
针对现有方案无法复用和共享的缺点,本申请实施例不需要编写代码,自然也就不用删除代码,这样,用户配置后模拟的接口方法和数据都会被保留下来,不会造成数据的浪费,供后续进行测试时复用;而且,使用操作界面的形式,无需进行权限设置,所有用户均能够查看调用其他用户模拟过的模拟Dubbo接口,这样,模拟的Dubbo接口能够被共享,无论何时何地均可进行调用,免去重复性劳动,节约了人力成本。
针对现有方案隔离性弱的缺点,本申请实施例不需要编写代码,所以,不会造成代码入侵,也就不可能引入新的bug,能够有效克服测试失败或者最终交付版本异常等问题。
本申请实施例中提供的挡板系统200,参见图2所示,具体可以包括:数据存储模块201、解析模块202、接口模拟模块203、ZooKeeper服务模块204和操作界面205。
其中,解析模块202,用于负责按照XML配置文件的内容解析Jar包,XML配置文件中有若干个<dubbo:reference>标签,如:<dubbo:reference id="demo"interface="cn.boc.Demo"/>,将这些标签中的属性接口(英文:interface)的值cn.boc.Demo提取出来,该cn.boc.Demo表示的是接口的名称,使用cn.boc.Demo在Jar包中搜索解析出该接口的名称对应的接口方法和参数,保存到数据存储模块201。另外,Jar包中还包括许多XML配置文件中的interface定义之外的Java类,也全部解析出来存储在数据存储模块201中。需要说明的是,如果解析过程中涉及嵌套的Java类,也需要将嵌套的Java类都解析出来一并保存在数据存储模块201,供后续模拟Dubbo接口时使用。
接口模拟模块203,用于负责将用户选择的要模拟的Dubbo接口方法和数据进行模拟。作为一个示例,该接口模拟模块203具体可以从数据存储模块201中找出接口方法和参数值,再使用Mockito框架提供的When then语句进行接口模拟。为了能够支持多组数据的模拟,then后的返回结果需要根据when后输入的参数值进行判断,对应上后,则返回对应的结果值,对应不上则返回空。生成好模拟的Dubbo接口后,还需要负责将该模拟的Dubbo接口以Dubbo接口的形式注册到ZooKeeper服务中。
ZooKeeper服务模块204,用于负责ZooKeeper服务的启动和停止,启动ZooKeeper服务后会生成一个服务地址,该服务地址可以包括互联网协议(英文:Internet Protocol,简称:IP)地址和端口号。ZooKeeper服务停止之后,会回收该IP地址和端口号,下次启动ZooKeeper服务优先提供上次启动生成的IP地址和端口号,除非上次分配的服务地址被占用,如果上次分配的服务地址被占用,则该次生成其他服务地址。
操作界面205,用于负责处理各模块需要展示的信息,给用户一个交互式操作界面,该操作界面可以是Web页面或客户端上的界面。具体而言,能够包括但不限于:负责接口模拟模块203的所有接口的回显和选择界面,负责ZooKeeper服务模块204的服务地址展示、启动和停止操作的界面。
数据存储模块201包括了文件系统和数据库,与其他模块都有关联,负责存取各模块生成的数据。
此外,该挡板系统200还可以包括:文件上传模块206和数据配置模块207。其中,文件上传模块206,用于提供用户上传Jar包文件和XML配置文件的功能,可以上传多个Jar包文件和一个XML配置文件,上传的文件会保存在数据存储模块201的文件系统中。该模块206中,也可以对上传文件的类型进行限制,仅能上传.jar和.xml格式的文件,其他文件拒绝上传。数据配置模块207,用于负责接口数据的配置,用户在决定要模拟哪个接口后,会对这个接口配置数据,数据配置模块207就来接收并保存用户配置的接口数据。接口数据可以配置多条,每条数据都包含了输入参数和返回参数的值,该模块207可以提供新建、查看、修改和删除数据条目的功能。参数的值会根据解析模块202的解析结果(即,Java定义的类型)来限定存储格式,比如:字符串String类型就配置字符串,整型int类型就配置整数等。
该挡板系统200中,数据存储模块201对于文件上传模块206,用于负责将文件存储在数据存储模块201的文件系统中,并将文件名等信息存储在数据存储模块201的数据库;对于解析模块202,用于负责将解析出的接口名、方法名、类名和类的属性信息存储在数据存储模块201的数据库中;对于接口模拟模块203,用于负责提供接口相关信息的查询功能;对于数据配置模块207,用于负责存储和查询用户输入的接口数据;对于ZooKeeper服务模块204,用于负责存取ZooKeeper服务启动后生成的服务地址。
需要说明的是,上述挡板系统200可以集成在服务消费方设备中,该服务消费方设备为本申请实施例提供的测试模拟Dubbo接口的方法的执行主体。其中,所述服务消费方设备通过Dubbo协议和服务提供方设备通信,但是,在对服务消费方设备的功能进行测试时,可以通过本申请实施例提供的方法,先模拟对端——服务提供方设备上的Dubbo接口,再将该模拟的Dubbo接口注册到启动的ZooKeeper服务上,测试该服务消费方设备通过模拟的Dubbo接口调用服务提供方设备已注册服务时,该服务消费方设备的功能是否正常。
需要说明的是,挡板系统200中,除了数据存储模块201和操作界面205,其他模块均属于处理模块,具体实现时,可以通过一个处理器完成,也可以分别在不同的处理器实现,在本申请实施例中不作具体限定。
下面结合附图,通过实施例来详细说明本申请实施例中一种测试模拟Dubbo接口的方法的具体实现方式。
在介绍本申请实施例提供的测试模拟Dubbo接口的方法之前,示例性的给出本申请实施例中设计的挡板系统200中操作界面205,该操作界面205例如可以参见图3a和图3b,其中,图3a示出了模拟Dubbo接口过程中所用到的操作界面,图3b示出了关于ZooKeeper服务的操作界面。
图4示出了本申请实施例提供的一种测试模拟Dubbo接口的方法的流程示意图。参见图4,该方法应用于挡板系统200,该挡板系统200与服务消费方设备对应,具体可以安装在服务消费方设备上,也可以集成在其他的任何设备上。所述服务消费方设备通过Dubbo协议和服务提供方设备通信。该方法例如可以包括:
S401,响应于用户触发的获取操作,获取所述服务提供方设备的Jar包和XML配置文件。
本申请实施例中,设计例如图3a中第一个界面,该界面可以是Web页面也可以是客户端上的一个操作界面,该操作界面可以选择多个文件进行上传,具体可以选择多个Jar包和一个XML配置文件。而且,还需要开发对应的一个文件上传的接口,以供用户上传后台服务提供方设备的Jar包和XML配置文件。
其中,Jar包是指以.jar结尾的文件,将Java源码文件编译后生成的若干字节码文件打包压缩形成的文件,包含编译后的Java字节码和一些描述信息。
具体实现时,用户可以在图3a所示的第一个界面上,点击“文件选择”按钮->选择需要上传的Jar包和XML配置文件->点击“上传”按钮,完成获取操作,这样,服务消费方设备响应于上述获取操作,获取服务提供方设备的Jar包和XML配置文件。
S402,显示所述服务提供方设备的至少一个接口方法,所述至少一个接口方法为所述挡板系统对所述Jar包和所述XML配置文件进行解析后获得的。
在S401之后,开发的挡板系统的解析模块,具有解析所上传的Jar包和XML配置文件的功能。解析的过程具体可以包括:首先,解析XML配置文件中的<dubbo:reference>标签,该标签中带有interface属性,从而获取该interface属性的值(即,该接口的名称);再根据该接口的名称去Jar包中通过Java反射机制查找对应的接口和接口方法,找到之后保存在数据存储模块的数据库中。此外,解析模块还可以将Jar包中所有的类及其相关信息都解析出来,存储在数据库中。
其中,挡板系统是指在由于种种原因导致真实环境测试不通的情况下,为了能够继续测试任务,通过模拟接口服务的方式来进行测试,挡板就是来提供模拟接口的功能。
为了供用户选择解析出的接口方法,可以在服务消费方设备的操作界面上,显示解析模块解析获得的至少一个接口方法,供用户选择模拟的接口方法。例如:在图3a所示的第二个界面上,显示解析模块获得接口方法1和接口方法2,供用户选择模拟的接口方法。
S403,响应于用户触发的从所述至少一个接口方法中选择目标接口方法的操作,并获取对所述目标接口方法的配置数据,得到第一模拟Dubbo接口,其中,所述第一模拟Dubbo接口为所述挡板系统模拟的与所述服务消费方设备通信的所述服务提供方设备的第一真实Dubbo接口。
具体实现时,S403具体可以包括:S1,响应于用户触发的选择所述目标接口方法的操作,显示数据配置页面;S2,获得用户在所述数据配置页面输入的所述配置数据;S3,基于所述目标接口方法和所述配置数据,得到所述第一模拟Dubbo接口。
对于S1,用户可以在操作界面(即,数据配置页面)上显示的至少一个接口方法中,执行选择操作,从至少一个接口方法中选择需要模拟的目标接口方法。例如:在图3a所示的第二个界面上,点击“接口方法2”按钮,完成从接口方法1和接口方法2中选项目标接口方法的操作,挡板系统响应于该操作,跳转到图3a中的第三个界面上,提示用户对该目标接口方法配置数据。
对于S2,通过解析模块的解析,获得了各接口方法中参数的特点,例如:参数类型;而且,基于待测试功能,可以知晓输入参数和返回参数之间的关系,那么,用户可以基于上述两方面因素,为目标接口方法配置其数据。其中,每个接口的配置项可以包括:接口方法的输入参数和返回参数,输入参数可能有多个,返回参数只有一个。配置完成的接口数据需要存储在数据存储模块的数据库中,而且,该配置数据的操作界面上还通过“查看”、“修改”和“删除”等按钮提供对应的功能。
对于S3,该配置数据的界面上还包括“模拟”按钮,点击该按钮能够触发挡板系统基于目标接口方法和用户配置的配置数据模拟得到第一模拟Dubbo接口,该第一模拟Dubbo接口模拟的是服务提供方设备的第一真实Dubbo接口,当产品交付后,服务消费方设备通过第二真实Dubbo接口和服务提供方设备的第一真实Dubbo接口通信,从服务提供方设备的第一真实Dubbo接口处调用服务。需要说明的是,技术人员需要开发具有接口模拟功能的接口模拟模块,该模块将静态的接口方法名称和方法参数模拟成为Java中可以调用的方法。这个模拟模块的需要用Java反射机制和Mockito框架共同完成,Java反射机制用于创建方法和参数,Mockito框架使用其when then语句来设置输入参数与输出参数的匹配关系,对应的输入参数的值产生对应的输出参数的值。输入参数与输出参数可以有多套对应关系,这些对应关系就是用户为目标接入方法设置的配置数据。
这样,即可完成对第一真实Dubbo接口的模拟,为后续测试该服务消费方设备的功能提供了数据基础。
需要说明的是,为了后续方便复用该第一模拟Dubbo接口,还可以在S405之后将第一模拟Dubbo接口的相关参数进行保存。
S404,响应于用户触发的注册操作,将所述目标接口方法注册到ZooKeeper服务中,实现对所述服务消费方设备的测试。
其中,ZooKeeper是一个开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。ZooKeeper是能够为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
在S404中用户触发所述注册操作之前,本申请实施例还可以包括:响应于用户触发的启动ZooKeeper服务的操作,启动所述ZooKeeper服务,并提供服务地址。例如:用户可以在服务消费方设备开机后、用户触发所述注册操作之前的任意时刻,通过点击图3b所示的操作界面的“开启”按钮,启动ZooKeeper服务。需要说明的是,技术人员需要使用docker部署ZooKeeper服务,具体使用该ZooKeeper服务的官方镜像生成服务;此外,技术人员还需要将部署的ZooKeeper服务在操作界面(如图3b所示)上开发“开启”、“停止”等按钮,可供用户操作控制该服务消费方设备上的ZooKeeper服务。ZooKeeper服务启动后,能够为用户提供一个服务地址,该服务地址包括IP地址和端口号。优选的,可以将服务地址显示在操作界面上。
其中,ZooKeeper服务模块独立于其他模块,可以单独启动停止,只要保证在接口模拟之前启动就可以。
S404中将所述目标接口方法注册到ZooKeeper服务中,具体可以是:通过所述第一模拟Dubbo接口和所述服务地址,测试所述服务消费方设备的第二真实Dubbo接口调用所述第一模拟Dubbo接口时,所述服务消费方设备的功能。需要说明的是,技术人员还需要设计具有将第一模拟Dubbo接口方法进行注册的功能模块(即,注册模块),在操作界面例如图3a中的第三个界面上,以“注册”按钮、“注销”按钮的形式提供注册、注销开关。当用户在图3a中的第三个界面上,点击“注册”按钮,完成注册操作,将模拟的第一Dubbo接口注册在已启动的ZooKeeper服务中。
需要说明的是,该测试模拟Dubbo接口的过程和启停ZooKeeper服务的过程是解耦的,可以在任意的时刻停止ZooKeeper服务。
例如:在测试过程中,服务消费方设备可以通过第二真实Dubbo接口,向挡板系统中的该第一模拟Dubbo接口发送18位数字(如身份证号码),则,挡板系统从配置数据中查找与输入参数与所接收的18位数字匹配的目标输入参数(如姓名),并借助第一模拟Dubbo接口将该目标输入参数对应的目标返回参数发送给第二真实Dubbo接口,完成对该服务消费方设备上功能(如通过身份证号码从服务提供方设备调取姓名的功能)的测试。对于服务消费方设备而言,其在通过第二真实Dubbo接口向挡板系统发送18位数字时,已知该18位数字对应的真实返回参数,那么,将该服务消费方设备还可以比对目标返回参数和真实返回参数,确定该功能是否准确,如:当目标返回参数和真实返回参数相同,则确定该功能准确,反之,当目标返回参数和真实返回参数不相同,则确定该功能不够准确。
这样,通过在服务消费方设备上设计操作界面,并设计模块化的挡板系统,使得模拟服务提供方的接口以及完成测试的过程不再需要人工编写代码,用户在操作界面上进行简单的操作即可通过挡板系统完成对服务提供方Dubbo接口的模拟,并借助该模拟的Dubbo接口对该服务消费方的功能进行测试,实现了简单、方便的模拟Dubbo接口并对服务消费方设备的测试,为软件联调环境不成熟时服务消费方对其功能的测试带来了便利,大大降低了对测试人员的门槛。
相应的,本申请实施例还提供了一种测试模拟Dubbo接口的装置500,参见图5,该装置500应用于挡板系统,该挡板系统服务消费方设备对应,所述服务消费方设备通过Dubbo协议和服务提供方设备通信。该装置500包括:
第一获取单元501,用于响应于用户触发的获取操作,获取所述服务提供方设备的Jar包和XML配置文件;
显示单元502,用于显示所述服务提供方设备的至少一个接口方法,所述至少一个接口方法为所述挡板系统对所述Jar包和所述XML配置文件进行解析后获得的;
第二获取单元503,用于响应于用户触发的从所述至少一个接口方法中选择目标接口方法的操作,并获取对所述目标接口方法的配置数据,得到第一模拟Dubbo接口,所述第一模拟Dubbo接口为所述挡板系统模拟的与所述服务消费方设备通信的所述服务提供方设备的第一真实Dubbo接口;
注册单元504,用于响应于用户触发的注册操作,将所述目标接口方法注册到ZooKeeper服务中,实现对所述服务消费方设备的测试。
可选地,所述第二获取单元503,包括:
显示子单元,用于响应于用户触发的选择所述目标接口方法的操作,显示数据配置页面;
第一获取子单元,用于获得用户在所述数据配置页面输入的所述配置数据;
第二获取子单元,用于基于所述目标接口方法和所述配置数据,得到所述第一模拟Dubbo接口。
可选地,所述装置500还包括:
启动单元,用于在用户触发所述注册操作之前,响应于用户触发的启动ZooKeeper服务的操作,启动所述ZooKeeper服务,并提供服务地址。
可选地,所述注册单元504,具体用于:
通过所述第一模拟Dubbo接口和所述服务地址,测试所述服务消费方设备的第二真实Dubbo接口调用所述第一模拟Dubbo接口时,所述服务消费方设备的功能。
需要说明的是,该装置500与图4所示的方法对应,具体实现方式以及达到的效果,参见图4所示的方法的相关描述。
此外,本申请实施例还提供了一种服务消费方设备600,参见图6,该服务消费方设备600包括存储器601和处理器602,其中,
所述存储器601用于存储计算机程序或指令;
所述处理器602用于调用所述存储器601中存储的计算机程序或指令,使得所述服务消费方设备600执行上述图4所示实施例中提供的方法。
此外,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得所述计算机执行上述图4所示实施例中提供的方法。
此外,本申请还提供了计算机程序产品,包括计算机程序或计算机可读指令,当所述计算机程序或所述计算机可读指令在计算机上运行时,使得计算机执行上述图4所示实施例中提供的方法。
本申请实施例中提到的“第一获取单元”、“第一模拟Dubbo接口”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”等。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置和设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及设备实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的优选实施方式,并非用于限定本申请的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种测试模拟Dubbo接口的方法,其特征在于,应用于挡板系统,所述挡板系统与服务消费方设备对应,所述服务器消费方设备通过Dubbo协议和服务提供方设备通信,所述方法包括:
响应于用户触发的获取操作,获取所述服务提供方设备的Jar包和XML配置文件;
显示所述服务提供方设备的至少一个接口方法,所述至少一个接口方法为所述挡板系统对所述Jar包和所述XML配置文件进行解析后获得的;
响应于用户触发的从所述至少一个接口方法中选择目标接口方法的操作,并获取对所述目标接口方法的配置数据,得到第一模拟Dubbo接口,所述第一模拟Dubbo接口为所述挡板系统模拟的与所述服务消费方设备通信的所述服务提供方设备的第一真实Dubbo接口;
响应于用户触发的注册操作,将所述目标接口方法注册到ZooKeeper服务中,实现对所述服务消费方设备的测试。
2.根据权利要求1所述的方法,其特征在于,所述响应于用户触发的从所述至少一个接口方法中选择目标接口方法的操作,并获取对所述目标接口方法的配置数据,得到第一模拟Dubbo接口,包括:
响应于用户触发的选择所述目标接口方法的操作,显示数据配置页面;
获得用户在所述数据配置页面输入的所述配置数据;
基于所述目标接口方法和所述配置数据,得到所述第一模拟Dubbo接口。
3.根据权利要求1所述的方法,其特征在于,在用户触发所述注册操作之前,所述方法还包括:
响应于用户触发的启动ZooKeeper服务的操作,启动所述ZooKeeper服务,并提供服务地址。
4.根据权利要求3所述的方法,其特征在于,所述将所述目标接口方法注册到ZooKeeper服务中,包括:
通过所述第一模拟Dubbo接口和所述服务地址,测试所述服务消费方设备的第二真实Dubbo接口调用所述第一模拟Dubbo接口时,所述服务消费方设备的功能。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述方法还包括:
保存所述第一模拟Dubbo接口的相关参数。
6.一种测试模拟Dubbo接口的装置,其特征在于,该装置挡板系统,所述挡板系统与于服务消费方设备对应,所述服务消费方设备通过Dubbo协议和服务提供方设备通信,所述装置包括:
第一获取单元,用于响应于用户触发的获取操作,获取所述服务提供方设备的Jar包和XML配置文件;
显示单元,用于显示所述服务提供方设备的至少一个接口方法,所述至少一个接口方法为所述挡板系统对所述Jar包和所述XML配置文件进行解析后获得的;
第二获取单元,用于响应于用户触发的从所述至少一个接口方法中选择目标接口方法的操作,并获取对所述目标接口方法的配置数据,得到第一模拟Dubbo接口,所述第一模拟Dubbo接口为所述挡板系统模拟的与所述服务消费方设备通信的所述服务提供方设备的第一真实Dubbo接口;
注册单元,用于响应于用户触发的注册操作,将所述目标接口方法注册到ZooKeeper服务中,实现对所述服务消费方设备的测试。
7.根据权利要求6所述的装置,其特征在于,所述第二获取单元,包括:
显示子单元,用于响应于用户触发的选择所述目标接口方法的操作,显示数据配置页面;
第一获取子单元,用于获得用户在所述数据配置页面输入的所述配置数据;
第二获取子单元,用于基于所述目标接口方法和所述配置数据,得到所述第一模拟Dubbo接口。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
启动单元,用于在用户触发所述注册操作之前,响应于用户触发的启动ZooKeeper服务的操作,启动所述ZooKeeper服务,并提供服务地址。
9.根据权利要求8所述的装置,其特征在于,所述注册单元,具体用于:
通过所述第一模拟Dubbo接口和所述服务地址,测试所述服务消费方设备的第二真实Dubbo接口调用所述第一模拟Dubbo接口时,所述服务消费方设备的功能。
10.一种服务消费方设备,其特征在于,所述服务消费方设备包括存储器和处理器,其中,
所述存储器用于存储计算机程序或指令;
所述处理器用于调用所述存储器中存储的计算机程序或指令,使得所述服务消费方设备执行权利要求1-5任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010344240.9A CN111538606B (zh) | 2020-04-27 | 2020-04-27 | 一种测试模拟Dubbo接口的方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010344240.9A CN111538606B (zh) | 2020-04-27 | 2020-04-27 | 一种测试模拟Dubbo接口的方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111538606A true CN111538606A (zh) | 2020-08-14 |
CN111538606B CN111538606B (zh) | 2023-05-19 |
Family
ID=71978887
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010344240.9A Active CN111538606B (zh) | 2020-04-27 | 2020-04-27 | 一种测试模拟Dubbo接口的方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111538606B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760707A (zh) * | 2020-09-23 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 接口测试方法、装置、设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908565A (zh) * | 2017-11-27 | 2018-04-13 | 中国银行股份有限公司 | 一种测试方法及设备 |
CN109062798A (zh) * | 2018-07-26 | 2018-12-21 | 浙江数链科技有限公司 | 一种基于Dubbo框架的测试方法与装置 |
CN110162456A (zh) * | 2019-04-12 | 2019-08-23 | 深圳壹账通智能科技有限公司 | 一种dubbo服务的测试方法、装置、存储介质和服务器 |
CN110908908A (zh) * | 2019-11-21 | 2020-03-24 | 深圳无域科技技术有限公司 | 测试微服务Dubbo接口的方法及装置 |
CN111026636A (zh) * | 2019-09-27 | 2020-04-17 | 珠海随变科技有限公司 | 一种软件项目的测试方法、装置、设备及存储介质 |
-
2020
- 2020-04-27 CN CN202010344240.9A patent/CN111538606B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107908565A (zh) * | 2017-11-27 | 2018-04-13 | 中国银行股份有限公司 | 一种测试方法及设备 |
CN109062798A (zh) * | 2018-07-26 | 2018-12-21 | 浙江数链科技有限公司 | 一种基于Dubbo框架的测试方法与装置 |
CN110162456A (zh) * | 2019-04-12 | 2019-08-23 | 深圳壹账通智能科技有限公司 | 一种dubbo服务的测试方法、装置、存储介质和服务器 |
CN111026636A (zh) * | 2019-09-27 | 2020-04-17 | 珠海随变科技有限公司 | 一种软件项目的测试方法、装置、设备及存储介质 |
CN110908908A (zh) * | 2019-11-21 | 2020-03-24 | 深圳无域科技技术有限公司 | 测试微服务Dubbo接口的方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760707A (zh) * | 2020-09-23 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 接口测试方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111538606B (zh) | 2023-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107908541B (zh) | 接口测试方法、装置、计算机设备及存储介质 | |
CN109857667B (zh) | 接口自动化测试方法、测试装置、测试设备及存储介质 | |
CN105094783B (zh) | 安卓应用稳定性测试的方法及装置 | |
CA2694303C (en) | Extensible execution language | |
US7600220B2 (en) | Extensible execution language | |
CN110647469B (zh) | 一种微服务的测试方法、装置、计算机设备和存储介质 | |
US8959000B2 (en) | Integrated testing systems and methods | |
CN109302522A (zh) | 测试方法、装置以及计算机系统和介质 | |
CN105787364B (zh) | 任务的自动化测试方法、装置及系统 | |
CN106294094A (zh) | 游戏服务器的测试方法、客户端、服务器及系统 | |
CN107239271A (zh) | 开发文档生成方法及装置 | |
CN111309624B (zh) | 测试方法、装置、设备及存储介质 | |
CN111563032A (zh) | App调试方法、装置、计算机设备及存储介质 | |
CN106815150B (zh) | 服务端接口测试系统及方法 | |
CN112559348B (zh) | 基于jacoco的测试分析方法、系统、设备以及介质 | |
CN110674023B (zh) | 一种接口测试方法和装置 | |
CN111538606B (zh) | 一种测试模拟Dubbo接口的方法、装置及设备 | |
CN108089972A (zh) | 接口测试方法及装置 | |
Huang et al. | Surrogate: A simulation apparatus for continuous integration testing in service oriented architecture | |
CN117370203A (zh) | 自动化测试方法、系统、电子设备及存储介质 | |
CN113760397A (zh) | 接口调用的处理方法、装置、设备及存储介质 | |
CN112230938B (zh) | 工业互联网的租赁产品的配置方法和装置 | |
CN114880239A (zh) | 一种基于数据驱动的接口自动化测试框架及方法 | |
CN112346991B (zh) | 一种接口测试脚本的生成方法及装置 | |
CN112181802A (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 |