一种区块链性能测试系统及方法技术方案

技术编号:21184273 阅读:50 留言:0更新日期:2019-05-22 14:59
本申请属于计算机软件测试技术领域,特别是涉及一种区块链性能测试系统及方法。有些报告存在不同情况下不同区块链实施的表现,但是没有一个通用的区块链测试系统。本申请提供了一种区块链性能测试系统,所述系统包括适配层、核心层和测试层;所述适配层,用于将区块链与测试系统进行适配,将待测区块链集成到测试系统中;所述核心层,用于将适配好的区块链输送至测试单元,对测试层的情况进行监控和性能分析,将测试好的结果进行整合;所述测试层,用于根据待测区块链共识机制进行区分,按照设定的配置文件对区块链进行性能测试。适用多种区块链平台,同时配置简单,操作方便。可以实现区块链测试的通用性。

A Block Chain Performance Testing System and Method

This application belongs to the field of computer software testing technology, in particular to a block chain performance testing system and method. Some reports show different block chain implementations in different situations, but there is no universal block chain testing system. This application provides a block chain performance test system, which includes an adaptation layer, a core layer and a test layer; the adaptation layer is used to adapt the block chain to the test system and integrate the block chain to be tested into the test system; the core layer is used to transport the adapted block chain to the test unit, monitor and analyze the situation of the test layer, and test the system. The test results are integrated; the test layer is used to distinguish the block chains according to the consensus mechanism of the block chains to be tested, and to test the performance of the block chains according to the set configuration files. It is suitable for a variety of block chain platforms with simple configuration and easy operation. It can realize the universality of block chain testing.

【技术实现步骤摘要】
一种区块链性能测试系统及方法
本申请属于计算机软件测试
,特别是涉及一种区块链性能测试系统及方法。
技术介绍
区块链,也称分布式账本,本质上是系统互不信任的节点维护了一种只可附加的数据结构。在数据库视角下,可以将区块链视作对分布式事务管理问题的一种解决方案:所有的节点保存数据副本并且事务的执行顺序达成一致。但是传统的数据库运作在可信的环境中,并且使用了众所周知的并发控制技术对事务排序。区块链的关键优势是其不假设节点之间互相信任,因此旨在实现拜占庭容错。区块链有潜力颠覆很多现有的技术,因为它可以带来更低的基础设施和人力成本。特别是,区块链的不可篡改性和透明性减少人为错误和手动干预冲突数据的需要,区块链可以通过消除重复工作简化商业过程。目前,区块链的性能远远无法达到要求,无法替代数据库系统之上运行的应用程序,例如银行,金融和交易应用。区块链解决方案的性能表现是区块链用户最关心的功能之一,目前还没有可以根据一套中性和普遍接受的规则为不同区块链解决方案提供性能评估,有些报告存在不同情况下不同区块链实施的表现,但是没有一个通用的区块链测试系统。
技术实现思路
1.要解决的技术问题基于目前,区块链的性能远远无法达到要求,无法替代数据库系统之上运行的应用程序,例如银行,金融和交易应用。区块链解决方案的性能表现是区块链用户最关心的功能之一,目前还没有可以根据一套中性和普遍接受的规则为不同区块链解决方案提供性能评估,有些报告存在不同情况下不同区块链实施的表现,但是没有一个通用的区块链测试系统的问题,本申请提供了一种区块链性能测试系统及方法。2.技术方案为了达到上述的目的,本申请提供了一种区块链性能测试系统,所述系统包括适配层、核心层和测试层;所述适配层,用于将区块链与测试系统进行适配,将待测区块链集成到测试系统中;所述核心层,用于将适配好的区块链输送至测试单元,对测试层的情况进行监控和性能分析,将测试好的结果进行整合;所述测试层,用于根据待测区块链共识机制进行区分,按照设定的配置文件对区块链进行性能测试。可选地,所述适配层包括区块链原生软件开发工具包。可选地,所述核心层包括区块链调用模块、资源监控模块、性能分析模块和报告生成模块;所述区块链调用模块,用于编译部署智能合约,调用智能合约,从分类账查询状态;所述资源监控模块,用于启动、停止监控器,获取区块链的资源消耗状态;所述性能分析模块,用于读取预定义性能统计数据和打印测试结果,记录关键指标;所述报告生成模块,用于将统计结果汇总,并生成报告。可选地,所述资源消耗状态中的资源包括CPU、内存和网络输入输出。可选地,所述预定义性能统计数据包括每秒事务数、事务延迟和资源利用率;所述关键指标包括事务的创建时间、提交时间和事务结果。可选地,所述报告格式为HTML格式。本申请还提供一种区块链性能测试方法,所述方法包括如下步骤:步骤1、对待测区块链与测试系统进行适配,选择待测区块链测试场景;步骤2、运行所述区块链测试场景,测试完成后,返回测试数据;步骤3、对所述返回的测试数据进行分析,并生成报告。可选地,所述步骤1包括如下步骤:101、对待测区块链进行分析,并将其框架抽象为三层;102、对待测区块链的分层后针对不同的共识机制,选择不同的测试场景;103、根据测试场景的选择,通过适配将待测区块链集成到测试系统中。可选地,所述步骤2包括如下步骤:201、在测试系统中搭建分布式测试环境;202、待测区块链进入所述分布式测试环境后,使用区块链配置文件创建并初始化待测区块链;203、按照所述配置文件中指定的方式读取并编译智能合约;204、将编译后的智能合约部署到测试系统中,启动监控器对象来监控待测试区块链的关键性能指标;205、根据测试系统的所述配置文件启动测试客户端;206、测试完成之后,创建一个包含性能统计结果的节点;207、将存储待测区块链的性能统计节点返回,以供分析。可选地,所述步骤3包括如下步骤:301、分析统计数据,对数据进行汇总;302、对所述汇总的数据建立表格,并生成报告。3.有益效果与现有技术相比,本申请提供的一种区块链性能测试系统及方法的有益效果在于:本申请提供的区块链性能测试系统,通过设置适配层、核心层和测试层,对不同的区块链解决方案进行分析比较。用于评估区块链作为另一个分布式数据处理平台,同时可以帮助开发人员发现瓶颈,更好的帮助开发人员分析并改善区块链系统。本申请涉及的区块链性能测试系统适用多种区块链平台,同时配置简单,操作方便。可以实现区块链测试的通用性。附图说明图1是本申请的一种区块链性能测试系统示意图;图2是本申请的一种区块链性能测试系统的核心层示意图。具体实施方式在下文中,将参考附图对本申请的具体实施例进行详细地描述,依照这些详细的描述,所属领域技术人员能够清楚地理解本申请,并能够实施本申请。在不违背本申请原理的情况下,各个不同的实施例中的特征可以进行组合以获得新的实施方式,或者替代某些实施例中的某些特征,获得其它优选的实施方式。在最初的设计中,比特币区块链存储比特币(bitcoin)作为所有参与者共享的系统状态。对于这种简单应用,比特币节点实现了一种简单的复制状态机模型,将比特币从一个地址转到另一个地址。此后,区块链快速发展成支持用户自定义的状态和图灵完备状态机模型。以太坊(ethereum)是一个典型的例子。新加坡国立大学和浙江大学联合推出了一个私有区块链的评估框架,并且在SIGMOD'2017发表了名为《BLOCKBENCH:AFrameworkforAnalyzingBlockchains》的论文。BlockBench:一种评估私有链的框架,作为一个公平的比较不同平台的框架,能够深入地了解不同的系统设计选择。私有链可以通过简单的API函数集成到BLOCKBENCH当中,并且在真实和合成的智能合同的基础上进行负载,但是不支持公有链的测试。Linux基金会的区块链技术开源项目超级账本(Hyperledger)宣布,接受华为首个区块链基准工具“卡钳”(Caliper)成为其最新项目。Hyperledger(Linux基金会管理下的全球合作项目)宣布,Caliper已经被技术指导委员会接收为一个Hyperledger项目。Caliper在2017年5月正式推出,目标是要将现有区块链整合到一个框架之中,从而根据Hyperledger旗下性能和扩容工作组所设定的标准进行比较。目前Caliper可以为HyperledgerFabric,HylerledgerSawtooth和HyperledgerIroha提供分析支持,但是不支持超级账本(Hyperledger)之外的其他区块链项目。1)区块链系统包括许多部分,几乎每个细节都在不同平台之间进行了各种各样的设计选择。这导致了已有的区块链性能测试技术方案仅仅支持少部分项目,对很多新兴起的区块链平台缺少适配。2)缺少测试项目,已有的测试项目过于简单。3)已有的区块链性能测试方案配置困难,不易上手。共识机制:区块链事务达成分布式共识的算法。拜占庭容错(PBFT)算法由MiguelCastro和BarbaraLiskov1999年提出,初衷是为解决分布式系统中达成一致性的问题,与区块链共识机制的目标重合,其主要特本文档来自技高网...

