CN115237794A - 区块链节点的测试方法、装置、电子设备及可读存储介质 - Google Patents

区块链节点的测试方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN115237794A
CN115237794A CN202210921729.7A CN202210921729A CN115237794A CN 115237794 A CN115237794 A CN 115237794A CN 202210921729 A CN202210921729 A CN 202210921729A CN 115237794 A CN115237794 A CN 115237794A
Authority
CN
China
Prior art keywords
information
node
reply
tested
test
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
Application number
CN202210921729.7A
Other languages
English (en)
Inventor
邓泰生
曹崇瑞
刘静媛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN202210921729.7A priority Critical patent/CN115237794A/zh
Publication of CN115237794A publication Critical patent/CN115237794A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了区块链节点的测试方法、装置、电子设备及可读存储介质,建立模拟测试框架中各个模拟节点与待测试节点之间的通信连接,并将生成的至少一条测试信息发送至待测试节点;根据待测试节点对待测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测待测试节点处理的信息的流程是否符合预期信息处理规则,若不符合,生成节点预警信息。在本申请中,通过预先构建的模拟测试框架,模拟与待测试节点之间的信息交互过程,对待测试节点回复的信息的内容、时间以及不同信息之间的回复顺序进行检测,对待测试节点进行自动准确地测试,有助于提升区块链测试的测试效率以及准确率。

Description

