CN112256593B - 一种程序处理方法、装置、计算机设备和可读存储介质 - Google Patents

一种程序处理方法、装置、计算机设备和可读存储介质 Download PDF

Info

Publication number
CN112256593B
CN112256593B CN202011507542.XA CN202011507542A CN112256593B CN 112256593 B CN112256593 B CN 112256593B CN 202011507542 A CN202011507542 A CN 202011507542A CN 112256593 B CN112256593 B CN 112256593B
Authority
CN
China
Prior art keywords
test
block chain
fault
tested
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011507542.XA
Other languages
English (en)
Other versions
CN112256593A (zh
Inventor
陈金龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202011507542.XA priority Critical patent/CN112256593B/zh
Publication of CN112256593A publication Critical patent/CN112256593A/zh
Application granted granted Critical
Publication of CN112256593B publication Critical patent/CN112256593B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供了一种程序处理方法、装置、计算机设备和可读存储介质,其中方法包括:获取待测区块链程序;将所述待测区块链程序部署至服务器集群中的测试服务器集群,以使所述测试服务集群进行针对所述待测区块链程序的容错共识机制的容错测试;若所述容错测试通过,则将所述待测区块链程序部署至所述服务器集群;在所述服务器集群运行所述待测区块链程序过程中,统计非正常服务器的数量,并根据所述非正常服务器的数量和所述待测区块链程序的容错共识机制执行业务操作,可以提高区块链程序的部署效率和业务操作的准确率。

Description

一种程序处理方法、装置、计算机设备和可读存储介质
技术领域
本发明涉及互联网技术领域,尤其涉及一种程序处理方法、装置、计算机设备和可读存储介质。
背景技术
目前,随着互联网技术的不断发展,越来越多的软件研发工作在不断的进行,这就意味着需要对软件研发进行不断的测试。传统软件程序研发流程主要是:开发人员编写程序后,转交给测试人员;测试人员对程序测试通过后,转交给运营人员;运营人员在服务器集群上人工部署程序并启动程序。可见,目前程序上线的自动化程度低下,影响程序上线效率;再有,程序运行阶段,会监控每台服务器的状态,只要单个服务器出现问题,就会出现告警。
但当程序是存在容错机制的区块链程序时,即使单个服务器出现问题,整个区块链网络也可以正常运行。因此,如何提高区块链程序的部署效率以及如何避免误告警是当前亟待解决的问题。
发明内容
本发明实施例提供了一种程序处理方法、装置、计算机设备和可读存储介质,可以自动化部署区块链程序,提高了区块链程序的部署效率;且对区块链程序的容错共识机制进行容错测试,以提高业务操作的准确率。
本申请实施例一方面提供了一种程序处理方法,包括:
获取待测区块链程序;
将所述待测区块链程序部署至服务器集群中的测试服务器集群,以使所述测试服务集群进行针对所述待测区块链程序的容错共识机制的容错测试;
若所述容错测试通过,则将所述待测区块链程序部署至所述服务器集群;
在所述服务器集群运行所述待测区块链程序过程中,统计非正常服务器的数量,并根据所述非正常服务器的数量和所述待测区块链程序的容错共识机制执行业务操作。
本申请实施例一方面提供了一种程序处理方法,应用于目标测试服务器,所述目标测试服务器是测试服务器集群中的任一测试服务器,所述测试服务器集群属于服务器集群,所述方法包括:
运行运营平台发送的待测区块链程序;
对所述待测区块链程序的容错共识机制进行容错测试,得到运行结果;
将所述运行结果发送至所述运营平台,以使所述运营平台根据所述运行结果确定容错测试结果,若所述容错测试结果为测试通过结果,则所述运营平台将所述待测区块链程序部署至所述服务器集群,以及在所述服务器集群运行所述待测区块链程序过程中,所述运营平台统计非正常服务器的数量,并根据所述非正常服务器的数量和所述待测区块链程序的容错共识机制执行业务操作。
本申请实施例一方面提供了一种程序处理装置,可部署在运营平台,所述装置包括:
获取单元,用于获取待测区块链程序;
处理单元,用于将所述待测区块链程序部署至服务器集群中的测试服务器集群,以使所述测试服务集群进行针对所述待测区块链程序的容错共识机制的容错测试;
所述处理单元,还用于若所述容错测试通过,则将所述待测区块链程序部署至所述服务器集群;
所述处理单元,还用于在所述服务器集群运行所述待测区块链程序过程中,统计非正常服务器的数量,并根据所述非正常服务器的数量和所述待测区块链程序的容错共识机制执行业务操作。
本申请实施例一方面提供了一种程序处理装置应用于目标测试服务器,所述目标测试服务器是测试服务器集群中的任一测试服务器,所述测试服务器集群属于服务器集群,所述装置包括:
处理单元,用于运行运营平台发送的待测区块链程序;
所述处理单元,还用于对所述待测区块链程序的容错共识机制进行容错测试,得到运行结果;
发送单元,用于将所述运行结果发送至所述运营平台,以使所述运营平台根据所述运行结果确定容错测试结果,若所述容错测试结果为测试通过结果,则所述运营平台将所述待测区块链程序部署至所述服务器集群,以及在所述服务器集群运行所述待测区块链程序过程中,所述运营平台统计非正常服务器的数量,并根据所述非正常服务器的数量和所述待测区块链程序的容错共识机制执行业务操作。
本申请实施例一方面提供了一种计算机设备,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述所述的程序处理方法。
本申请实施例一方面提供了一种计算机可读存储介质,该计算机可读存储介质中存储有程序指令,该程序指令被执行时,用于实现上述所述的程序处理方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,计算机程序产品或计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中,计算机指令被计算机设备的处理器执行时,执行上述所述的程序处理方法。
在本申请实施例中,运营平台可将待测区块链程序自动化部署到服务器集群中的测试服务器集群,以验证待测区块链程序是否考虑容错场景,无需人工部署,有效提高了部署区块链程序效率。在确定出待测区块链程序具有容错共识机制后,可将待测区块链程序的容错共识机制纳入业务操作过程的判断,以此提高在待测区块链程序上线过程中业务操作的准确率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种程序处理系统的结构示意图;
图2a-图2d是本发明实施例提供的一种程序处理的场景示意图;
图3是本发明实施例提供的一种程序处理方法的流程示意图;
图4是本发明实施例提供的一种程序处理方法的流程示意图;
图5a是本发明实施例提供的一种代码构建界面的示意图;
图5b是本发明实施例提供的一种多个代码检测工具选项的显示示意图;
图5c是本发明实施例提供的一种质量阈值设置界面的示意图;
图5d是本发明实施例提供的一种输出质量结果提示信息的示意图;
图5e是本发明实施例提供的一种功能测试报告的示意图;
图5f是本发明实施例提供的一种提醒消息卡片的示意图;
图5g是本发明实施例提供的一种每个服务器运行的状态的示意图;
图5h是本发明实施例提供的一种每个服务器设置报错阈值和时长阈值的示意图;
图5i是本发明实施例提供的一种告警信息的示意图;
图6是本发明实施例提供的一种程序处理方法的流程示意图;
图7为本发明实施例提供的一种程序处理方法的交互示意图;
图8a-图8c是本发明实施例提供的一种程序处理方案的示意图;
图9是本发明实施例提供的一种程序处理装置的结构示意图;
图10是本发明实施例提供的一种程序处理装置的结构示意图;
图11是本发明实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
区块链是一种多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术,也就是分布式账本技术。区块链由多个区块组成。在创始块中包括区块头和区块主体,创始块的下一区块以创始块为父区块,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
为了达到多中心、不可篡改的目的,区块链网络中的多节点满足一定的容错机制,通常采用拜占庭容错(Byzantine Fault Tolerance,BFT)共识机制,即在多节点构成的共识区块链网络中,若存在某节点宕机、内存溢出或者作恶,整个区块链网络也是可以正常运行的。其中,BFT共识主要原理如下:假设分布式系统拥有n个节点,并假设整个系统拜占庭节点不超过 m 台即满足n≥3m+1。拜占庭容错系统需要满足如下两个条件:所有非拜占庭节点使用相同的输入信息,产生同样的结果,如果输入的信息正确,那么所有非拜占庭节点必须接收这个消息,并计算相应的结果。
基于上述涉及的区块链,本申请可应用在如下场景:当研发出新的区块链程序或者对原有区块链版本进行版本更新时,可采用本申请对待测区块链程序的容错共识机制(例如上述BFT共识机制)进行容错测试,并在容错测试通过后,可将该待测区块链程序部署到服务器集群中,并在服务器集群中运行待测区块链程序过程中监控每个服务器,若监控到的非正常服务器的数量不满足容错共识机制(如非正常服务器的数量不满足BFT共识机制),则可输出告警信息,并通知服务器集群停止响应与待测区块链程序相关的所有业务请求;若监控到的非正常服务器的数量满足容错共识机制(如非正常服务器的数量满足BFT共识机制),则响应与待测区块链程序相关的所有业务请求。
请参见图1,图1是本发明实施例提供的一种程序处理系统,所述程序处理系统包括终端设备101、运营平台102、分布式网络103。其中,终端设备101可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device ,MID)、可穿戴设备等智能设备。运营平台102可以是软件研发提测管理平台(REQ),在运营平台102中可管理软件版本开发、提测、缺陷提交、回归测试以及发布等整个生命周期。分布式网络103可以是区块链网络或者服务器集群构成的网络。分布式网络103包括多个服务器(也可称节点),该多个服务器可以是独立的物理服务器,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备101与运营平台102可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
下述主要以运营平台102和分布式网络103如何对待测区块链程序的容错共识机制进行容错测试,以及后续根据容错共识机制和非正常服务器的执行业务操作为例,进行详细说明:
请参见图2a-图2d,其是本申请实施例提供的一种程序处理的场景示意图。如图2a所示,在区块链产品迭代周期内,开发人员可在代码提交界面20a中向运营平台102提交待测区块链源代码,并触发流水线对待测区块链源代码的检测以及后续测试流程等。运营平台102在接收到待测区块链源代码后,对待测区块链源代码进行扫描,并对扫描通过的待测区块链源代码进行编译,从而得到待测区块链程序。与此同时,运营平台102可对待测区块链源代码进行单元测试,得到该待测区块链源代码的覆盖率。在该待测区块链源代码满足覆盖率满足质量阈值后,运营平台102将待测区块链程序发送至服务器集群中的测试服务器集群。测试服务器集群在接收到待测区块链程序后,安装待测区块链程序,使得测试服务器集群形成一个区块链网络。其中,该测试服务器集群包括故障测试服务器20b和正常测试服务器。
在测试服务器集群运行该待测区块链程序之后,运营平台102将针对待测区块链程序的容错共识机制的容错测试用例发送给测试服务器集群,由于容错共识机制是指当某些服务器出现故障时,可通过共识来保证整个业务的正常处理。因此,在图2b中该测试服务器集群分别设置故障测试服务器20b和正常测试服务器,以使得故障测试服务器20b和正常测试服务器满足容错共识机制,然后测试服务器集群可执行针对该容错共识机制的容错测试用例,并将运行结果发送给运营平台102,运营平台102可对该运行结果与预期效果进行对比来确定针对容错共识机制的容错测试是否通过。示例性的,该容错测试用例包括合法交易的待上链交易,运营平台102将针对待测区块链程序的容错共识机制的容错测试用例发送给测试服务器集群之后,测试服务器集群中某一个测试服务器可接收测试服务器集群广播的多个投票结果,并根据投票结果确定运行结果,并将运行结果发送给运营平台102。
在图2c中,运营平台102接收测试服务器集群发送的运行结果来判断与预期效果一致,如上述是将合法交易进行上链,该运行结果为成功上链,与预期效果一致,则容错测试通过;并将该待测区块链程序进行上线,即将待测区块链程序发送至服务器集群,然后服务器集群运行该待测区块链程序,形成新的区块链网络。在图2d中运营平台102不断监控服务器集群形成的区块链网络的状态,并获取监控报告,并根据该监控报告统计非正常服务器的数量,进而根据非正常服务器的数量以及针对待测区块链程序的容错共识机制执行业务操作。例如,可如图2d所示,运营平台102确定出非正常服务器的数量不满足针对待测区块链程序的容错共识机制中的容错数量阈值,可认为新的区块链网络存在异常,则运营平台102向终端设备发送告警信息。其中,这里的业务操作就为发送告警信息。
通过本申请,在开发人员提交待测区块链源代码后,可自动触发流水线执行对该待测区块链源代码的检查,以及后续将待测区块链源代码编译生成待测区块链程序之后,自动化部署到测试服务器集群,并对待测区块链程序的测试、上线监控等一系列操作。从而可以实现开发自测、自动构建测试环境、自动将待测区块链源代码编译生成待测区块链程序;并自动将待测区块链程序部署到多服务器、并对待测区块链程序自动测试、监控告警,实现全流程自动化,无需人工干预;并且对待测区块链程序的容错共识机制进行容错测试,充分考虑容错场景,将待测区块链程序的容错共识机制纳入业务操作过程的判断,使得业务操作的准确率提高。
请参见图3,图3为本申请实施例提供的一种程序处理方法的流程示意图。该方法应用于运营平台,如图3所示,该程序处理方法可包括步骤S301~S304。其中:
S301、获取待测区块链程序。
其中,待测区块链程序为二进制区块链程序,该待测区块链程序是指通过编译后下载并安装就可运行的程序。
在具体实现中,运营平台可先通过运营平台的客户端获取待测区块链源代码,并对待测区块链源代码进行扫描和单元测试,以保证该待测区块链源代码的正确和质量,并将待测区块链源代码编译生成待测区块链程序。
S302、将待测区块链程序部署至服务器集群中的测试服务器集群,以使测试服务集群进行针对待测区块链程序的容错共识机制的容错测试。
其中,服务器集群可以是指未建立连接关系的一些独立服务器,也可以是指原有服务器之间已经建立连接关系。容错共识机制可以是拜占庭容错(或称为BFT)共识机制,容错共识机制是在多服务器构成的共识区块链网络中,若存在某服务器宕机、内存溢出或者作恶,整个区块链网络可通过共识正常运行。
在具体实现中,运营平台可在服务器集群中随机或者按照设定规则选取部分服务器作为测试服务器集群,然后运营平台将待测区块链程序自动部署至随机选出来的测试服务器集群,以使测试服务集群下载运行该待测区块链程序,并进行针对待测区块链程序的容错共识机制的容错测试。
在一种可行的实施例中,为了保证容错测试的准确性,运营平台可控制测试服务器集群中故障测试服务器的数量和正常测试服务器数量,以使故障测试服务器集群和正常测试服务器集群进行针对待测区块链程序的容错共识机制的容错测试。其中,故障测试服务器集群中的故障测试服务器一般是指:服务器宕机、内存溢出都为故障测试服务器。故障测试服务器集群可以随机进行选择或者按照一定规则进行选择。如按照测试服务器集群中测试服务器编号为单数来选择故障测试服务器集群。示例性的,若该容错共识机制为拜占庭容错共识机制,则该故障测试服务器的数量不超过拜占庭容错共识机制的容错数量阈值。在测试服务器集群有4台服务器,可先设置满足该容错共识机制的容错数量阈值的故障测试服务器数量为1台,即随机确定任一台测试服务器为故障测试服务器,测试服务器为正常测试服务器的数量为3。然后1台故障测试服务器和3台正常测试服务器集群进行针对待测区块链程序的容错共识机制的容错测试。
在测试服务器集群对待测区块链的容错共识机制的容错测试完成后,运营平台可根据容错测试完成结果确定容错测试是否通过。若根据容错测试完成结果与预期效果一致,则确定容错测试通过,可执行步骤S303;若根据容错测试完成结果与预期效果不一致,则容错测试未通过,并向运营平台的客户端发送告警信息,该告警信息可用于指示待测区块链的容错共识机制的容错测试未通过。
S303、若容错测试通过,则将待测区块链程序部署至服务器集群。
在具体实现过程中,若待测区块链的容错共识机制的容错测试通过,说明待测区块链程序具有容错共识机制,则可将待测区块链程序发送至服务器集群,以使服务器集群运行待测区块链程序。需要说明的是,在将待测区块链程序发送至服务器集群之前,需要对该服务器集群中服务器进行数据清理,以防残留数据对待测区块链程序运行带来影响。其中,将待测区块链程序自动化部署至服务器集群可采用代码命令实现,该代码命令如下:
#!/bin/bash
anynowtime=”date +‘%Y-%m-%d %H:%M:%S’”
NOW=“echo [\’$anynowtime\’][PID:$$]”
cmd_rm=“rm-rf/data/majing/${BK_CI_BUILD_NUM}/majiang*.tar.gz”
cmd_cp1=“cp-r/data/majing/${BK_CI_BUILD_NUM}/majiang*/majiang/data/gopath/majiang/
majiang/”
cmd_cp2=“cp-r/data/majing/${BK_CI_BUILD_NUM}/majiang*/majiang/data/gopath/4nodes/
node2/”
cmd_cp3=“cp-r/data/majing/${BK_CI_BUILD_NUM}/majiang*/majiang/data/gopath/4nodes/
node3/”
cmd_cp4=“cp-r/data/majing/${BK_CI_BUILD_NUM}/majiang*/majiang/data/gopath/4nodes/
node4/”
cmd_cp5=“cp-r/data/majing/${BK_CI_BUILD_NUM}/majiang*/majiang/data/gopath/4nodes/
node5/”
cmd_cp6=“cp-r/data/majing/${BK_CI_BUILD_NUM}/majiang*/majiang/data/gopath/4nodes/
node6/”
cmd_cp7=“cp-r/data/majing/${BK_CI_BUILD_NUM}/majiang*/majiang/data/gopath/4nodes/
node7/”
cmd_cp8=“cp-r/data/majing/${BK_CI_BUILD_NUM}/majiang*/majiang/data/gopath/4nodes/
node8/”
#### 可在脚本开始运行时调用,打印当时的时间戳及PID
function job_start
{
Echo “’eval $NOW’job_start”
res=’$cmd_rm’
res1=’$cmd_cp1’
res2=’$cmd_cp2’
res3=’$cmd_cp3’
res4=’$cmd_cp4’
res5=’$cmd_cp5’
res6=’$cmd_cp6’
res7=’$cmd_cp7’
res8=’$cmd_cp8’
}
在一种可行的实施例中,在容错测试通过后,还可对待测区块链程序的功能进行测试,以确定该待测区块链程序是否满足研发需求。由于本申请主要针对的是区块链进行研发。因此,在进行待测区块链程序的功能时可从交易上链、数据查询、合约部署等多方面进行功能测试。在具体实现中,运营平台可向测试服务器集群发送功能测试用例,并获取测试服务器集群在待测区块链程序上执行该功能测试用例的功能测试报告。若该功能测试报告指示功能测试通过,则可将待测区块链程序部署至服务器集群,若该功能测试报告指示功能测试未通过,则输出提示信息,该提示信息指示待测区块程序的功能测试未通过。
需要说明的是,上述将待测区块链程序部署到服务器中可以理解为待测区块链程序上线。
S304、在服务器集群运行待测区块链程序过程中,统计非正常服务器的数量,并根据非正常服务器的数量和待测区块链程序的容错共识机制执行业务操作。
其中,非正常服务器可以是故障服务器或者作恶服务器。
在具体实现中,在服务器集群运行待测区块链程序过程中,运营平台可对服务器集群进行实时监控,并统计非正常服务器的数量。然后获取服务器集群的服务器数量,并根据非正常服务器的数量、服务器集群的服务器数量和待测区块链程序的容错共识机制执行业务操作。其中,业务操作可以是输出报警信息、通知服务器集群停止响应与待测区块链程序相关的所有业务请求;或者响应与待测区块链程序相关的所有业务请求。
在本申请实施例中,运营平台可将待测区块链程序自动化部署到服务器集群中的测试服务器集群,以验证待测区块链程序是否考虑容错场景,无需人工部署,有效提高了部署区块链程序效率。若在确定出待测区块链程序具有容错共识机制后,可将待测区块链程序的容错共识机制纳入业务操作过程的判断,以此提高在待测区块链程序上线过程中业务操作的准确率。
请参见图4,图4为本申请实施例提供的一种程序处理方法的流程示意图。该方法应用于运营平台,如图4所示,该程序处理方法可包括步骤S401~S407。其中:
S401、当接收到针对待测区块链源代码的构建请求时,显示代码构建界面。
其中,代码构建界面包括多个程序语言选项。
在具体实现中,开发人员可以将待测区块链源代码提交到分布式版本控制系统(GIT)仓库触发或者手动触发运营平台对待测区块链源代码进行扫描、编译、以及测试、运营、监控等全流水线操作。运营平台可在接收到待测区块链源代码之后,当接收到针对待测区块链源代码的构建请求时,显示代码构建界面,该代码构建界面可如图5a所示。
S402、当多个程序语言选项中的目标程序语言选项被触发时,在代码构建界面显示与目标程序语言选项匹配的多个代码检测工具选项。
在具体实现中,当多个程序语言选项中的目标程序语言选项被触发时,运营平台可在代码构建界面显示所有代码检测工具,并且在代码构建界面按照一定规则显示与目标程序语言选项匹配的多个代码检测工具选项。如图5b所示,当多个程序语言选项中的目标程序语言选项被触发时,运营平台将与目标程序语言选项匹配的多个代码检测工具选项设置可选项,即匹配的多个代码检测工具选项显示为黑色;其他与目标程序语言选项不匹配的多个代码检测工具选项设置为不可选项,即不匹配的多个代码检测工具选项显示为灰色。
S403、当多个代码检测工具选项中的目标代码检测工具选项被触发时,调用目标代码检测工具选项对应的代码检测工具对待测区块链源代码进行代码扫描。
在具体实现中,调用目标代码检测工具选项对应的代码检测工具对待测区块链源代码进行代码扫描,可以判断待测区块链源代码是否存在安全性问题以及符合语法要求,若对待测区块链源代码扫描通过,说明待测区块链源代码安全,且符合语法要求,则执行步骤S404;若对待测区块链源代码扫描未通过,说明待测区块链源代码存在安全性问题或者不符合语法要求,则将该待测区块链源代码返回给客户端,以使开发人员对该待测区块链源代码再次检测修改。
S404、当代码扫描通过后,对待测区块链源代码进行编译,得到待测区块链程序。
其中,待测区块程序为二进制区块链程序。
在具体实现中,当对待测区块链源代码扫描通过后,可拉起编译环境对待测区块链源代码进行编译,得到待测区块链程序。其中,对待测区块链源代码进行编译过程中,实际上可理解为将待测区块链源代码构建为待测区块链程序的过程,因此,该待测区块链程序还可称为二进制产物。在构建过程中,主要是构建待测区块链程序、单元测试的覆盖率产物和带有覆盖率插桩的产物。构建待测区块链程序可方便后续直接下载安装该待测区块链程序并进行待测区块链程序的功能测试以及容错共识机制的容错测试,运行单元测试的覆盖率产物即可得到待测区块链源代码的覆盖率。在运行单元测试的覆盖率产物时,还可以运行带有覆盖率插桩的产物,带有覆盖率插桩的产物可用于监控并分析待测区块链源代码的单元测试的覆盖率。在构建完成之后,可将待测区块链程序和单元测试的覆盖率产物归档在运营平台中的预设位置。
其中,运营平台构建待测区块链程序和带有有覆盖率插桩的产物的方式如下:
cd majiang_master
make wget --no-check-certificate --content-disposition
https://github.com/qiniu/goc/releases/download/v1.2.2/goc-v1.2.2-linux-amd64.tar.gz
tar -zxvf goc-v1.2.2-linux-amd64.tar.gz
最终构建待测区块链程序和单元测试的覆盖率产物可如表1所示。其中,该待测区块链程序的名称为majiang-master-95e91b.tar.gz,单元测试的覆盖率产物的名称为.cout,带有覆盖率插桩的产物的名称为majiang_cov。
表1
Figure 603048DEST_PATH_IMAGE001
在一种可行的实施例中,为了保证待测区块链源代码的质量,还可利用覆盖率来对待测区块链源代码进行评估。在具体实现中,运营平台可先执行测试用例对待测区块链源代码进行单元测试,其中,覆盖率是指待测区块链源代码被测的比例,即覆盖率为被测代码行数/参测代码总行数。可以理解的是,待测区块链源代码的函数或者类有5行代码,若对待测区块链源代码进行单元测试后,只测试了2行代码,则这个函数或者类的覆盖率为40%。运营平台对所有函数的覆盖率进行求和平均,得到待测区块链源代码的覆盖率。其中,对待测区块链源代码执行单元测试的命令如下:go test ./... -cover -coverprofile=c.out,运营平台执行单元测试命令后,可生成如表2的单元测试执行日志,该测试日志包括每个函数的路径和每个函数测试得到的覆盖率。
表2
Figure 263836DEST_PATH_IMAGE002
需要说明的是,表2为示例性的给出待测区块链程序中的函数经过单元测试得到的覆盖率。
在一种可行的实施例中,为了对提交测试的待测区块链程序的质量进行控制,本申请可在运营平台中预先设置质量阈值,如图5c所示,运营平台可通过客户端提供设置质量阈值的界面,用户可在该将界面中设置提交该待测区块链源代码进行测试的质量阈值。例如图5c中,质量阈值可设置为大于或等于30。
然后运营平台判断待测区块链源代码的覆盖率是否大于质量阈值,若待测区块链源代码的覆盖率大于或者等于质量阈值,说明该待测区块链源代码能够实现全部或者大部分功能,则执行步骤S405。在一种可行的实施例中,若待测区块链源代码的覆盖率大于或者等于质量阈值,运营平台还可输出质量结果提示信息,该质量结果提示信息可如图5d所示,该质量结果提示信息包括检测质量结果、质量阈值检测已通过等信息。若待测区块链源代码的覆盖率小于质量阈值,则运营平台在待测区块链源代码中标记已执行单元测试的测试用例的代码和未执行单元测试的测试用例的代码,并将标记后的待测区块链源代码、单元测试的测试用例和通知消息发送至客户端,其中,该通知信息用于通知客户端待测区块链源代码针对单元测试的测试用例的覆盖率小于质量阈值,以使得后续开发人员根据和通知消息和上述标记后的待测区块链源代码进行检测,该检测范围可包括单元测试的测试用例和待测区块链源代码。
在一种可行的实施例中,还可根据待测区块链源代码的成功率和覆盖率一起来作为将待测区块链程序部署至服务器集群中的测试服务器集群的条件,以提高后续对待测区块链程序的容错共识机制的容错测试和功能测试的测试质量和测试成功率。在具体实现中,运营平台根据单元测试的测试用例对待测区块链源代码进行单元测试,得到待测区块链源代码的成功率和覆盖率;当待测区块链源代码运行的成功率大于或者等于成功阈值,且待测区块链源代码的覆盖率大于或者质量阈值,则执行步骤S405;当待测区块链源代码运行的成功率小于成功阈值,或待测区块链源代码的覆盖率小于质量阈值,则运营平台在待测区块链源代码中标记已执行单元测试的测试用例的代码和未执行单元测试的测试用例的代码,并将标记后的待测区块链源代码、单元测试的测试用例和通知消息发送至客户端。其中,该通知信息用于通知待测区块链源代码针对单元测试的测试用例的覆盖率小于质量阈值,且针对单元测试的测试用例的成功率小于成功阈值。
S405、将待测区块链程序部署至服务器集群中的测试服务器集群,以使测试服务集群进行针对待测区块链程序的容错共识机制的容错测试。
在一种可行的实施例中,测试服务器集群包括故障测试服务器集群和正常测试服务器集群,运营平台可将待测区块链程序部署至故障测试服务器集群和正常测试服务器集群,并将针对容错共识机制的容错测试用例发送至测试服务器集群,以使故障测试服务器集群和正常测试服务器集群在待测区块链程序上运行容错测试用例,得到运行结果。其中,若该容错测试用例可包括属于合法交易的待上链交易,则运行结果为该待上链交易成功上链或者该待上链交易上链失败。然后运营平台接收测试服务器集群发送的运行结果,并根据运行结果确定容错测试结果,即判断接收到的运行结果与预期效果是否一致。若该运行结果为该待上链交易成功上链,且该预期效果也是该待上链交易成功上链,即接收到的运行结果与预期效果一致,则说明待测区块链程序的容错共识机制的容错测试通过,并执行步骤S406;若该运行结果为该待上链交易上链失败,且该预期效果为该待上链交易成功上链,即接收到的运行结果与预期效果不一致,则说明待测区块链程序的容错共识机制的容错测试未通过,并输出提示信息,该提示信息包括测区块链程序的容错共识机制的容错测试未通过,以使相关人员重新检测待测区块链程序或者容错测试用例。
需要说明的是,上述容错测试用例除了包括合法交易的待上链交易之外,还可包括合约部署。且容错测试用例还可包括其他信息。例如针对该合法交易的待上链交易的预期效果等。
在一种可行的实施例中,运营平台获取测试服务器集群的功能测试报告,功能测试报告包括第一功能测试报告和第二功能测试报告,第一功能测试报告是测试服务集群在第一环境下,进行针对待测区块链程序的功能测试后生成的测试报告,第二功能测试报告是测试服务集群在第二环境下,进行针对待测区块链程序的功能测试后生成的测试报告;若功能测试报告指示功能测试通过,则执行步骤S406;若功能测试报告指示功能测试未通过,则输出提示信息,该提示信息包括测区块链程序的功能测试未通过,以使相关人员重新检测待测区块链程序或者功能测试用例。其中,第一环境和第二环境是根据测试服务器集群中的测试服务器的状态划分的。例如,测试服务器集群中的测试服务器为正常测试服务器,由正常测试服务器构成的环境可为第一环境,该第一环境可理解为正常环境;测试服务器集群中的测试服务器部分出现问题,其余为正常测试服务器,则由部分故障测试服务器和部分正常测试服务器构成的环境为第二环境,该第二环境可理解为异常环境。需要说明的是,第一环境和第二环境还可根据测试服务器运行的环境来决定,例如测试服务器中的一部分测试服务器运行的是win7的操作系统,另一部分测试服务器运行的是win10的操作系统。
在一种可行的实施例中,运营平台可获取测试服务器集群在第一环境下运行待测区块链程序执行不同功能测试用例生成的第一功能测试报告。同理,运营平台可获取测试服务器集群在第二环境下,运行待测区块链程序执行不同功能测试用例生成的第二功能测试报告,并将该第一功能测试报告和第二功能测试报告合并为功能测试报告,并将功能测试报告归档在运营平台的预设位置中。图5e为在第一环境和第二环境下执行不同的功能测试用例的功能测试报告合并为功能测试报告,其中,该图5e主要展示第二环境下执行不同的功能测试用例的功能测试报告,不同功能测试用例可以包括但不限于图5e所示的交易上链、多笔交易上链、根据哈希查询区块等等。
在一种可行的实施例中,为了避免开发人员一直人工监控测试进度,可提前设置通知途径。运营平台根据运行结果确定容错测试结果之后或者获取到功能测试报告之后,运营平台可按照预先设置的通知途径发送提醒消息,该提醒消可包括针对容错测试结果和功能测试报告生成的链接,并提醒开发人员待测区块链程序的测试已完成,可点击相应链接查看。其中,该通知途径可以是企业微、微信等。在图5f中,运营平台获取到运行结果和功能测试报告之后,生成提醒消息卡片,并在该提醒消息卡片中提供两种查看途径,分别为电脑查看途径和手机查看途径。
S406、若容错测试通过,则将待测区块链程序部署至服务器集群。
S407、在服务器集群运行待测区块链程序过程中,统计非正常服务器的数量,并根据非正常服务器的数量和待测区块链程序的容错共识机制执行业务操作。
在具体实现中,在服务器集群运行待测区块链程序过程中,运营平台监控服务器集群中每个服务器的运行状态,并输出每个服务器的监控日志;其中,运营平台可实时进行监控每个服务器的运行状态,或者周期性监控每个服务器的运行状态,图5g示意给出对每个服务器运行的状态。其中,图5g中的服务器1对应的数字代表该服务器在运行该待测区块链程序的线程数量,同理其他服务器可对应理解。然后运营平台根据每个服务器的监控日志从服务器集群中确定非正常服务器,其中,针对服务器集群中的任一服务器,根据任一服务器的监控日志从服务器集群中确定非正常服务器的具体流程可以是:统计任一服务器的监控日志中的报错数量,当报错数量不小于报错阈值,且报错数量不小于报错阈值的持续时长达到时长阈值时,则将任一服务器确定为非正常服务器。其中,在运行该待测区块链程序过程中,服务器集群报错的原因可包括与区块链相关的错误,例如交易上链失败等。报错阈值和时长阈值可根据经验或者实际情况进行设置。具体的,可对服务器集群中的每个服务器都按照如图5h所示设置报错阈值和时长阈值,例如在图5h中可设置报错阈值为3,并且设置时长阈值。当任一服务器不小于报错阈值3,且报错数量不小于报错阈值的持续时长达到时长阈值时,则将任一服务器确定为非正常服务器。进一步地,运营平台统计非正常服务器数量,并根据非正常服务器的数量和待测区块链程序的容错共识机制执行业务操作。
其中,根据非正常服务器的数量和待测区块链程序的容错共识机制执行业务操作可包括以下步骤s11-s13:
s11、获取服务器集群的服务器数量。
s12、根据待测区块链程序的容错共识机制和服务器数量确定容错数量阈值。例如,该容错共识机制为拜占庭容错共识机制,该拜占庭容错共识机制是指N=3f+1,其中,N是指服务器集群中的总服务器数,f为故障节点数。运营平台获取服务器集群的服务器数量为7,根据服务器数量7和拜占庭容错共识机制可确定出容错数量阈值为2。可以理解的是,该容错数量阈值是指在运行待测区块链程序中最大故障服务器的数量。需要说明的是,该容错数量阈值根据容错共识机制和服务器集群确定。
s13、根据容错数量阈值和非正常服务器的数量执行业务操作。
在具体实现中,运营平台可判断非正常服务器的数量是否大于容错数量阈值。当非正常服务器的数量大于容错数量阈值时,在一种可行的实施例中,运营平台输出告警信息。该告警信息用于指示服务器集群运行待测区块链程序异常,其中,运营平台可预先设置输出告警信息的方式。运营平台可将该告警信息发送至客户端,或者,运营平台可将告警信息通过即时通信方式发送给相关人员,该告警信息可参见图5i。图5i中告警信息包括错误日志(报错数量)超过设定阈值,以及告警地址等等。例如可通过企业微信、微信等即时通讯方式发送给相关人员。在一种可行的实施例中,运营平台输出告警信息,且通知服务器集群停止响应与待测区块链程序相关的所有业务请求。在另一种可行的实施例中,当非正常服务器的数量小于或者等于容错数量阈值,说明该区块链网络未出现问题,服务器集群可响应与待测区块链程序相关的所有业务请求。
在本申请实施例中,可根据代码构建界面选择合适的目标程序语音选项,并确定出目标程序语音选项匹配的目标代码检测工具选项,利用目标代码检测工具选项对应的目标代码检测工具可对待测区块链程序源代码进行扫描,可以确定待测区块链源代码的安全和编写规范,从而保证后续对待测区块链源代码编译的准确性。并且通过覆盖率来判断待测区块链程序源代码的质量,以保证后续对该待测区块链程序的容错共识机制的容错测试的准确性。
请参见图6,图6为本申请实施例提供的一种程序处理方法的流程示意图。该方法应用于目标测试服务器,该目标测试服务器是测试服务器集群中的任一测试服务器,该测试服务器集群属于服务器集群。如图6所示,该程序处理方法可包括步骤S601~S603。其中:
S601、运行运营平台发送的待测区块链程序。
在具体实现中,目标测试服务器可接收运营平台发送的待测区块链程序,并运行该待测区块链程。
S602、对待测区块链程序的容错共识机制进行容错测试,得到运行结果。
在具体实现中,目标测试服务器可运行待测区块链程序,并在运行待测区块链程序过程中,利用容错测试用例对待测区块链程序的容错共识机制进行容错测试,得到运行结果。
在一种可行的实施例中,为了能够保证针对容错共识机制的容错测试的准确性,可将测试服务器集群分为故障测试服务器集群和正常测试服务器集群。由于是对容错共识机制的容错测试,因此在将测试服务器集群分为故障测试服务器集群和正常测试服务器集群过程中,可设置满足容错共识机制的容错数量阈值的故障测试服务器集群。例如,容错共识机制为N>=3f+1,其中,N为测试服务器集群的测试服务器总数,f为故障测试服务器数量(当N=3f+1,f可理解为容错数量阈值)。在对容错共识机制为N=3f+1进行容错测试时,测试服务器总数为7,设置满足容错共识机制的容错数量阈值的故障测试服务器集群:从测试服务器集群中随机两台测试服务器设置为故障测试服务器,其余测试服务器为正常测试服务器。
然后目标测试服务器和其他测试服务器接收运营平台发送过的针对容错共识机制的容错测试用例,其中,该容错测试用例包括属于合法交易的待上链交易;可以理解为该容测试用例包括能够成功上链的交易。进一步,目标测试服务器可将该待上链交易生成区块并发送给其他测试服务器,然后其他测试服务器对区块中的待上链交易进行验证,并广播针对该待上链交易的验证结果。目标测试服务器接收故障测试服务器集群和正常测试服务器集群对待上链交易进行验证后广播的多个验证结果,该多个验证结果是指针对该带上链交易的投票信息,即是否同意该待上链交易上链。从理论上来说,正常服务器集群的验证结果为同意该待上链交易上链,而故障服务器集群的验证结果可能为不同意该待上链交易上链或者不响应该待上链交易的验证请求。
基于此,目标测试服务器可根据多个验证结果确定运行结果的情况可分为:在故障测试服务器满足容错共识机制的容错数量阈值下,目标测试服务器根据多个验证结果确定该待上链交易成功上链。或者,目标测试服务器根据多个验证结果确定该待上链交易上链失败。目标测试服务器向运营平台发送的运行结果可包括该待上链交易成功上链或者该待上链交易上链失败。
在一种可行的实施例中,目标测试服务器还可对待测区块链程序进行功能测试,其中,该区块链程序的功能测试可包括交易上链、智能合约部署、数据查询(如,查询某笔交易)等等。通过对待测区块链程序进行功能测试可以保证整个待测区块链程序能够满足全部或者大部分用户需求。在具体实现中,目标测试服务器可在第一环境和第二环境中分别进行针对待测区块链程序的功能测试,生成功能测试报告,并将功能测试报告发送给运营平台,以使运营平台根据功能测试报告验证待测区块链程序的功能稳定性和鲁棒性。其中,该功能测试报告包括第一功能测试报告和第二功能测试报告。其中,第一环境和第二环境是根据测试服务器集群中的测试服务器的状态划分的。
由于目标测试服务器在第一环境和第二环境中进行针对待测区块链程序的功能测试过程类似,因此接下来以目标测试服务器在第一环境中进行针对待测区块链程序的功能测试进行说明,其中,第一环境为正常环境。
在一种可行的实施例中,目标测试服务器接收运营平台发送功能测试用例,该功能测试用例包括根据哈希值查询区块,然后目标测试服务器可运行该功能测试用例,对该哈希值进行验证。若目标测试服务器对该哈希值验证通过,则可获取与该哈希值对应的区块信息,得到第一功能测试报告,其中该第一功能测试报告包括查到的哈希值对应的区块信息。
在一种可行的实施例中,目标测试服务器接收运营平台发送的针对待测区块链程序的功能测试用例,其中,该功能测试用例包括属于合法交易的待上链交易;可以理解为该功能测试用例包括能够成功上链的交易。进一步,目标测试服务器可将该待上链交易生成区块并发送给其他测试服务器,然后其他测试服务器对区块中的待上链交易进行投票,并广播针对该待上链交易的投票结果。目标测试服务器接收故障测试服务器集群和正常测试服务器集群对待上链交易进行投票后广播的多个投票结果,然后根据多个投票结果确定第一功能测试报告。其中第一功能测试报告可包括该待上链交易上链成功或者该待上链交易上链失败。
需要说明的是,上述只是实例性的给出两种功能测试过程,在实际测试过程中,目标测试服务器在第一环境(即正常环境)中需要将待测区块链程序的功能进行全部测试,以保证整个待测区块链程序的正确性和稳定性。且在第二环境下(即异常环境)对待测区块链程序的容错共识机制的容错测试,以减少自动化测试的时间。
S603、将运行结果发送至运营平台,以使运营平台根据运行结果确定容错测试结果,若容错测试结果为测试通过结果,则将运营平台将待测区块链程序部署至服务器集群,以及在服务器集群运行待测区块链程序过程中,运营平台统计非正常服务器的数量,并根据非正常服务器的数量和待测区块链程序的容错共识机制执行业务操作。
在本申请实施例中,目标测试服务器可对待测区块链程序的容错共识机制以及待测区块链的功能进行测试,得到运行结果和功能测试报告,并将该运行结果和功能测试报告发送至运营平台,以使运营平台根据运行结果和功能测试报告确定待测区块链程序是否正常。
请参见图7,图7为本申请实施例提供的一种程序处理方法的交互示意图。程序处理方法涉及:运营平台和服务器集群,服务器集群又包含测试服务器集群,该程序处理方法可包括以下步骤S701-S706,其中:
S701、运营平台发送待测区块链程序给服务器集群中的测试服务器集群。
在具体实现中,运营平台可先获取待测区块链程序,然后将待测区块链程序发送给服务器集群中的测试服务器集群。
S702、测试服务器集群对待测区块链程序的容错共识机制进行容错测试,得到运行结果。
其中,测试服务器集群包括正常测试服务器集群和故障测试服务器集群,根据测试服务器集群的数量,可设置上述故障测试服务器集群的数量满足待测区块链程序的容错共识机制的容错数量阈值。
在具体实现中,测试服务器集群运行运营平台发送的待测区块链程序,并接收运营平台发送的针对容错共识机制的容错测试用例,然后测试服务器集群在运行的待测区块链程序上执行容错测试用例,得到运行结果。其中,该容错测试用例可包括合法交易的待上链交易。
其中,测试服务器集群在运行的待测区块链程序上对该合法交易的待上链交易进行上链验证,得到运行结果可参见步骤S602对应的具体实现方式,在此不再赘述。
S703、测试服务器集群发送运行结果给运营平台。
在具体实现中,测试服务器集群中的每一台测试服务器都可发送该运行结果给运营平台,或者测试服务器集群经过随机投票选择一台目标测试服务器,然后目标测试服务器发送运行结果给运营平台。
S704、运营平台根据运行结果确定容错测试结果。
其中,目标测试服务器为测试服务器集群中的任一测试服务器。运行结果包括合法交易的待上链交易上链成功或者上链失败。
在具体实现中,由于在步骤S702中设置的故障测试服务器集群的数量满足待测区块链程序的容错共识机制的容错数量阈值,且该待上链交易是可以上链(即预期效果)。因此,若运营平台接收目标测试服务器发送的运行结果为合法交易的待上链交易上链成功,则与预期效果一致,运营平台确定容错测试结果为容错测试通过结果,该容错测试通过结果包括容错测试通过。若运营平台接收目标测试服务器发送的运行结果为合法交易的待上链交易上链失败,则与预期效果不一致,运营平台确定容错测试结果为容错测试未通过结果,该容错测试未通过结果包括容错测试未通过。
S705、若该容错测试结果指示容错测试通过,则发送待测区块链程序给服务器集群。
S706、在服务器集群运行待测区块链程序过程中,运营平台统计非正常服务器的数量,并根据非正常服务器的数量和待测区块链程序的容错共识机制执行业务操作。
其中,步骤S705-S706的具体实现方式可参见步骤S406-S407的具体实现方式,在此不再赘述。
在本申请实施例中,运营平台将待测区块链程序发送给服务器集群中的测试服务器集群,无需人工部署,有效提高了部署区块链程序效率。并且测试服务器集群对待测区块链程序的容错共识机制进行容错测试,得到运行结果,能够自动化测试,减少测试时间。运营平台接收目标测试服务器发送的运行结果,并根据运行结果确定容错测试结果,该容错测试结果指示容错测试通过,则将待测区块链程序发送给服务器集群,后续可将待测区块链程序的容错共识机制纳入业务操作过程的判断,以此提高在待测区块链程序上线过程中业务操作的准确率。
基于上述程序处理方法,本申请还提供一种更为具体的程序处理方案,该程序处理方案可形成区块链研发流水线,即主要包括开发,构建、部署、测试、监控、告警等功能。该程序处理方案的流程可具体分为5个步骤:
(1)在图8a中,涉及步骤-1和步骤-2。当开发人员提交待测区块链源代码到软件研发提测管理平台(对应上述运营平台)时,可根据构建的触发事件触发区块链研发流水线。其中,触发事件为采用Git事件触发(即将待测区块链程序源代码提交到Git仓库)或者手动触发。当触发区块链研发流水线之后,软件研发提测管理平台可构建Linux环境,并对待测区块链源代码进行代码检查(即上述对代码扫描),在代码检查之后,根据该待测区块链源代码进行编译,完成构建待测区块链程序的构建工作,得到待测区块链程序和单元测试的覆盖率产物(即可称为构件),然后将待测区块链程序和单元测试的覆盖率产物进行归档,并执行对待测区块链程序进行单元测试,得到待测区块链程序的覆盖率,将该待测区块链程序的覆盖率报告进行归档。
(2)在将该待测区块链程序的覆盖率进行归档之后,如图8b所示,步骤-3为分布式多节点部署,即在运营平台上可将待测区块链程序部署到正常测试环境和异常测试环境中的多个节点,在将待测区块链程序部署到测试环境中可设置质量红线(即上述质量阈值)。当待测区块链源代码的覆盖率大于质量红线,则构建针对待测区块链程序的作业平台,然后将待测区块链程序进行解压、将原有的服务器集群停止服务6s,并将解压后的待测区块链程序部署至1-7个节点(对于上述测试服务器),然后运营平台清理1-7节点中的数据。接着1-7个节点启动待测区块链程序(即启动进程)。在将待测区块链程序部署异常环境时,也需对原有的服务器集群停止服务8s,并确定清除原有服务器集群中的数据。然后启动待测区块链程序,并进行故障模拟混沌,即选择原有服务器集群中的服务器作为故障服务器,这里可以利用混沌工程的思想来进行故障模拟。在步骤-4中,分别在正常环境和异常环境中自动执行测试计划,基于自动化框架中编写好的自动化用例(功能测试用例和容错测试用例)进行测试计划的执行,分别在正常环境和异常环境下执行P0级自动化用例,得到的测试报告,并将测试报告进行归档,以及将测试报告以企业微信的方式通知到相关人员。
(3)在图8c中,运营平台可恢复异常环境之后,可再次对异常环境重置。随后还可再次进行故障模拟异常测试,以使得能够尽可能模拟各种故障场景来测试待测区块链程序的稳定性。
(4)当对待测区块链的功能测试和容错共识机制的容错测试通过后,可将异常测试环境恢复到正常环境,并将待测区块链程序部署到服务器集群中,并实时监控运行待测区块链程序的区块链网络,当服务器集群中非正常服务器不满足拜占庭容错共识机制的容错数量阈值时,则输出告警信息。
需要说明的是,在图8a-图8c中涉及到的时间都是当前流程所需要花费的时间。例如,清理数据需要“00:12”。
基于上述提供的程序处理方法和程序处理方案,本申请实施例基于区块链程序开发流水线,提交待测区块链源代码后实时触发对待测区块链源代码进行安全扫描和编写规范扫描,并自动构建待测区块链程序,并对待测区块链源代码运行单元测试用例,收集单测成功率和覆盖率,通过质量阈值来确定待测区块链程序是否进入测试阶段,自动化程度高,且提高了提交待测区块链程序的测试质量。在待测区块链程序提交测试后,进入测试阶段,可将待测区块链程序自动部署到测试服务器集群上,并启动待测区块链程序,区块链程序中的每个测试服务器对待测区块链程序进行自动化测试和异常测试,然后在运营平台监控整个待测区块链程序的BFT状态,生成测试报告,当BFT不符合预期时(即对容错共识机制的容错测试未通过)及时告警给相关人员。全流程自动化,无需相关人员审核,且后续结合BFT容错算法的告警,可减少误告警。
进一步的,请参见图9,其是本申请实施例提供的一种程序处理装置的结构示意图。如图9所示,程序处理装置可以应用于上述图3或图4对应实施例中的运营平台,具体的,程序处理装置可以是运行于运营平台中的一个计算机程序(包括程序代码),例如程序处理装置为一个应用软件;该程序处理装置可以用于执行本申请实施例提供的方法中的相应步骤。
获取单元901,用于获取待测区块链程序;
处理单元902,用于将所述待测区块链程序部署至服务器集群中的测试服务器集群,以使所述测试服务集群进行针对所述待测区块链程序的容错共识机制的容错测试;
所述处理单元902,还用于若所述容错测试通过,则将所述待测区块链程序部署至所述服务器集群;
所述处理单元902,还用于在所述服务器集群运行所述待测区块链程序过程中,统计非正常服务器的数量,并根据所述非正常服务器的数量和所述待测区块链程序的容错共识机制执行业务操作。
在一种可行的实施例中,所述获取单元901,用于获取所述服务器集群的服务器数量;
所述处理单元902,用于根据所述待测区块链程序的容错共识机制和所述服务器数量确定容错数量阈值;根据所述容错数量阈值和所述非正常服务器的数量执行业务操作。
在一种可行的实施例中,所述处理单元902,具体用于:
当所述非正常服务器的数量大于所述容错数量阈值时,输出告警信息,所述告警信息用于指示所述服务器集群运行所述待测区块链程序异常,并通知所述服务器集群停止响应与所述待测区块链程序相关的所有业务请求。
在一种可行的实施例中,所述测试服务器集群包括故障测试服务器集群和正常测试服务器集群;所述装置还包括发送单元903,其中:
所述发送单元903,用于将针对容错共识机制的容错测试用例发送至所述测试服务器集群;
所述处理单元902,用于将所述待测区块链程序部署至服务器集群中的所述故障测试服务器集群和所述正常测试服务器集群,以使所述故障测试服务器集群和所述正常测试服务器集群在所述待测区块链程序上运行所述容错测试用例,得到运行结果;
所述获取单元901,用于接收所述测试服务器集群发送的运行结果,并根据所述运行结果确定容错测试结果,所述容错测试结果包括容错测试通过结果,所述容错测试通过结果表示容错测试通过。
在一种可行的实施例中,所述处理单元902,具体用于:
当接收到针对待测区块链源代码的构建请求时,显示代码构建界面,所述代码构建界面包括多个程序语言选项;
当所述多个程序语言选项中的目标程序语言选项被触发时,在所述代码构建界面显示与所述目标程序语言选项匹配的多个代码检测工具选项;
当所述多个代码检测工具选项中的目标代码检测工具选项被触发时,调用所述目标代码检测工具选项对应的代码检测工具对所述待测区块链源代码进行代码扫描;
当代码扫描通过后,对所述待测区块链源代码进行编译,得到所述待测区块链程序,所述待测区块程序为二进制区块链程序。
在一种可行的实施例中,所述处理单元902,还用于:
对待测区块链源代码进行单元测试,得到所述待测区块链源代码的覆盖率;
若所述覆盖率大于或等于质量阈值,则执行将所述待测区块链程序部署至服务器集群中的测试服务器集群的步骤。
在一种可行的实施例中,所述方法由运营平台执行,所述待测区块链源代码是由所述运营平台的客户端发送的;所述处理单元902,还用于若所述覆盖率小于质量阈值,则在所述待测区块链源代码中标记已执行所述单元测试的测试用例的代码和未执行所述单元测试的测试用例的代码;
所述发送单元903,还用于将标记后的待测区块链源代码、所述单元测试的测试用例和通知消息发送至所述客户端,所述通知信息用于通知所述客户端所述待测区块链源代码针对所述单元测试的测试用例的覆盖率小于质量阈值。
在一种可行的实施例中,所述处理单元902,具体用于:
监控所述服务器集群中每个服务器的运行状态,并输出所述每个服务器的监控日志;
根据所述每个服务器的监控日志从所述服务器集群中确定非正常服务器,并统计所述非正常服务器的数量。
在一种可行的实施例中,针对所述服务器集群中的任一服务器,所述处理单元902,具体用于:统计所述任一服务器的监控日志中的报错数量;
当报错数量不小于报错阈值,且所述报错数量不小于报错阈值的持续时长达到时长阈值时,则将所述任一服务器确定为非正常服务器。
在一种可行的实施例中,所述获取单元901,还用于:
获取测试服务器集群的功能测试报告,功能测试报告包括第一功能测试报告和第二功能测试报告,所述第一功能测试报告是所述测试服务集群在第一环境下,进行针对所述待测区块链程序的功能测试后生成的测试报告,所述第二功能测试报告是所述测试服务集群在第二环境下,进行针对所述待测区块链程序的功能测试后生成的测试报告;所述第一环境和所述第二环境是根据所述测试服务器集群中的测试服务器的状态划分的;
若所述功能测试报告指示所述功能测试通过,则执行将所述待测区块链程序部署至所述服务器集群的步骤。
可以理解的是,本实施例的程序处理装置的各功能单元的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例图3或者图4的相关描述,此处不再赘述。
进一步的,请参见图10,其是本申请实施例提供的一种程序处理装置的结构示意图。如图10所示,程序处理装置可以应用于上述图6对应实施例中的目标测试服务器,具体的,程序处理装置可以是运行于目标测试服务器中的一个计算机程序(包括程序代码),例如程序处理装置为一个应用软件;该程序处理装置可以用于执行本申请实施例提供的方法中的相应步骤。
处理单元1001,用于运行运营平台发送的待测区块链程序;
所述处理单元1001,还用于对所述待测区块链程序的容错共识机制进行容错测试,得到运行结果;
发送单元1002,用于将所述运行结果发送至所述运营平台,以使所述运营平台根据所述运行结果确定容错测试结果,若所述容错测试结果为测试通过结果,则所述运营平台将所述待测区块链程序部署至所述服务器集群,以及在所述服务器集群运行所述待测区块链程序过程中,所述运营平台统计非正常服务器的数量,并根据所述非正常服务器的数量和所述待测区块链程序的容错共识机制执行业务操作。
在一种可行的实施例中,所述测试服务器集群包括故障测试服务器集群和正常测试服务器集群,所述装置还包括:接收单元1003,其中:
所述接收单元1003,用于接收运营平台发送过的针对容错共识机制的容错测试用例;所述容错测试用例包括属于合法交易的待上链交易;
所述接收单元1003,用于接收所述测试服务器集群发送的多个验证结果,每个验证结果是所述故障测试服务器集群和所述正常测试服务器集群对所述待上链交易进行验证后发送的;
所述处理单元1001,用于根据所述多个验证结果确定运行结果。
可以理解的是,本实施例的程序处理装置的各功能单元的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例图6的相关描述,此处不再赘述。
进一步地,请参见图11,图11是本申请实施例提供的一种计算机设备的结构示意图。上述图3或图4对应实施例中的运营平台可以为图11所示的计算机设备,上述图6对应的实施例中的目标测试服务器可以为图11所示的计算机设备。如图11所示,计算机涉笔可以包括:处理器1101、输入设备1102,输出设备1103和存储器1104。上述处理器1101、输入设备1102、输出设备1103和存储器1104通过总线1105连接。存储器1104用于存储计算机程序,所述计算机程序包括程序指令,处理器1101用于执行存储器1104存储的程序指令。
在本申请实施例中,处理器1101通过运行存储器1104中的可执行程序代码,执行如下操作:
获取待测区块链程序;
将所述待测区块链程序部署至服务器集群中的测试服务器集群,以使所述测试服务集群进行针对所述待测区块链程序的容错共识机制的容错测试;
若所述容错测试通过,则将所述待测区块链程序部署至所述服务器集群;
在所述服务器集群运行所述待测区块链程序过程中,统计非正常服务器的数量,并根据所述非正常服务器的数量和所述待测区块链程序的容错共识机制执行业务操作。
在一种可行的实施例中,所述处理器1101,具体用于:
获取所述服务器集群的服务器数量;
根据所述待测区块链程序的容错共识机制和所述服务器数量确定容错数量阈值;
根据所述容错数量阈值和所述非正常服务器的数量执行业务操作。
在一种可行的实施例中,所述处理器1101,具体用于:
当所述非正常服务器的数量大于所述容错数量阈值时,输出告警信息,所述告警信息用于指示所述服务器集群运行所述待测区块链程序异常,并通知所述服务器集群停止响应与所述待测区块链程序相关的所有业务请求。
一种可行的实施例中,所述处理器1101, 所述测试服务器集群包括故障测试服务器集群和正常测试服务器集群;具体用于:
将针对容错共识机制的容错测试用例发送至所述测试服务器集群;
将所述待测区块链程序部署至服务器集群中的所述故障测试服务器集群和所述正常测试服务器集群,以使所述故障测试服务器集群和所述正常测试服务器集群在所述待测区块链程序上运行所述容错测试用例,得到运行结果;
接收所述测试服务器集群发送的运行结果,并根据所述运行结果确定容错测试结果,所述容错测试结果包括容错测试通过结果,所述容错测试通过结果表示容错测试通过。
在一种可行的实施例中,所述处理器1101,具体用于:
当接收到针对待测区块链源代码的构建请求时,显示代码构建界面,所述代码构建界面包括多个程序语言选项;
当所述多个程序语言选项中的目标程序语言选项被触发时,在所述代码构建界面显示与所述目标程序语言选项匹配的多个代码检测工具选项;
当所述多个代码检测工具选项中的目标代码检测工具选项被触发时,调用所述目标代码检测工具选项对应的代码检测工具对所述待测区块链源代码进行代码扫描;
当代码扫描通过后,对所述待测区块链源代码进行编译,得到所述待测区块链程序,所述待测区块程序为二进制区块链程序。
在一种可行的实施例中,所述处理器1101, 还用于:
对待测区块链源代码进行单元测试,得到所述待测区块链源代码的覆盖率;
若所述覆盖率大于或等于质量阈值,则执行将所述待测区块链程序部署至服务器集群中的测试服务器集群的步骤。
在一种可行的实施例中,所述处理器1101,还用于:
若所述覆盖率小于质量阈值,则在所述待测区块链源代码中标记已执行所述单元测试的测试用例的代码和未执行所述单元测试的测试用例的代码,并将标记后的待测区块链源代码、所述单元测试的测试用例和通知消息发送至所述客户端,所述通知信息用于通知所述客户端所述待测区块链源代码针对所述单元测试的测试用例的覆盖率小于质量阈值。
在一种可行的实施例中,所述处理器1101,具体用于:
监控所述服务器集群中每个服务器的运行状态,并输出所述每个服务器的监控日志;
根据所述每个服务器的监控日志从所述服务器集群中确定非正常服务器,并统计所述非正常服务器的数量。
在一种可行的实施例中,所述处理器1101,具体用于:
统计所述任一服务器的监控日志中的报错数量;
当报错数量不小于报错阈值,且所述报错数量不小于报错阈值的持续时长达到时长阈值时,则将所述任一服务器确定为非正常服务器。
在一种可行的实施例中,所述处理器1101, 还用于:
获取测试服务器集群的功能测试报告,功能测试报告包括第一功能测试报告和第二功能测试报告,所述第一功能测试报告是所述测试服务集群在第一环境下,进行针对所述待测区块链程序的功能测试后生成的测试报告,所述第二功能测试报告是所述测试服务集群在第二环境下,进行针对所述待测区块链程序的功能测试后生成的测试报告;所述第一环境和所述第二环境是根据所述测试服务器集群中的测试服务器的状态划分的;
若所述功能测试报告指示所述功能测试通过,则执行将所述待测区块链程序部署至所述服务器集群的步骤。
或者在本申请实施例中,处理器1101通过运行存储器1104中的可执行程序代码,执行如下操作:
运行运营平台发送的待测区块链程序;
对所述待测区块链程序的容错共识机制进行容错测试,得到运行结果;
将所述运行结果发送至所述运营平台,以使所述运营平台根据所述运行结果确定容错测试结果,若所述容错测试结果为测试通过结果,则所述运营平台将所述待测区块链程序部署至所述服务器集群,以及在所述服务器集群运行所述待测区块链程序过程中,所述运营平台统计非正常服务器的数量,并根据所述非正常服务器的数量和所述待测区块链程序的容错共识机制执行业务操作。
在一种可行的实施例中,所述测试服务器集群包括故障测试服务器集群和正常测试服务器集群,所述处理器1101,具体用于:
接收运营平台发送过的针对容错共识机制的容错测试用例;所述容错测试用例包括属于合法交易的待上链交易;
接收所述测试服务器集群发送的多个验证结果,每个验证结果是所述故障测试服务器集群和所述正常测试服务器集群对所述待上链交易进行验证后发送的;
根据所述多个验证结果确定运行结果。
应当理解,在本申请实施例中,所称处理器1101可以是中央处理单元(CentralProcessing Unit,CPU),该处理器1101还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器1104可以包括只读存储器和随机存取存储器,并向处理器1101提供指令和数据。存储器1104的一部分还可以包括非易失性随机存取存储器。
该输入设备1102可以包括键盘等,并向处理器1101输入待测区块链程序源代码;该输出设备1103可以包括显示器等。
具体实现中,本申请实施例中所描述的处理器1101、输入设备1102、输出设备1103和存储器1104可执行上述所有实施例中描述的实现方式,也可执行上述装置中所描述的实现方式,在此不再赘述。
本申请实施例中提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,可执行上述所有实施例中所执行的步骤。
本申请实施例还提供一种计算机程序产品或计算机程序,计算机程序产品或计算机程序包括计算机指令,计算机指令存储在计算机可读存储介质中,计算机指令被计算机设备的处理器执行时,执行上述所有实施例中的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

