本发明涉及区块链测试,更具体的说是涉及一种基于区块链的测试方法、系统及可存储介质。
背景技术:
1、目前,区块链就是一个又一个区块组成的链条,每一个区块中保存了一定的信息,它们按照各自产生的时间顺序连接成链条。相比于传统的网络,区块链具有两大核心特点:一是数据难以篡改、二是去中心化。基于这两个特点,区块链所记录的信息更加真实可靠,可以帮助解决人们互不信任的问题。
2、但是,随着上链数据量的不断增加,这就对区块链平台的性能提出了更高的要求,而现有技术中通常仅对区块链的单一性能进行测试,如cn 113973064a公开了一种基于区块链的稳定性测试方法,仅可以对区块链的稳定性进行测试而无法实现其它方面的测试;并且在现有技术中无论是安全性测试还是稳定性测试,通常仅设置单一的测试条件,当测试结果满足需求时即完成测试,无法全面评价区块链的性能。
3、因此,如何提供一种能够解决上述问题的区块链测试方法是本领域技术人员亟需解决的问题。
技术实现思路
1、有鉴于此,本发明提供了一种基于区块链的测试方法、系统及可存储介质,能够根据测试需求选取不同的测试方法,既能满足覆盖多个复杂测试场景的要求,又便于测试人员直观地判断区块链系统稳定性的测试结果。
2、为了实现上述目的,本发明采用如下技术方案:
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、经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种基于区块链的测试方法、系统及可存储介质,当所述测试需求为安全性能测试时,构建虚拟发送客户端、虚拟接收客户端以及虚拟数字信息,在待测试区块链平台的每个节点进行虚拟交易,在虚拟交易过程中针对不同客户端构建不同的攻击模型进行测试,并对测试结果进行验证;当所述测试需求为稳定性能测试时,获取测试数据,将测试数据按照比例划分为恶意测试数据以及良性测试数据,利用所述良性测试数据及所述恶意测试数据完成稳定性能测试;可以根据用户的测试需求对区块链进行稳定性能测试、安全性能测试或者两个性能依次进行测试,同时在稳定性能测试、安全性能测试过程中,设置多个测试条件,最后根据网络信息参数或者综合测试结果对区块链的性能进行客观评价,便于用户直观判断。
1.一种基于区块链的测试方法,基于待测试区块链平台实现,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于区块链的测试方法,其特征在于,当所述测试需求为安全性能测试时的具体处理过程包括:
3.根据权利要求2所述的一种基于区块链的测试方法,其特征在于,构建多种类型的攻击模型依次发起攻击的具体处理过程包括:
4.根据权利要求3所述的一种基于区块链的测试方法,其特征在于,所述第一网络环境参数以及所述第二网络环境参数为丢包率以及延迟中的任一种或任两种。
5.根据权利要求1所述的一种基于区块链的测试方法,其特征在于当所述测试需求为稳定性能测试时的具体处理过程包括:
6.根据权利要求5所述的一种基于区块链的测试方法,其特征在于,将所述良性测试数据以及恶意测试数据分别输入至所述分类节点完成稳定性能测试的具体处理过程包括:
7.根据权利要求5所述的一种基于区块链的测试方法,其特征在于,当所述良性测试指标结果符合要求的具体判断过程包括:
8.一种基于区块链的测试系统,基于待测试区块链平台实现,其特征在于,包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的区块链测试方法。