区块链节点的测试方法、装置、电子设备及可读存储介质
技术领域
本申请涉及区块链技术领域,尤其是涉及区块链节点的测试方法、装置、电子设备及可读存储介质。
背景技术
共识算法是区块链技术的核心要素,它解决了分布式网络节点之间相互信任的问题。在对区块链进行研究时一般也是从共识算法出发进行研究。
现有技术中对于区块链的测试时的方案包括:使用实际环境测试,通过杀死进程、下电机器等构造异常测试,或者是使用通用的自动化测试框架,通过输入输出的方式测试。但是,由于共识算法流程复杂,各个服务通信的通信流程复杂,上述两种方式除了无法完全自动化测试,流程复杂外,还无法完全模拟出共识算法中信息交互以及异常场景,导致测试效率以及准确率都较低。
发明内容
有鉴于此,本申请的目的在于提供区块链节点的测试方法、装置、电子设备及可读存储介质,预先构建的包含有多个模拟节点的模拟测试框架,模拟与待测试节点之间的信息交互过程,通过在交互信息层级,对待测试节点回复的信息的内容、时间以及不同信息之间的回复顺序多个信息维度进行检测,对共识算法内部逻辑以及待测试节点进行自动准确地测试,有助于提升区块链测试的测试效率以及准确率。
第一方面,本申请实施例提供了一种区块链节点的测试方法,应用于区块链测试系统,所述区块链测试系统包括待测试节点,以及预先搭建的对所述待测试节点进行测试的模拟测试框架,所述模拟测试框架中包括至少一个模拟出的与所述待测试节点在同一区块链中进行通信交互的通信节点对应的模拟节点;所述测试方法包括:
建立所述模拟测试框架中的各个模拟节点与所述待测试节点之间的通信连接,并基于所述待测试节点所属的区块链使用的目标共识算法的算法类型,生成与所述待测试节点进行通信的至少一条测试信息;
按照所述目标共识算法指示的所述待测试节点所属的区块链的各个节点之间的通信交互顺序,控制各个模拟节点按照通信交互顺序将所述至少一条测试信息发送至所述待测试节点;
根据所述待测试节点响应于接收到的至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测所述待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则;
若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,生成节点预警信息。
在一种可能的实施方式中,所述模拟测试框架的内部信息是基于TTCN3语言构建的,通过以下步骤建立所述模拟测试框架与所述待测试节点之间的通信连接:
检测所述待测试节点内部是否存在TTCN3语言转换层;
若所述待测试节点内部存在TTCN3语言转换层,确定所述待测试节点内部使用的目标语言;
在所述模拟测试框架中所述目标语言与所述TTCN3语言的映射关系设置完成后,建立所述模拟测试框架中的各个模拟节点与所述待测试节点之间的通信连接。
在一种可能的实施方式中,所述基于所述待测试节点所属区块链使用的目标共识算法的算法类型,生成与所述待测试节点进行通信的至少一条测试信息,包括:
根据所述待测试节点所属区块链使用的目标共识算法的算法类型,确定所述目标共识算法的算法流程,并从所述算法流程中提取至少一个共识信令消息;
基于所述至少一个共识信令消息进行消息建模,确定至少一个建模消息;
针对于每一条建模消息,基于所述目标语言与所述TTCN3语言的映射关系,将该条建模消息转换成所述待测试节点可识别的测试信息。
在一种可能的实施方式中,所述模拟测试框架中还包括多个预先构建的测试场景用例,所述根据所述待测试节点响应于接收到的至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测所述待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则,包括:
确定当前设置使用的目标测试场景用例,并基于所述目标共识算法确定所述目标测试场景用例下,预设的目标信息回复内容以及目标消息回复顺序;
检测每条回复信息的回复时间是否超过预设时间阈值;
若每条回复信息的回复时间均未超过预设时间阈值,检测所述每条回复信息的回复内容是否与所述目标信息回复内容一致,且不同回复信息之间的回复顺序是否与所述目标消息回复顺序一致;
若多条消息中存在回复内容与所述目标信息回复内容不一致或者不同回复信息之间的回复顺序是否与所述目标消息回复顺序不一致,确定所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则。
在一种可能的实施方式中,通过以下步骤确定每条回复信息的回复时间未超过预设时间阈值:
针对于每一条回复信息,确定对应的模拟节点接收到该条回复信息时的当前时间;
针对于每一条回复信息,基于所述当前时间与发送与该条回复信息对应的测试信息的发送时间,确定信息时间差;
针对于每一条回复信息,若所述信息时间差小于预设差值阈值,确定该条回复信息的回复时间未超过预设时间阈值。
在一种可能的实施方式中,所述基于所述目标共识算法确定所述目标测试场景用例下,预设的目标信息回复内容以及目标消息回复顺序,包括:
确定在所述目标测试场景的信息回复的内容类型,以及不同内容类型的占比;
根据所述内容类型以及同内容类型的占比结合所述目标共识算法所规定的信息长度以及信息中包括的重要字段,确定预设的目标信息回复内容,并基于所述目标共识算法,确定所述目标消息回复顺序。
在一种可能的实施方式中,通过以下步骤构建所述模拟测试框架中包括的至少一个模拟节点:
确定在所述待测试节点所属的区块链中与所述待测试节点进行信息交互的至少一个通信节点;
针对于每一个通信节点,基于该所述目标共识算法以及该通信节点中的信息流转方向,利用TTCN3语言构建与该通信节点对应的模拟节点。
在一种可能的实施方式中,在所述构建与所述待测试节点进行通信的至少一条测试信息之后,所述测试方法还包括:
基于所述待测试节点的信息处理效率,确定每个模拟节点的在接收到回复信息后的信息响应时间;
控制每个模拟节点在接收到所述待测试节点的回复信息后,按照所述信息响应时间回复所述待测试节点,进行信息交互。
在一种可能的实施方式中,所述若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,生成节点预警信息,包括:
若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,针对于每一条回复信息,确定与该条回复信息对应的检测结果;其中,所述检测结果包括信息内容错误、信息回复超时以及信息回复顺序有误;
集合各条回复信息的检测结果,生成所述节点预警信息。
在一种可能的实施方式中,所述测试方法还包括:
若所述待测试节点处理信息的流程符合所述目标共识算法设定的预期信息处理规则,确定待测试节点测试通过,并继续通过所述模拟测试框架对与所述待测试节点处于同一区块链的其他节点进行测试。
第二方面,本申请实施例还提供了一种区块链节点的测试装置,应用于区块链测试系统,所述区块链测试系统包括待测试节点,以及预先搭建的对所述待测试节点进行测试的模拟测试框架,所述模拟测试框架中包括至少一个模拟出的与所述待测试节点在同一区块链中进行通信交互的通信节点对应的模拟节点;所述测试装置包括:
通信建立模块,用于建立所述模拟测试框架中的各个模拟节点与所述待测试节点之间的通信连接,并基于所述待测试节点所属的区块链使用的目标共识算法的算法类型,生成与所述待测试节点进行通信的至少一条测试信息;
信息发送模块,用于按照所述目标共识算法指示的所述待测试节点所属的区块链的各个节点之间的通信交互顺序,控制各个模拟节点按照通信交互顺序将所述至少一条测试信息发送至所述待测试节点;
回复检测模块,用于根据所述待测试节点响应于接收到的至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测所述待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则;
节点预警模块,用于若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,生成节点预警信息。
第三方面,本申请实施例还提供了一种电子设备,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如第一方面任一项所述的区块链节点的测试方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面任一项所述的区块链节点的测试方法的步骤。
本申请实施例提供的区块链节点的测试方法、装置、电子设备及可读存储介质,建立模拟测试框架中各个模拟节点与待测试节点之间的通信连接,并基于待测试节点所属的区块链使用的目标共识算法的类型,生成与待测试节点进行通信的至少一条测试信息,并按照目标共识算法指示的通信顺序,控制各个模拟节点将至少一条测试信息发送至待测试节点;根据待测试节点基于至少一条待测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测待测试节点处理的信息的流程是否符合预期信息处理规则,若不符合,生成节点预警信息。在本申请实施例中,预先构建的包含有多个模拟节点的模拟测试框架,模拟与待测试节点之间的信息交互过程,通过在交互信息层级,对待测试节点回复的信息的内容、时间以及不同信息之间的回复顺序多个信息维度进行检测,对共识算法内部逻辑以及待测试节点进行自动准确地测试,有助于提升区块链测试的测试效率以及准确率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例所提供的一种区块链节点的测试方法的流程图;
图2为本申请实施例所提供的物理环境下的共识网络示意图;
图3为本申请实施例所提供的模拟测试集合的模拟共识网络示意图;
图4为本申请实施例所提供的另一种区块链节点的测试方法的流程图;
图5为本申请实施例所提供的一种区块链节点的测试装置的结构示意图之一;
图6为本申请实施例所提供的一种区块链节点的测试装置的结构示意图之二;
图7为本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。
首先,对本申请可适用的应用场景进行介绍。本申请可应用于区块链技术领域。共识算法是区块链技术的核心要素,它解决了分布式网络节点之间相互信任的问题。在对区块链进行研究时一般也是从共识算法出发进行研究。
现有技术中对于区块链的测试时的方案包括:使用实际环境测试,通过杀死进程、下电机器等构造异常测试,或者是使用通用的自动化测试框架,通过输入输出的方式测试。但是,由于共识算法流程复杂,各个服务通信的通信流程复杂,上述两种方式除了无法完全自动化测试,流程复杂外,还无法完全模拟出共识算法中信息交互以及异常场景,导致测试效率以及准确率都较低。
具体地,针对于实际环境测试的情况,共识算法较多节点的场景(超过10个节点)很难覆盖,原因是测试的机器成本、人工操作成本都很高。并且一些机器下电、断开网络等场景很难通过自动化脚本精确控制,所以很难做到自动化,每一次修改优化代码,都需要手动验证,成本很高;而针对于通用的自动化测试框架进行测试的场景,也只能做到接口的测试,无法把共识流程中间断开模拟构造异常场景;同时,在共识算法中,对消息的实时性要求很高,普通的测试框架无法解决由于测试框架资深任务阻塞导致的时间偏移的问题,因此,导致区块链测试的测试效率以及准确率都较低。
基于此,本申请实施例提供了一种区块链节点的测试方法,以提升区块链测试的测试效率以及准确率。
请参阅图1,图1为本申请实施例所提供的一种区块链节点的测试方法的流程图。如图1中所示,本申请实施例提供的区块链节点的测试方法,包括:
S101、建立所述模拟测试框架中的各个模拟节点与所述待测试节点之间的通信连接,并基于所述待测试节点所属的区块链使用的目标共识算法的算法类型,生成与所述待测试节点进行通信的至少一条测试信息。
S102、按照所述目标共识算法指示的所述待测试节点所属的区块链的各个节点之间的通信交互顺序,控制各个模拟节点按照通信交互顺序将所述至少一条测试信息发送至所述待测试节点。
S103、根据所述待测试节点响应于接收到的至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测所述待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则。
S104、若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,生成节点预警信息。
本申请实施例所提供的一种区块链节点的测试方法,预先构建的包含有多个模拟节点的模拟测试框架,模拟与待测试节点之间的信息交互过程,通过在交互信息层级,对待测试节点回复的信息的内容、时间以及不同信息之间的回复顺序多个信息维度进行检测,对共识算法内部逻辑以及待测试节点进行自动准确地测试,有助于提升区块链测试的测试效率以及准确率。
下面对本申请实施例示例性的各步骤进行说明:
S101、建立所述模拟测试框架中的各个模拟节点与所述待测试节点之间的通信连接,并基于所述待测试节点所属的区块链使用的目标共识算法的算法类型,生成与所述待测试节点进行通信的至少一条测试信息。
在本申请实施例中,通过区块链测试系统对不同的区块链中的节点进行测试,在区块链测试系统中包括被测试的待测试节点以及预先构建的对所述待测试节点进行测试的模拟测试框架,通过模拟测试框架在不同测试场景下,对待测试节点针对于待测试节点所属的区块链使用的目标共识算法的反馈,对待测试节点进行测试,以此来检测待测试节点是否正常。
其中,共识算法,可以理解为是为了实现分布式一致性协议而产生的一系列流程与规则。当分布在不同地域的节点都按照这套规则进行协商交互之后,最终总能就某个/某些问题得到一致的决策,从而实现分布式系统中不同节点的一致性,进而属于同一区块链中的多个节点之间相互配合完成相应的服务。
举例来说,常用的共识算法可以包括PoW算法、PoS算法、DPoS算法、PBFT算法以及RAFT算法等。
值得注意的是,在本申请实施例中,是以模拟测试框架为执行主体来进行方案的阐述的。
具体地,在本申请实施例中,模拟测试框架可以是构建的包括至少一个模拟出的与待测试节点在同一区块链中进行通信交互的通信节点对应的模拟节点的测试框架,且在本申请实施例中使用的是基于TTCN3构建的测试框架。
其中,TTCN-3可以用做多种通信端口上的各种响应系统测试的描述语言。典型的应用领域是协议测试(包括移动协议和互连网协议)、服务测试(包括增补服务)、模块测试、基于平台、APIs等的CORBA测试。TTCN-3并不仅仅局限于一致性测试,它可用于多种类型的测试,如互操作性测试(Interoperability Testing)、健壮性测试(Robustness Testing)、回归测试(Regression Testing)、系统和集成测试(System and Integration Testing);TTCN-3最顶层单元是模块。
具体地,在一种可能的实施方式中,模拟节点的测试框架主要包括测试管理模块、编解码模块、端口管理模块以及时钟源模块。
具体地,测试管理模块,用于在区块链测试系统启动后,调用模拟测试框架进行响应,并在响应过程中进行测试环境、测试场景以及模拟节点的构建。
编解码模块,用于编解码模拟测试框架与待测试节点之间的消息通信,把发送给待测试节点的TTCN-3数据编码转换为待测试节点能够识别的消息,把待测试节点反馈的消息解码为TTCN3数据以使模拟测试框架能够进行识别。
端口管理模块,用于通过虚拟出不同的端口来表示不同的模拟节点,端口管理包括数量配置与收发方向等管理。
时钟源模块,用于在测试时启动计时,一直运行到测试结果,模拟测试框架与待测试节点的时钟源为一个。
在一种可能的实施方式中,针对于模拟测试框架来说,可以通过以下步骤构建所述模拟测试框架中包括的至少一个模拟节点:
a1:确定在所述待测试节点所属的区块链中与所述待测试节点进行信息交互的至少一个通信节点。
a2:针对于每一个通信节点,基于该所述目标共识算法以及该通信节点中的信息流转方向,利用TTCN3语言构建与该通信节点对应的模拟节点。
在本申请实施例中,在对某一个待测试节点进行测试时,需要完全模拟该待测试节点的正常信息交互情况,因此,在设置模拟节点时,需要考虑在实际信息交互过程中,与待测试节点进行信息交互的通信节点的数量,同时还要确定出待测试节点与不同通信节点之间的信息交互顺序、与待测试节点进行信息交互的每一个通信节点的信息流转方向,以完全模拟待测试节点的真实信息交互过程,最符合预期的模拟效果是在待测试节点处信息流转交互与实际信息交互场景中是一致的。
举例来说,请参阅图2以及图3,图2为本申请实施例所提供的物理环境下的共识网络示意图,图3为本申请实施例所提供的模拟测试集合的模拟共识网络示意图,如图2所示,在某一区块链中可以进行通信信息交互的节点有节点A、节点B以及节点C,根据该区块链中共识算法的规定,节点B以及节点C可以同时向节点A发送信息,发送信息的顺序是节点C先于节点B,节点B可以接收节点A的信息,但是节点C并不接收节点A的信息。那么,如图3中所示,在对节点A进行测试时,即节点A为待测试节点时,需要模拟出模拟节点B’以及模拟节点C’,同时在向节点A发送测试信息时,模拟节点C’的信息发送时间要早于模拟节点B’,并且只有模拟节点B’可以接收并响应节点A的信息。
值得注意的是,因为在本申请实施例中整体模拟测试框架均是使用TTCN3进行构建的,那么在构建模拟节点时也要使用TTCN3语言进行构建。
在一种可能的实施方式中,由于模拟测试框架的内部信息是基于TTCN3语言构建的,但是在待测试节点中可以识别的语言并不一定是TTCN3语言,因此,需要在待测试节点中存在转换层,进而保证模拟测试框架与所述待测试节点之间的正常通信。
具体地,通过以下步骤建立所述模拟测试框架与所述待测试节点之间的通信连接:
b1:检测所述待测试节点内部是否存在TTCN3语言转换层。
b2:若所述待测试节点内部存在TTCN3语言转换层,确定所述待测试节点内部使用的目标语言。
b3:在所述模拟测试框架中所述目标语言与所述TTCN3语言的映射关系设置完成后,建立所述模拟测试框架中的各个模拟节点与所述待测试节点之间的通信连接。
在本申请实施例中,在确定出待测试节点之后,还需要进一步确定待测试节点内部是否存在语言转换层可以进行不同语言之间的转换,即将接收到的不同语言类型的信息转换成可以被节点本身所识别的语言,在确定出待测节点存在可以进行语言转换的语言转换层后,还需要进一步确定出待测试节点内部所使用的目标语言。
在一种可能的实施例中,对于模拟测试框架来说,因为该模拟测试框架是比较通用的一个测试框架,适用于不同测试场景、不同的区块链以及不同的测试节点的测试,因此,因为在模拟测试框架内部使用的是固定的语言,所以也需要在模拟测试框架中构建模拟测试框架使用的TTCN3语言与待测试节点所使用的目标语言之间的映射关系,这样可以保证模拟测试框架与待测试节点之间的消息是可以互相进行识别的,保证了模拟测试框架与待测试节点之间的正常通信。
进一步的,在启动模拟测试框架且在将目标语言与所述TTCN3语言的映射关系设置完成后,即可建立模拟测试框架与待测试节点之间的通信连接,在本申请实施例中建立的模拟测试框架与待测试节点之间的通信连接,实际上建立的是模拟测试框架中的各个模拟节点与待测试节点之间的通信连接(可以进行通信交互的模拟节点与待测试节点之间的连接)。
值得注意的是,因为本申请实施例中,模拟测试框架是比较通用的一个测试框架,适用于不同测试场景、不同的区块链以及不同的测试节点的测试,因此,对于待测试节点使用的目标语言与模拟测试框架使用的语言之间的映射关系一种是,需要实时根据不同的待测试节点使用的目标语言进行建立,即确定出待测试节点后实时建立语言映射关系进行信息交互;另一种是,可以将不用的语言与模拟测试框架内部使用的语言的映射关系进行存储,根据不同待测试节点使用的目标语言,来调用不同的语言映射关系进行通信。
上述两种方式中,第一种实时建立语言映射关系的方式可能会因为建立语言之间的映射关系,导致测试效率比较低,但是因为是随时使用随时建立,并不过多占用模拟测试框架的空间;而对于第二种预先存储语言映射关系的方式,因为测试不同而待测试节点时,直接调用语言映射关系,可以极大的节省语言映射关系的建立时间,有助于提升测试效率,但是需要在模拟测试框架中占用一定的空间,可能会导致模拟测试框架空间的过度使用,从而影响节点测试过程;针对于上述两种方式,可以根据不同的测试需求(效率或者是精度)来进行选择设置,本申请实施例中并不限定具体的语言映射关系的确定方式。
进一步的,在确定出待测试节点与模拟测试框架之间是可以互相识别彼此发送的信息后,可以在模拟测试框架中构建与待测试节点进行通信交互的测试信息。
具体地,步骤“基于所述待测试节点所属区块链使用的目标共识算法的算法类型,生成与所述待测试节点进行通信的至少一条测试信息”,包括:
c1:根据所述待测试节点所属区块链使用的目标共识算法的算法类型,确定所述目标共识算法的算法流程,并从所述算法流程中提取至少一个共识信令消息;
c2:基于所述至少一个共识信令消息进行消息建模,确定至少一个建模消息。
c3:针对于每一条建模消息,基于所述目标语言与所述TTCN3语言的映射关系,将该条建模消息转换成所述待测试节点可识别的测试信息。
在本申请实施例中,不同的共识算法会存在不同的算法流程,同时也会存在不同的共识信令消息,在构建测试信息时也要遵守待测试节点所属区块链使用的目标共识算法的信息组成方式或者是信息的信令,因此,在生成测试信息时,是一定要以共识算法为基础进行生成。
举例来说,以目标共识算法为RAFT算法为例,RAFT算法涉及的信令消息如下:
A、心跳消息:heart_beats、是leaders(主节点)向所有follower发送的心跳消息,当follower收不到心跳时会触发请求;
B、选举请求消息:vote_request;
C、选举响应消息:vote_response。
因此,在模拟测试框架构建测试信息时,也是需要包括心跳消息、选举请求消息以及选举响应消息的。
在一种可能的实施方式中,在确定了基本的信令信息后,还需要构建不同测试场景下的测试信息,需要根据信令信息进行建模,得到建模信息。
举例来说,测试场景包括错误信息场景,这时在确定出信令信息后,需要以信令信息为基础构建出正确的建模信息,同时还要构建出错误的建模信息,以保证在对错误信息场景进行测试时,模拟测试框架可以发送出错误的信息,并以错误信息来测试待测试节点的反馈是否符合预期。
进一步的,在模拟测试框架内部构建完建模信息后,为了保证模拟测试框架与待测试节点之间可以正常通信交互,模拟测试框架发送出测试信息可以被待测试节点识别,还需要将建模后的建模信息根据确定出的目标语言与所述TTCN3语言的映射关系,转换成待测试节点可以识别的测试信息,以通过测试信息来测试不同测试场景下待测试节点的反馈是否符合预期。
S102、按照所述目标共识算法指示的所述待测试节点所属的区块链的各个节点之间的通信交互顺序,控制各个模拟节点按照通信交互顺序将所述至少一条测试信息发送至所述待测试节点。
在本申请实例中,以为需要完全模拟实际场景中信息的通信交互流程,因此,在模拟测试框架向待测试节点发送测试信息时,也需要根据目标共识算法指示的所述待测试节点所属的区块链的各个节点之间的通信交互顺序,因此将模拟节点上的测试信息发送至待测试节点。
具体地,对于模拟测试框架中的场景设计也是要遵守共算法规定的信息发送顺序的。在共识算法中,不同节点的消息的发送顺序不同也会影响消息的处理流程。而不同的节点使用线程并发的情况,为确保消息的发送顺序实现流程如下:组件实现一个消息组的功能,同一个消息组的消息有严格的发送顺序,不同的消息组之间互相不影响。消息组内消息的控制方式如下:消息组的消息编号从0开始依次累加。消息管理模块在收到新的消息时会判断它的上一个消息是否已经发送,如果未发送,则将当前消息缓存,直到上一个消息发送后继续发送当前消息。举例来说,消息组件收到3号消息,而记录已发送的消息为0,1,那么需要等待2号消息发送之后,才能发送3号消息。如果长时间未收到2号消息,缓存超时则上报告警,说明测试任务设计出错。
针对于上述示例,在某一区块链中可以进行通信信息交互的节点有节点A、节点B以及节点C,根据该区块链中共识算法的规定,节点B以及节点C可以同时向节点A发送信息,发送信息的顺序是节点C先于节点B,在对节点A进行测试时,即节点A为待测试节点时,需要模拟出模拟节点B’以及模拟节点C’,同时在向节点A发送测试信息时,模拟节点C’的信息发送时间要早于模拟节点B’。
在一种可能的实施方式中,除了需要对不同模拟节点发送测试信息的顺序进行规范,还需要按照实际场景中通信节点在接收待测试节点的信息后的反馈时间进行设置,进而使得模拟测试框架中各个模拟节点在接收到待测试节点的回复信息后,及时进行信息反馈交互,保证测试流程的准确性。
具体地,在步骤“构建与所述待测试节点进行通信的至少一条测试信息”之后,所述测试方法还包括:
d1:基于所述待测试节点的信息处理效率,确定每个模拟节点的在接收到回复信息后的信息响应时间。
d2:控制每个模拟节点在接收到所述待测试节点的回复信息后,按照所述信息响应时间回复所述待测试节点,进行信息交互。
在本申请实施例中,可以根据待测试节点的当前处理信息数量以及历史处理过程中待测试信息的处理效率,来计算不同模拟节点的在接收到回复信息后的信息响应时间,然后根据响应时间来控制不同的模拟节点在接收到待测试节点反馈的回复信息后,及时回复待测试节点;还可以是直接根据待测试节点所属区块链中规定的统一响应时间,来确定接收到回复信息后的信息响应时间。
值得注意的是,为了方便对不同模拟节点进行管理,不同模拟节点在接收到待测试节点反馈的回复信息后的响应时间进行统一设置,例如,将不同模拟节点在接收到待测试节点的反馈信息后的响应时间均设置成500ms,在接收到待测试节点反馈的回复信息500ms后,模拟节点就要向待测试节点进行信息反馈,但是,由于待测试节点基础通信流程异常导致测试流程终止的情况下,模拟节点可以不用在响应时间内回复待测试节点信息。
在一种可能的实施方式中,在设置响应时间后,需要将接收到待测试节点的回复信息的模拟节点的响应时间空出来,在这个时间段内模拟节点(虚拟端口)处于挂起状态进行等待。
具体地,等待时间的具体计算方式可以为:
waitTime=T-(Tt-TJ);
其中,waitTime为等待时间,T为预设的响应时间,Tt为当前时间,TJ为模拟节点接收到待测试节点的回复信息的时间。
S103、根据所述待测试节点响应于接收到的至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测所述待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则。
在本申请实施例中,根据模拟测试框架中不同模拟节点发送的待测试信息后,结合不同的测试场景来针对于待测试节点在接收到至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序的不同维度上来检测待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则,并根据待测试节点符合预期信息处理规则的检测结果,来对待测试节点进行检测。
具体地,模拟测试框架中还包括多个预先构建的测试场景用例,步骤“根据所述待测试节点响应于接收到的至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测所述待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则”,包括:
e1:确定当前设置使用的目标测试场景用例,并基于所述目标共识算法确定所述目标测试场景用例下,预设的目标信息回复内容以及目标消息回复顺序。
在本申请实施例中,针对于不同的测试场景,是否需要待测试节点回复信息、待测试节点回复信息的具体内容以及待测试节点针对于测试信息的处理方式均是存在差异的,本申请实施例中需要在不同的测试场景下对待测试节点进行测试,因此,在确定待测试节点的回复信息的预设的目标信息回复内容时,也是需要以不同的测试场景为基础进行确定的。
具体地,针对于实际不同通信场景,在模拟测试框架中可以设置的测试场景包括但不限于:网络断链场景、作恶消息场景、错误消息场景、消息超时场景,消息时序不对等场景等。并且在不同的测试场景下生成的测试信息也是会存在差异的,通过不同测试场景的限定来完成对待测节点反馈的回复信息进行检测。
具体地,步骤“基于所述目标共识算法确定所述目标测试场景用例下,预设的目标信息回复内容以及目标消息回复顺序”,包括:
f1:确定在所述目标测试场景的信息回复的内容类型,以及不同内容类型的占比。
f2:根据所述内容类型以及同内容类型的占比结合所述目标共识算法所规定的信息长度以及信息中包括的重要字段,确定预设的目标信息回复内容,并基于所述目标共识算法,确定所述目标消息回复顺序。
在本申请实施例中,需要确定在模拟测试框架当前设定的目标测试场景,并且确定出在当前的目标测试场景下预先设置的不同信息类别以及不同类别的信息的占比,并结合共识算法中规定的针对不同类别的信息的回复信息的内容、信息长度以及信息中包括的重要字段以及目标消息回复顺序,确定出预设的目标信息回复内容以及目标消息回复顺序。
举例来说,以当前的目标测试场景为错误消息为例,在该场景下需要设置M条正确的测试消息以及N条错误的测试消息,根据待测试节点所在的区块链使用的共识算法的规定下,需要对错误信息进行特定内容的反馈,那么,在预设的目标信息回复内容中均会设置需要特定内容的回复信息的占比达到N/(M+N)。
进一步的,除了需要保证目标信息回复内容中不同内容类型的占比,还需要确定目标信息的字段长度以及信息中包括的重要字段是否均正确,即待测试节点回复的信息是否完全满足共识算法的要求。
e2:检测每条回复信息的回复时间是否超过预设时间阈值。
在本申请实施例中,由于待测试节点与模拟测试框架所使用的定时器是一致的,因此,回复信息的回复时间可以从模拟测试框架中模拟节点向待测试节点发送测试信息时开始算起,到模拟测试框架中发送测试信息的模拟节点接收到回复信息为止。对于回复信息的回复时间的计算,测试的是待测试节点对于信息的响应时间是否符合预期。
e3:若每条回复信息的回复时间均未超过预设时间阈值,检测所述每条回复信息的回复内容是否与所述目标信息回复内容一致,且不同回复信息之间的回复顺序是否与所述目标消息回复顺序一致。
在本申请实施例中,对于待测试节点的回复时间的测试属于对待测试节点的基础功能的测试,若是每条回复信息的回复时间均未超过预设时间阈值,可以进行后续对每条回复信息的回复内容是否与所述目标信息回复内容一致,且不同回复信息之间的回复顺序是否与所述目标消息回复顺序一致的测试,若是多条回复信息中存在回复时间均超过预设时间阈值的回复信息的占比超过了预设占比阈值,确定待测试节点的基础功能存在问题,这时,将中断对待测试节点的测试流程,直接发出预警信息对待测试节点进行调试。
具体地,通过以下步骤确定每条回复信息的回复时间未超过预设时间阈值:
g1:针对于每一条回复信息,确定对应的模拟节点接收到该条回复信息时的当前时间。
g2:针对于每一条回复信息,基于所述当前时间与发送与该条回复信息对应的测试信息的发送时间,确定信息时间差。
g3:针对于每一条回复信息,若所述信息时间差小于预设差值阈值,确定该条回复信息的回复时间未超过预设时间阈值。
在本申请实施例中,针对于待测试节点回复的每一条回复信息,需要确定对应的模拟节点接收到该条回复信息时的当前时间,同时确定出对应的模拟节点发送与该条回复信息对应的测试信息的时间,计算出一个时间差,这个时间差值就是待测试节点的响应时间,若是这个响应时间在预设时间差值之内,确定该条回复信息的回复时间未超过预设时间阈值。
其中,对于模拟节点接收到该条回复信息时的当前时间、发送与该条回复信息对应的测试信息的时间均是通过模拟测试框架中设置的时钟源(定时器)确定的。
举例来说,这对于模拟节点W接收到待测试节点X发送的回复信息的时间为08分05秒,模拟节点W发送对应的测试信息的时间为08分00秒,接收时间与发送时间之间的时间差值为5秒,预设时间差值为10秒,并未超过预设时间差值,确定该条回复信息并未超过预设时间阈值。
e4:若多条消息中存在回复内容与所述目标信息回复内容不一致或者不同回复信息之间的回复顺序是否与所述目标消息回复顺序不一致,确定所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则。
在本申请实施例中,需要对待测试节点回复的每一条回复信息从回复内容以及不同回复信息之间的回复顺序来检测待测试节点针对于不同的测试信息的回复是否符合待测试节点所属的区块链的目标共识算法所规定的目标消息回复顺序来对待测试节点的反馈进行检测,进而确定出待测试节点是否异常。
其中,对于区块链中所规定的共识算法来说,不光需要对信息的回复内容的准确性提出了要求,还对不同信息的回复顺序也有严格的规定,处于同一区块链中的全部节点需要严格按照该区块链中所使用的共识算法的规定的顺序来进行信息交互以及流转。
针对于上述示例,在某一区块链中可以进行通信信息交互的节点有节点A、节点B以及节点C,根据该区块链中共识算法的规定,节点B以及节点C可以同时向节点A发送信息,发送信息的顺序是节点C先于节点B,并且节点A回复信息的顺序为先回复节点C,再回复节点B,当对节点A进行测试时,当待测试节点A接收到模拟节点B’以及模拟节点C’的测试信息时,正确的回复顺序应该是先回复模拟节点C’,再回复模拟节点B’;即,在模拟测试框架中是模拟节点C’要先于模拟节点B’接收到待测试节点A的回复信息,若是并不是这个顺序,那么待测试节点A就是存在问题的。
在一种可能的实施方式中,对于待测试节点A的回复信息的回复内容的检查需要从回复内容是否与测试信息对应(例如,测试信息测试的是错误信息场景下的错误信息,这时待测试节点的回复内容应该是针对于错误信息的报错)、回复信息内容是否符合待测试节点所属的区块链使用的目标共识算法所规定的信息格式,需要在各个检测维度符合目标共识算法的要求,才可以确定待测试节点的回复信息的回复内容与目标信息回复内容一致。
S104、若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,生成节点预警信息。
在本申请实施例中,若是检测出待测试节点处理信息的流程不符合目标共识算法设定的预期信息处理规则,需要生成针对于待测试节点所出现的问题的一个测试报告,进而生成对应的节点预警信息,以通过节点预警信息来准确地指示出待测试节点的问题,有助于调试人员后续有针对性地对待测试节点进行调整。
具体地,步骤“若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,生成节点预警信息”,包括:
h1:若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,针对于每一条回复信息,确定与该条回复信息对应的检测结果。
h2:集合各条回复信息的检测结果,生成所述节点预警信息。
在本申请实施例中,在确定出待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则后,需要针对于待测试节点回复的每一条回复信息进行处理和分析,确定出待测试节点的具体检测结果。
其中,所述检测结果包括信息内容错误、信息回复超时以及信息回复顺序有误等。
在一种可能的实施方式中,针对于不同的异常检测结果会存在不同的解决方式,具体地,针对于回复错误或者是回复超时等会影响后续节点通信交互的基础问题,模拟测试框架会直接中断测试过程,并生成对应的预警信息来指示待测试节点的异常问题(如待测试节点信息回复错误、信息回复超时等);若是待测试节点的异常问题并不是回复错误或者是回复超时等会影响后续节点通信交互的基础问题,可以先继续后续的测试流程,将待测试信息的运行信息记录到日志中,在全部测试流程结束后,通过对日志记录的内容进行自动化运行后,确定对待测试节点的测试是否通过,若是不通过需要针对于信息级别上的异常信息进行预警。
请参阅图4,图4为本申请实施例所提供的另一种区块链节点的测试方法的流程图。如图4中所示,本申请实施例提供的区块链节点的测试方法,包括:
S401、建立所述模拟测试框架中的各个模拟节点与所述待测试节点之间的通信连接,并基于所述待测试节点所属的区块链使用的目标共识算法的算法类型,生成与所述待测试节点进行通信的至少一条测试信息。
S402、按照所述目标共识算法指示的所述待测试节点所属的区块链的各个节点之间的通信交互顺序,控制各个模拟节点按照通信交互顺序将所述至少一条测试信息发送至所述待测试节点。
S403、根据所述待测试节点响应于接收到的至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测所述待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则。
其中,S401至S403的描述可以参照S101至S103的描述,并且能达到相同的技术效果,对此不做赘述。
S404、若所述待测试节点处理信息的流程符合所述目标共识算法设定的预期信息处理规则,确定待测试节点测试通过,并继续通过所述模拟测试框架对与所述待测试节点处于同一区块链的其他节点进行测试。
在本申请实施例中,若是确定出待测试节点处理信息的流程符合目标共识算法设定的预期信息处理规则,那么就可以认为当前待测试节点测试通过,并对测试通过的待测试节点进行记录,因为本申请实施例中的模拟测试框架是一个通用的测试框架,因此,再测试完一个待测试节点之后,可以接着对处于同一区块链的其他节点进行测试,这时,因为不同的待测试节点均是属于同一区块链中使用的均是同一目标共识算法,那么在测试时模拟测试框架整体模拟的目标共识算法的环境可以不进行更新,直接进行节点测试即可;若是整个区块链中的全部节点均测试完毕后,需要利用模拟测试框架去测试另一区块链中的不同节点时,首先,需要确定下一区块链和当前测试的区块链使用的共识算法是否是同一种,若是,在测试时模拟测试框架整体模拟的目标共识算法的环境可以不进行更新,直接进行节点测试即可;若不是,在进行测试时,需要先根据下一区块链使用的目标共识算法对模拟测试框架根据相应的共识算法进行重新部署(需要模拟的模拟节点的数量、模拟节点的信息发送顺序、生成的测试信息的内容、类型以及格式等),在部署结束后,通过更新后的模拟测试框架进行新一轮的测试。
值得注意的是,本申请实施例中的模拟测试框架不仅可以针对某区块链中的单一节点进行节点测试,还可以针对包含多个节点的整个通信系统进行测试,测试过程与针对于单一节点的测试过程类似,在此不再进行赘述。
下面将通过具体示例,来对本申请实施例中的区块链节点的测试过程进行阐述,在本示例中,以共识算法为RAFT算法为例进行阐述:
步骤一:分析RAFT算法的共识流程,提取RAFT算法中的共识信令消息:心跳消息、选举请求消息以及选举响应消息,并对提取出的共识信令消息进行建模,包括正常的消息内容。错误的消息内容等情况。
步骤二:确定RAFT共识算法的各类异常场景,例如:网络断链、作恶消息、错误消息、消息超时,消息时序不对等,利用TTCN3语言来搭建测试框架(相当于本申请实施例中的模拟测试框架),并在测试框架中部署RAFT算法。
步骤三:构造测试场景,RAFT共识算法,设置共识节点为4个,模拟follower由于心跳消息没有收到而触发选举,并且第一次竞选失败的场景。
设置的消息信令顺序为:
A、模拟节点1给被测试节点心跳消息;
B、模拟节点1心跳消息超时,超时之后,需要检测模拟节点1、模拟节点2、模拟节点3是否都收到vote_request,并且校验vote字段是否正确;
C、如果校验正确之后,构造选举失败场景:模拟节点1、模拟节点2、模拟节点3,只有一个节点回了vote_response;
D、检查在二次超时,校验是否再次收到vote_request,并且选举的任期要比前一次增加;
E、构造选举成功场景:模拟节点1、模拟节点2、模拟节点3,两个节点回了vote_response;
F、检查选举成功:是否收到心跳消息。
步骤四:根据上述测试场景下的待测试节点的信息交互情况,确定待测试节点是否异常,以及是否需要预警。
本申请实施例提供的区块链节点的测试方法,建立模拟测试框架中各个模拟节点与待测试节点之间的通信连接,并基于待测试节点所属的区块链使用的目标共识算法的类型,生成与待测试节点进行通信的至少一条测试信息,并按照目标共识算法指示的通信顺序,控制各个模拟节点将至少一条测试信息发送至待测试节点;根据待测试节点基于至少一条待测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测待测试节点处理的信息的流程是否符合预期信息处理规则,若不符合,生成节点预警信息。在本申请实施例中,预先构建的包含有多个模拟节点的模拟测试框架,模拟与待测试节点之间的信息交互过程,通过在交互信息层级,对待测试节点回复的信息的内容、时间以及不同信息之间的回复顺序多个信息维度进行检测,对共识算法内部逻辑以及待测试节点进行自动准确地测试,有助于提升区块链测试的测试效率以及准确率。
基于同一发明构思,本申请实施例中还提供了与区块链节点的测试方法对应的区块链节点的测试装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述区块链节点的测试方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
请参阅图5、图6,图5为本申请实施例所提供的一种区块链节点的测试装置的结构示意图之一,图6为本申请实施例所提供的一种区块链节点的测试装置的结构示意图之二。如图5中所示,所述测试装置500包括:
通信建立模块510,用于建立所述模拟测试框架中的各个模拟节点与所述待测试节点之间的通信连接,并基于所述待测试节点所属的区块链使用的目标共识算法的算法类型,生成与所述待测试节点进行通信的至少一条测试信息;
信息发送模块520,用于按照所述目标共识算法指示的所述待测试节点所属的区块链的各个节点之间的通信交互顺序,控制各个模拟节点按照通信交互顺序将所述至少一条测试信息发送至所述待测试节点;
回复检测模块530,用于根据所述待测试节点响应于接收到的至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测所述待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则;
节点预警模块540,用于若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,生成节点预警信息。
在一种可能的实施方式中,如图6所示,所述测试装置500还包括模拟节点构建模块550,所述模拟节点构建模块550用于:
确定在所述待测试节点所属的区块链中与所述待测试节点进行信息交互的至少一个通信节点;
针对于每一个通信节点,基于该所述目标共识算法以及该通信节点中的信息流转方向,利用TTCN3语言构建与该通信节点对应的模拟节点。
在一种可能的实施方式中,如图6所示,所述测试装置500还包括反馈时间控制模块560,所述反馈时间控制模块560用于:
基于所述待测试节点的信息处理效率,确定每个模拟节点的在接收到回复信息后的信息响应时间;
控制每个模拟节点在接收到所述待测试节点的回复信息后,按照所述信息响应时间回复所述待测试节点,进行信息交互。
在一种可能的实施方式中,如图6所示,所述测试装置500还包括节点循环测试模块570,所述节点循环测试模块570用于:
若所述待测试节点处理信息的流程符合所述目标共识算法设定的预期信息处理规则,确定待测试节点测试通过,并继续通过所述模拟测试框架对与所述待测试节点处于同一区块链的其他节点进行测试。
在一种可能的实施方式中,所述模拟测试框架的内部信息是基于TTCN3语言构建的,所述通信建立模块510用于通过以下步骤建立所述模拟测试框架与所述待测试节点之间的通信连接:
检测所述待测试节点内部是否存在TTCN3语言转换层;
若所述待测试节点内部存在TTCN3语言转换层,确定所述待测试节点内部使用的目标语言;
在所述模拟测试框架中所述目标语言与所述TTCN3语言的映射关系设置完成后,建立所述模拟测试框架中的各个模拟节点与所述待测试节点之间的通信连接。
在一种可能的实施方式中,所述通信建立模块510在用于基于所述待测试节点所属区块链使用的目标共识算法的算法类型,生成与所述待测试节点进行通信的至少一条测试信息时,所述通信建立模块510用于:
根据所述待测试节点所属区块链使用的目标共识算法的算法类型,确定所述目标共识算法的算法流程,并从所述算法流程中提取至少一个共识信令消息;
基于所述至少一个共识信令消息进行消息建模,确定至少一个建模消息;
针对于每一条建模消息,基于所述目标语言与所述TTCN3语言的映射关系,将该条建模消息转换成所述待测试节点可识别的测试信息。
在一种可能的实施方式中,所述模拟测试框架中还包括多个预先构建的测试场景用例,所述回复检测模块530在用于根据所述待测试节点响应于接收到的至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测所述待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则时,所述回复检测模块530用于:
确定当前设置使用的目标测试场景用例,并基于所述目标共识算法确定所述目标测试场景用例下,预设的目标信息回复内容以及目标消息回复顺序;
检测每条回复信息的回复时间是否超过预设时间阈值;
若每条回复信息的回复时间均未超过预设时间阈值,检测所述每条回复信息的回复内容是否与所述目标信息回复内容一致,且不同回复信息之间的回复顺序是否与所述目标消息回复顺序一致;
若多条消息中存在回复内容与所述目标信息回复内容不一致或者不同回复信息之间的回复顺序是否与所述目标消息回复顺序不一致,确定所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则。
在一种可能的实施方式中,所述回复检测模块530用于通过以下步骤确定每条回复信息的回复时间未超过预设时间阈值:
针对于每一条回复信息,确定对应的模拟节点接收到该条回复信息时的当前时间;
针对于每一条回复信息,基于所述当前时间与发送与该条回复信息对应的测试信息的发送时间,确定信息时间差;
针对于每一条回复信息,若所述信息时间差小于预设差值阈值,确定该条回复信息的回复时间未超过预设时间阈值。
在一种可能的实施方式中,所述回复检测模块530在用于基于所述目标共识算法确定所述目标测试场景用例下,预设的目标信息回复内容以及目标消息回复顺序时,所述回复检测模块530用于:
确定在所述目标测试场景的信息回复的内容类型,以及不同内容类型的占比;
根据所述内容类型以及同内容类型的占比结合所述目标共识算法所规定的信息长度以及信息中包括的重要字段,确定预设的目标信息回复内容,并基于所述目标共识算法,确定所述目标消息回复顺序。
在一种可能的实施方式中,所述节点预警模块540在用于若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,生成节点预警信息时,所述节点预警模块540用于:
若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,针对于每一条回复信息,确定与该条回复信息对应的检测结果;其中,所述检测结果包括信息内容错误、信息回复超时以及信息回复顺序有误;
集合各条回复信息的检测结果,生成所述节点预警信息。
本申请实施例提供的区块链节点的测试装置,建立模拟测试框架中各个模拟节点与待测试节点之间的通信连接,并基于待测试节点所属的区块链使用的目标共识算法的类型,生成与待测试节点进行通信的至少一条测试信息,并按照目标共识算法指示的通信顺序,控制各个模拟节点将至少一条测试信息发送至待测试节点;根据待测试节点基于至少一条待测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测待测试节点处理的信息的流程是否符合预期信息处理规则,若不符合,生成节点预警信息。在本申请实施例中,预先构建的包含有多个模拟节点的模拟测试框架,模拟与待测试节点之间的信息交互过程,通过在交互信息层级,对待测试节点回复的信息的内容、时间以及不同信息之间的回复顺序多个信息维度进行检测,对共识算法内部逻辑以及待测试节点进行自动准确地测试,有助于提升区块链测试的测试效率以及准确率。
请参阅图7,图7为本申请实施例所提供的一种电子设备的结构示意图。如图7中所示,所述电子设备700包括处理器710、存储器720和总线730。
所述存储器720存储有所述处理器710可执行的机器可读指令,当电子设备700运行时,所述处理器710与所述存储器720之间通过总线730通信,使得所述处理器710在运行时执行以下指令:
建立所述模拟测试框架中的各个模拟节点与所述待测试节点之间的通信连接,并基于所述待测试节点所属的区块链使用的目标共识算法的算法类型,生成与所述待测试节点进行通信的至少一条测试信息;
按照所述目标共识算法指示的所述待测试节点所属的区块链的各个节点之间的通信交互顺序,控制各个模拟节点按照通信交互顺序将所述至少一条测试信息发送至所述待测试节点;
根据所述待测试节点响应于接收到的至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测所述待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则;
若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,生成节点预警信息。
一种可能的实施方式中,所述模拟测试框架的内部信息是基于TTCN3语言构建的,处理器710执行的指令中,通过以下步骤建立所述模拟测试框架与所述待测试节点之间的通信连接:
检测所述待测试节点内部是否存在TTCN3语言转换层;
若所述待测试节点内部存在TTCN3语言转换层,确定所述待测试节点内部使用的目标语言;
在所述模拟测试框架中所述目标语言与所述TTCN3语言的映射关系设置完成后,建立所述模拟测试框架中的各个模拟节点与所述待测试节点之间的通信连接。
一种可能的实施方式中,处理器710执行的指令中,所述基于所述待测试节点所属区块链使用的目标共识算法的算法类型,生成与所述待测试节点进行通信的至少一条测试信息,包括:
根据所述待测试节点所属区块链使用的目标共识算法的算法类型,确定所述目标共识算法的算法流程,并从所述算法流程中提取至少一个共识信令消息;
基于所述至少一个共识信令消息进行消息建模,确定至少一个建模消息;
针对于每一条建模消息,基于所述目标语言与所述TTCN3语言的映射关系,将该条建模消息转换成所述待测试节点可识别的测试信息。
一种可能的实施方式中,所述模拟测试框架中还包括多个预先构建的测试场景用例,处理器710执行的指令中,所述根据所述待测试节点响应于接收到的至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测所述待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则,包括:
确定当前设置使用的目标测试场景用例,并基于所述目标共识算法确定所述目标测试场景用例下,预设的目标信息回复内容以及目标消息回复顺序;
检测每条回复信息的回复时间是否超过预设时间阈值;
若每条回复信息的回复时间均未超过预设时间阈值,检测所述每条回复信息的回复内容是否与所述目标信息回复内容一致,且不同回复信息之间的回复顺序是否与所述目标消息回复顺序一致;
若多条消息中存在回复内容与所述目标信息回复内容不一致或者不同回复信息之间的回复顺序是否与所述目标消息回复顺序不一致,确定所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则。
一种可能的实施方式中,处理器710执行的指令中,通过以下步骤确定每条回复信息的回复时间未超过预设时间阈值:
针对于每一条回复信息,确定对应的模拟节点接收到该条回复信息时的当前时间;
针对于每一条回复信息,基于所述当前时间与发送与该条回复信息对应的测试信息的发送时间,确定信息时间差;
针对于每一条回复信息,若所述信息时间差小于预设差值阈值,确定该条回复信息的回复时间未超过预设时间阈值。
一种可能的实施方式中,处理器710执行的指令中,所述基于所述目标共识算法确定所述目标测试场景用例下,预设的目标信息回复内容以及目标消息回复顺序,包括:
确定在所述目标测试场景的信息回复的内容类型,以及不同内容类型的占比;
根据所述内容类型以及同内容类型的占比结合所述目标共识算法,确定预设的目标信息回复内容,并基于所述目标共识算法,确定所述目标消息回复顺序。
一种可能的实施方式中,处理器710执行的指令中,通过以下步骤构建所述模拟测试框架中包括的至少一个模拟节点:
确定在所述待测试节点所属的区块链中与所述待测试节点进行信息交互的至少一个通信节点;
针对于每一个通信节点,基于该所述目标共识算法以及该通信节点中的信息流转方向,利用TTCN3语言构建与该通信节点对应的模拟节点。
一种可能的实施方式中,处理器710执行的指令中,还包括:
基于所述待测试节点的信息处理效率,确定每个模拟节点的在接收到回复信息后的信息响应时间;
控制每个模拟节点在接收到所述待测试节点的回复信息后,按照所述信息响应时间回复所述待测试节点,进行信息交互。
一种可能的实施方式中,处理器710执行的指令中,所述若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,生成节点预警信息,包括:
若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,针对于每一条回复信息,确定与该条回复信息对应的检测结果;其中,所述检测结果包括信息内容错误、信息回复超时以及信息回复顺序有误;
集合各条回复信息的检测结果,生成所述节点预警信息。
一种可能的实施方式中,处理器710执行的指令中,还包括:
若所述待测试节点处理信息的流程符合所述目标共识算法设定的预期信息处理规则,确定待测试节点测试通过,并继续通过所述模拟测试框架对与所述待测试节点处于同一区块链的其他节点进行测试。
通过上述方式,预先构建的包含有多个模拟节点的模拟测试框架,模拟与待测试节点之间的信息交互过程,通过在交互信息层级,对待测试节点回复的信息的内容、时间以及不同信息之间的回复顺序多个信息维度进行检测,对共识算法内部逻辑以及待测试节点进行自动准确地测试,有助于提升区块链测试的测试效率以及准确率。
申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,使得该计算机程序被处理器运行时执行以下指令:
建立所述模拟测试框架中的各个模拟节点与所述待测试节点之间的通信连接,并基于所述待测试节点所属的区块链使用的目标共识算法的算法类型,生成与所述待测试节点进行通信的至少一条测试信息;
按照所述目标共识算法指示的所述待测试节点所属的区块链的各个节点之间的通信交互顺序,控制各个模拟节点按照通信交互顺序将所述至少一条测试信息发送至所述待测试节点;
根据所述待测试节点响应于接收到的至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测所述待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则;
若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,生成节点预警信息。
一种可能的实施方式中,所述模拟测试框架的内部信息是基于TTCN3语言构建的,计算机可读存储介质执行的指令中,通过以下步骤建立所述模拟测试框架与所述待测试节点之间的通信连接:
检测所述待测试节点内部是否存在TTCN3语言转换层;
若所述待测试节点内部存在TTCN3语言转换层,确定所述待测试节点内部使用的目标语言;
在所述模拟测试框架中所述目标语言与所述TTCN3语言的映射关系设置完成后,建立所述模拟测试框架中的各个模拟节点与所述待测试节点之间的通信连接。
一种可能的实施方式中,计算机可读存储介质执行的指令中,所述基于所述待测试节点所属区块链使用的目标共识算法的算法类型,生成与所述待测试节点进行通信的至少一条测试信息,包括:
根据所述待测试节点所属区块链使用的目标共识算法的算法类型,确定所述目标共识算法的算法流程,并从所述算法流程中提取至少一个共识信令消息;
基于所述至少一个共识信令消息进行消息建模,确定至少一个建模消息;
针对于每一条建模消息,基于所述目标语言与所述TTCN3语言的映射关系,将该条建模消息转换成所述待测试节点可识别的测试信息。
一种可能的实施方式中,所述模拟测试框架中还包括多个预先构建的测试场景用例,计算机可读存储介质执行的指令中,所述根据所述待测试节点响应于接收到的至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测所述待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则,包括:
确定当前设置使用的目标测试场景用例,并基于所述目标共识算法确定所述目标测试场景用例下,预设的目标信息回复内容以及目标消息回复顺序;
检测每条回复信息的回复时间是否超过预设时间阈值;
若每条回复信息的回复时间均未超过预设时间阈值,检测所述每条回复信息的回复内容是否与所述目标信息回复内容一致,且不同回复信息之间的回复顺序是否与所述目标消息回复顺序一致;
若多条消息中存在回复内容与所述目标信息回复内容不一致或者不同回复信息之间的回复顺序是否与所述目标消息回复顺序不一致,确定所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则。
一种可能的实施方式中,计算机可读存储介质执行的指令中,通过以下步骤确定每条回复信息的回复时间未超过预设时间阈值:
针对于每一条回复信息,确定对应的模拟节点接收到该条回复信息时的当前时间;
针对于每一条回复信息,基于所述当前时间与发送与该条回复信息对应的测试信息的发送时间,确定信息时间差;
针对于每一条回复信息,若所述信息时间差小于预设差值阈值,确定该条回复信息的回复时间未超过预设时间阈值。
一种可能的实施方式中,计算机可读存储介质执行的指令中,所述基于所述目标共识算法确定所述目标测试场景用例下,预设的目标信息回复内容以及目标消息回复顺序,包括:
确定在所述目标测试场景的信息回复的内容类型,以及不同内容类型的占比;
根据所述内容类型以及同内容类型的占比结合所述目标共识算法,确定预设的目标信息回复内容,并基于所述目标共识算法,确定所述目标消息回复顺序。
一种可能的实施方式中,计算机可读存储介质执行的指令中,通过以下步骤构建所述模拟测试框架中包括的至少一个模拟节点:
确定在所述待测试节点所属的区块链中与所述待测试节点进行信息交互的至少一个通信节点;
针对于每一个通信节点,基于该所述目标共识算法以及该通信节点中的信息流转方向,利用TTCN3语言构建与该通信节点对应的模拟节点。
一种可能的实施方式中,计算机可读存储介质执行的指令中,还包括:
基于所述待测试节点的信息处理效率,确定每个模拟节点的在接收到回复信息后的信息响应时间;
控制每个模拟节点在接收到所述待测试节点的回复信息后,按照所述信息响应时间回复所述待测试节点,进行信息交互。
一种可能的实施方式中,计算机可读存储介质执行的指令中,所述若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,生成节点预警信息,包括:
若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,针对于每一条回复信息,确定与该条回复信息对应的检测结果;其中,所述检测结果包括信息内容错误、信息回复超时以及信息回复顺序有误;
集合各条回复信息的检测结果,生成所述节点预警信息。
一种可能的实施方式中,计算机可读存储介质执行的指令中,还包括:
若所述待测试节点处理信息的流程符合所述目标共识算法设定的预期信息处理规则,确定待测试节点测试通过,并继续通过所述模拟测试框架对与所述待测试节点处于同一区块链的其他节点进行测试。
通过上述方式,预先构建的包含有多个模拟节点的模拟测试框架,模拟与待测试节点之间的信息交互过程,通过在交互信息层级,对待测试节点回复的信息的内容、时间以及不同信息之间的回复顺序多个信息维度进行检测,对共识算法内部逻辑以及待测试节点进行自动准确地测试,有助于提升区块链测试的测试效率以及准确率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (13)