Claims (15)

1.一种程序处理方法,其特征在于,包括:
获取待测区块链程序;
将所述待测区块链程序部署至服务器集群中的测试服务器集群,以使所述测试服务器集群进行针对所述待测区块链程序的容错共识机制的容错测试;
若所述容错测试通过,则将所述待测区块链程序部署至服务器集群;
在服务器集群运行所述待测区块链程序过程中,统计非正常服务器的数量,并根据所述非正常服务器的数量和所述待测区块链程序的容错共识机制执行业务操作。
2.根据权利要求1所述的方法,其特征在于,所述根据所述非正常服务器的数量和所述待测区块链程序的容错共识机制执行业务操作,包括:
获取服务器集群的服务器数量;
根据所述待测区块链程序的容错共识机制和所述服务器数量确定容错数量阈值;
根据所述容错数量阈值和所述非正常服务器的数量执行业务操作。
3.根据权利要求2所述的方法,其特征在于,所述根据所述容错数量阈值和所述非正常服务器的数量执行业务操作,包括:
当所述非正常服务器的数量大于所述容错数量阈值时,输出告警信息,所述告警信息用于指示服务器集群运行所述待测区块链程序异常,并通知服务器集群停止响应与所述待测区块链程序相关的所有业务请求。
4.根据权利要求1所述的方法,其特征在于,所述测试服务器集群包括故障测试服务器集群和正常测试服务器集群;
所述将所述待测区块链程序部署至服务器集群中的测试服务器集群,以使所述测试服务器集群进行针对所述待测区块链程序的容错共识机制的容错测试,包括:
将针对容错共识机制的容错测试用例发送至所述测试服务器集群;
将所述待测区块链程序部署至服务器集群中的所述故障测试服务器集群和所述正常测试服务器集群,以使所述故障测试服务器集群和所述正常测试服务器集群在所述待测区块链程序上运行所述容错测试用例,得到运行结果;
接收所述测试服务器集群发送的运行结果,并根据所述运行结果确定容错测试结果,所述容错测试结果包括容错测试通过结果,所述容错测试通过结果表示容错测试通过。
5.根据权利要求1所述的方法,其特征在于,所述获取待测区块链程序,包括:
当接收到针对待测区块链源代码的构建请求时,显示代码构建界面,所述代码构建界面包括多个程序语言选项;
当所述多个程序语言选项中的目标程序语言选项被触发时,在所述代码构建界面显示与所述目标程序语言选项匹配的多个代码检测工具选项;
当所述多个代码检测工具选项中的目标代码检测工具选项被触发时,调用所述目标代码检测工具选项对应的代码检测工具对所述待测区块链源代码进行代码扫描;
当代码扫描通过后,对所述待测区块链源代码进行编译,得到所述待测区块链程序,所述待测区块链程序为二进制区块链程序。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
对待测区块链源代码进行单元测试,得到所述待测区块链源代码的覆盖率;
若所述覆盖率大于或等于质量阈值,则执行将所述待测区块链程序部署至服务器集群中的测试服务器集群的步骤。
7.根据权利要求6所述的方法,其特征在于,所述方法由运营平台执行,所述待测区块链源代码是由所述运营平台的客户端发送的;所述方法还包括:
若所述覆盖率小于质量阈值,则在所述待测区块链源代码中标记已执行所述单元测试的测试用例的代码和未执行所述单元测试的测试用例的代码,并将标记后的待测区块链源代码、所述单元测试的测试用例和通知消息发送至所述客户端,所述通知消息用于通知所述客户端所述待测区块链源代码针对所述单元测试的测试用例的覆盖率小于质量阈值。
8.根据权利要求1所述的方法,其特征在于,所述统计非正常服务器的数量,包括:
监控服务器集群中每个服务器的运行状态,并输出所述每个服务器的监控日志;
根据所述每个服务器的监控日志从服务器集群中确定非正常服务器,并统计所述非正常服务器的数量。
9.根据权利要求8所述的方法,其特征在于,针对服务器集群中的任一服务器,根据所述任一服务器的监控日志从服务器集群中确定非正常服务器的具体流程包括:
统计所述任一服务器的监控日志中的报错数量;
当报错数量不小于报错阈值,且所述报错数量不小于报错阈值的持续时长达到时长阈值时,则将所述任一服务器确定为非正常服务器。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取测试服务器集群的功能测试报告,功能测试报告包括第一功能测试报告和第二功能测试报告,所述第一功能测试报告是所述测试服务器集群在第一环境下,进行针对所述待测区块链程序的功能测试后生成的测试报告,所述第二功能测试报告是所述测试服务器集群在第二环境下,进行针对所述待测区块链程序的功能测试后生成的测试报告;所述第一环境和所述第二环境是根据所述测试服务器集群中的测试服务器的状态划分的;
若所述功能测试报告指示所述功能测试通过,则执行将所述待测区块链程序部署至服务器集群的步骤。
11.一种程序处理方法,其特征在于,应用于目标测试服务器,所述目标测试服务器是测试服务器集群中的任一测试服务器,所述测试服务器集群属于服务器集群,所述方法包括:
运行运营平台发送的待测区块链程序;
对所述待测区块链程序的容错共识机制进行容错测试,得到运行结果;
将所述运行结果发送至所述运营平台,以使所述运营平台根据所述运行结果确定容错测试结果,若所述容错测试结果为测试通过结果,则所述运营平台将所述待测区块链程序部署至服务器集群,以及在服务器集群运行所述待测区块链程序过程中,所述运营平台统计非正常服务器的数量,并根据所述非正常服务器的数量和所述待测区块链程序的容错共识机制执行业务操作。
12.根据权利要求11所述的方法,其特征在于,所述测试服务器集群包括故障测试服务器集群和正常测试服务器集群,所述对所述待测区块链程序的容错共识机制进行容错测试,得到运行结果,包括:
接收运营平台发送的针对容错共识机制的容错测试用例;所述容错测试用例包括属于合法交易的待上链交易;
接收所述测试服务器集群发送的多个验证结果,每个验证结果是所述故障测试服务器集群和所述正常测试服务器集群对所述待上链交易进行验证后发送的;
根据所述多个验证结果确定运行结果。
13.一种程序处理装置,其特征在于,包括:
获取单元,用于获取待测区块链程序;
处理单元,用于将所述待测区块链程序部署至服务器集群中的测试服务器集群,以使所述测试服务器集群进行针对所述待测区块链程序的容错共识机制的容错测试;
所述处理单元,还用于若所述容错测试通过,则将所述待测区块链程序部署至服务器集群;
所述处理单元,还用于在服务器集群运行所述待测区块链程序过程中,统计非正常服务器的数量,并根据所述非正常服务器的数量和所述待测区块链程序的容错共识机制执行业务操作。
14.一种程序处理装置,其特征在于,应用于目标测试服务器,所述目标测试服务器是测试服务器集群中的任一测试服务器,所述测试服务器集群属于服务器集群,所述装置包括:
处理单元,用于运行运营平台发送的待测区块链程序;
所述处理单元,还用于对所述待测区块链程序的容错共识机制进行容错测试,得到运行结果;
发送单元,用于将所述运行结果发送至所述运营平台,以使所述运营平台根据所述运行结果确定容错测试结果,若所述容错测试结果为测试通过结果,则所述运营平台将所述待测区块链程序部署至服务器集群,以及在服务器集群运行所述待测区块链程序过程中,所述运营平台统计非正常服务器的数量,并根据所述非正常服务器的数量和所述待测区块链程序的容错共识机制执行业务操作。
15.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,执行权利要求1-10或11-12任一项所述的方法。
CN202011507542.XA 2020-12-18 2020-12-18 一种程序处理方法、装置、计算机设备和可读存储介质 Active CN112256593B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011507542.XA CN112256593B (zh) 2020-12-18 2020-12-18 一种程序处理方法、装置、计算机设备和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011507542.XA CN112256593B (zh) 2020-12-18 2020-12-18 一种程序处理方法、装置、计算机设备和可读存储介质

