本发明涉及数据测试领域,尤其涉及一种基于mock数据的代码测试方法、装置、电子设备及计算机可读存储介质。
背景技术:
代码测试是程序运行、上线中必不可少的一环,但代码测试过程中需要采集数据,特别是涉及到多种类型的数据采集时,需要调用稳定的外部数据源接口。
但目前外部数据源接口稳定性较差,少部分方案使用mock数据实现数据采集,mock数据是对于某些不容易构造或不容易获取的数据,用虚拟对象(mock对象)的形式创建,以便软件测试时调用,但目前常用的mock数据代码测试方案,通常将测试代码包及开发代码包直连打包并编译,编译通过后直接调用生成mock数据的开源生成器mock.js,这种方法虽然可完成代码测试,但由于测试代码包及开发代码包是打包共同编译,导致测试代码包及开发代码包产生强依赖关系,若用户需求发送改变,需要重新编译打包测试代码包及开发代码包并编译,耗费资源,另外直接调用开源的mock数据生成器,需要反复访问mock数据生成器的接口,容易发生接口访问拥塞的问题。
技术实现要素:
本发明提供一种基于mock数据的代码测试方法、装置、电子设备及计算机可读存储介质,其主要目的在于解决测试代码包及开发代码包之间强依赖关系及mock数据生成器的接口访问拥塞的问题。
为实现上述目的,本发明提供的一种基于mock数据的代码测试方法,包括:
接收用户输入的开发代码包及测试代码包,并在所述开发代码包运行通过时,利用用户输入的逻辑代码包生成mock连接包;
分析所述mock连接包的数据连接类型,从所述数据连接类型对应的存储空间提取mock数据;
组合所述mock数据与所述测试代码包,得到待运行测试代码包;
运行所述待运行测试代码包,调用所述mock数据执行代码测试。
可选地,所述组合所述mock数据与所述测试代码包之前,所述方法包括:
分析所述mock数据的字段类型,根据所述字段类型将所述mock数据拆分成不同字段类型的字段数据集;
构建与所述字段数据集对应的网关校验程序,利用所述网关校验程序分别校验对应的字段数据集;
当所有所述字段数据集均校验通过时,组合所述mock数据与所述测试代码包。
可选地,所述构建与所述字段数据集对应的网关校验程序,包括:
接收用户根据所述字段数据集构建的校验脚本;
利用所述校验脚本及所述字段数据集,生成所述网关校验程序。
可选地,所述利用所述校验脚本及所述字段数据集,生成所述网关校验程序,包括:
从所述校验脚本中提取所述校验脚本内各函数的输入参数;
根据所述输入参数拆分所述字段数据集,得到字段参数集;
将所述字段参数集组合至所述校验脚本,生成所述网关校验程序。
可选地,所述分析所述mock连接包的数据连接类型,从所述数据连接类型对应的存储空间提取mock数据,包括:
利用用户输入的数据调用指令生成mock配置文件;
利用所述mock配置文件判断所述mock连接包的数据连接类型;
在所述mock连接包的数据连接类型为本地数据连接类型时,从本地磁盘中提取所述mock数据;
在所述mock连接包数据连接类型为数据库连接类型时,从预构建的mock数据库中提取所述mock数据。
可选地,所述在所述开发代码包运行通过,包括:
根据所述开发代码包和所述测试代码包生成相同的id标识;
利用所述id标识,将所述开发代码包注入至预构建的spring容器中;
在所述spring容器内编译所述开发代码包,判断所述开发代码包是否编译通过,若所述开发代码包编译未通过,重新接收用户输入的开发代码包,若所述开发代码包编译通过,则所述开发代码包运行通过。
可选地,所述组合所述mock数据与所述测试代码包,得到待运行测试代码包,包括:
将所述mock数据打包成数据调用接口;
将所述id标识分配至所述测试代码包,并将所述数据调用接口的url作为所述测试代码包的函数参数,得到所述待运行测试代码包。
为了解决上述问题,本发明还提供一种基于mock数据的代码测试装置,所述装置包括:
连接包生成模块,用于接收用户输入的开发代码包及测试代码包,并在所述开发代码包运行通过时,利用用户输入的逻辑代码包生成mock连接包;
mock数据提取模块,用于分析所述mock连接包的数据连接类型,从所述数据连接类型对应的存储空间提取mock数据;
测试代码包生成模块,用于组合所述mock数据与所述测试代码包,得到待运行测试代码包;
测试代码包运行模块,用于运行所述待运行测试代码包,调用所述mock数据执行代码测试。
为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现上述中任意一项所述的基于mock数据的代码测试方法。
为了解决上述问题,本发明还提供一种计算机可读存储介质,包括存储数据区和存储程序区,存储数据区存储创建的数据,存储程序区存储有计算机程序;其中,所述计算机程序被处理器执行时实现上述中任意一项所述的基于mock数据的代码测试方法。
本发明实施例在接收开发代码包及测试代码包后,并非直接将开发代码包及测试代码包打包编译,而是先运行开发代码包,在开发代码包运行通过后,利用用户输入的逻辑代码包生成mock连接包,并根据mock连接包的数据连接类型,从对应的存储空间提取出mock数据,可见本发明避免了直接编译测试代码包及开发代码包,解决了测试代码包及开发代码包产生强依赖关系,其次本发明是从对应的存储空间提取出mock数据,并非直接从生成mock数据的开源生成器mock.js中调取数据,解决需要反复访问mock数据生成器的接口,容易发生接口访问拥塞的问题,因此本发明提出的基于mock数据的代码测试方法、装置及计算机可读存储介质,可以解决测试代码包及开发代码包之间强依赖关系,及mock数据生成器的接口访问拥塞的问题。
附图说明
图1为本发明一实施例提供的基于mock数据的代码测试平台内部结构图;
图2为本发明一实施例提供的基于mock数据的代码测试方法的数据交互图;
图3为本发明一实施例提供的基于mock数据的代码测试方法的流程示意图;
图4为本发明一实施例提供的基于mock数据的代码测试装置的模块示意图;
图5为本发明一实施例提供的实现基于mock数据的代码测试方法的电子设备的内部结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请实施例提供一种基于mock数据的代码测试方法,所述基于mock数据的代码测试方法的执行主体包括但不限于服务端、终端等能够被配置为执行本申请实施例提供的该方法的电子设备中的至少一种。换言之,所述基于mock数据的代码测试方法可以由安装在终端设备或服务端设备的软件或硬件来执行,所述软件可以是区块链平台。所述服务端包括但不限于:单台服务器、服务器集群、云端服务器或云端服务器集群等。
本发明一实施例中,所述基于mock数据的代码测试方法应用于代码测试平台,参照图1所示,为所述代码测试平台的内部结构示意图,所述代码测试平台1包括软件包接收器2、开发容器3、本地磁盘4及mock数据库5。
其中,所述软件包接收器2是所述代码测试平台1以面向用户为目的而开发的接口,可接收用户输入的开发代码包、测试代码包及数据调用指令。
所述开发容器3是一种开源应用程序框架,其主要作用是根据软件包接收器2所接收的开发代码包及数据调用指令,实现数据调用,本发明实施例中,开发容器3可采用spring开源应用程序框架;
所述本地磁盘4是一种预先存储不同模拟数据的硬盘设备;所述mock数据库5是基于mock.js构建的数据库,其中mock.js是一种开源的模拟数据生成器,可根据用户对不同数据类型的需求,实时生成对应的模拟数据,本发明实施例将实时生成的模拟数据存储至数据库,从而构建得到所述mock数据库5。
进一步地,所述软件包接收器2接收开发代码包及数据调用指令,触发数据调用,所述本地磁盘4及所述mock数据库5,在所述开发容器3执行数据调用时,实时提供模拟数据的支持,协助所述开发容器3实现数据调用。可见所述软件包接收器2、所述开发容器3、所述本地磁盘4及所述mock数据库5互相协作配合,从而实现本发明所述的基于mock数据的代码测试方法。
参阅图2所示,为本发明实施例在执行所述基于mock数据的代码测试方法时,所述代码测试平台与用户的数据交互图,其中所述软件包接收器2、所述开发容器3、所述本地磁盘4及所述mock数据库5的主要作用如下:
1、所述软件包接收器接收用户输入的开发代码包及测试代码包,并在所述开发代码包运行通过时,利用用户输入的逻辑代码包生成mock连接包;
2、所述开发容器分析所述mock连接包的数据连接类型,从所述数据连接类型对应的存储空间提取mock数据。进一步地,若所述mock连接包为本地数据连接类型,执行3、所述本地磁盘将mock本地数据传送至所述开发容器;
若所述mock连接包为数据库连接类型,执行4、所述mock数据库将mock数据库数据传送至所述开发容器;
5、组合所述mock数据与所述测试代码包,得到待运行测试代码包;
6、所述开发容器运行所述待运行测试代码包,调用所述mock数据执行代码测试。
参照图3所示,为本发明另一实施例提供的基于mock数据的代码测试方法的流程示意图。在本实施例中,所述基于mock数据的代码测试方法包括:
s1、接收用户输入的开发代码包及测试代码包,并在所述开发代码包运行通过时,利用用户输入的逻辑代码包生成mock连接包。
本发明实施例中,所述基于mock数据的代码测试方法可应用在前端开发中,如前端开发过程需要调用后端接口数据,当发生后端接口数量不足或后端接口限速等情况时,容易造成后端接口短时间内无法提供数据的异常事件,因此本发明实施例为了解决过度依赖后端接口的问题,通过生成mock数据(又称模拟数据、虚拟数据)并直接调用mock数据,以满足前端开发的数据调用需求。
详细地,所述开发代码包是基于不同项目而开发的项目代码,如基于上述前端开发而开发的前端页面代码包,包括学生信息管理系统的项目代码、购物网站的项目代码等。本发明实施例中,与所述开发代码包对应的是测试代码包,如基于开发金融风险管理系统的项目代码,在正式运行前,需要利用对应的测试代码包测试开发代码包的异常,从而保障后续开发代码包运行无误。
进一步地,所述并在所述开发代码包运行通过,包括:
根据所述开发代码包和所述测试代码包生成相同的id标识,利用所述id标识,将所述开发代码包注入至预构建的spring容器中,在所述spring容器内编译所述开发代码包,判断所述开发代码包是否编译通过,若所述开发代码包编译未通过,重新接收用户输入的开发代码包,若所述开发代码包编译通过,则所述开发代码包运行通过。
进一步地,所述编译是指把用高级程序设计语言书写的代码包,翻译成可被计算机理解的机器语言格式的翻译程序。所述高级程序设计语言包括java、c++等,所述翻译程序包括汇编语言等。
进一步地,本发明实施中,所述在所述spring容器内编译所述开发代码包,包括:
利用所述spring容器,将所述id标识分配给所述开发代码包,当分配成功时,编译所述开发代码包。
所述spring容器是一种编程对象的管理系统,为了实现开发代码包与测试代码包的绝对分离,防止数据测试时产生强依赖关系,本发明实施例中,开发代码包与测试代码包均在spring容器中分不同阶段分开执行。
相比于将开发代码包和测试代码包打包合并后同时编译的传统方案来说,该方案容易发送开发代码包和测试代码包在整个代码测试过程中,代码耦合过于严重的问题,故本发明实施例中,利用id标识分开编译开发代码包和测试代码包,如为编译开发代码包和测试代码包分配*763*的id标识,当需要执行开发代码包的编译时,将*763*分配至开发代码包,此时保持测试代码包的代码完整性,直至开发代码包编译完成。
详细地,当所述开发代码包运行通过之后,所述利用用户输入的逻辑代码包生成mock连接包,包括:
接收用户输入的数据调用指令及所述逻辑代码包,根据所述数据调用指令生成mock配置文件,利用所述mock配置文件连接所述逻辑代码包;
若连接成功,利用所述mock配置文件及所述逻辑代码包生成所述mock连接包。
详细地,所述数据调用指令是用户根据项目需求而发送的指令,如上述测试金融风险管理系统的项目代码时,用户发送数据调用指令欲调用多种测试数据,以满足金融风险管理系统的测试需求。
所述逻辑代码包又称为jar代码包,是用户根据某编程语言提前编写的代码块,其中逻辑代码包主要涉及用户欲调用mock数据的数据类型,如json、map、xml等数据类型,由于逻辑代码包包括用户欲调用的数据类型,故方便后续步骤解析出数据类型,并调用出对应的mock数据。
所述mock配置文件是根据本发明实施例应用场景不同,而对应编写的配置信息文件,如本发明实施例所依赖系统的版本号、网络ip地址等,当接收到数据调用指令后,本发明实施例会自动从数据库中获取预先存储的mock配置文件。
所述mock连接包是一种可自动连接mock.js的程序包,其中mock.js是一种开源的mock数据生成器,可根据用户对不同数据类型的需求,实时生成对应的mock数据。如测试金融风险管理系统时,需要获取不同类型的mock数据,可编译得到名为aper-mock.properties的mock连接包,部分配置属性部分示例如:apermock.log.show=true(推荐值);apermock连接模式:local本地读取、database数据库方式、http网络连接获取;apermock连接的数据库是否支持mysql、oracle、mongo。
s2、分析所述mock连接包的数据连接类型,从所述数据连接类型对应的存储空间提取mock数据。
详细地,所述s2包括:
利用所述mock配置文件判断所述mock连接包的数据连接类型;
在所述mock连接包的数据连接类型为本地数据连接类型时,从本地磁盘中提取所述mock数据;
在所述mock连接包数据连接类型为数据库连接类型时,从预构建的mock数据库中提取所述mock数据。
本发明实施例中,所述连接类型包括本地数据连接类型及数据库连接类型,其中本地数据连接类型表示利用项目所在的本地磁盘(包括本地电脑、本地服务器等),模拟json、map、xml等数据类型得到mock本地数据。所述mock数据库是基于mock.js构建的数据库,根据用户对不同数据类型的需求,通过mock.js实时生成对应的模拟数据并存储至数据库,当mock连接包为数据库连接类型时,直接从mock数据库中提取得到mock数据库数据。
s3、组合所述mock数据与所述测试代码包,得到待运行测试代码包。
本发明实施例为了提高与mock数据组合的安全性,需对mock数据执行数据校验操作。
详细地,所述组合所述mock数据与所述测试代码包之前,包括:
分析所述mock数据的字段类型,根据所述字段类型将所述mock数据拆分成不同字段类型的字段数据集;
构建与所述字段数据集对应的网关校验程序,利用所述网关校验程序分别校验对应的字段数据集;
当所有所述字段数据集均校验通过时,组合所述mock数据与所述测试代码包。
本发明实施例中,不管是mock数据库数据还是mock本地数据,均可能包括字符串类型、整型、长整型、双精度型、数组型、布尔型等字段类型,如测试人员测试开发人员所开发的推荐按钮,其中按钮为字符串字段类型,当点击后按钮,是否连接成功后台数据库,是否连接成功则为布尔型字段类型。故根据字段类型的不同,可将mock数据库数据或mock本地数据分为字符串类型的字段数据集、双精度类型的字段数据集等。
当得到不同字段类型的字段数据集后,所述构建与所述字段数据集对应的网关校验程序包括:接收用户根据所述字段数据集构建的校验脚本;利用所述校验脚本及所述字段数据集,生成所述网关校验程序。
进一步地,所述利用所述校验脚本及所述字段数据集,生成所述网关校验程序,包括:从所述校验脚本中提取所述所述校验脚本内各函数的输入参数;根据所述输入参数拆分所述字段数据集,得到字段参数集;将所述字段参数集组合至所述校验脚本,生成所述网关校验程序。
例如对于字符串类型的字段数据集,构建对应的字符串参数长度校验程序,如构建按钮字符串的参数长度不大于20的网关校验程序,对于长整型的字段数据集,构建取值不大于阈值的网关校验程序等。在本发明实施例中,将每个所述字段数据集作为对应的网关强校验程序的输入,并运行网关强校验程序,执行对每个所述字段数据集的校验操作,若校验未通过,则表明mock数据不满足用户需求,因此需将校验未通过的结果反馈至用户进行检测。
若校验通过,则表明mock数据满足用户需求,因此执行组合操作,详细地,所述组合所述mock数据与所述测试代码包,得到待运行测试代码包,包括:
将所述mock数据库数据或所述mock本地数据打包成数据调用接口;
将所述id标识分配至所述测试代码包,当分配成功时,将所述数据调用接口的url作为所述测试代码包的函数参数,得到所述待运行测试代码包。
如s1所述,为了防止测试代码包与开发代码包的代码耦合过于严重的问题,本发明实施例中分不同阶段分别处理测试代码包与开发代码包,当开发代码包编译成功后,将id标识分配至测试代码包,并保持编译后的开发代码包完整,直至得到所述待运行测试代码包。
s6、运行所述待运行测试代码包,调用所述mock数据执行代码测试。
本发明实施例在接收开发代码包及测试代码包后,并非直接将开发代码包及测试代码包打包编译,而是先运行开发代码包,在开发代码包运行通过后,利用用户输入的逻辑代码包生成mock连接包,并根据mock连接包的数据连接类型,从对应的存储空间提取出mock数据,可见本发明避免了直接编译测试代码包及开发代码包,解决了测试代码包及开发代码包产生强依赖关系,其次本发明是从对应的存储空间提取出mock数据,并非直接从生成mock数据的开源生成器mock.js中调取数据,解决需要反复访问mock数据生成器的接口,容易发生接口访问拥塞的问题,因此本发明提出的基于mock数据的代码测试方法、装置及计算机可读存储介质,可以解决测试代码包及开发代码包之间强依赖关系,及mock数据生成器的接口访问拥塞的问题。
如图4所示,是本发明基于mock数据的代码测试装置的模块示意图。
本发明所述基于mock数据的代码测试装置100可以安装于电子设备中。根据实现的功能,所述基于mock数据的代码测试装置可以包括连接包生成模块101、mock数据提取模块102、测试代码包生成模块103及测试代码包运行模块104。本发所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
在本实施例中,关于各模块/单元的功能如下:
所述连接包生成模块101,用于接收用户输入的开发代码包及测试代码包,并在所述开发代码包运行通过时,利用用户输入的逻辑代码包生成mock连接包;
所述mock数据提取模块102,用于分析所述mock连接包的数据连接类型,从所述数据连接类型对应的存储空间提取mock数据;
所述测试代码包生成模块103,用于组合所述mock数据与所述测试代码包,得到待运行测试代码包;
所述测试代码包运行模块104,用于运行所述待运行测试代码包,调用所述mock数据执行代码测试。
本发明实施例所提供的基于mock数据的代码测试装置100中的各个模块能够在使用时基于与上述的基于mock数据的代码测试方法采用相同的手段,具体地实施步骤在此不再赘述,关于各模块/单元的功能所产生技术效果与上述的基于mock数据的代码测试方法的技术效果相同的,即解决测试代码包及开发代码包之间强依赖关系及mock数据生成器的接口访问拥塞的问题。
如图5所示,是本发明实现基于mock数据的代码测试方法的电子设备的结构示意图。
所述电子设备1可以包括处理器10、存储器11和总线,还可以包括存储在所述存储器11中并可在所述处理器10上运行的计算机程序,如测试数据调用程序12。
其中,所述存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:sd或dx存储器等)、磁性存储器、磁盘、光盘等。所述存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的移动硬盘。所述存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式移动硬盘、智能存储卡(smartmediacard,smc)、安全数字(securedigital,sd)卡、闪存卡(flashcard)等。进一步地,所述存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。所述存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如测试数据调用程序12的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
所述处理器10在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(centralprocessingunit,cpu)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述处理器10是所述电子设备的控制核心(controlunit),利用各种接口和线路连接整个电子设备的各个部件,通过运行或执行存储在所述存储器11内的程序或者模块(例如执行测试数据调用程序等),以及调用存储在所述存储器11内的数据,以执行电子设备1的各种功能和处理数据。
所述总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。所述总线被设置为实现所述存储器11以及至少一个处理器10等之间的连接通信。
图5仅示出了具有部件的电子设备,本领域技术人员可以理解的是,图5示出的结构并不构成对所述电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
例如,尽管未示出,所述电子设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器10逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述电子设备1还可以包括多种传感器、蓝牙模块、wi-fi模块等,在此不再赘述。
进一步地,所述电子设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如wi-fi接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。
可选地,该电子设备1还可以包括用户接口,用户接口可以是显示器(display)、输入单元(比如键盘(keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
所述电子设备1中的所述存储器11存储的测试数据调用程序12是多个指令的组合,在所述处理器10中运行时,可以实现:
接收用户输入的开发代码包及测试代码包,并在所述开发代码包运行通过时,利用用户输入的逻辑代码包生成mock连接包;
分析所述mock连接包的数据连接类型,从所述数据连接类型对应的存储空间提取mock数据;
组合所述mock数据与所述测试代码包,得到待运行测试代码包;
运行所述待运行测试代码包,调用所述mock数据执行代码测试。
进一步地,所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)。
进一步地,所述计算机可用存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明还提供一种计算机可读存储介质,所述可读存储介质存储有计算机程序,所述计算机程序在被电子设备的处理器所执行时,可以实现:
接收用户输入的开发代码包及测试代码包,并在所述开发代码包运行通过时,利用用户输入的逻辑代码包生成mock连接包;
分析所述mock连接包的数据连接类型,从所述数据连接类型对应的存储空间提取mock数据;
组合所述mock数据与所述测试代码包,得到待运行测试代码包;
运行所述待运行测试代码包,调用所述mock数据执行代码测试。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图表记视为限制所涉及的权利要求。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。