区块链接口测试系统、方法、设备及可读存储介质技术方案

技术编号:37978940 阅读:10 留言:0更新日期:2023-06-30 09:54
本申请提供一种区块链接口测试系统、方法、设备及可读存储介质,本申请提供的区块链接口测试系统为一个可以独立运行程序,无需依赖工作环境,可以适用于不同的系统环境;可以一键式自动化完成对区块链接口的性能测试,无需进行二次请求和确认动作,简化了区块链接口测试的流程,可以更快地完成对区块链接口的性能测试,能更好的契合区块链异步接口测试流程的需求,除此之外,还能够提升区块链接口测试的性能,可以根据应用场景需要配置不同的文件,通用性较强,记录区块链接口性能测试过程中产生的过程数据和最终生成的测试结果报告。中产生的过程数据和最终生成的测试结果报告。中产生的过程数据和最终生成的测试结果报告。

【技术实现步骤摘要】
区块链接口测试系统、方法、设备及可读存储介质


[0001]本申请涉及接口测试
,尤其涉及一种区块链接口测试系统、方法、设备及可读存储介质。

技术介绍

[0002]系统性能是软件系统应用的一个关键指标,由于软件系统使用场景不同,其性能指标要求也不尽相同。根据“请求

响应”模型,系统性能指单位时间内系统接口可以正确处理的请求数。业内一般用两个参数来表示系统的性能指标:针对“写”操作接口的TPS指标和针对“读”操作接口的QPS指标。除此之外,由于区块链网络对数据的处理是异步的,因此业内新增了一个CTPS指标用于标识区块链网络系统处理数据的性能。
[0003]软件性能测试是求得系统性能指标的直接方法,也是软件系统质量保障的重要一环。软件性能测试通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试,模拟生产运行的业务压力或用户使用场景来确定系统的性能指标是否满足性能要求,检验软件系统性能是否符合性能指标。在实际应用过程中,通常是将区块链技术与实际场景结合,但不同的场景对性能要求不一样,例如,如银行结算场景要求TPS指标较高,而奢侈品溯源的场景要求QPS指标较高。因此,区块链网络平台的性能测试是必要的,这将直接决定该区块链网络平台是否能满足实际场景的需求。但是目前的接口测试方案难以满足区块链异步接口性能测试的要求。

技术实现思路

