一种支持云的分布式框架软件测试方法及装置与流程

    专利2022-07-08  87


    本发明涉及软件测试领域,更具体地,涉及一种支持云的分布式框架软件测试方法及装置。



    背景技术:

    随着互联网技术的快速发展,种类繁多的应用软件也应运而生。为满足日益增长的工作、生活需求,软件功能也随之增加,这样必然导致相应软件代码的体量提升,软件测试的难度也越来越高。

    目前软件测试大致分为传统软件测试、云原生应用软件等。软件测试是确保软件质量、提升软件可交互性、为开发人员提供信息以方便其为风险评估做相应准备的重要手段。

    为确保软件测试的有效性,需要大量的测试用例进行测试模拟,但当达到一定数量时,单台计算机很难在一定时间比如12小时内完成所有测试用例的运行,而现代软件工程往往要求在12小时内知道代码改变造成的软件整体质量变化。

    因此,如何高效地对软件进行测试,成为了亟待解决的难题。



    技术实现要素:

    为了解决背景技术存在的单台计算机运行测试用例时间长效率低的问题,本发明提供了一种支持云的分布式框架软件测试方法,所述方法包括:

    接收并解析测试命令,得到用户更改代码、基础代码及测试用例信息;

    合并所述用户更改代码及所述基础代码,编译打包后得到融合代码;

    根据所述测试用例信息,确定测试用例及计算处理设备的数量,并调度相应数量的计算处理设备;

    在所述计算处理设备上,安装所述融合代码,并行执行所述测试用例,得到测试用例执行结果,并收集相关系统信息;

    根据所述测试用例执行结果及所述相关系统信息,完成对软件的测试。

    进一步的,在接收并解析测试命令,得到用户更改代码、基础代码及测试用例信息前还包括:

    用户发布测试命令,所述测试命令包括用户代码更改事务名称以及测试用例集。

    进一步的,所述计算处理设备包括:物理计算机、虚拟机以及docker。

    进一步的,所述软件测试包括:传统软件测试以及云原生应用软件测试。

    进一步的,所述得到用户更改代码及所述基础代码,合并所述用户更改代码及所述基础代码编译打包后得到所述融合代码,包括通过jenkins流程实现;

    在所述安装所述融合代码后,并行执行所述测试用例前,还包括,根据image或jenkins流程安装所述测试用例依赖的其他软件。

    进一步的,所述相关系统信息包括:cpu、gpu、内存、硬盘、网络、功耗的信息。

    进一步的,所述测试用例信息以及所述相关系统信息集中存储于数据库中。

    进一步的,在根据所述测试用例执行结果及所述相关系统信息,完成对软件的测试后,还包括:

    根据所述数据库中历史问题解决方法数据训练出的人工智能分析模型,对完成测试的软件给出人工智能建议;用户解决问题后,填入解决方法并保存至所述数据库。

    所述一种支持云的分布式框架软件测试装置包括:

    管理控制单元,所述管理控制单元一端分别与计算处理单元、数据库单元、测试用例报告单元相连接;所述管理控制单元用于接收并解析用户发送的测试命令,得到用户更改代码、基础代码及测试用例信息;

    所述管理控制单元还用于合并所述用户更改代码及所述基础代码得到融合代码,根据所述测试用例信息确定计算处理设备的数量及调度结果,并将所述融合代码、所述计算处理设备的调度结果以及所述测试用例信息发送至所述计算处理单元;

    计算处理单元,所述计算处理单元一端与所述数据库单元相连接,另一端与所述测试用例报告单元相连接;所述计算处理单元用于根据所述计算处理设备的调度结果、所述融合代码,确定需要的计算处理设备,并将所述融合代码安装至所述计算处理设备;

    所述计算处理单元还用于根据所述测试用例信息,确定需要的测试用例,在所述计算处理设备上并行执行所述测试用例,得到测试用例执行结果,同时收集相关系统信息,并将所述测试用例执行结果及所述相关系统信息发送至所述数据库单元保存及所述测试用例报告单元。

    数据库单元,所述数据库单元用于根据接收的所述测试命令的解析结果,将所述测试用例信息发送至所述管理控制单元;所述数据库单元还用于根据所述测试用例信息发送所述测试用例至所述计算处理单元。

    测试用例报告单元,所述测试用例报告单元用于将所述测试用例执行结果及所述相关系统信息汇总为测试报告,返回给用户。

    进一步的,所述装置还包括:

    测试用例配置单元,所述测试用例配置单元一端与所述管理控制单元相连接;所述测试用例配置单元用于发送用户的测试命令至所述管理控制单元;

    人工智能分析单元,所述人工智能分析单元一端分别与所述计算处理单元及所述数据库单元相连接,另一端与所述测试用例报告单元相连接;所述人工智能分析单元用于接收所述计算处理单元发送的所述测试用例执行结果及所述相关系统信息,针对测试用例发现的问题,根据人工智能模型确定人工智能建议,并将所述人工智能建议发送至所述测试用例报告单元。所述人工智能分析单元还用于在用户解决问题后,填入解决方法并保存至所述数据库单元。

    进一步的,所述管理控制单元包括:

    测试命令解析模块,所述测试命令解析模块一端与所述测试用例配置单元相连接,另一端分别与所述数据库单元以及流程管理监控模块相连接;所述测试命令解析模块用于接收并解析用户发送的测试命令,并将测试命令解析结果发送至所述数据库单元及所述流程管理监控模块;

    流程管理监控模块,所述流程管理监控模块一端与所述测试命令解析模块相连接,另一端分别与所述计算处理管理模块、所述计算处理单元、所述数据库单元、所述测试用例报告单元以及所述人工智能分析单元相连接;

    所述流程管理监控模块用于根据所述测试命令解析结果,得到用户更改代码、基础代码及测试用例信息;所述流程管理监控模块还用于合并所述用户更改代码及所述基础代码得到融合代码,并将所述融合代码发送至所述计算处理单元;所述流程管理监控模块还用于根据所述测试用例信息确定计算处理设备的数量,并将所述计算处理设备的数量发送至所述计算处理管理模块;

    所述流程管理模块采用包括jenkins流程;

    计算处理管理模块,所述计算处理管理模块一端与所述计算处理单元相连接;所述计算处理管理模块用于根据所述计算处理设备的数量调度需要的计算处理设备,并将调度结果发送至所述计算处理单元。

    进一步的,所述计算处理设备包括:物理计算机、虚拟机以及docker。

    进一步的,所述软件测试包括:传统软件测试以及云原生应用软件测试。

    进一步的,所述相关系统信息包括:cpu、gpu、内存、硬盘、网络、功耗的信息。

    本发明的有益效果为:本发明的技术方案,给出了一种支持云的分布式框架软件测试方法及装置,所述方法包括,接收并解析测试命令,得到用户更改代码、基础代码及测试用例信息;合并用户更改代码及基础代码,编译打包后得到融合代码;根据测试用例信息,确定测试用例及计算处理设备的数量,并调度相应数量的计算处理设备;将融合代码安装在所述计算处理设备上,并行执行所述测试用例,从而得到测试用例执行结果,同时收集如cpu、gpu、内存等相关系统信息;根据测试用例执行结果及相关系统信息,完成对软件的测试。本发明提供的分布式框架软件测试方法,采用多台计算处理设备并行执行大量测试用例,可承载任意多的测试用例,突破了单台计算机运行测试用例时长的限制,提高了软件测试效率,所述计算处理设备包括物理计算机、虚拟机以及docker。同时,本发明所述的方法可以测试传统软件以及云原生应用软件;测试用例信息、运行信息、解决信息都集中存储在数据库中,使用户不修改源代码就可以灵活配资、组合、监控测试用例,并使智能解决问题成为可能。

    附图说明

    通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:

    图1为本发明具体实施方式的一种支持云的分布式框架软件测试方法流程图;

    图2为本发明具体实施方式的一种支持云的分布式框架软件智能测试方法流程图;

    图3为本发明具体实施方式的一种基于智能判断的支持云的分布式框架软件测试方法流程图;

    图4为本发明具体实施方式的一种支持云的分布式框架软件测试装置结构图。

    具体实施方式

    现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施例,提供这些实施例是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。

    除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。

    图1为本发明具体实施方式的一种支持云的分布式框架软件测试方法流程图。如图1所示,所述方法包括:

    步骤110,接收并解析测试命令;接收并解析用户发送的测试命令,具体的,本实例中所述测试命令包括用户代码更改事务名称及测试用例集;根据解析后的测试命令,从数据库中读出用户代码的版本控制环境、所需硬件资源环境及测试用例信息,具体的,本实例中所述测试用例信息包括名称、调用命令、运行时长;所述用户代码的版本控制环境为git或svn;所述数据库还包括测试用例数据以及全部可用于分布式测试的计算处理设备相关信息;

    自动分配一台物理计算机或虚拟机或docker,通过jenkins流程读取用户代码更改事务,从而确定用户更改代码、基础代码;具体的,本实例中所述方法可以测试传统软件,也可通过kubernetes和docker技术测试云原生应用软件。

    步骤120,获得融合代码;具体的,本实例中,通过jenkins流程合并所述用户更改代码及所述基础代码,编译打包后得到融合代码。

    步骤130,调度计算处理设备;根据所述测试用例信息,确定测试用例及计算处理设备的数量,并调度相应数量的计算处理设备;具体的,本实例中,所述计算处理设备包括物理计算机、虚拟机及docker。

    步骤140,执行测试用例;在所述计算处理设备上,自动安装所述融合代码,对于测试用例其他依赖的软件,如果有对应的image,可以直接载入,如没有,利用jenkins流程自动安装;完毕后,在所述计算处理设备上并行执行所述测试用例,得到测试用例执行结果,同时收集cpu、gpu、内存、硬盘、网络、功耗等相关系统信息,保存至数据库并实时发送至用户端,确保在运行过程中,用户可随时查询测试用例运行状态。

    步骤150,汇总结果完成测试;汇总所述测试用例执行结果及所述相关系统信息,返回给用户,完成对软件的测试。

    图2为本发明具体实施方式的一种支持云的分布式框架软件智能测试方法流程图。如图2所示,所述方法包括:

    步骤210,发布测试命令;用户通过测试用例配置单元的web页面或命令行发布测试命令,具体的,本实例中所述测试命令包括用户代码更改事务名称及测试用例集。

    步骤220,接收并解析测试命令;接收并解析用户发送的所述测试命令;根据解析后的测试命令,从数据库中读出用户代码的版本控制环境、所需硬件资源环境及测试用例信息,具体的,本实例中所述测试用例信息包括名称、调用命令、运行时长;所述数据库还包括测试用例数据、全部可用于分布式测试的计算处理设备相关信息以及以往用户解决测试用例问题方法积累的历史数据,训练出的以神经网络为主的人工智能模型;数据库的集成使用户不修改源代码就可以灵活配资、组合、监控测试用例,并使智能解决问题成为可能;所述用户代码的版本控制环境为git或svn;

    自动分配一台物理计算机或虚拟机或docker,通过jenkins流程读取用户代码更改事务,从而确定用户更改代码、基础代码;具体的,本实例中所述方法可以测试传统软件,也可通过kubernetes和docker技术测试云原生应用软件。

    步骤230,获得融合代码;具体的,本实例中,通过jenkins流程合并所述用户更改代码及所述基础代码,编译打包后得到融合代码。

    步骤240,调度计算处理设备;根据所述测试用例信息,确定测试用例及计算处理设备的数量,并调度相应数量的计算处理设备;具体的,本实例中,所述计算处理设备包括物理计算机、虚拟机及docker。

    步骤250,执行测试用例;在所述计算处理设备上,自动安装所述融合代码,对于测试用例其他依赖的软件,如果有对应的image,可以直接载入,如没有,利用jenkins流程自动安装;完毕后,在所述计算处理设备上并行执行所述测试用例,得到测试用例执行结果,同时收集cpu、gpu、内存、硬盘、网络、功耗等相关系统信息,保存至数据库并实时发送至用户端,确保在运行过程中,用户可随时查询测试用例运行状态。

    步骤260,汇总结果给出智能建议;根据所述测试用例执行结果及所述相关系统信息,利用人工智能模型,针对测试用例发现的问题,智能给出人工智能建议;汇总所述测试用例执行结果、所述相关系统信息以及所述人工智能建议,返回给用户,完成对软件的测试;具体的,本实例中,所述人工智能模型是根据以往用户解决测试用例问题方法积累的历史数据,训练出的以神经网络为主的人工智能模型。

    步骤270,在线增量训练;针对测试用例发现的问题,用户解决后,将解决方法保存至数据库,以供人工智能分析模型在线增量训练。

    图3为本发明具体实施方式的一种基于智能判断的支持云的分布式框架软件测试方法流程图。如图3所示,所述方法包括:

    步骤3001,保存测试用例信息至数据库;在测试之前,用户需通过测试用例配置单元的web页面或命令行输入测试用例信息保存到数据库,具体的,本实施例中包括测试用例名称、所属测试用例集、调用方法、所需硬件资源环境、所需计算处理装置的种类、版本控制系统及其访问信息、预计运行时长、操作系统、依赖软件等;所述硬件资源环境包括内存、cpu、硬盘、gpu等;所述计算处理装置包括物理计算机、虚拟机以及docker;所述预计运行时长小于12小时。

    步骤3002,发布测试命令;用户通过测试用例配置单元的web页面或命令行发布测试命令,具体的,本实例中所述测试命令包括用户代码更改事务名称及测试用例集。

    步骤3003,判断解析测试命令是否有误;接收并解析所述测试命令,判断所述测试命令解析后是否有误;若有错误,则返回错误及相关信息给用户,结束本次测试;如无错误,执行步骤3004。

    步骤3004,判断是否需要docker;根据解析后的所述测试命令结果,从数据库中读取判断是否需要docker;如果需要,则调用kubernetes分配合适的docker资源后,执行步骤3005;若不需要,则直接执行步骤3005。

    步骤3005,确定用户更改代码及基础代码;根据解析后的测试命令,从数据库中读出用户代码的版本控制环境、所需硬件资源环境及测试用例信息;具体的,本实例中所述用户代码的版本控制环境为git或svn;所述数据库还包括测试用例数据、全部可用于分布式测试的计算处理设备相关信息以及以往用户解决测试用例问题方法积累的历史数据,训练出的以神经网络为主的人工智能模型;数据库的集成使用户不修改源代码就可以灵活配资、组合、监控测试用例,并使智能解决问题成为可能;

    自动分配一台物理计算机或虚拟机或docker,如果有对应的image,可以直接载入,如没有,利用jenkins流程自动安装,通过jenkins流程读取用户代码更改事务,从而确定用户更改代码、基础代码;具体的,本实例中所述方法可以测试传统软件,也可通过kubernetes和docker技术测试云原生应用软件。

    步骤3006,获得融合代码;具体的,本实例中,通过jenkins流程合并所述用户更改代码及所述基础代码,编译打包后得到融合代码。

    步骤3007,调度计算处理设备;根据所述测试用例信息,确定测试用例及计算处理设备的数量,并调度相应数量的计算处理设备;具体的,本实例中,所述计算处理设备包括物理计算机、虚拟机及docker。

    步骤3008,执行测试用例;在所述计算处理设备上,自动安装所述融合代码,对于测试用例其他依赖的软件,如果有对应的image,可以直接载入,如没有,利用jenkins流程自动安装;完毕后,在所述计算处理设备上并行执行所述测试用例,得到测试用例执行结果,同时收集cpu、gpu、内存、硬盘、网络、功耗等相关系统信息,保存至数据库并实时发送至用户端,确保在运行过程中,用户可随时查询测试用例运行状态;用户也可随时取消测试用例运行。

    步骤3009,判断单独测试用例运行时长;在运行过程中,通过jenkins流程判读单独的测试用例实际运行时长是否超过12小时;若超过,则返回错误信息给用户,要求分拆测试用例;若不超过,继续执行步骤3010。

    步骤3010,汇总结果给出智能建议;根据所述测试用例执行结果及所述相关系统信息,利用人工智能模型,针对测试用例发现的问题,智能给出人工智能建议;汇总所述测试用例执行结果、所述相关系统信息以及所述人工智能建议,返回给用户,完成对软件的测试;具体的,本实例中,所述人工智能模型是根据以往用户解决测试用例问题方法积累的历史数据,训练出的以神经网络为主的人工智能模型。

    步骤3011,在线增量训练;针对测试用例发现的问题,用户解决后,将解决方法保存至数据库,以供人工智能分析模型在线增量训练。

    图4为本发明具体实施方式的一种支持云的分布式框架软件测试装置结构图。如图4所示,所述装置包括:

    测试用例配置单元410,所述测试用例配置单元410一端与所述管理控制单元420相连接;所述测试用例配置单元410用于发送用户的测试命令至所述管理控制单元420;具体的,本实例中,所述测试命令包括用户代码更改事务名称及测试用例集。

    管理控制单元420,所述管理控制单元420一端分别与计算处理单元430、数据库单元440、测试用例报告单元450及人工智能分析单元460相连接;所述管理控制单元420用于接收并解析用户发送的测试命令,得到用户更改代码、基础代码及测试用例信息;

    具体的,本实例中,所述测试用例信息包括测试用例名称、所属测试用例集、调用方法、所需硬件资源环境、所需计算处理装置的种类、版本控制系统及其访问信息、预计运行时长、操作系统、依赖软件等;所述硬件资源环境包括内存、cpu、硬盘、gpu等;所述计算处理装置包括物理计算机、虚拟机以及docker;若需要调用docker,则需要使用kubernetes分配合适的docker资源;所述预计运行时长小于12小时。

    所述管理控制单元420还用于合并所述用户更改代码及所述基础代码得到融合代码,根据所述测试用例信息确定计算处理设备的数量及调度结果,并将所述融合代码、所述计算处理设备的调度结果以及所述测试用例信息发送至所述计算处理单元430;

    进一步的,所述管理控制单元420包括:

    测试命令解析模块4201,所述测试命令解析模块4201一端与所述测试用例配置单元410相连接,另一端分别与所述数据库单元440以及流程管理监控模块4202相连接;所述测试命令解析模块4201用于接收并解析用户发送的测试命令,并将测试命令解析结果发送至所述数据库单元440及所述流程管理监控模块4202;

    流程管理监控模块4202,所述流程管理监控模块4202一端与所述测试命令解析模块4201相连接,另一端分别与所述计算处理管理模块4203、所述计算处理单元430、所述数据库单元440、所述测试用例报告单元450以及所述人工智能分析单元460相连接;

    所述流程管理监控模块4202用于根据所述测试命令解析结果,得到用户更改代码、基础代码及测试用例信息;所述流程管理监控模块4202还用于合并所述用户更改代码及所述基础代码得到融合代码,并将所述融合代码发送至所述计算处理单元430;所述流程管理监控模块4202还用于根据所述测试用例信息确定计算处理设备的数量,并将所述计算处理设备的数量发送至所述计算处理管理模块4203;所述流程管理监控模块4202还用于完成持续集成,维护整个测试用例运行的生命周期,确保在运行过程中,用户可随时查询测试用例运行状态;也可随时取消测试用例运行;所述流程管理模块采用包括jenkins流程;

    计算处理管理模块4203,所述计算处理管理模块4203一端与所述计算处理单元430相连接;所述计算处理管理模块4203用于根据所述计算处理设备的数量调度需要的计算处理设备,并将调度结果发送至所述计算处理单元430。

    计算处理单元430,所述计算处理单元430一端与所述数据库单元440相连接,另一端与所述测试用例报告单元450相连接;所述计算处理单元430用于根据所述计算处理设备的调度结果、所述融合代码,确定需要的计算处理设备,并将所述融合代码安装至所述计算处理设备;

    所述计算处理单元430还用于根据所述测试用例信息,确定需要的测试用例,在所述计算处理设备上并行执行所述测试用例,得到测试用例执行结果,同时收集相关系统信息,并将所述测试用例执行结果及所述相关系统信息发送至所述数据库单元440保存及所述测试用例报告单元450;具体的,本实施例中所述相关系统信息包括cpu、gpu、内存、硬盘、网络、功耗的信息。

    数据库单元440,所述数据库单元440用于根据接收的所述测试命令的解析结果,将所述测试用例信息发送至所述管理控制单元420;所述数据库单元440还用于根据所述测试用例信息发送所述测试用例至所述计算处理单元430;

    具体的,本实例中所述数据库单元440包含用户代码的版本控制环境、所需硬件资源环境、测试用例数据、全部可用于分布式测试的计算处理设备相关信息以及以往用户解决测试用例问题方法积累的历史数据,训练出的以神经网络为主的人工智能模型,使用户不修改源代码就可以灵活配资、组合、监控测试用例,并使智能解决问题成为可能;所述用户代码的版本控制环境为git或svn。

    测试用例报告单元450,所述测试用例报告单元450用于汇总所述测试用例执行结果、所述相关系统信息以及人工智能建议,返回给用户,完成对软件的测试。

    人工智能分析单元460,所述人工智能分析单元460一端分别与所述计算处理单元430及所述数据库单元440相连接,另一端与所述测试用例报告单元450相连接;所述人工智能分析单元460用于接收所述计算处理单元发送的所述测试用例执行结果及所述相关系统信息,针对测试用例发现的问题,根据人工智能模型确定人工智能建议,并将所述人工智能建议发送至所述测试用例报告单元450;所述人工智能分析单元还用于在用户解决问题后,填入解决方法并保存至所述数据库单元440,以供人工智能分析模型在线增量训练;具体的,本实例中,所述人工智能模型是根据以往用户解决测试用例问题方法积累的历史数据,训练出的以神经网络为主的人工智能模型。

    进一步的,所述软件测试包括传统软件测试以及云原生应用软件测试。

    在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

    本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。本说明书中涉及到的步骤编号仅用于区别各步骤,而并不用于限制各步骤之间的时间或逻辑的关系,除非文中有明确的限定,否则各个步骤之间的关系包括各种可能的情况。

    此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。例如,在权利要求书中所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

    本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者系统程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

    应该注意的是上述实施例对本公开进行说明而不是对本公开进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干系统的单元权利要求中,这些系统中的若干个可以是通过同一个硬件项来具体体现。

    以上所述仅是本公开的具体实施方式,应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开精神的前提下,可以作出若干改进、修改、和变形,这些改进、修改、和变形都应视为落在本申请的保护范围内。


    技术特征:

    1.一种支持云的分布式框架软件测试方法,其特征在于,所述方法包括:

    接收并解析测试命令,得到用户更改代码、基础代码及测试用例信息;

    合并所述用户更改代码及所述基础代码,编译打包后得到融合代码;

    根据所述测试用例信息,确定测试用例及计算处理设备的数量,并调度相应数量的计算处理设备;

    在所述计算处理设备上,安装所述融合代码,并行执行所述测试用例,得到测试用例执行结果,并收集相关系统信息;

    根据所述测试用例执行结果及所述相关系统信息,完成对软件的测试。

    2.根据权利要求1所述的方法,其特征在于,在接收并解析测试命令,得到用户更改代码、基础代码及测试用例信息前还包括:

    用户发布测试命令,所述测试命令包括用户代码更改事务名称以及测试用例集。

    3.根据权利要求1所述的方法,其特征在于,所述计算处理设备包括:物理计算机、虚拟机以及docker。

    4.根据权利要求1所述的方法,其特征在于,所述软件测试包括:传统软件测试以及云原生应用软件测试。

    5.根据权利要求1所述的方法,其特征在于:

    所述得到用户更改代码及所述基础代码,合并所述用户更改代码及所述基础代码编译打包后得到所述融合代码,包括通过jenkins流程实现;

    在所述安装所述融合代码后,并行执行所述测试用例前,还包括,根据image或jenkins流程安装所述测试用例依赖的其他软件。

    6.根据权利要求1所述的方法,其特征在于,所述相关系统信息包括:cpu、gpu、内存、硬盘、网络、功耗的信息。

    7.根据权利要求1所述的方法,其特征在于:所述测试用例信息以及所述相关系统信息集中存储于数据库中。

    8.根据权利要求7所述的方法,其特征在于,在根据所述测试用例执行结果及所述相关系统信息,完成对软件的测试后,还包括:

    根据所述数据库中历史问题解决方法数据,训练出的人工智能分析模型,对完成测试的软件给出人工智能建议;用户解决问题后,填入解决方法并保存至所述数据库。

    9.一种支持云的分布式框架软件测试装置,其特征在于,所述装置包括:

    管理控制单元,所述管理控制单元一端分别与计算处理单元、数据库单元、测试用例报告单元相连接;所述管理控制单元用于接收并解析用户发送的测试命令,得到用户更改代码、基础代码及测试用例信息;

    所述管理控制单元还用于合并所述用户更改代码及所述基础代码得到融合代码,根据所述测试用例信息确定计算处理设备的数量及调度结果,并将所述融合代码、所述计算处理设备的调度结果以及所述测试用例信息发送至所述计算处理单元;

    计算处理单元,所述计算处理单元一端与所述数据库单元相连接,另一端与所述测试用例报告单元相连接;所述计算处理单元用于根据所述计算处理设备的调度结果、所述融合代码,确定需要的计算处理设备,并将所述融合代码安装至所述计算处理设备;

    所述计算处理单元还用于根据所述测试用例信息,确定需要的测试用例,在所述计算处理设备上并行执行所述测试用例,得到测试用例执行结果,同时收集相关系统信息,并将所述测试用例执行结果及所述相关系统信息发送至所述数据库单元保存及所述测试用例报告单元。

    数据库单元,所述数据库单元用于根据接收的所述测试命令的解析结果,将所述测试用例信息发送至所述管理控制单元;所述数据库单元还用于根据所述测试用例信息发送所述测试用例至所述计算处理单元。

    测试用例报告单元,所述测试用例报告单元用于将所述测试用例执行结果及所述相关系统信息汇总为测试报告,返回给用户。

    10.根据权利要求9所述的装置,其特征在于,所述装置还包括:

    测试用例配置单元,所述测试用例配置单元一端与所述管理控制单元相连接;所述测试用例配置单元用于发送用户的测试命令至所述管理控制单元;

    人工智能分析单元,所述人工智能分析单元一端分别与所述计算处理单元及所述数据库单元相连接,另一端与所述测试用例报告单元相连接;所述人工智能分析单元用于接收所述计算处理单元发送的所述测试用例执行结果及所述相关系统信息,针对测试用例发现的问题,根据人工智能模型确定人工智能建议,并将所述人工智能建议发送至所述测试用例报告单元。所述人工智能分析单元还用于在用户解决问题后,填入解决方法并保存至所述数据库单元。

    11.根据权利要求10所述的装置,其特征在于,所述管理控制单元包括:

    测试命令解析模块,所述测试命令解析模块一端与所述测试用例配置单元相连接,另一端分别与所述数据库单元以及流程管理监控模块相连接;所述测试命令解析模块用于接收并解析用户发送的测试命令,并将测试命令解析结果发送至所述数据库单元及所述流程管理监控模块;

    流程管理监控模块,所述流程管理监控模块一端与所述测试命令解析模块相连接,另一端分别与所述计算处理管理模块、所述计算处理单元、所述数据库单元、所述测试用例报告单元以及所述人工智能分析单元相连接;

    所述流程管理监控模块用于根据所述测试命令解析结果,得到用户更改代码、基础代码及测试用例信息;所述流程管理监控模块还用于合并所述用户更改代码及所述基础代码得到融合代码,并将所述融合代码发送至所述计算处理单元;所述流程管理监控模块还用于根据所述测试用例信息确定计算处理设备的数量,并将所述计算处理设备的数量发送至所述计算处理管理模块;

    所述流程管理模块采用包括jenkins流程;

    计算处理管理模块,所述计算处理管理模块一端与所述计算处理单元相连接;所述计算处理管理模块用于根据所述计算处理设备的数量调度需要的计算处理设备,并将调度结果发送至所述计算处理单元。

    12.根据权利要求9所述的装置,其特征在于,所述计算处理设备包括:物理计算机、虚拟机以及docker。

    13.根据权利要求9所述的装置,其特征在于,所述软件测试包括:传统软件测试以及云原生应用软件测试。

    14.根据权利要求9所述的装置,其特征在于:所述相关系统信息包括:cpu、gpu、内存、硬盘、网络、功耗的信息。

    技术总结
    本发明公开了一种支持云的分布式框架软件测试方法及装置,所述方法包括,接收并解析测试命令,得到用户更改代码、基础代码及测试用例信息;合并用户更改代码及基础代码,编译打包后得到融合代码;根据测试用例信息,确定测试用例及计算处理设备的数量,并调度相应数量的计算处理设备;将融合代码安装在所述计算处理设备上,并行执行所述测试用例,得到测试用例执行结果,同时收集如CPU、GPU、内存等相关系统信息;根据测试用例执行结果及相关系统信息,完成对软件的测试。本发明提供的分布式框架软件测试方法,采用多台计算处理设备并行执行大量测试用例,突破了单台计算机运行测试用例时长的限制,提高了软件测试效率。

    技术研发人员:李年
    受保护的技术使用者:北京海量数据技术股份有限公司
    技术研发日:2020.11.26
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-22603.html

    最新回复(0)