一种基于审计的软件发布方法与流程

文档序号:19673651发布日期:2020-01-10 22:59阅读:214来源:国知局
一种基于审计的软件发布方法与流程

本发明属于互联网的技术领域,具体涉及一种基于审计的软件发布方法。



背景技术:

软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发过程通常涉及源代码开发、编译、测试、发布上线等几个环节。

现有的技术中,软件开发过程中的编译、测试以及发布上线的环节是独立进行的。具体的,需要人为手动配置编译、测试以及发布上线环节的运行环境。例如编译环节需要人工根据源代码的语言类型配置不同的编译环境;测试环节需要测试人员根据源代码的特点部署测试系统版本、语言类型以及具体的测试用例。

当前的自动化发布系统设计方式为——发布管理平台+文件服务器+发布代理。代理从发布管理平台获取信息,从文件服务器获取软件。本发明联合测试功能,达到测试发布一体自动化完成;并且创造性的引入审计功能,起到内容可回溯,问题易定位的作用。



技术实现要素:

本发明的目的在于提供一种基于审计的软件发布方法,本发明通过在软件发布中引入审计的方法,实现了内容可回溯,问题易定位的效果,具有较好的实用性。

本发明主要通过以下技术方案实现:一种基于审计的软件发布方法,主要包括以下步骤:

步骤s1:当仓库的代码发生变动时,则通过ci工具通知runner将代码推送到编译环境;

步骤s2:代码编译后打包,然后通过http协议或者sftp协议部署到测试环境;

步骤s3:检查产品的功能,分别通过接口、webdriver/图形、压力工具保证应用的功能交互、转台展示、系统状态的正确性;

步骤s4:测试通过之后通过将app推送到发布/归档环境;在文件传输过程中,审计文件信息,校验传输前后文件的正确性;

所述步骤s1-s2中,通过ssh运维隧道来控制命令,通过ssh协议进行解析,还原字符命令的执行过程,对于命令的执行过程进行校验;所述步骤s2-s4中通过sftp通道来传输文件,通过对sftp协议的解析,保存文件并计算文件的特征值,以判断文件的完整性和正确性。

为了更好的实现本发明,进一步的,在编译之前,审计引擎会记录源码的分支、时间、commitid信息;在编译过程中,审计引擎记录编译过程中执行的命令,并获取预设的错误信息关联字段;若捕获到预设的错误字段,则首先通过ssh运维隧道发送命令使编译过程暂停,并通知ai分析引擎处理。

为了更好的实现本发明,进一步的,在部署完成后,审计引擎对部署好的应用环境后台记录的分支、时间、commitid信息进行记录,并与编译前的信息做比对,若不一致,则表明编译流程的预设信息错误,并通知人工处理。

为了更好的实现本发明,进一步的,在部署过程中,审计引擎通过计算文件的特征值判断文件的完整性、正确性,以预防文件在网络传输过程中出现的数据包丢失,若出现错误,则通过ai分析引擎处理。

为了更好的实现本发明,进一步的,所述ai分析引擎处理是指根据具体错误信息搜索互联网上的处理方法并提取,并根据消息源进行优先级排序、去重,然后对提取到的信息进行语义分析,以转化为可执行的命令,然后尝试修复错误,若错误被修复,则继续执行流程,否则根据预设的错误等级选择忽略或者通知人工处理。

为了更好的实现本发明,进一步的,在接口测试过程中,http协议审计引擎解析request与response的内容并记录,提供直观、可视化的日志;对于response出现的异常错误,通过ai分析引擎分析错误信息的语义修改request请求中的数据格式与内容。

为了更好的实现本发明,进一步的,对于webdriver/图形测试,图形协议审计引擎捕捉出错点,在触发异常时保存录像,对于不稳定的gui测试,提供了回溯的手段,并在出错时通过ai分析引擎尝试自动修复js无法获取dom元素以及窗口失焦的常见问题。