[0004]本申请旨在至少能解决上述的技术缺陷之一,有鉴于此,本申请提供了一种区块链接口测试系统、方法、设备及可读存储介质,用于解决现有技术中难以对区块链接口性能进行测试的技术缺陷。
[0005]一种区块链接口测试系统,该系统包括:启动器、配置读取器、请求发生器、阈值检测器以及响应处理器;
[0006]其中,
[0007]所述启动器启动后发出启动信号,为区块链接口测试系统进行初始化操作,并同时往区块链网络目标节点发送请求,其中,所述请求为请求获取当前网络中的区块高度并将该区块缓存在内存中,同时将该区块标记为初始区块;
[0008]所述配置读取器从预设的存储路径读取目标配置文件,其中所述目标配置文件用于为所述启动器、所述请求发生器、所述阈值检测器以及所述响应处理器提供配置参数;
[0009]所述请求发生器接收到所述区块链接口测试系统的启动信号后,发生初始化,并在初始化过程中进行连接池化,同时将各个协程进行并行处理;
[0010]所述阈值检测器负责对协程组进行完工阈值配置以及对区块链网络进行完工阈值配置;
[0011]所述响应处理器为所述区块链目标网络节点的区块数据进行解析并生成所述区
块链目标网络节点的测试报告。
[0012]优选地,所述目标配置文件包括:
[0013]节点连接信息、所述区块链接口测试系统工作限制信息、所述区块链网络阈值信息、所述区块链基础接口配置信息以及测试用例的配置信息。
[0014]优选地,所述请求发生器在初始化过程中进行连接池化的过程,包括:
[0015]构建一个目标对象池;
[0016]将所述目标对象池的容量初始化为预设的阈值;
[0017]判断是否存在需要使用对象的请求;
[0018]若需要使用对象,则创建目标对象并将请求使用所述目标对象的请求对应的网址进行绑定;
[0019]判断所述目标对象池中的对象数量是否超过所述预设的阈值;
[0020]若所述目标对象池中的对象数量超过所述预设的阈值,则将所述目标对象池中超过所述预设的阈值的其余对象进行回收。
[0021]优选地,所述请求发生器将各个协程进行并行处理的过程,包括:
[0022]在目标测试用例进入待执行队列时,所述请求发生器将所述目标测试用例配置中的并发协程数的参数初始化成相应数量的目标协程;
[0023]将所有目标协程进行并发执行,其中,每个所述目标协程的执行流程一致;
[0024]记录所有协程的请求的响应结果作为所述目标测试用例的测试报告数据佐证,其中,每个请求的响应结果包括请求时间、响应时间、响应结果。
[0025]优选地,所述阈值检测器对协程组进行完工阈值配置的过程,包括:
[0026]收集各个协程组内每次请求的反馈结果,其中,各个协程组内每次请求的反馈结果包括区块链网络表示请求成功、请求失败以及请求超时三类结果的原文回应;
[0027]将所有反馈结果的总数与测试用例配置中设定的并发协程数和每个协程需要完成的请求数的乘积对比;
[0028]依据各个协程组内每次请求的反馈结果与测试用例配置中设定的并发协程数和每个协程需要完成的请求数的乘积的对比结果,判断是否能进入下一个测试用例流程;
[0029]若反馈结果总数小于测试用例配置中设定的并发协程数和每个协程需要完成的请求数的乘积,则确定当前测试用例流程未完成,继续等待剩余响应结果;
[0030]若反馈结果总数等于测试用例配置中设定的并发协程数和每个协程需要完成的请求数的乘积,则确定当前测试用例流程已完成,则将协程组的完工阈值配置为测试用例配置中设定的并发协程数与每个协程需要完成的请求数的乘积。
[0031]优选地,所述阈值检测器对区块链网络进行完工阈值配置的过程,包括:
[0032]在所有协程组流程完成后,根据配置项系统工作限制中的等待区块产生的时间参数确定延时等待时间;
[0033]在延时等待结束后,从初始区块高度开始逐个获取后续区块;
[0034]统计区块中的交易数量;
[0035]依据区块中的交易数量,记录在区块中的交易数据的状态为成功处理的数据;
[0036]依据区块中的交易数据的状态为成功处理的数据,来判断是否存在零交易区块;
[0037]若确定存在零交易区块,则确定区块链的所有数据已完成,并将区块链网络的完
工阈值配置为遇见零交易区块。
[0038]一种区块链接口测试方法,应用于前述介绍的区块链接口测试系统,该系统包括:启动器、配置读取器、请求发生器、阈值检测器以及响应处理器;
[0039]其中,
[0040]启动所述启动器以发出启动信号,为区块链接口测试系统进行初始化操作,并同时往区块链网络目标节点发送请求,其中,所述请求为请求获取当前网络中的区块高度并将该区块缓存在内存中,同时将该区块标记为初始区块;
[0041]调用所述配置读取器从预设的存储路径读取目标配置文件,其中所述目标配置文件用于为所述启动器、所述请求发生器、所述阈值检测器以及所述响应处理器提供配置参数;
[0042]调用所述请求发生器接收到所述区块链接口测试系统的启动信号后,发生初始化,并在初始化过程中进行连接池化,同时将各个协程进行并行处理;
[0043]调用所述阈值检测器负责对协程组进行完工阈值配置以及对区块链网络进行完工阈值配置;
[0044]调用所述响应处理器为所述区块链目标网络节点的区块数据进行解析并生成所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链接口测试系统,其特征在于,该系统包括:启动器、配置读取器、请求发生器、阈值检测器以及响应处理器;其中,所述启动器启动后发出启动信号,为区块链接口测试系统进行初始化操作,并同时往区块链网络目标节点发送请求,其中,所述请求为请求获取当前网络中的区块高度并将该区块缓存在内存中,同时将该区块标记为初始区块;所述配置读取器从预设的存储路径读取目标配置文件,其中所述目标配置文件用于为所述启动器、所述请求发生器、所述阈值检测器以及所述响应处理器提供配置参数;所述请求发生器接收到所述区块链接口测试系统的启动信号后,发生初始化,并在初始化过程中进行连接池化,同时将各个协程进行并行处理;所述阈值检测器负责对协程组进行完工阈值配置以及对区块链网络进行完工阈值配置;所述响应处理器为所述区块链目标网络节点的区块数据进行解析并生成所述区块链目标网络节点的测试报告。2.根据权利要求1所述的系统,其特征在于,所述目标配置文件包括:节点连接信息、所述区块链接口测试系统工作限制信息、所述区块链网络阈值信息、所述区块链基础接口配置信息以及测试用例的配置信息。3.根据权利要求1所述的系统,其特征在于,所述请求发生器在初始化过程中进行连接池化的过程,包括:构建一个目标对象池;将所述目标对象池的容量初始化为预设的阈值;判断是否存在需要使用对象的请求;若需要使用对象,则创建目标对象并将请求使用所述目标对象的请求对应的网址进行绑定;判断所述目标对象池中的对象数量是否超过所述预设的阈值;若所述目标对象池中的对象数量超过所述预设的阈值,则将所述目标对象池中超过所述预设的阈值的其余对象进行回收。4.根据权利要求1所述的系统,其特征在于,所述请求发生器将各个协程进行并行处理的过程,包括:在目标测试用例进入待执行队列时,所述请求发生器将所述目标测试用例配置中的并发协程数的参数初始化成相应数量的目标协程;将所有目标协程进行并发执行,其中,每个所述目标协程的执行流程一致;记录所有协程的请求的响应结果作为所述目标测试用例的测试报告数据佐证,其中,每个请求的响应结果包括请求时间、响应时间、响应结果。5.根据权利要求1所述的系统,其特征在于,所述阈值检测器对协程组进行完工阈值配置的过程,包括:收集各个协程组内每次请求的反馈结果,其中,各个协程组内每次请求的反馈结果包括区块链网络表示请求成功、请求失败以及请求超时三类结果的原文回应;将所有反馈结果的总数与测试用例配置中设定的并发协程数和每个协程需要完成的
请求数的乘积对比;依据各个协程组内每次请求的反馈结果与测试用例配置中设定的并发协程数和每个协程需要完成的请求数的乘积的对比结果,判断是否能进入下一个测试用例流程;若反馈结果总数小于测试用例配...

【专利技术属性】
技术研发人员:梁增健谢美春黄嘉毅杨晓师李定一
申请(专利权)人:广州蚁比特区块链科技有限公司
类型:发明
国别省市:

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

1