一种区块链网络的测试方法及相关装置与流程

未命名 07-23 阅读:105 评论:0


1.本技术涉及区块链领域,特别是涉及一种区块链网络的测试方法及相关装置。


背景技术:

2.区块链网络是一种基于对等网络(peer-to-peer网络,p2p网络)的分布式系统,区块链网络中的节点既可以是客户端,也可以是服务器。即该网络中的每一台计算机既可以充当网络服务的请求者,同时又可以对其它计算机的请求做出响应,提供资源、服务和内容。
3.开发者在完成区块链网络的产品开发或者产品更新后,一般会由测试者对区块链网络进行测试,以便尽早发现区块链网络中存在的问题,进而提高产品上线后的运行稳定性和可靠性。传统的测试方法往往对区块链网络的整体性能数据进行监测,进一步手动对整个区块链网络进行异常排查。
4.这种测试方法自动化程度低,无法实时定位异常发生的位置,从而延误后续对异常进行处理的过程,导致处理效率低下。


技术实现要素:

5.为了解决上述技术问题,本技术提供了一种区块链网络的测试方法及相关装置,提高区块链网络的自动化程度,提高对异常处理的效率。同时得到更加细粒度的异常定位信息,提高异常定位的精确度。
6.本技术实施例公开了如下技术方案:
7.一方面,本技术实施例提供区块链网络的测试方法,所述区块链网络包括多个节点,所述多个节点中每个节点包括多个模块,所述多个模块中每个模块是多个函数的集合,在所述多个模块包括的目标模块的目标函数设置数据埋点,所述方法包括:
8.获取通过触发所述数据埋点采集到的业务处理数据,所述业务处理数据是触发所述区块链网络对应的测试用例,通过所述数据埋点跟随目标业务请求的处理过程得到的,所述业务处理数据包括处理所述目标业务请求时所述区块链网络中数据埋点对应的目标函数的调用性能数据;
9.根据所述调用性能数据确定所述目标函数的调用性能测试结果;
10.根据所述目标函数的调用性能测试结果确定所述区块链网络是否发生异常;
11.若确定所述区块链网络发生异常,根据指示发生异常的调用性能测试结果所对应的目标函数确定异常定位信息。
12.一方面,本技术实施例提供一种区块链网络的测试装置,所述区块链网络包括多个节点,所述多个节点中每个节点包括多个模块,所述多个模块中每个模块是多个函数的集合,在所述多个模块包括的目标模块的目标函数设置数据埋点,所述装置包括获取单元、确定单元和定位单元:
13.所述获取单元,用于获取通过触发所述数据埋点采集到的业务处理数据,所述业
务处理数据是触发所述区块链网络对应的测试用例,通过所述数据埋点跟随目标业务请求的处理过程得到的,所述业务处理数据包括处理所述目标业务请求时所述区块链网络中数据埋点对应的目标函数的调用性能数据;
14.所述确定单元,用于根据所述调用性能数据确定所述目标函数的调用性能测试结果;
15.所述确定单元,还用于根据所述目标函数的调用性能测试结果确定所述区块链网络是否发生异常;
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.图1为本技术实施例提供的一种区块链系统的系统架构示意图;
41.图2为本技术实施例提供的一种区块链网络的测试方法的流程图;
42.图3为本技术实施例提供的一种多个节点构成的区块链网络示意图;
43.图4为本技术实施例提供的一种区块链中一个节点的相关模块及调用链路示意图;
44.图5为本技术实施例提供的一种流水线平台的执行流程界面示意图;
45.图6为本技术实施例提供的一种目标函数的调用链路示意图;
46.图7为本技术实施例提供的一种目标函数的调用链路及调用性能数据的展示界面示意图;
47.图8为本技术实施例提供的一种告警通知的界面示意图;
48.图9为本技术实施例提供的测试报告的展示界面示意图;
49.图10为本技术实施例提供的一种区块链网络的测试装置的结构图;
50.图11为本技术实施例提供的一种终端设备的结构图;
51.图12为本技术实施例提供的一种服务器的结构图。
具体实施方式
52.下面结合附图,对本技术的实施例进行描述。
53.首先,对本技术实施例中涉及的名词进行简单的介绍:
54.opentelemetry:opentelemetry是一个统一的全新可观测性生态系统标准规范。它是由云原生计算基金会(cloud native computing foundation,cncf)支持的,作为可观测性的基础设施,提供与厂商无关的可观察性解决方案,代表了opencensus(一个统计数据收集和分布式跟随框架)和opentracing(一种分布式跟随系统)合并后开放可观察性的重大演变,同时支持跟随和度量的应用程序接口(application programming interface,api),建设性的增加了日志相关标准的引入。
55.混沌工程:是一种提高技术架构弹性能力的复杂技术手段,在分布式系统上进行实验的学科,目的是建立对系统承受生产环境中湍流条件能力的信心。混沌工程的设计原则:1、立稳定状态的假设;2样化现实世界事件;3、生产环境运行实验;4、持续自动化运行实验;5、小化“爆炸半径”。本技术实施例对区块链网络进行的测试可以是基于混沌工程的混沌测试。
56.记账节点:又叫出块节点、leader节点,在区块链中,每个打包周期内,需要记账节点将若干交易列表打包成区块结构,并广播给其他节点共识,记账节点也就是生成区块并发起提案的节点。
57.共识算法:就是解决对某一提案(目标,投票等各种协作工作),大家达成一致意见的过程。
58.p2p网络:对等网络,该网络中的节点角色既可以是客户端,也可以是服务器。即该网络中的每一台计算机既能充当网络服务的请求者,又对其它计算机的请求做出响应,提供资源、服务和内容。
59.传统的区块链网络的测试方法往往对区块链网络的整体性能数据进行监测,进一步手动对整个区块链网络进行异常排查。例如,采集区块链网络的远程过程调用(remote procedure call,rpc)接口的数据,从而根据接口调用耗时、error日志等确定区块链网络是否发生异常,在区块链网络发生异常时,手动排查发生异常的具体位置。
60.然而,这种测试方法自动化程度低,无法实时定位异常发生的位置,从而延误后续对异常进行处理的过程,导致处理效率低下。
61.为了解决上述技术问题,本技术实施例提供区块链网络的测试方法,该方法通过在节点内部的模块的目标函数设置数据埋点,无需手动对整个区块链网络进行异常排查,提高区块链网络的自动化程度,提高对异常处理的效率。同时在异常定位时得到的异常定位信息可以细化到节点内部的模块所包括的某个函数,从而得到更加细粒度的异常定位信息,提高异常定位的精确度。
62.需要说明的是,本技术实施例主要涉及区块链,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,是一种多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术,也就是分布式账本技术。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务
层以及应用服务层。
63.如图1所示,图1示出了一种区块链系统的系统架构示意图。本技术实施例提供的区块链系统100可以包括至少一个客户端110和区块链网络120,区块链网络120包括多个节点121。客户端110可以是智能手机、平板电脑、笔记本电脑、台式电脑等各种电子设备。多个节点121之间形成p2p网络,p2p协议是一个运行在传输控制协议(tcp,transmission control protocol)协议之上的应用层协议。在分布式系统中,任何电子设备如服务器、终端设备都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。终端设备可以是智能手机、平板电脑、笔记本电脑、台式电脑等,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。
64.通常情况下,可以利用客户端110与区块链网络120进行数据通信,从而查询或者更新由区块链网络120中的节点121共同维护的共享数据。在区块链系统100中,客户端110发送目标业务请求给区块链网络120中的某个节点121,该节点121通过p2p网络广播交易到其他节点121;共识机制从多个节点121中随机选出记账节点;记账节点将目标业务请求打包组装成区块,并广播给其他节点121;其他节点121收到该区块后,验证区块内的目标业务请求,并广播投票信息;针对该区块达成共识后,提交该区块到区块链存储层,开始下一轮选举和共识。
65.需要说明的是,区块链网络120中的各个节点121上可以存储一条相同的区块链(blockchain)。区块链是一种按照时间顺序将数据区块以顺序相连的方式组合而成的一种链式数据结构,并以密码学方式保证数据不可篡改和不可伪造的分布式数据库。区块链由多个顺次连接的区块组成,每当有新的数据需要写入区块链时,这些数据会汇总到一个新生成的区块中,新生成的区块将被链接至区块链的末端,通过共识算法可以保证每个节点121上新增的区块是完全相同的。在每个区块的区块体中记录了当前区块的数据,同时在其区块头中保存与之相连的前一区块的哈希值(hash),若前一区块中的交易数据发生变化,那么当前区块的哈希值也将随之改变。因此,上传至区块链网络中的数据难以被篡改,可以提高共享数据的可靠性。
66.接下来,将以服务器执行本技术实施例提供的方法为例,结合附图对本技术实施例提供的区块链网络的测试方法进行详细介绍。
67.参见图2,图2示出了一种区块链网络的测试方法的流程图,所述方法包括:
68.s201、获取通过触发所述数据埋点采集到的业务处理数据。
69.在本技术实施例中,区块链网络包括多个节点,多个节点构成的区块链网络可以参见图3所示,多个节点分别是p1、p2、p3、p4、p5,每个节点具有对应的rpc接口,客户端可以该rpc接口访问节点。其中多个节点可以根据功能分为不同的种类,例如分为共识节点、同步节点、观察节点。
70.多个节点中每个节点包括多个模块,其中多个模块分别可以是交易池(ixpool)、共识模块(consent sns)、验证器(validator)、虚拟机(virtual machine,vm)、执行器(executor)、账本模块(ledger)、存储模块(storage)、同步模块(syncmanager)、日志采集模块、统计模块等等。
71.多个模块中每个模块可以是多个函数的集合,通过多个函数的调用执行从而完成一个模块对目标业务请求的处理。以执行器为例,构成执行器的多个函数可以包括executor_start(表示启动执行器的函数)、executor init(表示对执行器进行初始化的函数)、executor baseinit(表示基本初始化配置函数)等等。
72.区块链中一个节点(例如图3中的p3节点)的相关模块及调用链路示意图可以参见图4所示。此时,区块链网络对某个业务请求例如目标业务请求的处理可以调用图4中所示的模块实现。具体的,当客户端发送目标业务请求时,可以接收并验证目标业务请求,图4中1-2所标识的阶段表示接收来自rpc接口的目标业务请求,3-4所标识的阶段表示对目标业务请求进行验证,验证后放入交易池。然后,广播目标业务请求,图4中5所标识的阶段表示通过p2p网络将目标业务请求广播给其他节点。接着进行区块提案并共识,图4中6所标识的阶段表示共识模块构造区块,7所标识的阶段表示广播区块并和其他节点完成3所标识阶段共识。最后进行区块提交及后处理,图4中8-11所标识的阶段表示执行并提交区块到账本模块,并存储至存储模块,实现持久化,12所标识的阶段表示通知交易池清理交易,13-14所标识的阶段表示通知同步模块广播区块。
73.基于上述介绍的区块链网络对目标业务请求的处理过程,为了自动化测试,精准定位发生异常的位置,可以在多个模块包括的目标模块的目标函数设置数据埋点。其中,目标模块可以为多个模块中的全部模块,当然也可以为多个模块中的部分模块,一个节点所包括的多个模块可以包括主模块和辅助模块,主模块可以是对处理目标业务请求起到主要作用的模块,例如交易池、共识模块、验证器、虚拟机、执行器、账本模块、存储模块、同步模块等,辅助模块是对处理目标业务请求起到辅助作用的模块,例如日志采集模块、统计模块等。而辅助模块对目标业务请求的处理影响较小,发生异常的概率也较小,因此,在一种可能的实现方式中,设置数据埋点的目标模块可以是多个模块中的主模块。基于类似的原理,目标函数可以为多个函数中的全部函数或多个函数中的关键函数,以目标模块是执行器为例,关键函数例如可以是executor_start、executor init、executor baseinit、executor starttx executor等。
74.需要说明的是,为了实现对区块链网络的测试,本技术实施例提供一种流水线平台,该流水线平台的执行流程界面示意图可以参见图5所示。
75.步骤1、可以将一个开发完成的区块链网络产品对应的程序代码提交到该流水线平台,例如提交到git仓库(是一种远程仓库,可以存放程序代码)master分支(即主分支),进而触发流水线执行从而实现自动化测试,此步骤对应的流水线平台的界面参见501所示。
76.步骤2、流水线平台拉起构建环境对master分支下的程序代码(目标模块的程序代码,程序代码中包括目标函数)进行链路插桩代码的注入(即设置数据埋点),注入后编译,并分发到相应的稳定性测试环境(多节点),此步骤对应的流水线平台的界面参见502所示。在构建完成后,程序代码中会显示“build success”,从而提示构建成功。
77.通过本技术实施例提供的流水线平台可以实现基于opentelemetry的区块链网络的测试,为此可以在区块链网络的程序代码中引入opentelemetry的go sdk(是一种软件开发工具包)开发包,sdk指的是opentelemetry sdk接口的实现。区块链网络产品使用的是go语言开发,所以需要引入opentelemetry的go sdk开发包,比如通过import的方式引入库文件,例如库文件"go.opentelemetry.io/otel/sdk/resource"(是一种资源文件)、库文件
sdktrace"go.opentelemetry.io/otel/sdk/trace"(是一种跟随文件)等等,但并不限于这两个库文件。
78.引入sdk开发包后,接下来需要完成初始化工作,利用sdk开发包提供的函数otlphttp.withendpoint配置上报地址(域名/端口),以便在测试过程中可以将数据埋点采集到的业务处理数据上报至该上报地址所对应的电子设备,例如服务器。访问这个上报地址可以获取调用性能数据、异常定位信息等,使用初始化的驱动器构造一个exporter并且启动,同时还需要在流水线平台上注册需要测试的区块链网络的服务名,比如区块链网络底层“trustsql2.1-service”,并在代码中定义并初始化资源。
79.对目标模块中的目标函数进行链路插桩代码的注入,获取一个跟随(tracer)命令,该tracer命令负责创建spans(是指跨度,用于指定一个需要跟随的代码块)并与上下文交互。tracer是通过使用opentelemetry的api来获取的,该api指定了测试要实时检测的检查库或应用程序的库的名称和版本。当确定要跟随的代码块(例如目标函数)位置后,创建span,只需指定span的名称,同时还可以通过setattributes(一种设置属性的函数)记录一些自定义的属性。比如下面的跟随示例:
80.ctx,span:=otel.tracer(
“”
).start(context.background(),“test-span-name”81.defer span.end()
82.上述程序代码定义了用于对主模块产生的业务处理数据进行收集,注册的span名称为“test-span-name”。
83.又如下述跟随示例:
84.ctx,childspan:=otel.tracer(
“”
).start(ctx.background(),“baseinit”85.defer childspan.end()
86.上述程序代码定义了用于对执行器这一模块产生的业务处理数据进行收集,注册的span名称为“baseinit”。
87.在完成上述步骤后,可以执行步骤3,即流水线平台启动多个节点的区块链网络的应用程序,并启动业务处理数据收集功能,以便进行自动采集和上报,此步骤对应的流水线平台的界面参见503所示。
88.步骤4、触发区块链网络对应的测试用例,仿真实际产品中客户端向区块链网络发送目标业务请求,区块链网络对该目标业务请求进行处理的过程,启动并执行区块链网络的自动化测试,此步骤对应的流水线平台的界面参见504所示。在执行自动化测试过程中,通过数据埋点跟随目标业务请求的处理过程得到业务处理数据,并将采集到的业务处理数据上报至上报地址对应的电子设备,例如服务器。其中,业务处理数据包括处理目标业务请求时区块链网络中数据埋点对应的目标函数的调用性能数据。调用性能数据例如包括调用耗时、error数据等。
89.需要说明的是,在本技术实施例中,业务处理数据的采集使用是经过对象授权许可、对象知情,且符合法律要求的。
90.s202、根据所述调用性能数据确定所述目标函数的调用性能测试结果。
91.服务器可以对调用性能数据进行分析,例如根据采集到的调用性能数据确定性能指标,将得到的性能指标与指标阈值进行比对,从而确定目标函数的调用性能测试结果。目
标函数的调用性能测试结果用于执行目标函数是否发生异常。
92.以调用性能数据包括调用耗时为例,若调用耗时(即性能指标)是241.46ms,而指标阈值是50ms,由于241.46ms大于指标阈值50ms,因此可以确定目标函数发生异常。
93.在一些情况下,不仅可以获取到当前的目标函数的调用性能数据,还可以确定调用该目标函数的上游函数,从而跟随得到处理目标业务请求的调用链路。在这种情况下,业务处理数据中还可以包括处理目标业务请求时区块链网络中数据埋点对应的目标函数的上游信息,该上游信息用于指示调用该目标函数的是上游的哪个函数。而上游信息不同,那么目标函数的调用情况会有所不同,相应的所依据的性能评价规则也可能有所不同。基于此,根据调用性能数据确定目标函数的调用性能测试结果的一种可能的实现方式可以是根据上游信息确定目标性能评价规则,进而根据调用性能数据和目标性能评价规则确定目标函数的调用性能测试结果。
94.例如第一函数可以调用第二函数,第三函数也可以调用第二函数,而第一函数调用第二函数时对应的性能评价规则中指标阈值是50ms,第三函数调用第二函数使对应的性能评价规则中指标阈值是150ms。若第二函数(即需要判断的目标函数)对应的数据埋点采集到的调用耗时是120.95ms,上游信息指示处理目标业务请求时调用第二函数的是第一函数,此时确定的目标性能评价规则是第一函数调用第二函数时对应的性能评价规则,指标阈值是50ms,120.95ms大于指标阈值50ms,因此可以确定第二函数发生异常。
95.通过上述方法可以准确的确定不同调用链路下对应的目标性能评价规则,从而准确的确定目标函数是否发生异常,进一步提高区块链网络测试及异常定位的准确性。
96.在一种可能的实现方式中,在得到目标函数的调用性能数据和上游信息后,可以根据目标函数的调用性能数据和上游信息生成区块链网络处理目标业务请求的调用链路,并通过流水线平台向测试者展示区块链网络处理目标业务请求的调用链路,从而满足区块链网络中多节点多模块联动的跟随要求。
97.参见图6所示,图6中目标模块是执行器,目标模块中的目标函数包括第一函数、第二函数、第三函数和第四函数,通过第一函数、第二函数、第三函数和第四函数上分别设置的数据埋点采集对应的调用性能数据和上游信息,进而生成图6所示的目标函数的调用链路。其中,图6中圆圈内的时间表示调用性能数据(例如调用耗时),从而方便测试者查看。
98.需要说明的是,在本技术实施例中,服务器获取业务处理数据后,可以直接生成调用链路并通过流水线平台展示给测试者,也可以通过流水线平台上提供的查询功能,当测试者需要查看某个调用链路时,基于测试者的调用链路查询请求展示区块链网络处理目标业务请求的调用链路。具体的,服务器接收调用链路查询请求,该调用链路查询请求中包括跟随标识。其中该跟随标识是根据目标业务请求的标识生成的,例如可以通过sdk提供的api函数trace.spancontextfromcontext(ctx).traceid().string()来获取跟随标识(traceid),进而根据traceid查看调用链路。服务器将该跟随标识对应的调用链路下发至流水线平台,并通过流水线平台展示展示该跟随标识对应的调用链路。参见图6所示,其中跟随标识可以如图6中601所示。
99.另外,在展示调用链路时,除了在调用链路中展示调用性能数据(例如调用耗时),还可以将调用性能数据单独以条形图的形式进行展示,参见图7中701所示。
100.通过调用链路的可视化展示,便于测试者直观了解区块链网络在处理目标业务请
求时,节点、模块、函数之间的调用情况,满足区块链网络中多节点多模块联动的跟随要求,辅助进行异常定位,以及辅助定位异常调用链路。
101.s203、根据所述目标函数的调用性能测试结果确定所述区块链网络是否发生异常。
102.在本技术实施例中根据目标函数的调用性能测试结果确定区块链网络是否发生异常的方式可以包括多种,一种方式可以是若存在调用性能测试结果指示其对应的目标函数的调用发生异常,则确定区块链网络发生异常。
103.而在另一种可能的实现方式中,由于本技术实施例中测试的是区块链网络,由于区块链网络中多节点共识机制,因此典型的区块链网络中的多节点满足一定的容错机制,通常是拜占庭容错(byzantine fault tolerance,bft)机制,即在多节点构成的区块链网络中,若存在某节点或容错范围内的节点发生异常例如宕机、内存溢出或者作恶等,整个区块链网络也是可以正常运行的。
104.在这种情况下,根据目标函数的调用性能测试结果确定区块链网络是否发生异常的方式可以是根据目标函数的调用性能测试结果确定目标函数所属的模块是否发生异常,若存在发生异常的模块,确定发生异常的模块所属的目标节点。若目标节点的数量大于容错阈值,确定区块链网络发生异常,若目标节点的数量不大于容错阈值,确定区块链网络可以正常运行。
105.调用性能测试结果可以反映对应的目标函数是否发生异常,若某个目标函数发生异常,则确定发生异常的目标函数所属的模块,即确定出发生异常的模块,进而确定发生异常的模块所属的目标节点。假设区块链网络中包括4个节点,容错阈值是1个,若发生异常的模块属于一个目标节点,即区块链网络中仅有1个节点发生异常,由于目标节点的数量1不大于容错阈值1,因此,确定区块链网络可以正常运行。若发生异常的模块属于2个目标节点,即区块链网络中有2个节点发生异常,由于目标节点的数量2大于容错阈值1,因此,确定区块链网络发生异常。
106.通过上述方式可以覆盖到区块链网络特有的bft容错检测,从而符合区块链网络的共识特性,避免不必要的异常定位及异常告警。
107.s204、若确定所述区块链网络发生异常,根据指示发生异常的调用性能测试结果所对应的目标函数确定异常定位信息。
108.由于调用性能测试结果可以指示对应的目标函数是否发生异常,因此可以定位出发生异常的位置在哪个目标函数,即异常定位信息包括发生异常的目标函数。
109.进一步地,由于每个节点包括多个模块,每个模块是多个函数的集合,因此,在确定出发生异常的目标函数后,可以进一步确定发生异常的目标函数所属的异常模块、异常模块所属的异常节点、发生异常的目标函数所属的异常调用链路,从而根据指示发生异常的调用性能测试结果所对应的目标函数、异常模块、异常节点、异常调用链路生成异常定位信息。
110.由于基于opentelemetry的流水线平台可以展示调用链路、性能测试数据等,故测试者可以借助基于opentelemetry的流水线平台辅助异常定位。
111.在一种可能的实现方式中,当确定区块链网络发生异常后,服务器可以触发发出告警通知,该告警通知可以通过流水线平台对测试者进行告警,告警通知用于提示区块链
网络发生异常,从而提示测试者对异常进行修复。
112.参见图8所示,图8是对名称为“majiang_ctrobot”的区块链网络进行测试之后,发出的告警通知。该告警通知中明确了发生的异常具体是什么,例如“执行频率过快或停止出块”、“实时检测日志错误信息持续大于阈值”,以及提示了如何查看具体问题,等等。图8仅是告警通知的一种示例,本技术实施例对告警通知的具体内容不做限定。
113.在流水线平台执行完自动化测试后,服务器可以生成测试报告,并通过该流水线平台展示测试报告,该测试报告包括执行测试用例得到的目标测试结果,目标测试结果指示区块链网络是否发生异常。
114.其中,测试报告的展示界面示意图可以参见图9所示,图9中示出了用于执行不同业务(例如业务请求上链、多个业务请求并行上链、根据高度查看区块)的测试用例的自动化测试的目标测试结果,图9中共测试了20个测试用例,每个测试用例对应的目标测试结果都是通过。另外,每条目标测试结果后提供了查看目标测试结果详情的入口,当测试者点击“查看”时,可以查看目标测试结果详情。
115.在流水线平台执行完自动化测试后,可以恢复故障点(failpoint)环境,以便可以在failpoint环境下自动激活这些故障点来模拟故障,并观测最终结果是否符合预期结果来判断区块链网络的正确性和稳定性。流水线平台的界面可以参见图5中505所示的步骤5。
116.由上述技术方案可以看出,区块链网络包括多个节点,多个节点中每个节点包括多个模块,多个模块中每个模块是多个函数的集合,在多个模块包括的目标模块的目标函数设置数据埋点,得到区块链网络对应的测试用例。在执行测试用例以对区块链网络进行测试时,通过触发数据埋点跟随目标业务请求的处理过程,从而采集业务处理数据,该业务处理数据包括处理目标业务请求时区块链网络中数据埋点对应的目标函数的调用性能数据。根据调用性能数据可以确定目标函数的调用性能测试结果,进而根据目标函数的调用性能测试结果确定区块链网络是否发生异常。若确定区块链网络发生异常,由于调用性能测试结果反映的是目标函数的调用情况,进而体现目标函数的调用是否发生异常,而目标函数是节点中所包括模块的子集,因此根据指示发生异常的调用性能测试结果所对应的目标函数便可以直接确定异常定位信息,无需手动对整个区块链网络进行异常排查,从而提高对异常处理的效率。另外,由于目标函数是节点中所包括模块的子集,因此在异常定位时得到的异常定位信息可以细化到节点内部的模块所包括的某个函数,从而得到更加细粒度的异常定位信息,提高异常定位的精确度。可见,本方案通过在节点内部的模块的目标函数设置数据埋点,提高区块链网络的自动化程度,提高对异常处理的效率。同时得到更加细粒度的异常定位信息,提高异常定位的精确度。
117.目前区块链网络的测试方法,依赖手动录入多节点信息,实时检测指标实现单一,难以覆盖bft场景,而本技术通过以目标函数为粒度设置数据埋点,根据启动的节点自动上报业务处理数据,自动分析bft容错,自动收集调用链路,自动触发告警通知。
118.另外,目前区块链网络的测试方法没有配套的异常调用链路定位能力,也没有提供相关的测试报告,测试事件没有明确的收尾,而本技术基于流水线平台,可以触发测试报告生成,并且提供异常调用链路查询功能,方便辅助异常定位。
119.综上所述,本技术基于opentelemetry分布式跟随的区块链可观测性实现方案,收集区块链多节点和多模块的调用信息,实时展示和分析,当不满足区块链网络的稳态时,实
时告警通知。该方法具有模块和节点的调用链路跟随、调用链路展示、实时拜占庭容错分析、调用性能数据收集等功能;精准跟随多节点和多模块区块链网络的业务处理数据,覆盖bft场景,当触发破坏区块链网络的容错阈值时,实时触发告警通知。
120.并且,本技术实施例提供的方法方便易用、异常处理效率高、兼容性强,方便移植,借助devops流水线机制,自动化程度高。
121.需要说明的是,本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
122.基于图2对应实施例提供的区块链网络的测试方法,本技术实施例还提供一种区块链网络的测试装置1000,所述区块链网络包括多个节点,所述多个节点中每个节点包括多个模块,所述多个模块中每个模块是多个函数的集合,在所述多个模块包括的目标模块的目标函数设置数据埋点。参见图10,所述区块链网络的测试装置1000包括获取单元1001、确定单元1002和定位单元1003:
123.所述获取单元1001,用于获取通过触发所述数据埋点采集到的业务处理数据,所述业务处理数据是触发所述区块链网络对应的测试用例,通过所述数据埋点跟随目标业务请求的处理过程得到的,所述业务处理数据包括处理所述目标业务请求时所述区块链网络中数据埋点对应的目标函数的调用性能数据;
124.所述确定单元1002,用于根据所述调用性能数据确定所述目标函数的调用性能测试结果;
125.所述确定单元1002,还用于根据所述目标函数的调用性能测试结果确定所述区块链网络是否发生异常;
126.所述定位单元1003,用于若确定所述区块链网络发生异常,根据指示发生异常的调用性能测试结果所对应的目标函数确定异常定位信息。
127.在一种可能的实现方式中,所述业务处理数据还包括处理所述目标业务请求时所述区块链网络中数据埋点对应的目标函数的上游信息,所述确定单元1002,用于:
128.根据所述上游信息确定目标性能评价规则;
129.根据所述调用性能数据和所述目标性能评价规则确定所述目标函数的调用性能测试结果。
130.在一种可能的实现方式中,所述业务处理数据还包括处理所述目标业务请求时所述区块链网络中数据埋点对应的目标函数的上游信息,所述装置还包括生成单元和展示单元:
131.所述生成单元,用于根据所述目标函数的调用性能数据和所述上游信息生成所述区块链网络处理所述目标业务请求的调用链路;
132.所述展示单元,用于通过流水线平台展示所述区块链网络处理所述目标业务请求的调用链路。
133.在一种可能的实现方式中,所述展示单元,具体用于:
134.接收调用链路查询请求,所述调用链路查询请求中包括跟随标识;
135.通过流水线平台展示所述跟随标识对应的调用链路。
136.在一种可能的实现方式中,所述确定单元1002,具体用于:
137.根据所述目标函数的调用性能测试结果确定所述目标函数所属的模块是否发生
异常;
138.若存在发生异常的模块,确定发生异常的模块所属的目标节点;
139.若所述目标节点的数量大于容错阈值,确定所述区块链网络发生异常。
140.在一种可能的实现方式中,所述定位单元1003,具体用于:
141.根据指示发生异常的调用性能测试结果所对应的目标函数确定异常模块、异常模块所属的异常节点、指示发生异常的调用性能测试结果所对应的目标函数所属的异常调用链路;
142.根据所述指示发生异常的调用性能测试结果所对应的目标函数、所述异常模块、所述异常节点、所述异常调用链路生成异常定位信息。
143.在一种可能的实现方式中,所述目标模块为所述多个模块中的全部模块或所述多个模块中的主模块,所述目标函数为所述多个函数中的全部函数或所述多个函数中的关键函数。
144.在一种可能的实现方式中,所述装置还包括告警单元:
145.所述告警单元,用于触发发出告警通知,所述告警通知用于提示所述区块链网络发生异常。
146.在一种可能的实现方式中,所述装置还包括生成单元和展示单元:
147.所述生成单元,用于生成测试报告,所述测试报告包括执行所述测试用例得到的目标测试结果,所述目标测试结果指示所述区块链网络是否发生异常;
148.所述展示单元,用于通过流水线平台展示所述测试报告。
149.由上述技术方案可以看出,区块链网络包括多个节点,多个节点中每个节点包括多个模块,多个模块中每个模块是多个函数的集合,在多个模块包括的目标模块的目标函数设置数据埋点,得到区块链网络对应的测试用例。在执行测试用例以对区块链网络进行测试时,通过触发数据埋点跟随目标业务请求的处理过程,从而采集业务处理数据,该业务处理数据包括处理目标业务请求时区块链网络中数据埋点对应的目标函数的调用性能数据。根据调用性能数据可以确定目标函数的调用性能测试结果,进而根据目标函数的调用性能测试结果确定区块链网络是否发生异常。若确定区块链网络发生异常,由于调用性能测试结果反映的是目标函数的调用情况,进而体现目标函数的调用是否发生异常,而目标函数是节点中所包括模块的子集,因此根据指示发生异常的调用性能测试结果所对应的目标函数便可以直接确定异常定位信息,无需手动对整个区块链网络进行异常排查,从而提高对异常处理的效率。另外,由于目标函数是节点中所包括模块的子集,因此在异常定位时得到的异常定位信息可以细化到节点内部的模块所包括的某个函数,从而得到更加细粒度的异常定位信息,提高异常定位的精确度。可见,本方案通过在节点内部的模块的目标函数设置数据埋点,提高区块链网络的自动化程度,提高对异常处理的效率。同时得到更加细粒度的异常定位信息,提高异常定位的精确度。
150.本技术实施例还提供了一种用于区块链网络的测试的电子设备,该电子设备可以是终端设备,以终端设备为智能手机为例:
151.图11示出的是与本技术实施例提供的智能手机的部分结构的框图。参考图11,智能手机包括:射频(英文全称:radio frequency,英文缩写:rf)电路1110、存储器1120、输入单元1130、显示单元1140、传感器1150、音频电路1160、无线保真(英文缩写:wifi)模块
1170、处理器1180、以及电源1190等部件。输入单元1130可包括触控面板1131以及其他输入设备1132,显示单元1140可包括显示面板1141,音频电路1160可以包括扬声器1161和传声器1162。可以理解的是,图11中示出的智能手机结构并不构成对智能手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
152.存储器1120可用于存储软件程序以及模块,处理器1180通过运行存储在存储器1120的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器1120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据智能手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
153.处理器1180是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器1120内的软件程序和/或模块,以及调用存储在存储器1120内的数据,执行智能手机的各种功能和处理数据。可选的,处理器1180可包括一个或多个处理单元;优选的,处理器1180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1180中。
154.在本实施例中,前述由终端设备执行的步骤可以基于图11所示的终端结构实现。
155.本技术实施例还提供一种服务器,请参见图12所示,图12为本技术实施例提供的服务器1200的结构图,服务器1200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,简称cpu)1222(例如,一个或一个以上处理器)和存储器1232,一个或一个以上存储应用程序1242或数据1244的存储介质1230(例如一个或一个以上海量存储设备)。其中,存储器1232和存储介质1230可以是短暂存储或持久存储。存储在存储介质1230的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1222可以设置为与存储介质1230通信,在服务器1200上执行存储介质1230中的一系列指令操作。
156.服务器1200还可以包括一个或一个以上电源1226,一个或一个以上有线或无线网络接口1250,一个或一个以上输入输出接口1258,和/或,一个或一个以上操作系统1241,例如windows server
tm
,mac os x
tm
,unix
tm
,linux
tm
,freebsd
tm
等等。
157.在本实施例中,所述区块链网络包括多个节点,所述多个节点中每个节点包括多个模块,所述多个模块中每个模块是多个函数的集合,在所述多个模块包括的目标模块的目标函数设置数据埋点,服务器1200中的中央处理器1222可以执行以下步骤:
158.获取通过触发所述数据埋点采集到的业务处理数据,所述业务处理数据是触发所述区块链网络对应的测试用例,通过所述数据埋点跟随目标业务请求的处理过程得到的,所述业务处理数据包括处理所述目标业务请求时所述区块链网络中数据埋点对应的目标函数的调用性能数据;
159.根据所述调用性能数据确定所述目标函数的调用性能测试结果;
160.根据所述目标函数的调用性能测试结果确定所述区块链网络是否发生异常;
161.若确定所述区块链网络发生异常,根据指示发生异常的调用性能测试结果所对应
的目标函数确定异常定位信息。
162.根据本技术的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行前述各个实施例所述的区块链网络的测试方法。
163.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例各种可选实现方式中提供的方法。
164.上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
165.本技术的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
166.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
167.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
168.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
169.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。
170.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前
述实施例对本技术进行了详细的说明,本领域的普通技术成员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。

技术特征:
1.一种区块链网络的测试方法,其特征在于,所述区块链网络包括多个节点,所述多个节点中每个节点包括多个模块,所述多个模块中每个模块是多个函数的集合,在所述多个模块包括的目标模块的目标函数设置数据埋点,所述方法包括:获取通过触发所述数据埋点采集到的业务处理数据,所述业务处理数据是触发所述区块链网络对应的测试用例,通过所述数据埋点跟随目标业务请求的处理过程得到的,所述业务处理数据包括处理所述目标业务请求时所述区块链网络中数据埋点对应的目标函数的调用性能数据;根据所述调用性能数据确定所述目标函数的调用性能测试结果;根据所述目标函数的调用性能测试结果确定所述区块链网络是否发生异常;若确定所述区块链网络发生异常,根据指示发生异常的调用性能测试结果所对应的目标函数确定异常定位信息。2.根据权利要求1所述的方法,其特征在于,所述业务处理数据还包括处理所述目标业务请求时所述区块链网络中数据埋点对应的目标函数的上游信息,所述根据所述调用性能数据确定所述目标函数的调用性能测试结果,包括:根据所述上游信息确定目标性能评价规则;根据所述调用性能数据和所述目标性能评价规则确定所述目标函数的调用性能测试结果。3.根据权利要求1所述的方法,其特征在于,所述业务处理数据还包括处理所述目标业务请求时所述区块链网络中数据埋点对应的目标函数的上游信息,所述方法还包括:根据所述目标函数的调用性能数据和所述上游信息生成所述区块链网络处理所述目标业务请求的调用链路;通过流水线平台展示所述区块链网络处理所述目标业务请求的调用链路。4.根据权利要求3所述的方法,其特征在于,所述通过流水线平台展示所述区块链网络处理所述目标业务请求的调用链路,包括:接收调用链路查询请求,所述调用链路查询请求中包括跟随标识;通过所述流水线平台展示所述跟随标识对应的调用链路。5.根据权利要求1所述的方法,其特征在于,所述根据所述目标函数的调用性能测试结果确定所述区块链网络是否发生异常,包括:根据所述目标函数的调用性能测试结果确定所述目标函数所属的模块是否发生异常;若存在发生异常的模块,确定发生异常的模块所属的目标节点;若所述目标节点的数量大于容错阈值,确定所述区块链网络发生异常。6.根据权利要求3所述的方法,其特征在于,所述根据指示发生异常的调用性能测试结果所对应的目标函数确定异常定位信息,包括:根据指示发生异常的调用性能测试结果所对应的目标函数确定异常模块、异常模块所属的异常节点、指示发生异常的调用性能测试结果所对应的目标函数所属的异常调用链路;根据所述指示发生异常的调用性能测试结果所对应的目标函数、所述异常模块、所述异常节点、所述异常调用链路生成异常定位信息。7.根据权利要求1-6任一项所述的方法,其特征在于,所述目标模块为所述多个模块中
的全部模块或所述多个模块中的主模块,所述目标函数为所述多个函数中的全部函数或所述多个函数中的关键函数。8.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:触发发出告警通知,所述告警通知用于提示所述区块链网络发生异常。9.根据权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:生成并通过流水线平台展示测试报告,所述测试报告包括执行所述测试用例得到的目标测试结果,所述目标测试结果指示所述区块链网络是否发生异常。10.一种区块链网络的测试装置,其特征在于,所述区块链网络包括多个节点,所述多个节点中每个节点包括多个模块,所述多个模块中每个模块是多个函数的集合,在所述多个模块包括的目标模块的目标函数设置数据埋点,所述装置包括获取单元、确定单元和定位单元:所述获取单元,用于获取通过触发所述数据埋点采集到的业务处理数据,所述业务处理数据是触发所述区块链网络对应的测试用例,通过所述数据埋点跟随目标业务请求的处理过程得到的,所述业务处理数据包括处理所述目标业务请求时所述区块链网络中数据埋点对应的目标函数的调用性能数据;所述确定单元,用于根据所述调用性能数据确定所述目标函数的调用性能测试结果;所述确定单元,还用于根据所述目标函数的调用性能测试结果确定所述区块链网络是否发生异常;所述定位单元,用于若确定所述区块链网络发生异常,根据指示发生异常的调用性能测试结果所对应的目标函数确定异常定位信息。11.根据权利要求10所述的装置,其特征在于,所述业务处理数据还包括处理所述目标业务请求时所述区块链网络中数据埋点对应的目标函数的上游信息,所述确定单元,用于:根据所述上游信息确定目标性能评价规则;根据所述调用性能数据和所述目标性能评价规则确定所述目标函数的调用性能测试结果。12.根据权利要求10所述的装置,其特征在于,所述业务处理数据还包括处理所述目标业务请求时所述区块链网络中数据埋点对应的目标函数的上游信息,所述装置还包括生成单元和展示单元:所述生成单元,用于根据所述目标函数的调用性能数据和所述上游信息生成所述区块链网络处理所述目标业务请求的调用链路;所述展示单元,用于通过流水线平台展示所述区块链网络处理所述目标业务请求的调用链路。13.一种用于区块链网络的测试的电子设备,其特征在于,所述电子设备包括处理器以及存储器:所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;所述处理器用于根据所述程序代码中的指令执行权利要求1-9任一项所述的方法。14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-9任一项所述的方法。15.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行
时实现权利要求1-9任一项所述的方法。

技术总结
本申请公开一种区块链网络的测试方法及相关装置,区块链网络包括多个节点,每个节点包括多个模块,每个模块是多个函数的集合,在目标模块的目标函数设置数据埋点,得到区块链网络对应的测试用例。在执行测试用例对区块链网络进行测试时,通过触发数据埋点采集业务处理数据,业务处理数据包括处理目标业务请求时区块链网络中数据埋点对应的目标函数的调用性能数据。根据调用性能数据确定目标函数的调用性能测试结果,进而确定区块链网络是否发生异常。若确定区块链网络发生异常,根据指示发生异常的调用性能测试结果所对应的目标函数便直接确定异常定位信息。从而提高对异常处理的效率,同时得到更加细粒度的异常定位信息,提高异常定位的精确度。提高异常定位的精确度。提高异常定位的精确度。


技术研发人员:陈金龙
受保护的技术使用者:财付通支付科技有限公司
技术研发日:2022.01.06
技术公布日:2023/7/22
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