区块链SDK的持续交付方法、装置、存储介质以及电子设备制造方法及图纸

技术编号:39295037 阅读:8 留言:0更新日期:2023-11-07 11:02
本申请公开了一种区块链SDK的持续交付方法、装置、存储介质以及电子设备。该方法包括:根据目标SDK的目标代码特性确定与目标代码特性对应的目标区块链产品包,其中,目标SDK为本次提交的版本;将目标区块链产品包部署在创建的容器中;在容器中执行与目标代码特性对应的第一测试用例,并输出第一测试报告,其中,第一测试用例为至少一个测试用例;在第一测试报告的第一测试结果全部为测试通过的情况下,执行目标SDK的发版命令。本申请解决了SDK发版流程自动化程度低的技术问题。自动化程度低的技术问题。自动化程度低的技术问题。

【技术实现步骤摘要】
区块链SDK的持续交付方法、装置、存储介质以及电子设备


[0001]本申请涉及计算机领域,具体而言,涉及一种区块链SDK的持续交付方法、装置、存储介质以及电子设备。

技术介绍

[0002]由于区块链SDK(Software Development Kit软件开发工具包)的测试流程需要强依赖区块链版本,且不同的SDK版本可能需要使用不同版本的区块链产品,甚至不同产品的区块链包。目前针对区块链SDK发版时,有几种方法。方法一、开发人员将SDK开发完成后,在本地部署该SDK依赖的区块链产品。开发人员完成单元测试后提交测试代码至代码管理平台远端(GitLab仓库管理系统、SVN(Subversion版本管理工具)等)。代码提交后,测试人员手动触发CD流程(通常为Jenkins搭建的任务),选择此次SDK发版所依赖的区块链产品、区块链产品的版本,并执行全量测试,全量测试完成以后自动实现SDK的发版。该方法中虽然通过Jenkins这一持续集成工具实现了SDK在通过全量测试以后的自动发版过程,但是仍然处于半自动化状态。方法二、在单元测试、冒烟测试、全量测试以前,测试人员与开发人员沟通好该版本的区块链SDK所依赖的区块链产品,并在公共位置部署好区块链集群,以供开发人员进行单元测试、冒烟测试,以及测试人员进行全量测试。该方法虽然可以提高CICD的自动化程度,即可以让开发人员在一键提交代码后,自动运行各个阶段的测试,并在测试结束后自动发版。但该过程仍然需要强依赖于公共位置部署的区块链集群,仍然不能完全做到自动化,需要强依赖于公共平台的测试集群部署,当开发人员需要同时发布多个SDK版本时,对部署区块链的机器数量要求较多,容易导致资源紧缺,公用的区块链集群,容易造成不同阶段的测试用例之间相互干扰。

技术实现思路

