本申请涉及区块链,尤其涉及一种压力测试方法及相关设备。
背景技术:
1、在现有技术中,在对区块链进行压力测试时,无法准确的确定测试过程中交易发送的速度以及交易发送的数量,且现有技术中,在进行压力测试时,常用的压力测试方法通常仅基于静态的事务处理能力设置压力参数,而缺乏对动态负载情况下的实时调控能力,其无法根据当前时刻区块链的状态来动态调整测试的参数,可能会导致该时刻下并未保证区块链的交易数量饱和,或者交易数量设置的过大,导致交易池发生溢出现象,这些均会导致最终的压力测试结果不准确。
技术实现思路
1、有鉴于此,本申请的目的在于提出一种压力测试方法及相关设备。
2、基于上述目的,本申请提供了一种压力测试方法,包括:
3、获取区块链系统交易池的容量设置值;
4、基于所述容量设置值计算得到交易池的消耗能力;
5、基于所述容量设置值和所述消耗能力计算得到所述交易池压力调控的上限和压力调控的下限,并基于所述压力调控的上限和所述压力调控的下限控制对应线程的开关;其中,每个所述线程发送固定数量的交易;
6、响应于交易发送结束,获取交易的总数量;基于交易开始的时间、所有交易结束的时间和所述交易的总数量,计算得到压力测试参考值。
7、在一种可能的实现方式中,所述基于所述容量设置值计算得到交易池的消耗能力,包括:
8、无间隔的并发发送所述容量设置值个数的交易;
9、响应于所述容量设置值个数的交易发送停止,获取当前的第一时间和当前的交易池的第一负载数量;
10、响应于交易池负载数量为零,获取当前的第二时间;
11、基于所述第一负载数量、所述第一时间和所述第二时间,计算得到所述消耗能力。
12、在一种可能的实现方式中,所述基于所述第一负载数量、所述第一时间和所述第二时间,计算得到所述消耗能力,包括:
13、
14、其中,txconsumspeed表示消耗能力,starttxnum表示第一负载数量,endtime表示第二时间,starttime表示第一时间。
15、在一种可能的实现方式中,所述基于所述容量设置值和所述消耗能力计算得到所述交易池压力调控的上限,包括:
16、响应于所述线程的开关处于关闭状态,获取当前已经启动的线程产生交易的速度降低至所述消耗能力时间内产生的第一交易数和区块链消耗的第二交易数;
17、基于所述容量设置值、所述第一交易数和所述第二交易数,计算得到所述交易池压力调控的上限。
18、在一种可能的实现方式中,所述基于所述容量设置值和所述消耗能力计算得到所述交易池压力调控的下限,包括:
19、响应于所述线程的开关处于开启状态,获取当前已经启动的线程产生交易的速度上升至所述消耗能力时间内产生的第三交易数和消耗的第四交易数;
20、基于所述第三交易数和所述第四交易数,计算得到所述交易池压力调控的下限。
21、在一种可能的实现方式中,所述基于所述压力调控的上限和所述压力调控的下限控制对应线程的开关,包括:
22、读取当前时刻交易池中的第二负载数量;
23、响应于所述第二负载数量大于所述压力调控的上限,关闭所述线程的开关;
24、响应于所述第二负载数量小于所述压力调控的下限,开启所述线程的开关。
25、在一种可能的实现方式中,通过下述方法计算所述固定数量:
26、获取每个线程需要发送的交易数量的下限和每个线程需要发送的交易数量的上限;
27、所述固定数量小于所述交易数量的上限且大于所述交易数量的下限。
28、在一种可能的实现方式中,通过下式计算所述压力测试参考值:
29、
30、其中,bestctps表示压力测试参考值,txnum表示交易的总数量,endprocesstime表示所有交易结束的时间,startprocesstime表示交易开始的时间。
31、基于同一发明构思,本申请实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任意一项所述的压力测试方法。
32、基于同一发明构思,本申请实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述任一所述的压力测试方法。
33、从上面所述可以看出,本申请提供的压力测试方法及相关设备,通过获取区块链系统交易池的容量设置值;基于所述容量设置值计算得到交易池的消耗能力;基于所述容量设置值和所述消耗能力计算得到所述交易池压力调控的上限和压力调控的下限,并基于所述压力调控的上限和所述压力调控的下限控制对应线程的开关;每个所述线程发送固定数量的交易;响应于交易发送结束,获取交易的总数量;基于交易开始的时间、所有交易结束的时间和所述交易的总数量,计算得到压力测试参考值。本申请实施例能够基于当前区块链的状态动态调整对应的压力测试的参数,以使得在测试过程中能够始终适应当前区块链的状态,进而使得最终的压力测试结果更加的准确。
1.一种压力测试方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述容量设置值计算得到交易池的消耗能力,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于所述第一负载数量、所述第一时间和所述第二时间,计算得到所述消耗能力,包括:
4.根据权利要求1所述的方法,其特征在于,所述基于所述容量设置值和所述消耗能力计算得到所述交易池压力调控的上限,包括:
5.根据权利要求1所述的方法,其特征在于,所述基于所述容量设置值和所述消耗能力计算得到所述交易池压力调控的下限,包括:
6.根据权利要求1所述的方法,其特征在于,所述基于所述压力调控的上限和所述压力调控的下限控制对应线程的开关,包括:
7.根据权利要求1所述的方法,其特征在于,通过下述方法计算所述固定数量:
8.根据权利要求1所述的方法,其特征在于,通过下式计算所述压力测试参考值:
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任意一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行权利要求1至8任一所述方法。