Publications (2)

Publication Number Publication Date
CN112256593A CN112256593A (zh) 2021-01-22
CN112256593B true CN112256593B (zh) 2021-04-02

Family

ID=74225242

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011507542.XA Active CN112256593B (zh) 2020-12-18 2020-12-18 一种程序处理方法、装置、计算机设备和可读存储介质

Country Status (1)

Country Link
CN (1) CN112256593B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113010436B (zh) * 2021-04-08 2024-05-17 北京百度网讯科技有限公司 一种分布式系统的测试方法和装置
CN113364650A (zh) * 2021-06-17 2021-09-07 上海万向区块链股份公司 一种基于混沌工程的区块链测试方法及系统
CN116107913B (zh) * 2023-04-06 2023-11-14 阿里云计算有限公司 单节点服务器的测试控制方法、装置及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110674044A (zh) * 2019-09-24 2020-01-10 携程旅游网络技术(上海)有限公司 功能自动化测试的覆盖率获取方法、系统、设备及介质
CN111737104A (zh) * 2019-10-25 2020-10-02 北京沃东天骏信息技术有限公司 区块链网络服务平台及其测试用例共享方法、存储介质
CN111767211A (zh) * 2020-06-15 2020-10-13 北京同邦卓益科技有限公司 联盟链的测试方法和装置、存储介质、电子装置
CN111782502A (zh) * 2019-12-13 2020-10-16 北京沃东天骏信息技术有限公司 一种自动化测试的方法及装置
CN112073269A (zh) * 2020-09-14 2020-12-11 腾讯科技(深圳)有限公司 区块链网络测试方法、装置、服务器及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190303623A1 (en) * 2018-04-02 2019-10-03 Ca, Inc. Promotion smart contracts for software development processes
CN111858292A (zh) * 2019-09-12 2020-10-30 北京嘀嘀无限科技发展有限公司 测试用例的筛选方法、筛选系统、计算机设备及存储介质
CN112134762B (zh) * 2020-09-24 2023-08-22 腾讯科技(深圳)有限公司 针对区块链网络结构的测试方法、装置、终端和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110674044A (zh) * 2019-09-24 2020-01-10 携程旅游网络技术(上海)有限公司 功能自动化测试的覆盖率获取方法、系统、设备及介质
CN111737104A (zh) * 2019-10-25 2020-10-02 北京沃东天骏信息技术有限公司 区块链网络服务平台及其测试用例共享方法、存储介质
CN111782502A (zh) * 2019-12-13 2020-10-16 北京沃东天骏信息技术有限公司 一种自动化测试的方法及装置
CN111767211A (zh) * 2020-06-15 2020-10-13 北京同邦卓益科技有限公司 联盟链的测试方法和装置、存储介质、电子装置
CN112073269A (zh) * 2020-09-14 2020-12-11 腾讯科技(深圳)有限公司 区块链网络测试方法、装置、服务器及存储介质

