本发明涉及区块链,尤其涉及一种基于区块链baas 的自动化测试方法及系统。
背景技术:
1、区块链是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。区块链技术包括以块结构存储数据,使用密码学保证传输和访问安全等,其能够实现数据一致性存储、防篡改、去中心的技术体系。
2、区块链服务即区块链 baas 平台,baas 平台主要实现联盟机构对区块链网络的方便可视化的部署及管理,当前系统管理及监控都需要测试人工手动配置管理信息,检查网络部署启动和交易监控数据,这种长期的手动管理和测试,耗费大量人力和时间,存在测试数据不稳定、不安全、易被篡改等问题,无法实现高效且安全的系统测试。
3、因此,有必要提供一种新的基于区块链 baas 的自动化测试方法及系统解决上述技术问题。
技术实现思路
1、为解决测试数据由测试人员手动组织和配发,存在测试数据不稳定、不安 全、易被篡改等问题,耗费大量人力和时间,无法实现自动高效且安全的系统 测试的技术问题,本发明提供一种基于区块链 baas 的自动化测试方法及系统 通过自动化测试技术解决对区块链 baas 系统需要长期人工管理和监控的问题,实现自动部署管理区块链网络,监控所有节点交易数据,记录测试结果,提高 系统管理效率,减少人工和时间成本,增加区块链系统的安全性和稳定性。
2、本发明第一方面提供的基于区块链 baas 的自动化测试方法包括如下步骤:
3、s1、构建测试框架程序,编写区块链 baas 的测试用例,构建自动化测试联盟链,测试联盟链内建立有测试节点,测试节点可存储多个测试用例,其中测试用例是用户通过计算机编程技术编写的一组数据流;
4、s2、合约编写,定义测试用例的数据格式,分别用于测试数据类型、测试数据输入、测试数据输出和测试数据优先级,用户发送测试交易数据,将测试交易数据存储至测试联盟链上智能合约中,由测试节点调用智能合约,调度测试数据并执行测试用例;
5、s3、收集测试结果,测试用例执行完成后,联盟链将测试结果进行加密存储,测试节点将测试结果上链存储至区块链网络中;
6、s4、异常处理,针对没有被执行的测试用例,通过设置重置机制来重新执行测试用例,测试联盟链上的智能合约将识别不同的异常 code,对异常 code进行异常判断,自动搜索主系统代码库中修复异常 code 的代码集,将异常 code与处理脚本的内核代码段进行对比,确认代码的完整性,将与目标代码调出来,智能合约接收目标代码并进行修复,尽可能减少区块链网络失败的场景;
7、s5、部署环境,将自动化测试联盟链部署至持续集成环境,区块链网络中的联盟机构系统共享,测试结果将自动发送给用户,用户通过测试节点连接至区块链网络,查询测试结果,及时管理和监控区块链 baas 系统。
8、进一步地,在 s3 步骤中,共识规则是在测试节点在发送交易的过程中, 在测试节点中调用 fabric-go-sdk 创建测试联盟链的多个通道,同一个测试通 道中的账本节点中有半数以上的节点选择接收该测试交易,该交易被成功共识。
9、进一步地,在 s2 步骤中,测试节点根据测试联盟链的共识机制在共识过程中,当存在满足共识规则要求数量的节点选择接收该测试交易时,该交易被成功共识,并被所有节点执行。
10、进一步地,在 s4 步骤中,将异常 code 与处理脚本的内核代码段进行对比,确认代码的完整性,若不完整,则生成异常code 日志文件。
11、进一步地,在 s4 步骤中所述目标代码进行修复的方式为替换智能合约的对应部分代码。
12、进一步地,所述测试联盟链包括创建资源、账本组织、共识组织、启动网络、创建通道、部署合约和发送交易。
13、本发明第二方面提供的基于区块链 baas 的自动化测试系统,包括管理模块,用于为用户提供登录、注册和密码修改的服务,划分不同用户等级,为每个用户指定相应数据创建、读取、更新和删除权限;
14、baas 服务器,用于响应管理模块身份验证,响应用户发送测试交易数据请求;
15、测试主机,用于编写测试用例进行网络功能测试;
16、代码库模块,用于存储修复异常 code 的代码集;
17、区块链接口模块,用于连接测试主机和区块链 baas 服务器;
18、测试记录模块,用于采集异常code 的日志文件和测试交易过程数据。
19、进一步地,还包括分析模块,用于根据异常 code 的日志文件分析异常类
20、型,异常类型包括未知原因错误类型、认证失败类型、权限不足类型、网络连接失败类型和环境不支持类型。
21、与相关技术相比较,本发明提供的基于区块链baas 的自动化测试方法及系统具有如下有益效果:
22、1、本发明通过自动化测试技术解决对区块链 baas 系统需要长期人工管理和监控的问题,实现自动部署管理区块链网络,即采用链上智能合约调度测试数据,解决了测试环境不稳定、测试用例易被篡改的问题,提高了测试结果的可靠性和稳定性,同时采用区块链技术存储测试结果,保证测试结果的不可篡改性和稳定性,确保测试结果的真实性;
23、2、本发明公布的测试联盟链上的智能合约将识别不同的异常 code,自动调用执行对应异常的处理脚本,尽可能减少区块链网络失败的场景,进一步提高测试运作时的稳定性;
24、3、该自动化测试方法及系统可广泛应用于软件测试、智能合约测试等领域,推动行业的进步和发展。
1.一种基于区块链 baas 的自动化测试方法,其特征在于,包括如下步骤:
2.根据权利要求 1 所述的基于区块链baas 的自动化测试方法,其特征在于,在 s3步骤中,共识规则是在测试节点在发送交易的过程中,在测试节点中调用 fabric-go-sdk创建测试联盟链的多个通道,同一个测试通道中的账本节点中有半数以上的节点选择接收该测试交易,该交易被成功共识。
3.根据权利要求 2 所述的基于区块链baas 的自动化测试方法,其特征在于,在 s2步骤中,测试节点根据测试联盟链的共识机制在共识过程中,当存在满足共识规则要求数量的节点选择接收该测试交易时,该交易被成功共识,并被所有节点执行。
4.根据权利要求 3 所述的基于区块链baas 的自动化测试方法,其特征在于,在 s4步骤中,将异常 code 与处理脚本的内核代码段进行对比,确认代码的完整性,若不完整,则生成异常 code 日志文件。
5.根据权利要求 4 所述的基于区块链baas 的自动化测试方法,其特征在于,在 s4步骤中所述目标代码进行修复的方式为替换智能合约的对应部分代码。
6.根据权利要求 5 所述的基于区块链baas 的自动化测试方法,其特征在于,所述测试联盟链包括创建资源、账本组织、共识组织、启动网络、创建通道、部署合约和发送交易。
7.一种基于区块链 baas 的自动化测试系统,其特征在于,包括管理模块,用于为用户提供登录、注册和密码修改的服务,划分不同用户等级,为每个用户指定相应数据创建、读取、更新和删除权限;baas 服务器,用于响应管理模块身份验证,响应用户发送测试交易数据请求;测试主机,用于编写测试用例进行网络功能测试;代码库模块,用于存储修复异常code 的代码集;区块链接口模块,用于连接测试主机和区块链 baas 服务器;测试记录模块,用于采集异常code 的日志文件和测试交易过程数据。
8.根据权利要求 7 所述的基于区块链baas 的自动化测试系统,其特征在于,还包括分析模块,用于根据异常 code 的日志文件分析异常类型,异常类型包括未知原因错误类型、认证失败类型、权限不足类型、网络连接失败类型和环境不支持类型。