CN110162456A - 一种dubbo服务的测试方法、装置、存储介质和服务器 - Google Patents
一种dubbo服务的测试方法、装置、存储介质和服务器 Download PDFInfo
- Publication number
- CN110162456A CN110162456A CN201910294097.4A CN201910294097A CN110162456A CN 110162456 A CN110162456 A CN 110162456A CN 201910294097 A CN201910294097 A CN 201910294097A CN 110162456 A CN110162456 A CN 110162456A
- Authority
- CN
- China
- Prior art keywords
- dubbo
- service
- type
- join
- dubbo service
- 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
- 238000010998 test method Methods 0.000 title claims abstract description 27
- 241000208340 Araliaceae Species 0.000 claims abstract description 107
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims abstract description 107
- 235000003140 Panax quinquefolius Nutrition 0.000 claims abstract description 107
- 235000008434 ginseng Nutrition 0.000 claims abstract description 107
- 238000012360 testing method Methods 0.000 claims abstract description 101
- 230000006870 function Effects 0.000 claims description 47
- 239000000284 extract Substances 0.000 claims description 19
- 239000003550 marker Substances 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 4
- 238000000034 method Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
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/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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及计算机技术领域,提出一种DUBBO服务的测试方法、装置、存储介质和服务器。本发明提出的DUBBO服务的测试方法,首先调用在zookeeper上注册的DUBBO服务,通过反编译的方式获取DUBBO服务的功能代码,以及通过查表方式获得该DUBBO服务的入/出参类型;然后根据功能代码和入/出参类型确定该DUBBO服务的入/出参字段;最后根据入/出参类型、入/出参字段自动生成该DUBBO服务的测试用例并完成测试。采用这种方式无需人工编写测试用例,从而极大地提高了测试DUBBO服务的效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种DUBBO服务的测试方法、装置、存储介质和服务器。
背景技术
DUBBO使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。目前,若需要测试DUBBO服务,一般通过人工编写测试代码,然后将该测试代码部署到服务器上,运行该测试代码以获取测试结果。然而,人工编写测试代码需要耗费大量的时间和精力,效率较低。
发明内容
有鉴于此,本发明实施例提供了一种DUBBO服务的测试方法、装置、存储介质和服务器,能够提高测试DUBBO服务的效率。
本发明实施例的第一方面,提供了一种DUBBO服务的测试方法,包括:
调用在zookeeper上注册的DUBBO服务;
通过反编译的方式获取所述DUBBO服务的功能代码;
从预先构建的参数类型对照表中查询所述DUBBO服务的入参类型和出参类型,所述参数类型对照表在每个DUBBO服务注册时记录相应的入参类型和出参类型;
根据所述DUBBO服务的功能代码、入参类型和出参类型,确定所述DUBBO服务的入参字段和出参字段;
结合所述入参类型、出参类型、入参字段和出参字段,生成所述DUBBO服务的测试用例;
执行所述测试用例,完成所述DUBBO服务的测试。
本发明实施例的第二方面,提供了一种DUBBO服务的测试装置,包括:
服务调用模块,用于调用在zookeeper上注册的DUBBO服务;
反编译模块,用于通过反编译的方式获取所述DUBBO服务的功能代码;
出入参类型查询模块,用于从预先构建的参数类型对照表中查询所述DUBBO服务的入参类型和出参类型,所述参数类型对照表在每个DUBBO服务注册时记录相应的入参类型和出参类型;
出入参字段确定模块,用于根据所述DUBBO服务的功能代码、入参类型和出参类型,确定所述DUBBO服务的入参字段和出参字段;
测试用例生成模块,用于结合所述入参类型、出参类型、入参字段和出参字段,生成所述DUBBO服务的测试用例;
测试模块,用于执行所述测试用例,完成所述DUBBO服务的测试。
本发明实施例的第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如本发明实施例的第一方面提出的DUBBO服务的测试方法的步骤。
本发明实施例的第四方面,提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如本发明实施例的第一方面提出的DUBBO服务的测试方法的步骤。
本发明提出的DUBBO服务的测试方法,首先调用在zookeeper上注册的DUBBO服务,通过反编译的方式获取DUBBO服务的功能代码,以及通过查表方式获得该DUBBO服务的入/出参类型;然后根据功能代码和入/出参类型确定该DUBBO服务的入/出参字段;最后根据入/出参类型、入/出参字段自动生成该DUBBO服务的测试用例并完成测试。采用这种方式无需人工编写测试用例,从而极大地提高了测试DUBBO服务的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种DUBBO服务的测试方法的第一个实施例的流程图;
图2是本发明实施例提供的一种DUBBO服务的测试方法的第二个实施例的流程图;
图3是本发明实施例提供的一种DUBBO服务的测试装置的一个实施例的结构图;
图4是本发明实施例提供的一种服务器的示意图。
具体实施方式
本发明实施例提供了一种DUBBO服务的测试方法、装置、存储介质和服务器,能够提高测试DUBBO服务的效率。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,本发明实施例中一种DUBBO服务的测试方法的第一个实施例包括:
101、调用在zookeeper上注册的DUBBO服务;
DUBBO服务一般都是注册在zookeeper上的,zookeeper是一个开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。在实际应用中,由于DUBBO框架是开源的,故可以基于DUBBO框架开发一个DUBBO服务的测试平台,通过该测试平台调用在zookeeper上已注册的DUBBO服务。
可选的,步骤101可以包括:
(1)分别统计在zookeeper上注册的各个DUBBO服务被消费者调用的次数;
(2)按照被消费者调用的次数由高至低的顺序依次排列各个DUBBO服务;
(3)调用排列最前的预设数量的DUBBO服务。
通过这样设置,按照被消费者调用的次数对各个DUBBO服务进行排序,能够有针对性地选取热度高的DUBBO服务进行测试。
可选的,步骤101可以包括:
(1)设置定时任务,获取在zookeeper上注册的所有DUBBO服务的状态;
(2)根据各个DUBBO服务的状态确定有效的DUBBO服务和无效的DUBBO服务;
(3)调用所述有效的DUBBO服务。
由于并不是所有已注册的DUBBO服务均处于有效状态,而无效的DUBBO服务是没必要进行测试的,故可以设置定时任务,不时地获取在zookeeper上注册的所有DUBBO服务的状态,以区分有效的DUBBO服务和无效的DUBBO服务(状态为“没有服务提供者”),在调用DUBBO服务的时候,只调用有效的DUBBO服务。
可选的,步骤101可以包括:
(1)根据输入的指令从在zookeeper上注册的所有DUBBO服务中选取目标DUBBO服务;
(2)确定与所述目标DUBBO服务关联的DUBBO服务;
(3)调用所述目标DUBBO服务,以及与所述目标DUBBO服务关联的DUBBO服务。
用户可以在zookeeper上注册的所有DUBBO服务中选取想要进行测试的一个或多个DUBBO服务,作为目标DUBBO服务。而且,在调用DUBBO服务的时候,不仅调用该目标DUBBO服务,还会调用与该目标DUBBO服务关联的其它DUBBO服务。
具体的,确定与所述目标DUBBO服务关联的DUBBO服务的方法可以包括:
(2.1)获取所述目标DUBBO服务的服务名称;
(2.2)提取所述服务名称的前缀;
(2.3)从在zookeeper上注册的所有DUBBO服务中检测服务名称具有所述前缀的DUBBO服务,作为与所述目标DUBBO服务关联的DUBBO服务。
相互关联的一系列DUBBO服务的名称一般具有相同的前缀,故可以通过提取名称前缀的方式确定与所述目标DUBBO服务关联的其它DUBBO服务。
102、通过反编译的方式获取所述DUBBO服务的功能代码;
在调用DUBBO服务之后,通过反编译的方式获取所述DUBBO服务的功能代码。反编译是指通过对他人软件的目标程序(比如可执行程序)进行逆向分析、研究的工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,在某些特定情况下还可以推导出源代码。通过反编译的方式获取所述DUBBO服务的功能代码的具体过程,可参照现有技术中包含的各类反编译方法。
103、从预先构建的参数类型对照表中查询所述DUBBO服务的入参类型和出参类型;
接着,从预先构建的参数类型对照表中查询所述DUBBO服务的入参类型和出参类型,所述参数类型对照表在每个DUBBO服务注册时记录相应的入参类型和出参类型。每当一个DUBBO服务注册的时候,将该DUBBO服务对应的入参和出参类型记录到该表格中。这样之后,在步骤103中即可通过查询该表格,分别确定各个DUBBO服务的入参类型与出参类型。这里的入参类型指DUBBO服务使用到的各个入参字段的类型,出参类型指DUBBO服务使用到的各个出参字段的类型。入/出参字段的类型用于表示该字段的属性类别,比如某个字段的类型为int,表示该字段的取值范围为整数变量。
104、根据所述DUBBO服务的功能代码、入参类型和出参类型,确定所述DUBBO服务的入参字段和出参字段;
在查询得到所述DUBBO服务的入参类型和出参类型之后,根据所述DUBBO服务的功能代码、入参类型和出参类型,确定所述DUBBO服务的入参字段和出参字段。具体的,可以以入参类型和出参类型的名称作为关键词,在功能代码中查找包含该关键词的代码文本段,然后对这些代码文本段进行识别,找出其中用于定义入参和出参的相关文本,从而得到入参字段和出参字段。
105、结合所述入参类型、出参类型、入参字段和出参字段,生成所述DUBBO服务的测试用例;
然后,结合所述入参类型、出参类型、入参字段和出参字段,生成所述DUBBO服务的测试用例。具体的,在获得所述入参类型、出参类型、入参字段和出参字段之后,可以结合这些数据,按照一定的规则拼接生成相应的测试用例。在拼接测试用例时,每个入/出参字段均从各自的取值范围内选取一个数值,即构成一条测试用例。
106、执行所述测试用例,完成所述DUBBO服务的测试。
最后,执行生成的测试用例,完成所述DUBBO服务的测试。
本发明实施例提出的DUBBO服务的测试方法包括:调用在zookeeper上注册的DUBBO服务;通过反编译的方式获取所述DUBBO服务的功能代码;从预先构建的参数类型对照表中查询所述DUBBO服务的入参类型和出参类型;根据所述DUBBO服务的功能代码、入参类型和出参类型,确定所述DUBBO服务的入参字段和出参字段;结合所述入参类型、出参类型、入参字段和出参字段,生成所述DUBBO服务的测试用例;执行所述测试用例,完成所述DUBBO服务的测试。上述过程首先调用在zookeeper上注册的DUBBO服务,通过反编译的方式获取DUBBO服务的功能代码,以及通过查表方式获得该DUBBO服务的入/出参类型;然后根据功能代码和入/出参类型确定该DUBBO服务的入/出参字段;最后根据入/出参类型、入/出参字段自动生成该DUBBO服务的测试用例并完成测试。采用这种方式无需人工编写测试用例,从而极大地提高了测试DUBBO服务的效率。
请参阅图2,本发明实施例中一种DUBBO服务的测试方法的第二个实施例包括:
201、调用在zookeeper上注册的DUBBO服务;
202、通过反编译的方式获取所述DUBBO服务的功能代码;
203、从预先构建的参数类型对照表中查询所述DUBBO服务的入参类型和出参类型;
所述参数类型对照表在每个DUBBO服务注册时记录相应的入参类型和出参类型,步骤201-203与步骤101-103相同,具体可参照步骤101-103的相关说明。
204、从所述功能代码中查找包含入参标记符和所述入参类型的第一代码文本段;
在获得DUBBO服务的功能代码、入参类型和出参类型之后,从所述功能代码中查找包含入参标记符和所述入参类型的第一代码文本段。比如,若入参类型为String,则可以在功能代码中查找包含关键词“String”以及入参标记符(比如input)的代码文本段。
205、对所述第一代码文本段进行识别,提取出入参字段;
在查找到包含入参标记符和所述入参类型的第一代码文本段之后,对该文本段进行识别,提取出入参字段。具体的,可以提取该第一代码文本段中,入参标记符之后的字符串作为入参字段。
206、从所述功能代码中查找包含出参标记符和所述出参类型的第二代码文本段;
从所述功能代码中查找包含出参标记符和所述出参类型的第二代码文本段。比如,若出参类型为int,则可以在功能代码中查找包含关键词“int”以及出参标记符(比如output)的代码文本段。
207、对所述第二代码文本段进行识别,提取出出参字段;
在查找到包含出参标记符和所述出参类型的第二代码文本段之后,对该文本段进行识别,提取出出参字段。具体的,可以提取该第二代码文本段中,出参标记符之后的字符串作为出参字段。
208、结合所述入参类型、出参类型、入参字段和出参字段,生成所述DUBBO服务的测试用例;
接下来,结合所述入参类型、出参类型、入参字段和出参字段,生成所述DUBBO服务的测试用例。
进一步的,步骤208可以包括:
(1)针对每个入/出参字段,根据自身的字段类型查找对应的测试数据集,每种字段类型的测试数据集预先构建与存储;
(2)按照预设的规则从所述测试数据集中提取一个数值,作为所述入/出参字段的取值,从而得到所述DUBBO服务的一个测试用例。
具体的,针对每个入/出参字段,可以根据其字段类型获取对应的测试数据集,每个种类的字段类型分别对应一个预先构建与存储的测试数据集。比如,某个DUBBO服务包含入参字段A和出参字段B,A的类型为int,B的类型为Date,预先构建字段类型int的测试数据集为[-1,0,1,2,3],字段类型Date的测试数据集为[11/20,11/24,11/30]。则A从测试数据集[-1,0,1,2,3]中按照一定的规则(比如随机或按顺序)提取一个数值(假设为1),B从测试数据集[11/20,11/24,11/30]按照一定的规则(比如随机或按顺序)提取一个数值(假设为11/24),从而生成该Dubbo服务的一个测试用例,即A=1,B=11/24。另外,上述步骤可多次循环执行,从而生成该Dubbo服务的多个测试用例。
209、执行所述测试用例,完成所述DUBBO服务的测试。
最后,执行生成的测试用例,完成所述DUBBO服务的测试。
本发明实施例提出的DUBBO服务的测试方法包括:调用在zookeeper上注册的DUBBO服务;通过反编译的方式获取所述DUBBO服务的功能代码;从预先构建的参数类型对照表中查询所述DUBBO服务的入参类型和出参类型;从所述功能代码中查找包含入参标记符和所述入参类型的第一代码文本段;对所述第一代码文本段进行识别,提取出入参字段;从所述功能代码中查找包含出参标记符和所述出参类型的第二代码文本段;对所述第二代码文本段进行识别,提取出出参字段;结合所述入参类型、出参类型、入参字段和出参字段,生成所述DUBBO服务的测试用例;执行所述测试用例,完成所述DUBBO服务的测试。上述过程首先调用在zookeeper上注册的DUBBO服务,通过反编译的方式获取DUBBO服务的功能代码,以及通过查表方式获得该DUBBO服务的入/出参类型;然后根据功能代码和入/出参类型确定该DUBBO服务的入/出参字段;最后根据入/出参类型、入/出参字段自动生成该DUBBO服务的测试用例并完成测试。采用这种方式无需人工编写测试用例,从而极大地提高了测试DUBBO服务的效率。而且,相对于本发明的第一个实施例,本实施例提出一种具体的获取DUBBO服务的入参字段和出参字段的方式。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
上面主要描述了一种DUBBO服务的测试方法,下面将对一种DUBBO服务的测试装置进行详细描述。
请参阅图3,本发明实施例中一种DUBBO服务的测试装置的一个实施例包括:
服务调用模块301,用于调用在zookeeper上注册的DUBBO服务;
反编译模块302,用于通过反编译的方式获取所述DUBBO服务的功能代码;
出入参类型查询模块303,用于从预先构建的参数类型对照表中查询所述DUBBO服务的入参类型和出参类型,所述参数类型对照表在每个DUBBO服务注册时记录相应的入参类型和出参类型;
出入参字段确定模块304,用于根据所述DUBBO服务的功能代码、入参类型和出参类型,确定所述DUBBO服务的入参字段和出参字段;
测试用例生成模块305,用于结合所述入参类型、出参类型、入参字段和出参字段,生成所述DUBBO服务的测试用例;
测试模块306,用于执行所述测试用例,完成所述DUBBO服务的测试。
可选的,所述服务调用模块可以包括:
状态获取单元,用于设置定时任务,获取在zookeeper上注册的所有DUBBO服务的状态;
状态确定单元,用于根据各个DUBBO服务的状态确定有效的DUBBO服务和无效的DUBBO服务;
第一服务调用单元,用于调用所述有效的DUBBO服务。
可选的,所述服务调用模块可以包括:
服务选取单元,用于根据输入的指令从在zookeeper上注册的所有DUBBO服务中选取目标DUBBO服务;
关联服务确定单元,用于确定与所述目标DUBBO服务关联的DUBBO服务;
第二服务调用单元,用于调用所述目标DUBBO服务,以及与所述目标DUBBO服务关联的DUBBO服务。
进一步的,所述关联服务确定单元可以包括:
服务名称获取子单元,用于获取所述目标DUBBO服务的服务名称;
名称前缀提取子单元,用于提取所述服务名称的前缀;
名称前缀检测子单元,用于从在zookeeper上注册的所有DUBBO服务中检测服务名称具有所述前缀的DUBBO服务,作为与所述目标DUBBO服务关联的DUBBO服务。
进一步的,所述出入参字段确定模块可以包括:
第一文本查找单元,用于从所述功能代码中查找包含入参标记符和所述入参类型的第一代码文本段;
入参字段识别单元,用于对所述第一代码文本段进行识别,提取出入参字段;
第二文本查找单元,用于从所述功能代码中查找包含出参标记符和所述出参类型的第二代码文本段;
出参字段识别单元,用于对所述第二代码文本段进行识别,提取出出参字段。
进一步的,所述测试用例生成模块可以包括:
测试数据集查找单元,用于针对每个入/出参字段,根据自身的字段类型查找对应的测试数据集,每种字段类型的测试数据集预先构建与存储;
测试用例生成单元,用于按照预设的规则从所述测试数据集中提取一个数值,作为所述入/出参字段的取值,从而得到所述DUBBO服务的一个测试用例。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如图1或图2表示的任意一种DUBBO服务的测试方法的步骤。
本发明实施例还提供一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,所述处理器执行所述计算机可读指令时实现如图1或图2表示的任意一种DUBBO服务的测试方法的步骤。
图4是本发明一实施例提供的服务器的示意图。如图4所示,该实施例的服务器4包括:处理器40、存储器41以及存储在所述存储器41中并可在所述处理器40上运行的计算机可读指令42。所述处理器40执行所述计算机可读指令42时实现上述各个DUBBO服务的测试方法实施例中的步骤,例如图1所示的步骤101至106。或者,所述处理器40执行所述计算机可读指令42时实现上述各装置实施例中各模块/单元的功能,例如图3所示模块301至306的功能。
示例性的,所述计算机可读指令42可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器41中,并由所述处理器40执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机可读指令42在所述服务器4中的执行过程。
所述服务器4可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述服务器4可包括,但不仅限于,处理器40、存储器41。本领域技术人员可以理解,图4仅仅是服务器4的示例,并不构成对服务器4的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述服务器4还可以包括输入输出设备、网络接入设备、总线等。
所述处理器40可以是中央处理单元(CentraL Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(DigitaL SignaL Processor,DSP)、专用集成电路(AppLication Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieLd-ProgrammabLe Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器41可以是所述服务器4的内部存储单元,例如服务器4的硬盘或内存。所述存储器41也可以是所述服务器4的外部存储设备,例如所述服务器4上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure DigitaL,SD)卡,闪存卡(FLash Card)等。进一步地,所述存储器41还可以既包括所述服务器4的内部存储单元也包括外部存储设备。所述存储器41用于存储所述计算机可读指令以及所述服务器所需的其他程序和数据。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnLyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种DUBBO服务的测试方法,其特征在于,包括:
调用在zookeeper上注册的DUBBO服务;
通过反编译的方式获取所述DUBBO服务的功能代码;
从预先构建的参数类型对照表中查询所述DUBBO服务的入参类型和出参类型,所述参数类型对照表在每个DUBBO服务注册时记录相应的入参类型和出参类型;
根据所述DUBBO服务的功能代码、入参类型和出参类型,确定所述DUBBO服务的入参字段和出参字段;
结合所述入参类型、出参类型、入参字段和出参字段,生成所述DUBBO服务的测试用例;
执行所述测试用例,完成所述DUBBO服务的测试。
2.根据权利要求1所述的DUBBO服务的测试方法,其特征在于,所述调用在zookeeper上注册的DUBBO服务包括:
设置定时任务,获取在zookeeper上注册的所有DUBBO服务的状态;
根据各个DUBBO服务的状态确定有效的DUBBO服务和无效的DUBBO服务;
调用所述有效的DUBBO服务。
3.根据权利要求1所述的DUBBO服务的测试方法,其特征在于,所述调用在zookeeper上注册的DUBBO服务包括:
根据输入的指令从在zookeeper上注册的所有DUBBO服务中选取目标DUBBO服务;
确定与所述目标DUBBO服务关联的DUBBO服务;
调用所述目标DUBBO服务,以及与所述目标DUBBO服务关联的DUBBO服务。
4.根据权利要求3所述的DUBBO服务的测试方法,其特征在于,所述确定与所述目标DUBBO服务关联的DUBBO服务包括:
获取所述目标DUBBO服务的服务名称;
提取所述服务名称的前缀;
从在zookeeper上注册的所有DUBBO服务中检测服务名称具有所述前缀的DUBBO服务,作为与所述目标DUBBO服务关联的DUBBO服务。
5.根据权利要求1所述的DUBBO服务的测试方法,其特征在于,所述根据所述DUBBO服务的功能代码、入参类型和出参类型,确定所述DUBBO服务的入参字段和出参字段包括:
从所述功能代码中查找包含入参标记符和所述入参类型的第一代码文本段;
对所述第一代码文本段进行识别,提取出入参字段;
从所述功能代码中查找包含出参标记符和所述出参类型的第二代码文本段;
对所述第二代码文本段进行识别,提取出出参字段。
6.根据权利要求1至5中任一项所述的DUBBO服务的测试方法,其特征在于,所述结合所述入参类型、出参类型、入参字段和出参字段,生成所述DUBBO服务的测试用例包括:
针对每个入/出参字段,根据自身的字段类型查找对应的测试数据集,每种字段类型的测试数据集预先构建与存储;
按照预设的规则从所述测试数据集中提取一个数值,作为所述入/出参字段的取值,从而得到所述DUBBO服务的一个测试用例。
7.一种DUBBO服务的测试装置,其特征在于,包括:
服务调用模块,用于调用在zookeeper上注册的DUBBO服务;
反编译模块,用于通过反编译的方式获取所述DUBBO服务的功能代码;
出入参类型查询模块,用于从预先构建的参数类型对照表中查询所述DUBBO服务的入参类型和出参类型,所述参数类型对照表在每个DUBBO服务注册时记录相应的入参类型和出参类型;
出入参字段确定模块,用于根据所述DUBBO服务的功能代码、入参类型和出参类型,确定所述DUBBO服务的入参字段和出参字段;
测试用例生成模块,用于结合所述入参类型、出参类型、入参字段和出参字段,生成所述DUBBO服务的测试用例;
测试模块,用于执行所述测试用例,完成所述DUBBO服务的测试。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现如权利要求1至6中任一项所述的DUBBO服务的测试方法的步骤。
9.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现如下步骤:
调用在zookeeper上注册的DUBBO服务;
通过反编译的方式获取所述DUBBO服务的功能代码;
从预先构建的参数类型对照表中查询所述DUBBO服务的入参类型和出参类型,所述参数类型对照表在每个DUBBO服务注册时记录相应的入参类型和出参类型;
根据所述DUBBO服务的功能代码、入参类型和出参类型,确定所述DUBBO服务的入参字段和出参字段;
结合所述入参类型、出参类型、入参字段和出参字段,生成所述DUBBO服务的测试用例;
执行所述测试用例,完成所述DUBBO服务的测试。
10.根据权利要求9所述的服务器,其特征在于,所述调用在zookeeper上注册的DUBBO服务包括:
设置定时任务,获取在zookeeper上注册的所有DUBBO服务的状态;
根据各个DUBBO服务的状态确定有效的DUBBO服务和无效的DUBBO服务;
调用所述有效的DUBBO服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910294097.4A CN110162456A (zh) | 2019-04-12 | 2019-04-12 | 一种dubbo服务的测试方法、装置、存储介质和服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910294097.4A CN110162456A (zh) | 2019-04-12 | 2019-04-12 | 一种dubbo服务的测试方法、装置、存储介质和服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110162456A true CN110162456A (zh) | 2019-08-23 |
Family
ID=67639354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910294097.4A Pending CN110162456A (zh) | 2019-04-12 | 2019-04-12 | 一种dubbo服务的测试方法、装置、存储介质和服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110162456A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538606A (zh) * | 2020-04-27 | 2020-08-14 | 中国银行股份有限公司 | 一种测试模拟Dubbo接口的方法、装置及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133174A (zh) * | 2017-05-04 | 2017-09-05 | 浙江路港互通信息技术有限公司 | 测试用例代码自动生成装置与方法 |
CN108255714A (zh) * | 2018-01-02 | 2018-07-06 | 深圳壹账通智能科技有限公司 | 接口文档构建测试方法及终端设备 |
CN109388561A (zh) * | 2018-09-18 | 2019-02-26 | 深圳壹账通智能科技有限公司 | 接口测试用例生成方法、装置、计算机设备和存储介质 |
CN109426608A (zh) * | 2017-08-29 | 2019-03-05 | 中国电信股份有限公司 | 分布式服务的测试方法和装置、计算机可读存储介质 |
-
2019
- 2019-04-12 CN CN201910294097.4A patent/CN110162456A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107133174A (zh) * | 2017-05-04 | 2017-09-05 | 浙江路港互通信息技术有限公司 | 测试用例代码自动生成装置与方法 |
CN109426608A (zh) * | 2017-08-29 | 2019-03-05 | 中国电信股份有限公司 | 分布式服务的测试方法和装置、计算机可读存储介质 |
CN108255714A (zh) * | 2018-01-02 | 2018-07-06 | 深圳壹账通智能科技有限公司 | 接口文档构建测试方法及终端设备 |
CN109388561A (zh) * | 2018-09-18 | 2019-02-26 | 深圳壹账通智能科技有限公司 | 接口测试用例生成方法、装置、计算机设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538606A (zh) * | 2020-04-27 | 2020-08-14 | 中国银行股份有限公司 | 一种测试模拟Dubbo接口的方法、装置及设备 |
CN111538606B (zh) * | 2020-04-27 | 2023-05-19 | 中国银行股份有限公司 | 一种测试模拟Dubbo接口的方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021083239A1 (zh) | 一种进行图数据查询的方法、装置、设备及存储介质 | |
CN106776544A (zh) | 人物关系识别方法及装置和分词方法 | |
CN103425672B (zh) | 一种数据库索引的建立方法及装置 | |
CN104537341A (zh) | 人脸图片信息获取方法和装置 | |
CN109977175B (zh) | 数据配置查询方法和装置 | |
CN106445963A (zh) | App平台的广告索引关键词自动生成方法和装置 | |
Kumara et al. | Web-service clustering with a hybrid of ontology learning and information-retrieval-based term similarity | |
US9355166B2 (en) | Clustering signifiers in a semantics graph | |
CN105045808A (zh) | 一种复合规则集匹配方法和系统 | |
Paulus et al. | Gathering and Combining Semantic Concepts from Multiple Knowledge Bases. | |
CN110209659A (zh) | 一种简历过滤方法、系统和计算机可读存储介质 | |
CN108876452A (zh) | 用电客户需求信息获取方法、装置以及电子设备 | |
Huang et al. | Efficient and exact query of large process model repositories in cloud workflow systems | |
JP2016192202A (ja) | 照合処理システム、方法、及びプログラム | |
CN105991620A (zh) | 恶意账户识别方法及装置 | |
CN104461548B (zh) | 代码片段的添加方法和装置 | |
US10565188B2 (en) | System and method for performing a pattern matching search | |
CN103455476A (zh) | 网络信息的处理方法和抽象语法树的建立方法及其装置 | |
CN110162456A (zh) | 一种dubbo服务的测试方法、装置、存储介质和服务器 | |
CN106547877B (zh) | 基于6w业务逻辑模型的数据元智能标识解析方法 | |
CN110765100B (zh) | 标签的生成方法、装置、计算机可读存储介质及服务器 | |
US11520827B2 (en) | Converting unlabeled data into labeled data | |
CN115048913B (zh) | 一种命令处理方法、装置和电子设备 | |
CN105320763B (zh) | 一种将xml文件的内容导入数据库的方法和装置 | |
CN111581162A (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 |