为了更好的实现本发明,进一步的,对于压力测试,字符协议审计引擎实时监控后台系统数据的状态,对cpu、内存、io、网络、进程的状态进行监控,通过预设阈值实现向人工告警。

本发明的有益效果:

(1)与现有技术相比,本发明在软件发布流程系统的基础上,在每个环节引入了智能审计方法,大大地减少了通用的错误导致的自动化流程异常终止,并且记录了整个发布流程,为事后查看完整的信息并在有异常情况时快速、准确的追溯提供了条件。

(2)本发明全程数据流重组回放,记录关键信息,追溯整个流程中可能出现的故障;通过ai分析引擎,尝试自动修复策略,提升了整个方案的高可用性。

(3)本发明通过审计引擎与ai分析引擎的联动,相比单一的发布流程,实现了对于编译过程的监控、捕获异常、自动修复。在实际的应用场景中,对于可通过文件、库层面的异常起到了较好的自动修复效果,大大提升了发布流程的易用性与效率。

(4)本发明通过与编译过程中产生的数据做对比,确认了二进制文件的正确性。在实际的应用场景中,有效的预防了多端开发、共同打包时,由于沟通不畅导致开发人员对于编译预设参数设置错误的情况。在测试阶段之前发现问题,避免通过测试时通过功能验证来发现问题,大大的降低了人力资源成本以及潜在风险。

(5)本发明通过审计引擎,在测试阶段实时的、连续的监控资源的变化状态,大大的提升了隐藏在系统层面的问题的发现概率;还通过ai分析引擎对接口和webdriver的联合测试,在实际场景中,对于接口的变动起到自动调整参数的效果,提升了测试case组合的效率。

(6)在步骤s1-步骤s2的过程中,通过ssh运维隧道来控制命令。ssh协议进行解析,还原字符命令的执行过程,对于命令的执行过程进行校验,起到审批->允许/拒绝的作用,还可以添加黑白名单和告警功能。

(7)本发明通过ftp通道来传输文件,通过对ftp协议的解析,保存文件并计算文件的特征值,判断文件的完整性和正确性。预防了文件在网络传输过程中出现的数据包丢失的情况。

(8)在自动测试过程中,分别对接口测试和页面测试,可以解析http和rdp协议,通过图形化的方式捕捉出错点,在触发异常时通过类似浏览器自动化测试框架提供的“screenshot”方法的动态截屏保存一定长度的录像。相对于文字方式的日志记录,由于记录了直观的“事故现场”,可以更加快速定位问题,并且易于追溯上下文。对于目前业界不稳定性较高的gui自动测试,保证了发布系统的稳定性与快速修复,达到高可用的目的。

(9)区别于传统图形审计“记录”功能。本发明针对页面加载速率异常,js无法获取dom元素,窗口失焦等常见webdriver和gui自动测试场景,进行“监控”->“判断”->“尝试修复”->“记录”处理,并提供可回溯的常规审计功能。

附图说明

图1为本发明的原理框图;

图2为实施例1的原理框图。

具体实施方式

实施例1:

一种基于审计的软件发布方法,如图1-2所示,主要包括以下步骤:

1)监测模块通过ci工具监测代码托管平台的状态,当仓库的代码发生变动时,平台通知ci,ci再通知runner将代码推送到编译环境。

2)代码推送到编译环境之后,根据源码相关信息自动选择分支环境进行编译,然后打包并推送到部署模块。

编译之前,审计引擎会记录源码的分支、时间、commitid等信息。编译过程中,审计引擎记录编译过程中执行的命令,并获取预设的错误信息关联字段。若捕获到预设的错误字段,首先通过ssh运维隧道来发送命令,使编译过程暂停,并通知ai分析引擎,分析引擎会根据具体错误信息搜索互联网上的处理方法并提取,并根据消息源进行优先级排序、去重,然后对提取到的信息进行语义分析,转化为可执行的命令,然后尝试修复错误。若错误被修复,则继续执行编译流程,若错误未被修复,则根据预设的错误等级选择忽略或通知人工处理。