1.一种区块链节点的测试方法,其特征在于,应用于区块链测试系统,所述区块链测试系统包括待测试节点,以及预先搭建的对所述待测试节点进行测试的模拟测试框架,所述模拟测试框架中包括至少一个模拟出的与所述待测试节点在同一区块链中进行通信交互的通信节点对应的模拟节点;所述测试方法包括:
建立所述模拟测试框架中的各个模拟节点与所述待测试节点之间的通信连接,并基于所述待测试节点所属的区块链使用的目标共识算法的算法类型,生成与所述待测试节点进行通信的至少一条测试信息;
按照所述目标共识算法指示的所述待测试节点所属的区块链的各个节点之间的通信交互顺序,控制各个模拟节点按照通信交互顺序将所述至少一条测试信息发送至所述待测试节点;
根据所述待测试节点响应于接收到的至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测所述待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则;
若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,生成节点预警信息。
2.根据权利要求1所述的测试方法,其特征在于,所述模拟测试框架的内部信息是基于TTCN3语言构建的,通过以下步骤建立所述模拟测试框架与所述待测试节点之间的通信连接:
检测所述待测试节点内部是否存在TTCN3语言转换层;
若所述待测试节点内部存在TTCN3语言转换层,确定所述待测试节点内部使用的目标语言;
在所述模拟测试框架中所述目标语言与所述TTCN3语言的映射关系设置完成后,建立所述模拟测试框架中的各个模拟节点与所述待测试节点之间的通信连接。
3.根据权利要求2所述的测试方法,其特征在于,所述基于所述待测试节点所属区块链使用的目标共识算法的算法类型,生成与所述待测试节点进行通信的至少一条测试信息,包括:
根据所述待测试节点所属区块链使用的目标共识算法的算法类型,确定所述目标共识算法的算法流程,并从所述算法流程中提取至少一个共识信令消息;
基于所述至少一个共识信令消息进行消息建模,确定至少一个建模消息;
针对于每一条建模消息,基于所述目标语言与所述TTCN3语言的映射关系,将该条建模消息转换成所述待测试节点可识别的测试信息。
4.根据权利要求1所述的测试方法,其特征在于,所述模拟测试框架中还包括多个预先构建的测试场景用例,所述根据所述待测试节点响应于接收到的至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测所述待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则,包括:
确定当前设置使用的目标测试场景用例,并基于所述目标共识算法确定所述目标测试场景用例下,预设的目标信息回复内容以及目标消息回复顺序;
检测每条回复信息的回复时间是否超过预设时间阈值;
若每条回复信息的回复时间均未超过预设时间阈值,检测所述每条回复信息的回复内容是否与所述目标信息回复内容一致,且不同回复信息之间的回复顺序是否与所述目标消息回复顺序一致;
若多条消息中存在回复内容与所述目标信息回复内容不一致或者不同回复信息之间的回复顺序是否与所述目标消息回复顺序不一致,确定所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则。
5.根据权利要求4所述的测试方法,其特征在于,通过以下步骤确定每条回复信息的回复时间未超过预设时间阈值:
针对于每一条回复信息,确定对应的模拟节点接收到该条回复信息时的当前时间;
针对于每一条回复信息,基于所述当前时间与发送与该条回复信息对应的测试信息的发送时间,确定信息时间差;
针对于每一条回复信息,若所述信息时间差小于预设差值阈值,确定该条回复信息的回复时间未超过预设时间阈值。
6.根据权利要求4所述的测试方法,其特征在于,所述基于所述目标共识算法确定所述目标测试场景用例下,预设的目标信息回复内容以及目标消息回复顺序,包括:
确定在所述目标测试场景的信息回复的内容类型,以及不同内容类型的占比;
根据所述内容类型以及同内容类型的占比结合所述目标共识算法所规定的信息长度以及信息中包括的重要字段,确定预设的目标信息回复内容,并基于所述目标共识算法,确定所述目标消息回复顺序。
7.根据权利要求1所述的测试方法,其特征在于,通过以下步骤构建所述模拟测试框架中包括的至少一个模拟节点:
确定在所述待测试节点所属的区块链中与所述待测试节点进行信息交互的至少一个通信节点;
针对于每一个通信节点,基于该所述目标共识算法以及该通信节点中的信息流转方向,利用TTCN3语言构建与该通信节点对应的模拟节点。
8.根据权利要求1所述的测试方法,其特征在于,在所述构建与所述待测试节点进行通信的至少一条测试信息之后,所述测试方法还包括:
基于所述待测试节点的信息处理效率,确定每个模拟节点的在接收到回复信息后的信息响应时间;
控制每个模拟节点在接收到所述待测试节点的回复信息后,按照所述信息响应时间回复所述待测试节点,进行信息交互。
9.根据权利要求1所述的测试方法,其特征在于,所述若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,生成节点预警信息,包括:
若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,针对于每一条回复信息,确定与该条回复信息对应的检测结果;其中,所述检测结果包括信息内容错误、信息回复超时以及信息回复顺序有误;
集合各条回复信息的检测结果,生成所述节点预警信息。
10.根据权利要求1所述的测试方法,其特征在于,所述测试方法还包括:
若所述待测试节点处理信息的流程符合所述目标共识算法设定的预期信息处理规则,确定待测试节点测试通过,并继续通过所述模拟测试框架对与所述待测试节点处于同一区块链的其他节点进行测试。
11.一种区块链节点的测试装置,其特征在于,应用于区块链测试系统,所述区块链测试系统包括待测试节点,以及预先搭建的对所述待测试节点进行测试的模拟测试框架,所述模拟测试框架中包括至少一个模拟出的与所述待测试节点在同一区块链中进行通信交互的通信节点对应的模拟节点;所述测试装置包括:
通信建立模块,用于建立所述模拟测试框架中的各个模拟节点与所述待测试节点之间的通信连接,并基于所述待测试节点所属的区块链使用的目标共识算法的算法类型,生成与所述待测试节点进行通信的至少一条测试信息;
信息发送模块,用于按照所述目标共识算法指示的所述待测试节点所属的区块链的各个节点之间的通信交互顺序,控制各个模拟节点按照通信交互顺序将所述至少一条测试信息发送至所述待测试节点;
回复检测模块,用于根据所述待测试节点响应于接收到的至少一条测试信息反馈的多条回复信息的信息回复内容、每条回复信息的回复时间以及不同回复信息之间的回复顺序,检测所述待测试节点处理信息的流程是否符合所述目标共识算法设定的预期信息处理规则;
节点预警模块,用于若所述待测试节点处理信息的流程不符合所述目标共识算法设定的预期信息处理规则,生成节点预警信息。
12.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至10任一项所述的区块链节点的测试方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至10任一项所述的区块链节点的测试方法的步骤。
CN202210921729.7A 2022-08-02 2022-08-02 区块链节点的测试方法、装置、电子设备及可读存储介质 Pending CN115237794A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210921729.7A CN115237794A (zh) 2022-08-02 2022-08-02 区块链节点的测试方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210921729.7A CN115237794A (zh) 2022-08-02 2022-08-02 区块链节点的测试方法、装置、电子设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN115237794A true CN115237794A (zh) 2022-10-25

