支持多传输协议多测试类型的Mock测试方法及相关设备与流程

文档序号:32246912发布日期:2022-11-18 23:47阅读:91来源:国知局
支持多传输协议多测试类型的Mock测试方法及相关设备与流程
支持多传输协议多测试类型的mock测试方法及相关设备
技术领域
1.本技术涉及数据处理技术领域,尤其涉及一种支持多传输协议多测试类型的mock测试方法及相关设备。


背景技术:

2.mock测试是指在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。目前常见的mock测试工具是基于单元测试级别的mock测试工具和基于接口级别的mock测试工具。这些测试工具大都是在代码内部通过额外编码完成,配置灵活性差;且无法支持多种传输协议和多种测试类型,导致无法应对当前的mock测试需求。


技术实现要素:

3.有鉴于此,本技术的目的在于提出一种支持多传输协议多测试类型的 mock测试方法及相关设备,解决现有测试工具或平台不能支持多种测试类型及多种传输协议的问题。
4.本技术的第一方面提供了一种支持多传输协议多测试类型的mock测试方法,其特征在于,包括:
5.响应于接收到用户端发送的mock调用请求,获取所述mock调用请求包含的mock测试类型;
6.根据所述mock测试类型在预先构建的与其关联的存储单元中进行查询;
7.响应于在所述存储单元中存在与所述mock调用请求匹配的mock数据,将所述mock数据返回至所述用户端;
8.响应于所述存储单元中不存在与所述mock调用请求匹配的mock数据,通过预定规则创建与所述mock调用请求匹配的mock数据返回至所述用户端。
9.可选的,所述mock调用请求的mock测试类型包括接口类型和微服务类型。
10.可选的,所述mock测试类型为所述接口类型,所述通过预定规则创建与所述mock调用请求匹配的mock数据返回至所述用户端,包括:
11.根据所述mock调用请求确定传输协议类型,根据所述传输协议类型创建所述mock数据;
12.获取所述mock数据的接口地址,将所述接口地址返回至所述用户端。
13.可选的,所述根据所述传输协议类型创建所述mock数据,包括:
14.基于所述mock调用请求和所述传输协议类型的配置参数确定响应数据;
15.对所述响应数据进行编码拼接形成所述mock数据,并将所述mock数据存储至所述存储单元中。
16.可选的,所述传输协议类型包括http协议和dubbo协议。
17.可选的,若所述传输协议类型为http协议,所述配置参数包括mock名称、预设api、
接口适配条件、返回结果类型和自定义返回结果。
18.可选的,若所述传输协议类型为dubbo协议,所述配置参数包括mock名称、服务名、方法参数、版本号和自定义返回结果。
19.可选的,所述mock测试类型为所述微服务类型,所述存储单元为服务注册中心,所述响应于所述存储单元中不存在与所述mock调用请求匹配的mock 数据,通过预定规则创建与所述mock调用请求匹配的mock数据返回至所述用户端,包括:
20.响应于所述存储单元中不存在与所述mock调用请求匹配的mock数据且所述mock调用请求与预设的响应规则相匹配,根据所述响应规则创建所述 mock数据返回至所述用户端。
21.本技术的第二方面还提供了一种支持多传输协议多测试类型的mock测试装置,包括:
22.获取模块,被配置为响应于接收到用户端发送的mock调用请求,获取所述mock调用请求的mock测试类型;
23.查询模块,被配置为根据所述mock测试类型在预先构建的与其关联的存储单元中进行查询;
24.返回模块,被配置为响应于在所述存储单元中存在与所述mock调用请求匹配的mock数据,将所述mock数据返回至所述用户端;
25.响应于所述存储单元中不存在与所述mock调用请求匹配的mock数据,通过预定规则创建与所述mock调用请求匹配的mock数据返回至所述用户端。
26.本技术的第三方面还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现如上所述的方法。
27.从上面所述可以看出,本技术提供的支持多传输协议多测试类型的mock 测试方法及相关设备,获取用户端发送的mock调用请求并确定该mock调用请求的mock测试类型,基于所述mock测试类型在存储单元中进行查询,若查询到匹配的mock数据则返回至用户端,若未查询到匹配的mock数据,则根据预定规则创建新的mock数据返回至用户端。本技术提供的mock测试方法能够根据mock调用请求查询或创建mock数据,可以为用户提供支持不同协议类型和不同测试类型的mock数据,方便用户调取mock数据进行开发测试。
附图说明
28.为了更清楚地说明本技术或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.图1为本技术实施例的支持多传输协议多测试类型的mock测试方法的流程示意图;
30.图2为本技术实施例的不同传输协议类型的配置参数的示意图;
31.图3为本技术实施例的支持多传输协议多测试类型的mock测试装置的结构示意图;
32.图4为本技术实施例的电子设备硬件结构示意图;
33.图5为本技术另一种实施例的支持多传输协议多测试类型的mock测试方法的流程示意图。
具体实施方式
34.为使本技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本技术进一步详细说明。
35.需要说明的是,除非另外定义,本技术实施例使用的技术术语或者科学术语应当为本技术所属领域内具有一般技能的人士所理解的通常意义。本技术实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
36.如背景技术所述,mock测试是指在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。在程序开发的过程中,不同的服务之间有复杂的调用依赖,而服务之间基本是并行开发,当测试服务时,无法保证依赖的服务已经准备就绪。而在同一个服务中,由于采用前后端分离的开发方式,在后端接口开发进度晚于前端调用的时候,导致项目进度滞后。在此背景下,亟需mock测试技术来解决以上问题。
37.目前常见的mock测试工具是基于单元测试级别的mock测试工具和基于接口级别的mock工具。这些测试工具大都是在代码内部通过编码完成,需要额外编码,配置灵活性差,且现有的mock工具多支持http协议,基于其他协议的mock测试则无法完成。
38.常见的mock测试平台也是在接口层面进行,没有针对服务级别的调用进行支持。而在当今微服务架构下,服务之间的互相依赖调用也十分常见,因此市面常见的mock测试工具与平台不能应对当前的mock测试需求。
39.有鉴于此,本技术提出了一种支持多传输协议多测试类型的mock测试方法,通过获取用户端发送的mock调用请求并确定该mock调用请求的mock 测试类型,基于所述mock测试类型在存储单元中进行查询,若查询到匹配的 mock数据则返回至用户端,若未查询到匹配的mock数据,则根据预定规则创建新的mock数据返回至用户端。本技术提供的mock测试方法能够根据 mock调用请求查询或创建mock数据,可以为用户提供支持不同协议类型和不同测试类型的mock数据,方便用户调取mock数据进行开发测试。
40.以下结合附图来详细说明本技术的实施例。
41.本技术提供了一种支持多传输协议多测试类型的mock测试方法,参考图 1,包括以下步骤:
42.步骤102、响应于接收到用户端发送的mock调用请求,获取所述mock调用请求的mock测试类型。具体的,mock调用请求为需要进行mock测试的开发人员通过用户端发出,用户端也可以为移动端。该mock调用请求的mock 测试类型可能为接口类型,也可能为微服务
类型,需要根据mock调用请求识别该请求携带的具体信息为哪种类型,之后再根据具体的请求类型进行数据的查询或创建。
43.步骤104、根据所述mock测试类型在预先构建的与其关联的存储单元中进行查询。确定了mock测试类型之后,需要在mock测试平台的存储单元中进行查询,不同类型的mock数据存储在不同的存储单元中,例如,mock测试类型为接口类型,则存储单元为接口数据库,若mock测试类型为微服务类型,则存储单元为服务注册中心。
44.需要说明的是,接口数据库存储了大量的接口数据,接口数据根据应用场景具有不同的形式,示例性的,例如,接口数据可以为,接口数据1{姓名:小王,年龄:12}、数据2{姓名:小王,年龄:13,职业:学生}、数据3{姓名:小刘,年龄:15,住址:xxx}、数据4{姓名:小李,年龄:12}。若涉及到其他应用场景,上述接口数据中的姓名、年龄和职业等都可以用其他类型替代。
45.服务注册中心可以对所有的微服务的信息进行存储,如微服务的名称、ip 和端口等,可以在进行服务调用时通过查询可用的微服务列表及网络地址进行服务调用。
46.步骤106、响应于在所述存储单元中存在与所述mock调用请求匹配的 mock数据,将所述mock数据返回至所述用户端;
47.响应于所述存储单元中不存在与所述mock调用请求匹配的mock数据,通过预定规则创建与所述mock调用请求匹配的mock数据返回至所述用户端。
48.具体的,根据mock测试类型在相应的存储单元中查询,若查询到匹配的 mock数据则直接返回至用户端,若未查询到匹配的mock数据,则根据预定规则创建新的与所述mock调用请求匹配的mock数据返回至用户端。
49.基于上述步骤102至步骤106,通过获取用户端发送的mock调用请求并确定该mock调用请求的mock测试类型,基于所述mock测试类型在存储单元中进行查询,若查询到匹配的mock数据则返回至用户端,若未查询到匹配的mock数据,则根据预定规则创建新的mock数据返回至用户端。本技术提供的mock测试方法能够根据mock调用请求查询或创建mock数据,可以为用户提供支持不同协议类型和不同测试类型的mock数据,方便用户调取mock 数据进行开发测试。
50.在一些实施例中,所述mock测试类型包括接口类型和微服务类型。本实施例中不仅支持传统的api接口层级,还支持基于微服务的mock数据调用。在微服务架构中,通常需要通过多项微服务共同实现一项功能,因此在对微服务进行mock测试时,也需要微服务之间相互调用,微服务之间通过发送调用请求进行调用。
51.在一些实施例中,所述mock测试类型为所述接口类型,所述通过预定规则创建与所述mock调用请求匹配的mock数据返回至所述用户端,包括:
52.根据所述mock调用请求确定传输协议类型,根据所述传输协议类型创建所述mock数据;
53.获取所述mock数据的接口地址,将所述接口地址返回至所述用户端。
54.具体的,若所述mock测试类型为接口类型,需要根据mock调用请求确定支持的传输协议类型,目前大多支持http协议,本实施例中还支持其他类型的协议,例如dubbo协议。针对不同的传输协议类型,创建mock数据的方式不同。创建生成期望mock数据后,获取该mock数据的应用程序编程接口api,返回给所述用户端供其调用。
55.在一些实施例中,所述根据所述传输协议类型创建所述mock数据,包括:
56.基于所述mock调用请求和所述传输协议类型的配置参数确定响应数据;
57.对所述响应数据进行编码拼接形成所述mock数据,并将所述mock数据存储至所述存储单元中。
58.具体的,本实施例中不仅支持http协议,还支持dubbo协议。不同的传输协议配置了不同的配置参数,基于mock调用请求携带的请求信息按照配置参数确定并输入响应数据,通过mock平台对全部响应数据进行编码和拼接,将拼接后的数据作为所述mock数据,本实施例中的存储单元为接口数据库,同时将mock数据存储在接口数据库中作为历史数据,以供后续直接查询调用。
59.在一些实施例中,若所述传输协议类型为http协议,所述配置参数包括 mock名称、预设api、接口适配条件、返回结果类型和自定义返回结果。
60.参考图2,若所述传输协议类型为http协议,所述配置参数包括mock名称、预设api、接口适配条件、返回结果类型和自定义返回结果,其中,mock 名称相当于id,便于标识和查找mock数据;预设api标识该mock数据对应的http地址;接口适配条件相当于在接口中加入筛选条件,同一个mock接口可根据接口适配条件的不同返回不同的值;返回结果类型至少包括json、xml、 html等,可以根据实际的调用请求返回相应的结果类型;自定义返回结果表示可以自行定义返回字段的内容,示例性的,以json串为例,例如返回字段的内容为:{“name”:”xxx”,“age”:”18”,“major”:”jxc”...}。创建生成mock后调用该mock的预设api,直接获得自定义的返回结果给用户端。
61.在一些实施例中,若所述传输协议类型为dubbo协议,所述配置参数包括 mock名称、服务名、方法参数、版本号和自定义返回结果。
62.参考图2,若所述传输协议类型为dubbo协议,所述配置参数包括mock 名称、服务名、方法参数、版本号和自定义返回结果。其中,mock名称相当于 id,便于标识和查找mock数据;调用接口之前需要知道该接口属于哪种类型的服务,确定服务名;精确调用时需明确调用的具体方法名、方法参数类型和方法参数值,方法名、方法参数类型和方法参数值均为方法参数;可能存在多个版本的情况,版本号可以区分不同的接口实现;自定义返回结果表示可以自行定义返回字段的内容,可以根据调用请求自行定义,此处不做具体限制。
63.在一些实施例中,所述mock测试类型为所述微服务类型,所述存储单元为服务注册中心,所述响应于所述存储单元中不存在与所述mock调用请求匹配的mock数据,通过预定规则创建与所述mock调用请求匹配的mock数据返回至所述用户端,包括:
64.响应于所述存储单元中不存在与所述mock调用请求匹配的mock数据且所述mock调用请求与预设的响应规则相匹配,根据所述响应规则创建所述 mock数据返回至所述用户端。
65.若存储单元中不存在与所述调用请求匹配的mock数据,需要查看是否存在响应规则,如果存在响应规则,生成响应内容返回用户端;若不存在响应规则,则向用户端返回异常信息。所述响应规则用于根据用户端输入的mock调用请求携带的参数信息返回响应内容。若不存在与所述mock调用请求匹配的响应规则,说明该mock调用请求与想要调用的微服务不存在调用关系。示例性的,可以通过获取mock平台的mock列表,查看mock平台是否存储有相应的响应规则,mock列表用于存储各个微服务的调用权限信息。
66.需要说明的是,本技术实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本技术实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
67.需要说明的是,上述对本技术的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
68.本技术还提供了一种支持多传输协议多测试类型的mock测试装置。
69.参考图3,所述支持多传输协议多测试类型的mock测试装置,包括:
70.获取模块302,被配置为响应于接收到用户端发送的mock调用请求,获取所述mock调用请求的mock测试类型;
71.查询模块304,被配置为根据所述mock测试类型在预先构建的与其关联的存储单元中进行查询;
72.返回模块306,被配置为响应于在所述存储单元中存在与所述mock调用请求匹配的mock数据,将所述mock数据返回至所述用户端;
73.响应于所述存储单元中不存在与所述mock调用请求匹配的mock数据,通过预定规则创建与所述mock调用请求匹配的mock数据返回至所述用户端。
74.在一些实施例中,所述mock调用请求的mock测试类型包括接口类型和微服务类型。
75.在一些实施例中,所述mock测试类型为所述接口类型,所述返回模块306 还被配置为,
76.根据所述mock调用请求确定传输协议类型,根据所述传输协议类型创建所述mock数据;
77.获取所述mock数据的接口地址,将所述接口地址返回至所述用户端。
78.在一些实施例中,所述返回模块306还被配置为,
79.基于所述mock调用请求和所述传输协议类型的配置参数确定响应数据;
80.对所述响应数据进行编码拼接形成所述mock数据,并将所述mock数据存储至所述存储单元中。
81.在一些实施例中,所述传输协议类型包括http协议和dubbo协议。
82.在一些实施例中,若所述传输协议类型为http协议,所述配置参数包括 mock名称、预设api、接口适配条件、返回结果类型和自定义返回结果。
83.在一些实施例中,若所述传输协议类型为dubbo协议,所述配置参数包括 mock名称、服务名、方法参数、版本号和自定义返回结果。
84.在一些实施例中,所述mock测试类型为所述微服务类型,所述存储单元为服务注册中心,所述返回模块306还被配置为,
85.响应于所述存储单元中不存在与所述mock调用请求匹配的mock数据且所述mock调用请求与预设的响应规则相匹配,根据所述响应规则创建所述 mock数据返回至所述用
户端。
86.为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本技术时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
87.上述实施例的装置用于实现前述任一实施例中相应的支持多传输协议多测试类型的mock测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
88.本技术还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的支持多传输协议多测试类型的mock测试方法。
89.图4示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
90.处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
91.存储器1020可以采用rom(read only memory,只读存储器)、ram (random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
92.输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
93.通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
94.总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
95.需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/ 输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
96.上述实施例的电子设备用于实现前述任一实施例中相应的支持多传输协议多测试类型的mock测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
97.基于同一发明构思,与上述任意实施例方法相对应的,本技术还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的支持多传输协议多测试类型的mock测试方法。
98.本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd
‑ꢀ
rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
99.上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的支持多传输协议多测试类型的mock测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
100.需要说明的是,参考图5,本技术的实施例还可以以下方式进一步描述:
101.接收用户发送的mock调用请求,判断所述mock调用请求的类型,若为接口mock,在mock接口数据库中进行查找,若存在匹配的mock数据,则将 mock数据作为响应内容返回至用户端,若不存在匹配的mock数据,则开始创建mock数据,输入配置参数的相关信息,生成mock数据并存储在接口数据库中,获取该mock数据的api作为响应内容返回至用户端。
102.若mock调用请求的类型为微服务mock,在服务注册中心查找,若存在匹配的微服务则经微服务作为响应内容返回至用户端,若不存在匹配的微服务,则判断是否存在响应规则,若存在响应规则,根据响应规则生成响应内容返回至用户端,若不存在响应规则则返回异常信息,mock调用结束。
103.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本技术的范围(包括权利要求)被限于这些例子;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
104.另外,为简化说明和讨论,并且为了不会使本技术实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本技术实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本技术实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本技术的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本技术实施例。因此,这些描述应被认为是说明性的而不是限制性的。
105.尽管已经结合了本技术的具体实施例对本技术进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
106.本技术实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1