[0003]本申请实施例提供了一种区块链SDK的持续交付方法、装置、存储介质以及电子设备,以至少解决SDK发版流程自动化程度低的技术问题。
[0004]根据本申请实施例的一个方面,提供了一种区块链SDK的持续交付方法,包括:根据目标SDK的目标代码特性确定与上述目标代码特性对应的目标区块链产品包,其中,上述目标SDK为本次提交的版本;将上述目标区块链产品包部署在创建的容器中;在上述容器中执行与上述目标代码特性对应的第一测试用例,并输出第一测试报告,其中,上述第一测试用例为至少一个测试用例;在上述第一测试报告的第一测试结果全部为测试通过的情况下,执行上述目标SDK的发版命令。
[0005]根据本申请实施例的另一方面,提供了一种区块链SDK的持续交付装置,包括:确定模块,用于根据目标SDK的目标代码特性确定与上述目标代码特性对应的目标区块链产品包,其中,上述目标SDK为本次提交的版本;部署模块,用于将上述目标区块链产品包部署在创建的容器中;第一执行模块,用于在上述容器中执行与上述目标代码特性对应的第一测试用例,并输出第一测试报告,其中,上述第一测试用例为至少一个测试用例;第二执行
模块,用于在上述第一测试报告的第一测试结果全部为测试通过的情况下,执行上述目标SDK的发版命令。
[0006]作为一种可选的示例,上述确定模块包括:第一确定单元,用于在上述目标SDK为首次发布,且存在指定的区块链产品包的情况下,确定上述目标SDK的上述目标代码特性,并将上述指定的区块链产品包确定为与上述目标代码特性对应的上述目标区块链产品包;更新单元,用于根据上述指定的区块链产品包,将在数据库中的目标关系映射表中上述目标代码特性与上述目标区块链产品包的对应关系进行更新,其中,上述目标关系映射表中保存有代码特性与区块链产品包的对应关系。
[0007]作为一种可选的示例,上述确定模块包括:第二确定单元,用于在上述目标SDK为首次发布,且不存在指定的区块链产品包的情况下,确定上述目标SDK的上述目标代码特性,并在目标关系映射表中查找与上述目标代码特性对应的上述目标区块链产品包;第三确定单元,用于在上述目标SDK为非首次发布,且不存在指定的区块链产品包的情况下,根据上述目标SDK和第一SDK确定上述目标SDK的代码修改范围,其中,上述第一SDK为上述目标SDK的上一版SDK;第四确定单元,用于根据上述代码修改范围确定上述目标SDK的上述目标代码特性,并在上述目标关系映射表中查找与上述目标代码特性对应的上述目标区块链产品包。
[0008]作为一种可选的示例,上述第一执行模块包括:第五确定单元,用于根据上述目标代码特性确定与上述目标代码特性对应的上述第一测试用例;执行单元,用于将上述第一测试用例中的每一个测试用例作为当前测试用例,对上述当前测试用例执行如下操作:在上述容器中执行上述当前测试用例,同时统计当前测试覆盖率,输出对应的上述当前测试用例对应的当前测试报告,其中,上述当前测试报告为上述第一测试报告中的任意一个,上述当前测试报告包括当前测试结果、当前失败原因以及当前解决办法,上述当前解决办法是在数据库中的学习记录中根据上述当前失败原因查找得到的,上述学习记录中保存有上述当前失败原因对应的当前解决办法;在上述当前测试结果为测试通过,且上述当前测试覆盖率大于第一阈值的情况下,将下一个第一测试用例作为上述当前测试用例,直到上述第一测试用例中每一个测试用例都完成执行。
[0009]作为一种可选的示例,上述装置还包括:修改模块,用于在上述容器中执行上述当前测试用例,同时统计当前测试覆盖率,输出对应的上述当前测试用例对应的当前测试报告之后,在上述当前测试结果为未测试通过,或上述当前测试覆盖率小于或等于上述第一阈值的情况下,根据上述当前失败原因和当前解决办法对上述目标SDK进行修改,得到修改后的上述目标SDK。
[0010]作为一种可选的示例,上述装置还包括:第一获取模块,用于在上述容器中执行上述当前测试用例,同时统计当前测试覆盖率,输出对应的上述当前测试用例对应的当前测试报告之后,在上述当前测试结果为未测试通过,或上述当前测试覆盖率小于或等于上述第一阈值的情况下,获取用户根据当前失败原因得到的目标解决办法;更新模块,用于根据上述目标解决办法,将上述学习记录中的上述当前失败原因对应的解决办法进行更新。
[0011]作为一种可选的示例,上述装置还包括:检查模块,用于在上述容器中执行与上述目标代码特性对应的第一测试用例,并输出第一测试报告之后,在上述第一测试结果全部为测试通过的情况下,在上述容器中进行静态代码检查与漏洞扫描,并输出第二测试报告;
处理模块,用于在上述第二测试报告中的第二测试结果为测试通过的情况下,将上述目标SDK的代码从GIT仓库的子分支合并至主分支;第二获取模块,用于获取第二测试用例,其中,上述第二测试用例为除上述第一测试用例外的所有测试用例;第三执行模块,用于在上述容器中执行上述第二测试用例,并输出第三测试报告;第四执行模块,用于在上述第三测试报告的第三测试结果全部为测试通过的情况下,执行上述目标SDK的发版命令。
[0012]根据本申请实施例的又一方面,还提供了一种存储介质,该存储介质中存储有本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链SDK的持续交付方法,其特征在于,包括:根据目标SDK的目标代码特性确定与所述目标代码特性对应的目标区块链产品包,其中,所述目标SDK为本次提交的版本;将所述目标区块链产品包部署在创建的容器中;在所述容器中执行与所述目标代码特性对应的第一测试用例,并输出第一测试报告,其中,所述第一测试用例为至少一个测试用例;在所述第一测试报告的第一测试结果全部为测试通过的情况下,执行所述目标SDK的发版命令。2.根据权利要求1所述的方法,其特征在于,所述根据目标SDK的目标代码特性确定与所述目标代码特性对应的目标区块链产品包包括:在所述目标SDK为首次发布,且存在指定的区块链产品包的情况下,确定所述目标SDK的所述目标代码特性,并将所述指定的区块链产品包确定为与所述目标代码特性对应的所述目标区块链产品包;根据所述指定的区块链产品包,将在数据库中的目标关系映射表中所述目标代码特性与所述目标区块链产品包的对应关系进行更新,其中,所述目标关系映射表中保存有代码特性与区块链产品包的对应关系。3.根据权利要求1所述的方法,其特征在于,所述根据目标SDK的目标代码特性确定与所述目标代码特性对应的目标区块链产品包包括:在所述目标SDK为首次发布,且不存在指定的区块链产品包的情况下,确定所述目标SDK的所述目标代码特性,并在目标关系映射表中查找与所述目标代码特性对应的所述目标区块链产品包;在所述目标SDK为非首次发布,且不存在指定的区块链产品包的情况下,根据所述目标SDK和第一SDK确定所述目标SDK的代码修改范围,其中,所述第一SDK为所述目标SDK的上一版SDK;根据所述代码修改范围确定所述目标SDK的所述目标代码特性,并在所述目标关系映射表中查找与所述目标代码特性对应的所述目标区块链产品包。4.根据权利要求1所述的方法,其特征在于,所述在所述容器中执行与所述目标代码特性对应的第一测试用例,并输出第一测试报告包括:根据所述目标代码特性确定与所述目标代码特性对应的所述第一测试用例;将所述第一测试用例中的每一个测试用例作为当前测试用例,对所述当前测试用例执行如下操作:在所述容器中执行所述当前测试用例,同时统计当前测试覆盖率,输出对应的所述当前测试用例对应的当前测试报告,其中,所述当前测试报告为所述第一测试报告中的任意一个,所述当前测试报告包括当前测试结果、当前失败原因以及当前解决办法,所述当前解决办法是在数据库中的学习记录中根据所述当前失败原因查找得到的,所述学习记录中保存有所述当前失败原因对应的当前解决办法;在所述当前测试结果为测试通过,且所述当前测试覆盖率大于第一阈值的...

【专利技术属性】
技术研发人员:胡麦芳张延楠吕志成詹士潇李伟
申请(专利权)人:杭州趣链科技有限公司
类型:发明
国别省市:

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

1