Family

ID=83677085

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210921729.7A Pending CN115237794A (zh) 2022-08-02 2022-08-02 区块链节点的测试方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN115237794A (zh)

Similar Documents

Publication Publication Date Title
CN108092854B (zh) 基于iec61375协议的列车级以太网设备的测试方法及装置
CN112134762B (zh) 针对区块链网络结构的测试方法、装置、终端和存储介质
CN108255725B (zh) 测试方法及装置
CN113572726B (zh) 一种多模态网络控制-数据平面一致性校验方法及装置
CN114064208A (zh) 检测应用服务状态的方法、装置、电子设备及存储介质
US11551085B2 (en) Method, device, and computer program product for error evaluation
US11349730B2 (en) Operation device and operation method
US8385213B2 (en) Error identification in a computer-based network
CN112202647B (zh) 区块链网络中的测试方法、装置及测试设备
CN108512675B (zh) 一种网络诊断的方法、装置、控制节点和网络节点
CN110971478B (zh) 云平台服务性能的压测方法、装置及计算设备
CN115237794A (zh) 区块链节点的测试方法、装置、电子设备及可读存储介质
GB2583903A (en) Testing virtualised network functions
CN107579871B (zh) 基于模型检测的分布式测试脚本的生成方法与生成系统
CN110069382A (zh) 软件监控方法、服务器、终端设备、计算机设备及介质
Savolainen et al. Conflict-centric software architectural views: Exposing trade-offs in quality requirements
CN112261010B (zh) 一种特种设备多协议转换系统、终端及可读存储介质
US20210112062A1 (en) Whitelist generator, whitelist evaluator, whitelist generator/evaluator, whitelist generation method, whitelist evaluation method, and whitelist generation/evaluation method
CN114385498A (zh) 性能测试方法、系统、计算机设备及可读存储介质
CN113835946A (zh) 数据交换的压力测试方法
CN111190701A (zh) 一种虚拟化平台数据迁移完整性检测的方法和装置
CN112953747A (zh) 一种联盟链的性能分析方法、系统及终端设备
CN112948256A (zh) 一种客户端程序的测试方法、装置、存储介质及电子设备
CN112532447A (zh) 一种rdma参数配置的方法、装置及存储介质
CN115426301B (zh) 基于自生报文的设备检测方法、装置、设备和存储介质

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