Also Published As

Publication number Publication date
CN112256593A (zh) 2021-01-22

Similar Documents

Publication Publication Date Title
CN112256593B (zh) 一种程序处理方法、装置、计算机设备和可读存储介质
US11237930B2 (en) Techniques and system for optimization driven by dynamic resilience
CN109062809B (zh) 一种线上测试用例生成方法、装置及电子设备
CN112134762B (zh) 针对区块链网络结构的测试方法、装置、终端和存储介质
US10185650B1 (en) Testing service with control testing
US11669390B2 (en) Automated detection and classification of dynamic service outages
CN107533504A (zh) 用于软件分发的异常分析
CN106776243B (zh) 一种针对监控软件的监控方法及装置
CN110851471A (zh) 分布式日志数据处理方法、装置以及系统
CN112214411A (zh) 一种容灾系统测试方法、装置、设备及存储介质
CN116155771A (zh) 网络异常测试方法、装置、设备、存储介质和程序
JP2009294837A (ja) 障害監視システム及びデバイスと監視装置並びに障害監視方法
CN103440460A (zh) 一种应用系统变更验证方法及验证系统
CN107679423A (zh) 分区完整性检查方法及装置
CN112202647B (zh) 区块链网络中的测试方法、装置及测试设备
CN113805925A (zh) 分布式集群管理软件的在线升级方法、装置、设备及介质
CN113051180A (zh) 测试任务的监测方法、装置、设备及存储介质
CN111737130B (zh) 公有云多租户认证服务测试方法、装置、设备及储存介质
CN113127036A (zh) 软件开发系统、代码的持续集成方法、装置和介质
CN111475400A (zh) 一种业务平台的验证方法及相关设备
CN111722951A (zh) 一种异常处理方法及装置、存储介质
CN117193798A (zh) 应用部署方法、装置、设备、可读存储介质和程序产品
CN117118986B (zh) 基于区块链的容错验证方法、装置、设备及介质
CN117811979A (zh) 高效的协议健壮性测试方法、装置、电子设备和存储介质
CN114546849A (zh) 代码测试方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40038181

Country of ref document: HK