本步骤通过审计引擎与ai分析引擎的联动,相比单一的发布流程,实现了对于编译过程的监控、捕获异常、自动修复。在实际的应用场景中,对于可通过文件、库层面的异常起到了较好的自动修复效果,大大提升了发布流程的易用性与效率。

3)部署模块将编译并打包的文件通过http协议或者sftp协议部署到测试环境。

在部署环节,审计引擎通过计算文件的特征值,判断文件的完整性和正确性,预防文件在网络传输过程中出现的数据包丢失,该过程出现的错误同样通过步骤2中所述的ai分析方法尝试修复。在部署完成之后,审计引擎会对部署好的应用环境后台记录的commitid等信息进行记录,并和步骤2中编译之前记录的信息做比对。若不一致,则说明编译流程的预设信息不正确,此时会通知人工处理。

本步骤通过与步骤2过程中产生的数据做对比,确认了二进制文件的正确性。在实际的应用场景中,有效的预防了多端开发、共同打包时,由于沟通不畅导致开发人员对于编译预设参数设置错误的情况。在测试阶段之前发现问题,避免通过测试时通过功能验证来发现问题,大大的降低了人力资源成本以及潜在风险。

4)测试模块检查产品的功能,分别通过接口、webdriver/图形、压力工具保证应用的功能交互、转台展示、系统状态的正确性。

审计引擎在测试阶段分别对以下三种测试方法进行处理:

①对于接口测试,审计引擎解析http协议,将request与response的内容并记录,提供更加直观、可视化的日志,对于response出现的异常错误,通过ai分析引擎分析错误信息的语义修改request请求中的数据格式与内容。

②对于webdriver/图形测试,审计引擎解析http&rdp协议,捕捉出错点,在触发异常时保存录像,对于相对不稳定的gui测试,提供了回溯的手段,并在出错时通过ai分析引擎尝试自动修复js无法获取dom元素,窗口失焦等常见问题。

③对于压力测试,审计引擎实时监控后台系统数据的状态,对cpu、内存、io、网络、进程等状态进行监控,通过预设阈值实现向人工告警。

本步骤通过审计引擎,在测试阶段实时的、连续的监控资源的变化状态,大大的提升了隐藏在系统层面的问题的发现概率;还通过ai分析引擎对接口和webdriver的联合测试,在实际场景中,对于接口的变动起到自动调整参数的效果,提升了测试case组合的效率。

5)测试通过之后通过将app推送到发布/归档环境。

文件传输过程中审计文件信息,校验传输前后文件的正确性。

本发明全程数据流重组回放,记录关键信息,追溯整个流程中可能出现的故障;通过ai分析引擎,尝试自动修复策略,提升了整个方案的高可用性。

在步骤1-2的过程中,通过ssh运维隧道来控制命令。ssh协议进行解析,还原字符命令的执行过程,对于命令的执行过程进行校验,起到审批->允许/拒绝的作用,还可以添加黑白名单和告警功能。

本发明通过ftp通道来传输文件,通过对ftp协议的解析,保存文件并计算文件的特征值,判断文件的完整性和正确性。预防了文件在网络传输过程中出现的数据包丢失的情况。

在自动测试过程中,分别对接口测试和页面测试,可以解析http和rdp协议,通过图形化的方式捕捉出错点,在触发异常时通过类似浏览器自动化测试框架提供的“screenshot”方法的动态截屏保存一定长度的录像。相对于文字方式的日志记录,由于记录了直观的“事故现场”,可以更加快速定位问题,并且易于追溯上下文。对于目前业界不稳定性较高的gui自动测试,保证了发布系统的稳定性与快速修复,达到高可用的目的。

区别于传统图形审计“记录”功能。本发明针对页面加载速率异常,js无法获取dom元素,窗口失焦等常见webdriver和gui自动测试场景,进行“监控”->“判断”->“尝试修复”->“记录”处理,并提供可回溯的常规审计功能。

以上所述,仅是本发明的较佳实施例,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,均落入本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1