CN110113229A - 一种区块链基准性能测试***和工具 - Google Patents
一种区块链基准性能测试***和工具 Download PDFInfo
- Publication number
- CN110113229A CN110113229A CN201910360053.7A CN201910360053A CN110113229A CN 110113229 A CN110113229 A CN 110113229A CN 201910360053 A CN201910360053 A CN 201910360053A CN 110113229 A CN110113229 A CN 110113229A
- Authority
- CN
- China
- Prior art keywords
- block chain
- test macro
- test
- data
- computer
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种区块链基准性能测试***和工具,包括测试用例、测试引擎、区块链接口模块、资源监控器、报告生成模块、指定区块链适配器模块等,所述测试用例是用户使用预定义的通过计算机编程技术编写的一组数据流,所述测试引擎是运行前述数据流的计算机程序载体,所述区块链接口模块提供一组数据接口处理数据流,所述资源监控器设定在测试引擎旁,监控测试引擎运行过程中占用的计算机资源,所述报告生成模块将资源监控器得到的数据处理成用户易读的格式化数据;上述的区块链性能测试工具构成测试***,使用所述的指定区块链适配器模块将测试***与已有区块链连接,本发明的区块链性能测试工具使用户可以使用测试***获得一组性能测试结果,使用户对当前使用的区块链***运行情况和性能指标更加了解。
Description
技术领域
本发明涉及区块链技术领域,特别涉及一种区块链基准性能测试***和工具。
背景技术
当前区块链平台众多,包括以比特币区块链、以太坊区块链、Hyperledger Fabric等为代表的开源平台;以及企业自主研发的区块链平台。然而,一方面,由于硬件配置、运行环境、测试指标等差异,难以实现各平台之间的有效比较。另一方面,由于部分区块链平台信息披露十分有限,难以验证所描述的性能指标的真实性。
Dinh等人在文献“Dinh T.T.A.,Wang J.,Chen G.,et al.Blockbench:Aframework for analyzing private blockchains[A].Proceedings of the 2017ACMInternational Conference on Management of Data[C].2017:1085–1100.”中提出了首个区块链评估方法Blockbench,从吞吐量、时延、可扩展和容错性等方面分析了Ethereum、Parity和Hyperledger Fabric典型区块链平台,评估结果表明这些平台性能与现有数据库***相差较远,该方案是一种评估某特定私有链的框架,存在对其他平台的区块链不兼容、不适配的情况。Zheng等人在文献“Zheng P.,Zheng Z.,Luo X.,et al.A detailed andreal-time performance monitoring framework for blockchain systems[A].2018IEEE/ACM 40th International Conference on Software Engineering:SoftwareEngineering in Practice Track[C].2017:134–143.”从定量角度给出了区块链性能指标评估方法,并提出了一个基于日志的性能监控框架,通过对Ethereum、Parity、Fabric和CITA进行评估来验证框架有效性。这些方法存在的不足之处是:评估方法面向的许可链,不具有通用性。
现有区块链测试方法,如一种区块链***的测试***和方法(申请号:CN201711320172.7)中公开了一种区块链交易测试方案;一种区块链数据传输测试方法及装置(申请号:CN201810885458.8)中公开了一种区块链中数据传输测试方案;一种区块链测评***(申请号:CN201810372960.9)中公布了一种区块链中智能合约性能测试方案;区块链共识算法测试方法、装置、计算装置和存储介质(申请号:CN201811354913.8)中公布了一种区块链共识算法测试方案;区块链引入测试方法、装置、设备及可读存储介质(申请号:CN201811135647.X)。这些方法存在的不足之处是:大都面向个体应用或某个组件单独测试,并没有给出跨越多平台的通用的区块链***一般性测试方案,基础性和通用性不足。
发明内容
针对上述问题,本发明提供了一种区块链基准性能测试***和工具,实现对于不同种类、跨平台的区块链***的通用性能测试技术,用户可以使用本发明提出的区块链基准性能测试***及其提供的工具对任一区块链进行基准性能测试,得到***性能报告,全面了解待测区块链***情况。
为了达到该技术目的并实现上述创新点,本发明采用如下方案:
一种区块链基准性能测试***和工具,包括测试用例、测试引擎、区块链接口模块、资源监控器、报告生成模块和指定区块链适配器模块等,所述测试用例是用户编写的一组数据流,所述测试引擎是运行前述数据流的计算机程序载体,所述区块链接口模块提供一组接口处理数据流,所述资源监控器设定在测试引擎旁,监控测试引擎运行过程中占用的计算机资源,所述报告生成模块将资源监控器得到的数据处理成用户易读的格式化数据;
所述区块链基准性能测试***由测试引擎、区块链接口模块、资源监控器、报告生成模块等模块工具构成,包括一台或多台计算机、软件代码部分、联网设备,一台或多台计算机是待测试区块链运行的实体设备,软件代码部分是搭载在实体设备上的能够进行性能测试的数据处理工具,联网设备将一台或多台计算机相连接;
所述的区块链适配器模块包括集成开发环境和接口,在计算机的集成开发环境中使用数据处理接口,适配器模块将待测试区块链的各项配置信息获取并在本地模拟网络中仿真实现,使用与待测区块链完全一致的配置并辅以一定的优化设置达到在本地模拟测试的目的,适配器模块采用软件工程领域中适配器的设计模式,它的核心是把一个***的接口变换成客户端所期待的另一种接口,所述客户端接口即是本发明的区块链适配器模块中的接口,所述***的接口即是待测区块链***的接口,详细实施描述及这种适配器方案可以用来进行区块链基准性能测试的合理性在具体实施例中给出。
通过上述技术方案,本发明的计算机设备通过联网设备部署在物理环境中,将区块链基准性能测试***预设在计算机设备内,并使用工具完成对计算机设备中运行的区块链***的性能测试。
这个过程涉及一组包含输入与输出数据流的数据处理过程,数据输入是用户预定义的用例,数据输出是测试***生成的易读的格式化数据。
具体步骤如下:
第一步,输入预定义的用例,这个用例最终可以使用一组数据流来表示,它为测试引擎所读取;
第二步,测试引擎使用几个独立的配置文件处理读取的数据流,这些配置文件中指定待测区块链的类型和名称、开始和终止的命令脚本、详细的测试方法如速率控制、迭代次数和迭代参数,其中速率控制由速率控制器完成,速率控制器定义了一组对输入数据流按照指定速率进行数据处理的接口,使用户能够在自定义机制下执行测试;
第三步,测试引擎执行测试的同时启动资源监视器,资源监视器包括获取模块和分析模块,获取模块获取测试引擎中待测区块链***的资源消耗情况,包括CPU占用,内存使用,网络中的I/O流量等情况,分析模块读取性能统计信息,按照规定的数据处理过程计算TPS、延迟、成功率等指标,另外,资源监视器接口需要记录测试引擎传递的关键指标用于计算上述指标,例如创建事务的提交时间、结束时间和数据流的迭代执行次数等;
第四步,报告生成模块从资源监视器中获取数据处理结果并把数据流输出生成为用户易读的格式化数据报告。
进一步,本发明所述的指定区块链适配器模块在调用区块链北向接口是指,测试***内部使用定义好的操作界面、资源监控器获取模块和分析模块、报告生成模块等多种接口将配置文件规定的测试命令发送给计算机设备上的区块链***并获取区块链***的反馈信息,这些信息统一成特定的数据流供测试引擎进行数据处理。
进一步,本发明所述测试步骤可分为三个阶段,即准备、测试、报告阶段。
准备阶段,主服务器使用区块链配置文件创建并初始化内部区块链对象,按照配置指定部署智能合约,并启动监控对象以监控设备运行区块链***的资源消耗。
测试阶段,主服务器实行迭代过程,根据配置文件执行测试,根据定义的工作负载产生任务并将其分配给客户端,其次存储客户端返回的性能统计信息以供以后分析。
报告阶段,分析每个测试轮次所有统计数据,并自动生成格式化数据报告。
进一步,本发明所述的数据处理过程中输入在准备阶段,输出在报告阶段。
进一步,本发明所述的主服务器是指区块链基准性能测试***和工具运行端,客户端是指待测区块链***运行端。
进一步,所述的测试***可以产生经过数据处理后的对特定区块链***性能表现的格式化报告;所述的测试***测试的是计算机设备中所运行的区块链***;所述的指定区块链适配器模块将现有的区块链***集成到权利要求的测试***框架中;所述的测试***基于现实存在的计算机硬件设备,设备上搭载有联网设施。
本发明的有益效果在于:
使用一种区块链基准性能测试***和工具可以方便地得到目标区块链***的各项性能指标,实现对目标区块链性能的自动化测试,对用户使用区块链***有明显的指导意义,对目标区块链***的表现有全面了解。
附图说明
图1为本发明的体系结构图;
图2为本发明中测试引擎的运行示意图;
图3为一种配置文件编写示例;
图4为多机分布式客户端拓扑图。
具体实施方式
下面结合附图对本专利作进一步描述。
如图1、图2、图3和图4所示,一种区块链基准性能测试***和工具,包括测试用例、测试引擎、区块链接口模块、资源监控器、报告生成模块、指定区块链适配器模块等。
本专利的任何实施均从本步骤开始,首先是产生配置文件,配置文件为测试引擎提供在本地或分布式部署条件下生成测试网络的各项参数;
配置文件的生成由本发明中的指定区块链适配器模块完成,在发明内容中指出该适配器模块采用软件工程领域的适配器设计模式,该模式通过定义一个新的接口,对实现的功能加以抽象,另外再实现数个该接口的Adapter类来透明地调用外部接口或组件,该外部接口或组件即为待测区块链***的接口或组件;
使用由适配器模块生成的配置文件最终构建的测试网络可以进行基准性能测试的创新点是:在本发明中提及的测试***中替换外部待测区块链各个组件时,最多只需要修改特定的几个Adapter类就可以达到目的,其他源代码和待测区块链***均不会受到测试***的影响,因而部署测试方便快捷且对于多平台、多种类的区块链***均予以支持;
指定区块链适配器模块使用预先编写好的获取目标待测区块链完整配置的方法生成json格式的配置文件,这种格式化文件可以很容易地被测试引擎所读取,生成的一种配置文件由图3所示,它的使用方法在后续实施步骤中描述;
如图1、图2所示,测试引擎处于体系结构图1所示位置,它的内部逻辑如图2所示,主服务器按照配置文件的要求执行初始化、开启资源监控、执行测试、输出格式化数据等过程,其中资源监控是基于Docker容器的计算机技术,这是一种发展成熟的计算机资源监控技术,非本发明范围故不再赘述;
客户端按照配置文件的要求执行创建、执行、释放任务和返回结果的过程;
主服务器和客户端在执行测试过程中产生交互,进行数据处理;
数据的输入和输出面对对象都是用户,即由用户提供预定义的测试用例作为输入;
最后产生用户友好的格式化数据报告作为输出。
数据流的处理过程为初始化、执行、结束,分别对应客户端的创建任务、执行任务、释放任务三个阶段,针对每个数据流的测试均需要包含三个函数,名称分别是Init、Run和Release,Init负责创建任务,它完成一些初始化工作,如规定对该数据流采用何种格式化的处理方法;Run负责执行任务,它完成事务的具体测试流程,如规定了经初始化处理后的数据流需经过几轮测试,每轮测试执行哪种速率控制方式;Release负责释放任务,它完成数据流测试结束后的资源释放,如对本轮测试过程中内存或硬盘占用进行释放以保证后续测试轮次的稳定;
特别需要说明,上述执行任务表示在测试网络的主服务器中执行测试,它处理是对各客户端上交的并经过Init处理后的数据流,这个执行(Run)中涉及速率控制、数据迭代、性能计算等三项基本操作。
如图2、图3所示,主服务器和客户端依赖配置文件进行测试,图3所示是一种配置文件的编写模板,利用计算机编程方法定义了测试入口、过程和出口,主要参数设定要求已由前述发明内容给出。
如图4,在多机分布式部署的方式下,每个客户端在测试文件夹下创建三个标识:
(1)唯一标识ID表示此客户端;
(2)顺序子标识1表示发送到此客户端的消息序列所处位置;
(3)顺序子标识2包含此客户端创建发出的消息序列所处位置。
***的测试引擎生成一个序列管理器,它可以读取消息序列数据并相应地处理该消息,以上涉及消息的队列化,这样可以方便地处理多机测试任务,统一地由主服务器处理消息。
在本实施例中所有物理设备需要电力驱动,保证测试***稳定运行均使用电源统一配电,具体方法涉及基础电器设备使用,此为常用技术不再赘述。
由于本专利的测试***主要是为了满足用户使用预定义用例测试目标区块链并得到数据报告,因此在本实施例中,测试***的部署必须基于物理环境存在的计算机硬件设备,这个设备可能是一台或者多台,需要特别说明的是,实施例以一台计算机设备作为基本单位进行,另外给出如图4多机分布式拓扑形式,即以基本单位的重复并辅以图4说明可以完成多机分布式实施例,以上保证本专利实施的稳定性。
以上仅为本专利的优选实施例,并非因此限制专利范围,凡是利用本专利说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (5)
1.一种区块链基准性能测试***和工具,其特征在于包括测试用例、测试引擎、区块链接口模块、资源监控器、报告生成模块和指定区块链适配器模块等,所述测试用例是用户使用预定义的通过计算机编程技术编写的一组数据流,所述测试引擎是运行前述数据流的计算机程序载体,所述区块链接口模块提供一组北向接口处理数据流,所述资源监控器设定在测试引擎旁,监控测试引擎运行过程中占用的计算机资源,所述报告生成模块将资源监控器得到的数据处理成用户易读的格式化数据;
所述区块链基准性能测试***由测试引擎、区块链接口模块、资源监控器、报告生成模块等模块工具构成,包括一台或多台计算机、软件代码部分、必要的联网设备,一台或多台计算机是待测试区块链运行的实体设备,软件代码部分是搭载在实体设备上的能够进行性能测试的数据处理工具,必要的联网设备将一台或多台计算机相连接;
所述的指定区块链适配器模块包括集成开发环境和接口,在计算机的集成开发环境中使用数据处理接口,将测试***与已有区块链***相连接。
2.根据权利要求1所述的一种区块链基准性能测试***和工具,其特征在于:所述的测试***可以产生经过数据处理后的对特定区块链***性能表现的格式化报告。
3.根据权利要求1所述的一种区块链基准性能测试***和工具,其特征在于:所述的测试***测试的是计算机设备中所运行的区块链***。
4.根据权利要求1所述的一种区块链基准性能测试***和工具,其特征在于:所述的指定区块链适配器模块将现有的区块链***集成到权利要求的测试***框架中。
5.根据权利要求1或2或3或4中任一权利要求所述的一种区块链基准性能测试***和工具,其特征在于:所述的测试***基于现实存在的计算机硬件设备,设备上搭载有联网设施。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910360053.7A CN110113229A (zh) | 2019-05-01 | 2019-05-01 | 一种区块链基准性能测试***和工具 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910360053.7A CN110113229A (zh) | 2019-05-01 | 2019-05-01 | 一种区块链基准性能测试***和工具 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110113229A true CN110113229A (zh) | 2019-08-09 |
Family
ID=67487730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910360053.7A Pending CN110113229A (zh) | 2019-05-01 | 2019-05-01 | 一种区块链基准性能测试***和工具 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110113229A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111190831A (zh) * | 2020-01-02 | 2020-05-22 | 南京邮电大学 | 区块链共识算法的鲁棒性分析方法及区块链*** |
CN112416801A (zh) * | 2020-12-08 | 2021-02-26 | 吉林大学 | 一种基于区块链技术的内存计算引擎的测试方法和*** |
CN114385488A (zh) * | 2021-12-17 | 2022-04-22 | 杭州趣链科技有限公司 | 区块链测试方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598824A (zh) * | 2016-11-25 | 2017-04-26 | 深圳前海微众银行股份有限公司 | 区块链的性能分析方法及装置 |
CN107147704A (zh) * | 2017-04-21 | 2017-09-08 | 杭州趣链科技有限公司 | 一种面向区块链的通用服务中间件*** |
CN107330026A (zh) * | 2017-06-22 | 2017-11-07 | 物链(北京)科技有限公司 | 一种兼容异构区块链平台的方法及*** |
CN107395674A (zh) * | 2017-06-14 | 2017-11-24 | 广东网金控股股份有限公司 | 一种应用***访问异构区块链平台的方法及装置 |
US20180165416A1 (en) * | 2016-12-09 | 2018-06-14 | Cognitive Scale, Inc. | Method for Providing Healthcare-Related, Blockchain-Associated Cognitive Insights Using Blockchains |
CN108876618A (zh) * | 2018-06-15 | 2018-11-23 | 浙江华信区块链科技服务有限公司 | 一种交换区块链***及相应的通用区块链互操作方法和网络 |
CN109639521A (zh) * | 2018-12-05 | 2019-04-16 | 北京京东金融科技控股有限公司 | 区块链性能的测试方法、装置、设备及存储介质 |
CN109683867A (zh) * | 2018-12-27 | 2019-04-26 | 石更箭数据科技(上海)有限公司 | 一种对接区块链的方法及其装置、介质、终端 |
-
2019
- 2019-05-01 CN CN201910360053.7A patent/CN110113229A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598824A (zh) * | 2016-11-25 | 2017-04-26 | 深圳前海微众银行股份有限公司 | 区块链的性能分析方法及装置 |
US20180165416A1 (en) * | 2016-12-09 | 2018-06-14 | Cognitive Scale, Inc. | Method for Providing Healthcare-Related, Blockchain-Associated Cognitive Insights Using Blockchains |
CN107147704A (zh) * | 2017-04-21 | 2017-09-08 | 杭州趣链科技有限公司 | 一种面向区块链的通用服务中间件*** |
CN107395674A (zh) * | 2017-06-14 | 2017-11-24 | 广东网金控股股份有限公司 | 一种应用***访问异构区块链平台的方法及装置 |
CN107330026A (zh) * | 2017-06-22 | 2017-11-07 | 物链(北京)科技有限公司 | 一种兼容异构区块链平台的方法及*** |
CN108876618A (zh) * | 2018-06-15 | 2018-11-23 | 浙江华信区块链科技服务有限公司 | 一种交换区块链***及相应的通用区块链互操作方法和网络 |
CN109639521A (zh) * | 2018-12-05 | 2019-04-16 | 北京京东金融科技控股有限公司 | 区块链性能的测试方法、装置、设备及存储介质 |
CN109683867A (zh) * | 2018-12-27 | 2019-04-26 | 石更箭数据科技(上海)有限公司 | 一种对接区块链的方法及其装置、介质、终端 |
Non-Patent Citations (1)
Title |
---|
享学IT: "区块链性能测试工具caliper", 《CSDN博客》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111190831A (zh) * | 2020-01-02 | 2020-05-22 | 南京邮电大学 | 区块链共识算法的鲁棒性分析方法及区块链*** |
CN111190831B (zh) * | 2020-01-02 | 2022-09-20 | 南京邮电大学 | 区块链共识算法的鲁棒性分析方法及区块链*** |
CN112416801A (zh) * | 2020-12-08 | 2021-02-26 | 吉林大学 | 一种基于区块链技术的内存计算引擎的测试方法和*** |
CN112416801B (zh) * | 2020-12-08 | 2022-04-05 | 吉林大学 | 一种基于区块链技术的内存计算引擎的测试*** |
CN114385488A (zh) * | 2021-12-17 | 2022-04-22 | 杭州趣链科技有限公司 | 区块链测试方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110309071B (zh) | 测试代码的生成方法及模块、测试方法及*** | |
Balci | Validation, verification, and testing techniques throughout the life cycle of a simulation study | |
Goševa-Popstojanova et al. | Architecture-based approach to reliability assessment of software systems | |
US7490029B2 (en) | Distributed simulation | |
EP2572294B1 (en) | System and method for sql performance assurance services | |
CN110113229A (zh) | 一种区块链基准性能测试***和工具 | |
CN107844424A (zh) | 基于模型的测试***及方法 | |
US20140032637A1 (en) | Enterprise Test System Platform and Associated Method for Interoperable Test Data Management, Test Development, Test Libraries and Test Workflow Management and Automation | |
CN107957712A (zh) | 改进的用于工业自动化控制器的测试管理器 | |
Aksakalli et al. | Systematic approach for generation of feasible deployment alternatives for microservices | |
CN109639791A (zh) | 一种容器环境下云工作流调度方法及*** | |
CN108694448A (zh) | Phm平台 | |
CN107301498A (zh) | 用于高速铁路轮轨关系服役监测的综合信息管理*** | |
CN105868956A (zh) | 一种数据处理方法及装置 | |
Safonova | On one approach to modeling enterprise-wide function-oriented computer networks | |
Paredis et al. | Translating process interaction world view models to DEVS: GPSS to (Python (P)) DEVS | |
CN116775477A (zh) | 软件测试进度确定方法及装置 | |
CN109669829A (zh) | 一种基于bmc的诊断调试方法、装置及服务器 | |
Eldred et al. | DAKOTA, A multilevel parallel object-oriented framework for design optimization, parameter estimation, sensitivity analysis, and uncertainty quantification | |
Koh et al. | Database driven simulation/simulation-based scheduling of a job-shop | |
CN117056238B (zh) | 验证部署框架下模型转换正确性的方法及计算设备 | |
CN114692382B (zh) | 核电仿真模型开发数据的管理方法、装置及计算机设备 | |
Cruceru | Enabling distributed analysis for ALICE Run 3 | |
KR100627090B1 (ko) | 경영정보시스템과 연계된 데이타베이스를 구비한 실시간 6시그마 품질관리 시스템 | |
Concepcion et al. | SAM—a computer aided design tool for specifying and analyzing modular, heirarchical systems |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190809 |
|
WD01 | Invention patent application deemed withdrawn after publication |