一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据创建方法、数据测试方法、装置、设备及存储介质与流程

2022-11-23 14:00:38 来源:中国专利 TAG:


1.本技术涉及软件领域,尤其涉及一种数据创建方法、数据测试方法、装置、设备及存储介质。


背景技术:

2.web项目开发时,我们需要创建大量的结构体,各个领域在进行数据对象建模时往往要求填写尽可能多的详细的元数据信息;另一方面对于软件测试行业性能高可用测试愈发重要,对项目的稳定性要求愈加严苛,批量生成数据建模需求不断增加,因此面向对象数据建模的元数据自动生成的需求页日益增加,不同项目不同场景元数据采用的标准也尽不相同。
3.创建大量的结构体导致运行自动化脚本时需要人工输入多个字段,耗费时间甚至可能导致出错。


技术实现要素:

4.本技术提供了一种数据创建方法、数据测试方法、装置、设备及存储介质,用以解决创建大量的结构体导致运行自动化脚本时需要人工输入多个字段,耗费时间甚至可能导致出错的问题。
5.第一方面,提供一种数据创建方法,包括:
6.获取被测服务的入参变量;
7.以所述入参变量作为元数据,为所述元数据配置数据源;
8.基于所述元数据和所述数据源生成结构体;
9.保存所述结构体,以便在对所述被测服务进行测试时,从所述结构体中调用所述数据源。
10.可选地,基于所述元数据和所述数据源生成结构体,包括:
11.提取所述被测服务的各功能模块的服务名称,以及各所述功能模块之间的依赖关系;
12.按照所述依赖关系,基于所述各功能模块的服务名称生成所述结构体的主题;
13.生成与所述元数据、所述数据源和所述结构体的主题对应的结构体,所述元数据和所述数据源属于所述结构体的数据部分,所述结构体的主题属于所述结构体的主题部分。
14.可选地,保存所述结构体,包括:
15.按照key-value形式保存所述结构体的数据部分,以及按照所述结构体的主题的格式保存所述结构体的主题部分,所述数据部分中的元数据为key,所述数据部分中的数据源为value。
16.可选地,为所述元数据配置数据源,包括:
17.确定所述元数据所匹配的数据格式;
18.按照所述数据格式为所述元数据配置所述数据源。
19.可选地,获取被测服务的入参变量,包括:
20.提取所述被测服务中的至少一个数据,所述至少一个数据为所述被测服务被创建或测试时的变量;
21.获取所述至少一个数据中各数据的权重;
22.基于所述权重,从所述至少一个数据中筛选所述入参变量。
23.可选地,基于所述元数据和所述数据源生成结构体,包括:
24.基于所述入参变量,预测所述元数据的调用频次;
25.基于所述调用频次,确定与所述元数据匹配的生成方式,所述生成方式包括在数据库中生成或在配置文件中生成;
26.按照所述生成方式,基于所述元数据和所述数据源生成结构体。
27.第二方面,提供一种数据测试方法,包括:
28.获取对被测服务进行测试时,所述被测服务需要调用的入参变量;
29.从基于第一方面所述的数据创建方法创建的结构体中,获取与所述入参变量对应的数据;
30.采用所述数据对所述被测服务进行测试。
31.第三方面,提供一种数据创建装置,包括:
32.获取模块,用于获取被测服务的入参变量;
33.配置模块,用于以所述入参变量作为元数据,为所述元数据配置数据源;
34.生成模块,用于基于所述元数据和所述数据源生成结构体;
35.保存模块,用于保存所述结构体,以便在对所述被测服务进行测试时,从所述结构体中调用所述数据源。
36.第四方面,提供一种电子设备,包括:处理器、存储器和通信总线,其中,处理器和存储器通过通信总线完成相互间的通信;
37.所述存储器,用于存储计算机程序;
38.所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的数据创建方法或第二方面所述的数据测试方法。
39.第五方面,提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的数据创建方法或第二方面所述的数据测试方法。
40.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:本技术实施例提供的该方法,获取被测服务的入参变量;以入参变量作为元数据,为元数据配置数据源;基于元数据和数据源生成结构体;保存结构体,以便在对被测服务进行测试时,从结构体中调用数据源。采用本方案,由于能够自动获取被测服务中的入参变量,所以可以避免创建大量的结构体导致运行自动化脚本时需要人工输入多个字段,耗费时间甚至可能导致出错的问题。
附图说明
41.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
42.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
43.图1为本技术实施例中数据创建方法的流程示意图;
44.图2为本技术实施例中数据测试方法的流程示意图;
45.图3为本技术实施例中数据创建装置的结构示意图;
46.图4为本技术实施例中数据测试装置的结构示意图;
47.图5为本技术实施例中电子设备的结构示意图。
具体实施方式
48.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
49.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
50.本实施例提供一种数据创建方法,该方法可应用于电子设备中;电子设备可以包括终端或者服务器,本技术实施例不做限定。终端包括各种具有无线通信功能的手持设备、计算设备、用户设备(user equipment,简称ue)、移动台(mobile station,简称ms)或终端设备(terminal device)等等。为方便描述,上面提到的设备统称为电子设备。
51.如图1所示,该方法可以包括以下步骤:
52.步骤101、获取被测服务的入参变量;
53.步骤102、以入参变量作为元数据,为元数据配置数据源;
54.步骤103、基于元数据和数据源生成结构体;
55.步骤104、保存结构体,以便在对被测服务进行测试时,从结构体中调用数据源。
56.应用中,被测服务的入参变量包括但不限于接口url(统一资源定位符,uniform resource locator),token(令牌)等。
57.本实施例中,获取的被测服务的入参变量可以为被测服务中的所有入参变量;也可以为被测服务中的所有入参变量中的一部分入参变量,也就是说,在这种情况下,所获取的被测服务的入参变量的个数小于被测服务中入参变量的个数。
58.比如,被测服务中具有a、b、c、d、e共五个入参变量,当获取的入参变量为a、b、c、d、e这五个入参变量时,表示获取的被测服务的入参变量为被测服务中的所有的入参变量;当获取的入参变量为a、b、c这三个入参变量时,表示获取的被测服务的入参变量为被测服务器中所有的入参变量中的一部分入参变量。
59.本实施例中,具体可以基于入参变量的权重确定是获取被测服务中所有的入参变量,还是只获取一部分入参变量。比如设置当入参变量的权重大于权重阈值时,则将该入参变量作为获取的入参变量,因此当被测服务中所有入参变量的权重均大于权重阈值时,则将被测服务中所有的入参变量均作为获取的入参变量。而当被测服务中所有的入参变量中存在部分入参变量的权重不大于权重阈值时,则将被测服务中权重大于权重阈值的入参变量作为获取的入参变量。
60.应用中,权重阈值可以人为基于经验确定,或人为根据需要确定。
61.当然,根据实际需要也可以依据权重对被测服务中所有的入参变量进行排序,并根据排序后的结果,筛选排名大于排名阈值的入参变量作为获取的入参变量。
62.具体实现时,一个可选实施例中,提取被测服务中的至少一个数据,至少一个数据为被测服务被创建或测试时的变量;获取至少一个数据中各数据的权重;基于权重,从至少一个数据中筛选入参变量。
63.应用中,被测服务的各入参变量的权重可以人为预先指定,也可以基于被测服务的历史数据确定。其中,该历史数据中包括被测服务被使用时,各入参变量被调用的次数。应理解,该历史数据可以为被测服务的日志数据。
64.元数据为描述数据的数据,主要是描述数据属性的信息。对应到本实施例中,元数据用于描述数据源的属性。一个例子中,元数据为“姓名”,那么为该元数据配置的数据源可以为“张三”、“李四”等。
65.本实施例中,为了提高处理效率,简化处理方式,元数据和数据源在结构体中按照key-value形式进行保存,其中key为元数据,value为为元数据配置的数据源。
66.应理解,在用key-value形式进行数据保存时,这个表中有一个特定的键和一个指针指向特定的数据。key为键,存在与key对应的指针指向特定的数据。
67.本实施例中,结构体指的是由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“成员”,其描述了一块内存区间的大小及解释意义。
68.本实施例中,由于被测服务通常包括多个模块,所以被测服务中的入参变量通常会分属于不同的模块,而且不同的模块中的变量有可能存在重复,所以本实施例在生成结构体的同时,基于被测服务的各功能模块的服务名称以及各功能模块之间的依赖关系,生成结构体的主题。
69.具体实现时,一个可选实施例中,提取被测服务的各功能模块的服务名称,以及各功能模块之间的依赖关系;按照依赖关系,基于各功能模块的服务名称生成结构体的主题;生成与元数据、数据源和结构体的主题对应的结构体,元数据和数据源属于结构体的数据部分,结构体的主题属于结构体的主题部分。
70.一个例子中,被测服务中包括具有依赖关系的a、b、c三个模块,a模块中具有入参变量a、b,b模块中具有入参变量c、d,c模块中具有入参变量c、e,由于b模块和c模块之间具有重叠的入参变量,因此在创建结构体时,如果不用服务名称进行区分,将难以区分出结构体中的变量是针对哪个模块的。假如在三个模块中,三个模块的依赖关系为c模块依赖b模块,b模块依赖a模块,那么c模块中的入参变量创建的结构体的主题可以为c模块名称/b模块名称/a模块名称/结构体数据部分。b模块和a模块中的入参变量的结构体的主题与前述c模块中的入参变量的结构体的主题确定过程类似,这里不再展开描述。
71.本实施例中,为了获取不同功能模块的服务名称,可以预先设置针对不同功能模块的提取策略,以便采用对应的功能模块提取被测服务中不同功能模块的服务名称。
72.本实施例中,考虑到在实际应用场景中,被测服务中的某些入参变量被调用的频次比较低,为了方便维护,对于这类入参变量,采用配置文件保存这类入参变量的结构体。而对于调用频次比较高的某些入参变量,则采用数据库基于sql语句保存结构体。
73.具体实现时,一个可选实施例中,基于入参变量,预测元数据的调用频次;基于调用频次,确定与元数据匹配的生成方式,生成方式包括在数据库中生成或在配置文件中生成;按照生成方式,基于元数据和数据源生成结构体。
74.应理解,这里的调用频次可以人为指定,也可以基于被测服务的历史数据确定。其中,该历史数据中包括被测服务被使用时,各入参变量被调用的次数。应理解,该历史数据可以为被测服务的日志数据。
75.应理解,这里的调用频次也可以直接采用前述的权重指示,权重越大的入参变量优先采用在数据库中生成,而权重比较低的则优先采用在配置文件中生成。
76.本实施例中,为了适配不同的项目,在保存结构体时,支持按照元数据匹配的格式进行保存。比如,元数据为“姓名”时,具体的姓名通常为汉字表达,所以在保存“姓名”对应的具体名字时,可以按汉字的格式进行保存,比如直接保存“张三”、“李四”这两个名字。又比如,元数据为“年龄”时,具体的年龄通常为阿拉伯数字,所以在保存“年龄”对应的具体年龄时,可以按数值的格式进行保存,比如直接保存“17”“25”这两个具体的年龄数值。
77.本实施例提供的技术方案中,获取被测服务的入参变量;以入参变量作为元数据,为元数据配置数据源;基于元数据和数据源生成结构体;保存结构体,以便在对被测服务进行测试时,从结构体中调用数据源。采用本方案,由于能够自动获取被测服务中的入参变量,所以可以避免创建大量的结构体导致运行自动化脚本时需要人工输入多个字段,耗费时间甚至可能导致出错的问题。
78.为了方便理解,提供以下具体是实现过程。
79.使用数据库生成结构体代码:
80.1.使用sql语句获取创建结构体需要的信息。
81.2.使用关键词提取模块,例如:接口url,入参变量,以及token,将提取到的模块内所需的数据选取权重,作为结构体描述对象主题的元数据。
82.3.使用键-值格式文档提取关键字。
83.4.使用自定义规则提取数据。
84.基于相同的发明构思,本技术实施例提供一种数据测试方法,如图2所示,该方法可以包括以下步骤:
85.步骤201、获取对被测服务进行测试时,被测服务需要调用的入参变量;
86.步骤202、从基于数据创建方法创建的结构体中,获取与入参变量对应的数据;
87.步骤203、采用数据对被测服务进行测试。
88.基于同一构思,本技术实施例中提供了一种数据创建装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图3所示,该装置主要包括:
89.获取模块301,用于获取被测服务的入参变量;
90.配置模块302,用于以入参变量作为元数据,为元数据配置数据源;
91.生成模块303,用于基于元数据和数据源生成结构体;
92.保存模块304,用于保存结构体,以便在对被测服务进行测试时,从结构体中调用数据源。
93.生成模块303用于:
94.提取被测服务的各功能模块的服务名称,以及各功能模块之间的依赖关系;
95.按照依赖关系,基于各功能模块的服务名称生成结构体的主题;
96.生成与元数据、数据源和结构体的主题对应的结构体,元数据和数据源属于结构体的数据部分,结构体的主题属于结构体的主题部分。
97.保存模块304用于:
98.按照key-value形式保存结构体的数据部分,以及按照结构体的主题的格式保存结构体的主题部分,数据部分中的元数据为key,数据部分中的数据源为value。
99.配置模块302用于:
100.确定元数据所匹配的数据格式;
101.按照数据格式为元数据配置数据源。
102.获取模块301用于:
103.提取被测服务中的至少一个数据,至少一个数据为被测服务被创建或测试时的变量;
104.获取至少一个数据中各数据的权重;
105.基于权重,从至少一个数据中筛选入参变量。
106.生成模块303用于:
107.基于入参变量,预测元数据的调用频次;
108.基于调用频次,确定与元数据匹配的生成方式,生成方式包括在数据库中生成或在配置文件中生成;
109.按照生成方式,基于元数据和数据源生成结构体。
110.基于同一构思,本技术实施例中提供了一种数据测试装置,该装置的具体实施可参见方法实施例部分的描述,重复之处不再赘述,如图4所示,该装置主要包括:
111.第一获取单元401,用于获取对被测服务进行测试时,被测服务需要调用的入参变量;
112.第二获取单元402,用于从基于数据创建方法创建的结构体中,获取与入参变量对应的数据;
113.测试单元403,用于采用数据对被测服务进行测试。
114.基于同一构思,本技术实施例中还提供了一种电子设备,如图5所示,该电子设备主要包括:处理器501、存储器502和通信总线503,其中,处理器501和存储器502通过通信总线503完成相互间的通信。其中,存储器502中存储有可被处理器501执行的程序,处理器501执行存储器502中存储的程序,实现如下步骤:
115.获取被测服务的入参变量;以入参变量作为元数据,为元数据配置数据源;基于元数据和数据源生成结构体;保存结构体,以便在对被测服务进行测试时,从结构体中调用数据源;
116.或,
117.获取对被测服务进行测试时,被测服务需要调用的入参变量;从基于数据创建方法创建的结构体中,获取与入参变量对应的数据;采用数据对被测服务进行测试。
118.上述电子设备中提到的通信总线503可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线503可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
119.存储器502可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器501的存储装置。
120.上述的处理器501可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等,还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
121.在本技术的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的数据创建方法或数据测试方法。
122.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本技术实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如dvd)或者半导体介质(例如固态硬盘)等。
123.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
124.以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明
将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献