【技术保护点】
1.一种区块链性能测试系统,其特征在于:所述系统包括适配层、核心层和测试层;所述适配层,用于将区块链与测试系统进行适配,将待测区块链集成到测试系统中;所述核心层,用于将适配好的区块链输送至测试单元,对测试层的情况进行监控和性能分析,将测试好的结果进行整合;所述测试层,用于根据待测区块链共识机制进行区分,按照设定的配置文件对区块链进行性能测试。

【技术特征摘要】
1.一种区块链性能测试系统,其特征在于:所述系统包括适配层、核心层和测试层;所述适配层,用于将区块链与测试系统进行适配,将待测区块链集成到测试系统中;所述核心层,用于将适配好的区块链输送至测试单元,对测试层的情况进行监控和性能分析,将测试好的结果进行整合;所述测试层,用于根据待测区块链共识机制进行区分,按照设定的配置文件对区块链进行性能测试。2.如权利要求1所述的区块链性能测试系统,其特征在于:所述适配层包括区块链原生软件开发工具包。3.如权利要求1所述的区块链性能测试系统,其特征在于:所述核心层包括区块链调用模块、资源监控模块、性能分析模块和报告生成模块;所述区块链调用模块,用于编译部署智能合约,调用智能合约,从分类账查询状态;所述资源监控模块,用于启动、停止监控器,获取区块链的资源消耗状态;所述性能分析模块,用于读取预定义性能统计数据和打印测试结果,记录关键指标;所述报告生成模块,用于将统计结果汇总,并生成报告。4.如权利要求3所述的区块链性能测试系统,其特征在于:所述资源消耗状态中的资源包括CPU、内存和网络输入输出。5.如权利要求3所述的区块链性能测试系统,其特征在于:所述预定义性能统计数据包括每秒事务数、事务延迟和资源利用率;所述关键指标包括事务的创建时间、提交时间和事务结果。6.如权利要求3所述的区块链性能测试系统,其特征在于:所述报告格式为HTM...

【专利技术属性】
技术研发人员:叶可江王锐须成忠
申请(专利权)人:深圳先进技术研究院
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1