测试方法、装置、设备、存储介质及程序产品
技术领域
本申请涉及但不限于计算机
技术领域
,尤其涉及一种测试方法、装置、设备、存储介质及计算机程序产品。背景技术
在软件开发的持续集成过程中,测试是非常重要的环境。相关技术中,测试的一般流程都是开发工程师完成组件版本开发后,手动进行编译打包得到待测试组件的镜像,并将待测试组件的镜像推送至镜像仓库,测试工程师需要手动在测试环境中更新待测试组件的指定镜像,重新部署测试环境,然后再去测试平台手动触发测试任务的执行,在测试任务执行完成后,人工查看测试结果,当有需要时,测试工程师需手动搜集测试结果信息并通过邮件发送至相关人员。上述测试方案中,在组件镜像的编译打包、测试环境的部署更新和执行测试任务及结果收集方面均需要人工干预,无法实现真正的组件镜像构建、部署、测试全流程的自动化,也无法持续地进行测试。并且,可能由于开发工程师和测试工程师的信息不对等,会导致环境未更新部署最新的测试版本或未及时进行测试的情况。
发明内容
有鉴于此,本申请实施例提供一种测试方法、装置、设备、存储介质及计算机程序产品。
本申请实施例的技术方案是这样实现的:
一方面,本申请实施例提供一种测试方法,所述方法包括:
基于待测试组件的待测试代码的版本信息,触发所述待测试组件的持续集成工具对所述待测试组件进行镜像构建,得到与所述待测试代码的版本信息匹配的待测试镜像的版本信息;其中,所述持续集成工具构建的镜像存储在镜像仓库;
基于所述待测试镜像的版本信息,触发测试服务器部署所述待测试组件的测试环境;其中,所述测试环境是基于所述镜像仓库中与所述待测试镜像的版本信息匹配的待测试镜像部署的;
在所述测试环境部署成功的情况下,执行设定的测试任务,得到所述待测试组件的测试结果。
另一方面,本申请实施例提供一种测试装置,所述装置包括:
构建模块,用于基于待测试组件的待测试代码的版本信息,触发所述待测试组件的持续集成工具对所述待测试组件进行镜像构建,得到与所述待测试代码的版本信息匹配的待测试镜像的版本信息;其中,所述持续集成工具构建的镜像存储在镜像仓库;
部署模块,用于基于所述待测试镜像的版本信息,触发测试服务器部署所述待测试组件的测试环境;其中,所述测试环境是基于所述镜像仓库中与所述待测试镜像的版本信息匹配的待测试镜像部署的;
第一测试模块,用于在所述测试环境部署成功的情况下,执行设定的测试任务,得到所述待测试组件的测试结果。
在一些实施例中,所述装置还包括:分析模块,用于对所述待测试组件的测试结果进行分析,得到所述测试任务的执行结果统计信息;发送模块,用于基于所述测试任务的执行结果统计信息,生成并发送所述待测试组件的测试报告。
在一些实施例中,所述待测试组件的数量为多个,所述构建模块还用于:基于多个待测试组件的待测试代码的版本信息,采用并行的方式,触发所述多个待测试组件的持续集成工具分别对所述多个待测试组件进行镜像构建,得到与每一所述待测试组件的所述待测试代码的版本信息匹配的待测试镜像的版本信息。
在一些实施例中,所述部署模块还用于:基于所述待测试镜像的版本信息,触发测试服务器执行如下操作:获取与所述待测试镜像的版本信息匹配的操作系统的版本信息以及基础组件的版本信息;其中,所述基础组件为所述待测试组件运行时所依赖的组件;基于所述操作系统的版本信息,进行操作系统重装;基于所述基础组件的版本信息,在所述操作系统中对所述基础组件进行部署;基于所述待测试镜像的版本信息,从所述镜像仓库中获取与所述待测试镜像的版本信息匹配的待测试镜像,并利用所述待测试镜像,在所述操作系统中部署所述待测试组件。
在一些实施例中,所述待测试组件包括待测试的第一组件,所述装置还包括:第一获取模块,用于获取对待测试的第二组件的测试需求;清理模块,用于响应于所述第二组件与所述第一组件所依赖的操作系统和基础组件均相同的情况下,触发所述测试服务器在所述测试环境中清理所述待测试组件的测试数据;第二测试模块,用于基于所述第二组件的待测试代码的版本信息,完成对所述第二组件的测试。
在一些实施例中,所述构建模块还用于:基于所述待测试组件的待测试代码的版本信息,查询所述待测试代码的版本信息与镜像的版本信息之间的对应关系;在查询到所述对应关系中不存在与所述待测试代码的版本信息匹配的镜像的版本信息的情况下,基于所述待测试代码的版本信息,触发所述待测试组件的持续集成工具对所述待测试组件进行镜像构建,得到与所述待测试代码的版本信息匹配的待测试镜像的版本信息;和/或,在查询到所述对应关系中存在与所述待测试代码的版本信息匹配的镜像的版本信息的情况下,将所述镜像的版本信息确定为待测试镜像的版本信息。
在一些实施例中,所述待测试代码的版本信息包括所述待测试代码的分支信息,所述构建模块还用于:基于所述待测试代码的分支信息,触发所述待测试组件的持续集成工具对所述待测试组件进行镜像构建,得到所述待测试代码的分支信息对应的最近一次代码提交记录,以及与所述最近一次代码提交记录所匹配的待测试镜像的版本信息。
在一些实施例中,所述待测试代码的版本信息还包括所述待测试代码的代码提交记录,所述装置还包括:第二获取模块,用于基于所述待测试代码的分支信息,从待测试组件的代码管理工具中获取所述待测试代码的最近一次代码提交记录;所述构建模块还用于:基于所述待测试代码的最近一次代码提交记录,查询所述待测试代码的代码提交记录与镜像的版本信息之间的对应关系。
在一些实施例中,所述构建模块还用于:在查询到所述对应关系中存在与所述待测试代码的最近一次代码提交记录匹配的镜像的版本信息的情况下,将所述镜像的版本信息确定为待测试镜像的版本信息。
在一些实施例中,所述构建模块还用于:在基于所述待测试组件的配置信息,确定开启自动镜像构建功能的情况下,基于待测试组件的待测试代码的版本信息,触发所述待测试组件的持续集成工具对所述待测试组件进行镜像构建,得到与所述待测试代码的版本信息匹配的待测试镜像的版本信息。
在一些实施例中,所述构建模块还用于:在基于所述配置信息,确定未开启所述自动镜像构建功能的情况下,获取所述待测试组件在生产环境中使用的镜像的版本信息,并将所述镜像的版本信息确定为待测试镜像的版本信息。
再一方面,本申请实施例提供一种测试设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
又一方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。
又一方面,本申请实施例提供一种计算机程序,包括计算机可读代码,当所述计算机可读代码在计算机设备中运行时,所述展示设备中的处理器执行用于实现上述方法中的部分或全部步骤。
又一方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。
本申请实施例中,基于待测试组件的待测试代码的版本信息,触发待测试组件的持续集成工具对待测试组件进行镜像构建,得到与待测试代码的版本信息匹配的待测试镜像的版本信息;其中,持续集成工具构建的镜像存储在镜像仓库;基于待测试镜像的版本信息,触发测试服务器部署待测试组件的测试环境;其中,测试环境是基于镜像仓库中与待测试镜像的版本信息匹配的待测试镜像部署的;在测试环境部署成功的情况下,执行设定的测试任务,得到待测试组件的测试结果。这样,可以对待测试组件的待测试代码自动实现包括镜像构建、测试环境部署以及测试任务执行的全流程的自动化测试方法,从而能够持续地自动地进行测试,进而可以减少由于开发工程师和测试工程师的信息不对等,导致测试的组件版本不准确或者测试不及时的问题,也可避免人为操作失误导致测试结果不准确的问题。此外,由于在测试环境部署成功的情况下执行设定的测试任务,这样,可以及时发现测试环境部署异常,从而可以减少由于测试环境部署异常导致的测试任务执行失败。
附图说明
图1为本申请实施例提供的一种测试方法的实现流程示意图;
图2为本申请实施例提供的一种测试方法的实现流程示意图;
图3为本申请实施例提供的一种测试方法的实现流程示意图;
图4为本申请实施例提供的一种测试方法的实现流程示意图;
图5A为本申请实施例提供的一种测试方法的实现流程示意图;
图5B为本申请实施例提供的一种镜像构建及部署方法的实现流程示意图;
图5C为本申请实施例提供的一种对多个待测试组件进行镜像构建的实现流程示意图;
图6为本申请实施例提供的一种对两个模块进行测试的实现流程示意图;
图7为本申请实施例提供的一种测试装置的组成结构示意图;
图8为本申请实施例提供的一种测试设备的硬件实体示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图和实施例对本申请的技术方案进一步详细阐述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
如果申请文件中出现“第一/第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请的目的,不是旨在限制本申请。
本申请实施例提供一种测试方法,该方法可以由运行在计算机设备上的测试平台执行。其中,计算机设备指的可以是服务器、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、移动设备(例如移动电话、便携式视频播放器、个人数字助理、专用消息设备、便携式游戏设备)等具备数据处理能力的设备。图1为本申请实施例提供的一种测试方法的实现流程示意图,如图1所示,该方法包括:
步骤S101,基于待测试组件的待测试代码的版本信息,触发所述待测试组件的持续集成工具对所述待测试组件进行镜像构建,得到与所述待测试代码的版本信息匹配的待测试镜像的版本信息;其中,所述持续集成工具构建的镜像存储在镜像仓库。
这里,待测试组件的待测试代码为开发人员开发完成后需要进行测试的代码。待测试组件的待测试代码可以由开发人员开发后提交至代码仓库(如Github、GitLab、SVN等)中,代码仓库中可以存储同一组件的不同版本的代码。通过代码的版本信息可以确定对应版本的代码。在实施时,代码的版本信息可以包括代码的版本号,也可以包括代码在代码仓库中的分支信息、代码提交记录等。待测试组件的待测试代码的版本信息可以是用户配置的,也可以是系统默认的。
持续集成工具可以是开源的持续集成工具,如GitLab CI、Jenkins、CircleCI、Codefresh等,也可以是用户自研的可以自动进行镜像构建的工具。测试平台可以采用发送指令或接口调用等方式,将待测试组件的待测试代码的版本信息发送给持续集成工具,并触发持续集成工具基于待测试代码的版本信息,对待测试组件进行镜像构建。持续集成工具可以基于待测试代码的版本信息,从代码仓库中拉取待测试代码,并通过对待测试代码进行编译、打包等操作构建待测试组件的镜像,并将构建的进行推送至镜像仓库。进行镜像构建时,可以设置镜像的版本信息,镜像的版本信息可以包括镜像的版本号,也可以包括镜像对应的代码的版本信息,这里并不限定。镜像仓库可以部署在本地服务器中,也可以部署在云端服务器。在完成镜像构建后,持续集成工具会可以采用接口调用或回调函数等方式将打包的待测试组件的版本信息以及本次构建生成的镜像的版本信息发送给测试平台。在实施时,本领域技术人员可以根据实际情况采用合适的持续集成工具,持续集成工具可以是独立部署的,也可以是集成在代码管理工具中的持续集成插件,这里并不限定的。
例如,持续集成工具可以是集成在代码管理工具GitLab中的GitLab CI插件,可以在待测试组件的代码管理工具GitLab的项目目录下配置的gitlab-ci.yml文件中,增加组件编译、打包并回调测试平台的回调函数的阶段(stage)。在测试平台上能够触发GitLabCI插件执行待测试组件的编译、打包,从而得到与待测试代码的版本信息匹配的待测试镜像,并将待测试镜像推送至镜像仓库。GitLab CI插件完成镜像构建后,会回调测试平台的回调函数,通过调用回调函数可以将打包的待测试组件的版本信息以及本次构建生成的镜像的版本信息发送给测试平台。
步骤S102,基于所述待测试镜像的版本信息,触发测试服务器部署所述待测试组件的测试环境;其中,所述测试环境是基于所述镜像仓库中与所述待测试镜像的版本信息匹配的待测试镜像部署的。
这里,测试环境可以包括待测试组件需要运行的操作系统、运行待测试组件需要依赖的基础组件以及待测试组件。测试服务器为用于搭建测试环境,对待测试组件进行测试的一台或多台服务器。在实施时,测试服务器可以是物理服务器,也可以是虚拟服务器或云服务器,可以是独立的服务器,也可以是服务器集群。
测试平台可以在获得待测试镜像的版本信息后,触发测试服务器部署所述待测试组件的测试环境。测试平台可以通过向测试服务器发送远程指令的方式,将待测试镜像的版本信息发送给测试服务器,并触发测试服务器基于待测试镜像的版本信息,部署待测试组件的测试环境。测试环境部署可以包括但不限于重装操作系统、部署基础组件、部署待测试组件等中的一种或多种。部署的测试环境中,操作系统、基础组件的版本均是与待测试镜像的版本所匹配的。测试服务器可以基于待测试镜像的版本信息,从镜像仓库中获取待测试镜像,并基于待测试镜像部署待测试组件。
步骤S103,在所述测试环境部署成功的情况下,执行设定的测试任务,得到所述待测试组件的测试结果。
这里,测试环境部署成功是指待测试组件可以在测试服务器上正常运行并提供服务。测试服务器可以在测试环境部署成功后通知测试平台。测试平台也可以通过轮询的方式自动检测测试环境是否部署成功,例如,测试平台可以通过对待测试组件发送心跳检测,来检测测试环境是否部署成功。
设定的测试任务可以是用户根据实际情况预先在测试平台上配置的,可以包括至少一个测试用例。在测试环境部署成功的情况下,测试平台可以执行设定的测试任务,得到待测试组件的测试结果。测试结果中可以包括每一测试用例的执行结果。在实施时,可以根据实际情况确定测试结果中包含的信息,例如,测试结果中可以包括测试用例是否执行成功、错误信息、执行时长等。
在一些实施例中,在测试任务执行完成后,还可以将待测试组件的测试结果发送给测试人员和/或开发人员,从而方便测试人员和/或开发人员及时掌握测试结果。
在一些实施例中,所述待测试组件的数量为多个,上述步骤S101可以包括:步骤S101a,基于多个待测试组件的待测试代码的版本信息,采用并行的方式,触发所述多个待测试组件的持续集成工具分别对所述多个待测试组件进行镜像构建,得到与每一所述待测试组件的所述待测试代码的版本信息匹配的待测试镜像的版本信息。这里,多个待测试组件可以使用同一持续集成工具,也可以使用不同的持续集成工具。这样,在需要对多个组件进行测试时,通过并行的方式为每个组件进行镜像构建,可以节省测试时间,提高测试效率。
在一些实施例中,上述步骤S101可以包括:步骤S101b,在基于所述待测试组件的配置信息,确定开启自动镜像构建功能的情况下,基于待测试组件的待测试代码的版本信息,触发所述待测试组件的持续集成工具对所述待测试组件进行镜像构建,得到与所述待测试代码的版本信息匹配的待测试镜像的版本信息;其中,所述持续集成工具构建的镜像存储在镜像仓库。这里,待测试组件的配置信息可以是默认的,也可以是用户配置的。配置信息中可以包括用于表征是否为待测试组件开启自动镜像构建功能的配置项。在实施时,不同的待测试组件的配置信息可以是相同的,也可以是不同的。
在一些实施例中,上述步骤S101还可以包括:步骤S101c,在基于所述配置信息,确定未开启所述自动镜像构建功能的情况下,获取所述待测试组件在生产环境中使用的镜像的版本信息,并将所述镜像的版本信息确定为待测试镜像的版本信息。这里,生产环境是指组件正式提供对外服务的运行环境。在实施时,可以获取生产环境中运行的组件的版本信息,基于组件的版本信息,可以确定生产环境中使用的镜像的版本信息。这样,通过在待测试组件的配置信息中配置是否开启自动镜像构建功能,可以灵活地支持对生产环境中运行的组件和正在开发的组件的自动化测试。
本申请实施例提供的测试方法,基于待测试组件的待测试代码的版本信息,触发待测试组件的持续集成工具对待测试组件进行镜像构建,得到与待测试代码的版本信息匹配的待测试镜像的版本信息;其中,持续集成工具构建的镜像存储在镜像仓库;基于待测试镜像的版本信息,触发测试服务器部署待测试组件的测试环境;其中,测试环境是基于镜像仓库中与待测试镜像的版本信息匹配的待测试镜像部署的;在测试环境部署成功的情况下,执行设定的测试任务,得到待测试组件的测试结果。这样,可以对待测试组件的待测试代码自动实现包括镜像构建、测试环境部署以及测试任务执行的全流程的测试方法,从而能够持续地自动地进行测试,进而可以减少由于开发工程师和测试工程师的信息不对等,导致测试的组件版本不准确或者测试不及时的问题,也可避免人为操作失误导致测试结果不准确的问题。此外,由于在测试环境部署成功的情况下执行设定的测试任务,这样,可以及时发现测试环境部署异常,从而可以减少由于测试环境部署异常导致的测试任务执行失败。
本申请实施例提供一种测试方法,该方法可以由运行在计算机设备上的测试平台执行。如图2所示,该方法包括:
步骤S201,基于待测试组件的待测试代码的版本信息,触发所述待测试组件的持续集成工具对所述待测试组件进行镜像构建,得到与所述待测试代码的版本信息匹配的待测试镜像的版本信息;其中,所述持续集成工具构建的镜像存储在镜像仓库。
步骤S202,基于所述待测试镜像的版本信息,触发测试服务器部署所述待测试组件的测试环境;其中,所述测试环境是基于所述镜像仓库中与所述待测试镜像的版本信息匹配的待测试镜像部署的。
步骤S203,在所述测试环境部署成功的情况下,执行设定的测试任务,得到所述待测试组件的测试结果。
这里,步骤S201至步骤S203分别对应于前述步骤S101至步骤S103,在实施时可以参照前述步骤S101至步骤S103的具体实施方式。
步骤S204,对所述待测试组件的测试结果进行分析,得到所述测试任务的执行结果统计信息。
这里,待测试组件的测试结果中可以包括每个测试用例的执行结果,例如,测试用例是否执行成功、错误信息、执行时长等。在测试任务执行完成之后,可以对待测试组件的测试结果进行分析,得到测试任务的执行结果统计信息。执行结果统计信息可以包括但不限于测试任务的执行时间、执行的测试用例总数、测试用例的通过率及失败率等。
步骤S205,基于所述测试任务的执行结果统计信息,生成并发送所述待测试组件的测试报告。
这里,待测试组件的测试报告中可以包括执行结果统计信息,还可以包括基于执行结果统计信息确定的待测试组件的待测试代码的质量评估结果、错误根因分析结果等。在实施时,可以采用邮件、短信、语音等任意合适的方式将待测试组件的测试报告发送给测试人员、开发人员或其他项目相关人员,这里并不限定。这样,测试人员、开发人员或其他项目相关人员可以通过比较一段时间内同一个组件的测试报告,监控开发项目的质量。
本申请实施例提供的测试方法,在执行完测试任务后,可以对待测试组件的测试结果进行分析,得到测试任务的执行结果统计信息,并能基于测试任务的执行结果统计信息,生成并发送待测试组件的测试报告。这样,测试人员、开发人员或其他项目相关人员可以方便及时地掌握待测试组件的测试结果,并能通过比较一段时间内同一个组件的测试报告,监控开发项目的质量。
本申请实施例提供一种测试方法,该方法可以由运行在计算机设备上的测试平台执行。如图3所示,该方法包括:
步骤S301,基于待测试组件的待测试代码的版本信息,触发所述待测试组件的持续集成工具对所述待测试组件进行镜像构建,得到与所述待测试代码的版本信息匹配的待测试镜像的版本信息;其中,所述持续集成工具构建的镜像存储在镜像仓库。
这里,步骤S301对应于前述步骤S101,在实施时可以参照前述步骤S101的具体实施方式。
步骤S302,基于所述待测试镜像的版本信息,触发测试服务器执行如下操作:获取与所述待测试镜像的版本信息匹配的操作系统的版本信息以及基础组件的版本信息;其中,所述基础组件为所述待测试组件运行时所依赖的组件;基于所述操作系统的版本信息,进行操作系统重装;基于所述基础组件的版本信息,在所述操作系统中对所述基础组件进行部署;基于所述待测试镜像的版本信息,从所述镜像仓库中获取与所述待测试镜像的版本信息匹配的待测试镜像,并利用所述待测试镜像,在所述操作系统中部署所述待测试组件。
这里,测试平台可以向测试服务器发送待测试镜像的版本信息,测试服务器可以基于待测试镜像的版本信息,通过查询待测试组件的配置信息,获取与待测试镜像的版本信息匹配的操作系统的版本信息以及基础组件的版本信息。
测试平台也可以基于待测试镜像的版本信息,确定与待测试镜像的版本信息匹配的操作系统的版本信息以及基础组件的版本信息后,向测试服务器发送待测试镜像的版本信息、操作系统的版本信息以及基础组件的版本信息,测试服务器可以获取测试平台发送的与待测试镜像的版本信息匹配的操作系统的版本信息以及基础组件的版本信息。
测试服务器可以基于与待测试镜像的版本信息匹配的操作系统的版本信息,从存储操作系统镜像的镜像仓库中获取与该操作系统的版本信息匹配的操作系统镜像,并利用该操作系统镜像进行操作系统重装。
在重装完操作系统之后,测试服务器可以基于与待测试镜像的版本信息匹配的基础组件的版本信息,从存储基础组件的镜像的镜像仓库中获取与该基础组件的版本信息匹配的基础组件镜像,并利用该基础组件镜像在操作系统中部署基础组件。
测试服务器可以基于待测试镜像的版本信息,从存储待测试组件的镜像的镜像仓库中获取与待测试镜像的版本信息匹配的待测试镜像,并利用待测试镜像在操作系统中部署待测试组件。
需要说明的是,基础组件和待测试组件的部署顺序可以根据实际情况确定,这里并不限定。操作系统镜像、基础组件的镜像以及待测试组件的镜像可以存储在同一个镜像仓库,也可以存储在不同的镜像仓库。
步骤S303,在所述测试环境部署成功的情况下,执行设定的测试任务,得到所述待测试组件的测试结果。
这里,步骤S303对应于前述步骤S103,在实施时可以参照前述步骤S103的具体实施方式。
在一些实施例中,所述待测试组件包括待测试的第一组件,在步骤S203之后,该方法还可以包括:
步骤S304,获取对待测试的第二组件的测试需求;
这里,第二组件的测试需求可以包括但不限于第二组件的待测试代码的版本信息、与待测试代码的版本信息匹配的操作系统的版本信息和基础组件的版本信息、测试任务等。在实施时,第二组件的测试需求可以是用户配置的,也可以是测试平台默认的。
步骤S305,响应于所述第二组件与所述第一组件所依赖的操作系统和基础组件均相同的情况下,触发所述测试服务器在所述测试环境中清理所述待测试组件的测试数据。
这里,第二组件与第一组件所依赖的操作系统和基础组件均相同是指第二组件与第一组件所依赖的操作系统的版本和基础组件的版本均相同。在第二组件与第一组件所依赖的操作系统和基础组件均相同的情况下,可以在相同的测试服务器上对第一组件和第二组件进行测试。在完成第一组件的测试之后,测试平台可以触发测试服务器在测试环境中对第一组件的测试数据进行清理。对第一组件的测试数据的清理可以包括但不限于第一组件的服务的停止、第一组件测试时生成的中间数据的删除、操作系统或基础组件的配置信息初始化等。例如,停止与第二组件相冲突的服务、删除存储卷中的临时数据等。
步骤S306,基于所述第二组件的待测试代码的版本信息,完成对所述第二组件的测试。
这里,基于第二组件的待测试代码的版本信息,对第二组件进行测试的过程与基于第一组件的待测试代码的版本信息对第一组件进行测试的过程类似,在实施时,可以参照前述的对第一组件进行测试的具体实施方式。
在一些实施例中,上述步骤S306可以通过如下步骤S306a至步骤S306c实现:步骤S306a,基于所述第二组件的待测试代码的版本信息,触发所述第二组件的持续集成工具对所述第二组件进行镜像构建,得到与所述待测试代码的版本信息匹配的待测试镜像的版本信息;步骤S306b,基于所述待测试镜像的版本信息,触发所述测试服务器在所述操作系统中部署所述第二组件;步骤S306c,在确定所述第二组件部署成功的情况下,执行设定的测试任务,得到所述第二组件的测试结果。
本申请实施例提供的测试方法,基于待测试镜像的版本信息,触发测试服务器执行如下操作:获取与待测试镜像的版本信息匹配的操作系统的版本信息以及基础组件的版本信息,基于操作系统的版本信息,进行操作系统重装,基于基础组件的版本信息,在操作系统中对基础组件进行部署,基于待测试镜像的版本信息,从镜像仓库中获取与待测试镜像的版本信息匹配的待测试镜像,并利用待测试镜像,在操作系统中部署待测试组件。这样,测试平台与测试服务器之间仅需通过一次交互,即可实现待测试组件的测试环境的部署,从而可以简化交互过程,并能在一定程度上提升测试环境的部署效率。
此外,还可以在第二组件与第一组件所依赖的操作系统和基础组件均相同的情况下,在完成第一组件的测试之后,触发测试服务器在测试环境中清理待测试组件的测试数据后,基于第二组件的待测试代码的版本信息,完成对第二组件的测试。这样,在对第一组件和第二组件进行测试时,可以利用同一套操作系统和基础组件,从而可以提升测试效率,并且可以避免第一组件的测试数据对第二组件的测试结果的影响。
本申请实施例提供一种测试方法,该方法可以由运行在计算机设备上的测试平台执行。如图4所示,该方法包括:
步骤S401,基于所述待测试组件的待测试代码的版本信息,查询所述待测试代码的版本信息与镜像的版本信息之间的对应关系。
这里,待测试代码的版本信息与镜像的版本信息之间的对应关系可以是持续集成工具在每次镜像构建完成之后记录的,也可以是测试平台在每次触发持续集成工具进行镜像构建后,基于持续集成工具返回的与待测试代码的版本信息匹配的待测试镜像的版本信息进行记录的。
步骤S402,在查询到所述对应关系中不存在与所述待测试代码的版本信息匹配的镜像的版本信息的情况下,基于所述待测试代码的版本信息,触发所述待测试组件的持续集成工具对所述待测试组件进行镜像构建,得到与所述待测试代码的版本信息匹配的待测试镜像的版本信息;和/或,在查询到所述对应关系中存在与所述待测试代码的版本信息匹配的镜像的版本信息的情况下,将所述镜像的版本信息确定为待测试镜像的版本信息。
这里,该对应关系中不存在与待测试代码的版本信息匹配的镜像的版本信息的情况下,说明待测试代码在历史测试任务中未被测试过,因而,需要通过持续集成工具对该测试代码进行镜像构建,得到与该待测试代码的版本信息匹配的待测试镜像的版本信息。
该对应关系中存在与待测试代码的版本信息匹配的镜像的版本信息的情况下,说明待测试代码在历史测试任务中被测试过,因此,不需要再次进行镜像构建,可以将该对应关系中与待测试代码的版本信息匹配的镜像的版本信息,确定为待测试镜像的版本信息。
步骤S403,基于所述待测试镜像的版本信息,触发测试服务器部署所述待测试组件的测试环境;其中,所述测试环境是基于所述镜像仓库中与所述待测试镜像的版本信息匹配的待测试镜像部署的。
步骤S404,在所述测试环境部署成功的情况下,执行设定的测试任务,得到所述待测试组件的测试结果。
这里,步骤S403和步骤S404分别对应于前述步骤S102和步骤S103,在实施时可以参照前述步骤S102和步骤S103的具体实施方式。
在一些实施例中,所述待测试代码的版本信息包括所述待测试代码的分支信息,上述步骤S402中所述的基于所述待测试代码的版本信息,触发所述待测试组件的持续集成工具对所述待测试组件进行镜像构建,得到与所述待测试代码的版本信息匹配的待测试镜像的版本信息,可以包括:基于所述待测试代码的分支信息,触发所述待测试组件的持续集成工具对所述待测试组件进行镜像构建,得到所述待测试代码的分支信息对应的最近一次代码提交记录,以及与所述最近一次代码提交记录所匹配的待测试镜像的版本信息。这里,待测试代码的版本信息可以包括待测试代码的分支信息,由于开发人员对同一代码分支可能会进行多车代码提交,因此组件的同一代码分支在代码仓库中可能会存在多次代码提交记录,为了保证测试的代码为开发人员最新提交的代码,持续集成工具需要基于待测试代码的分支信息确定该分支信息对应的最近一次代码提交记录,并基于该最近一次代码提交记录所对应的代码进行镜像构建,得到与该最近一次代码提交记录所匹配的待测试镜像,将该待测试镜像推送至镜像仓库,并返回待测试代码的分支信息对应的最近一次代码提交记录,以及与该最近一次代码提交记录所匹配的待测试镜像的版本信息。
在一些实施例中,所述待测试代码的版本信息还包括所述待测试代码的代码提交记录,所述方法还包括:步骤S405,基于所述待测试代码的分支信息,从待测试组件的代码管理工具中获取所述待测试代码的最近一次代码提交记录。上述步骤S401可以包括:步骤S401a,基于所述待测试代码的最近一次代码提交记录,查询所述待测试代码的代码提交记录与镜像的版本信息之间的对应关系。这里,待测试组件的代码管理工具可以对待测试组件的代码分支及每一分支的代码提交记录进行管理,因而,基于待测试代码的分支信息,从待测试组件的代码管理工具中可以获取待测试代码的最近一次代码提交记录。待测试代码的最近一次代码提交记录与镜像的版本信息之间的对应关系可以是持续集成工具在每次镜像构建完成之后记录的,也可以是测试平台在每次触发持续集成工具进行镜像构建后,基于持续集成工具返回的待测试代码的分支信息对应的最近一次代码提交记录,以及与最近一次代码提交记录所匹配的待测试镜像的版本信息进行记录的。
在一些实施例中,上述步骤S402中所述的在查询到所述对应关系中存在与所述待测试代码的版本信息匹配的镜像的版本信息的情况下,将所述镜像的版本信息确定为待测试镜像的版本信息,可以包括:在查询到所述对应关系中存在与所述待测试代码的最近一次代码提交记录匹配的镜像的版本信息的情况下,将所述镜像的版本信息确定为待测试镜像的版本信息。
本申请实施例提供的测试方法,基于待测试组件的待测试代码的版本信息,查询待测试代码的版本信息与镜像的版本信息之间的对应关系,在查询到对应关系中存在与待测试代码的版本信息匹配的镜像的版本信息的情况下,将镜像的版本信息确定为待测试镜像的版本信息。这样,能够减少重复的镜像构建操作,提升测试效率,并能节省镜像仓库的存储空间。
本申请实施例可以应用于计算机技术领域中,对可采用镜像进行部署的产品组件进行测试。例如,在需要进行自动化测试的场景中,可以利用本申请实施例提供的测试方法进行组件研发到测试的全流程自动化测试、组件研发到测试环境自动部署、组件镜像的自动生成、测试平台的持续集成相关任务的开发等。
本申请实施例提供一种测试方法,由测试平台执行,可以对待测试的组件进行自动镜像打包、部署、测试、结果收集的全流程自动化测试。在测试平台上可以配置好持续集成过程中全流程自动化测试需要触发的任务,可以包括重装操作系统、部署基础组件、为待测试组件自动构建并部署镜像、执行测试任务、发送测试报告等。
图5A示出了本申请实施例提供的测试方法的实现流程示意图,如图5A所示,该方法包括如下步骤S501至步骤S506:
步骤S501,触发测试服务器重装系统。
步骤S502,触发测试服务器部署测试所需的基础组件。
步骤S503,触发持续集成工具对待测试组件进行镜像构建,并触发测试服务器基于该镜像部署待测试组件。
这里,可以在待测试组件的代码管理工具GitLab项目配置的gitlab-ci.yml文件中,增加组件编译、打包并回调测试平台的回调函数的阶段。GitLab中以插件形式集成了持续集成工具GitLab CI,当在测试平台上触发测试方法的执行时,能够自动触发GitLab CI插件对待测试组件进行镜像构建(包括代码编译、打包),生成待测试组件的待测试代码的镜像,并将该镜像推送至镜像仓库。
测试平台收到的回调函数的结果中,会记录需进行镜像构建的待测试组件的版本号及本次镜像构建生成的镜像的版本号,还可以包括镜像适用场景等。在一些实施例中,测试平台在触发GitLab CI插件对待测试组件进行镜像构建之前,会先比较当前待测试组件的待测试代码的版本号较上次镜像构建是否有变化,若无变化,则直接使用上次记录的待测试组件的镜像的版本号进行待测试组件的部署,若有变化,则触发GitLab CI插件执行镜像构建,并将构建的镜像推送至镜像仓库。在一些实施例中,也可以在测试平台触发GitLabCI插件对待测试组件进行镜像构建时,GitLab CI插件先比较当前待测试组件的待测试代码的版本号较上次镜像构建是否有变化,若无变化,则直接调用测试平台的回调函数,返回上次记录的待测试组件的镜像的版本号,若有变化,则执行镜像构建,将构建的镜像推送至镜像仓库,并调用测试平台的回调函数返回本次构建的镜像的版本号。接收回调函数的结果,得到与当前代码提交记录匹配的镜像的版本号。这样,能够减少重复的编译打包镜像操作,节省镜像仓库的存储空间,同时能减少测试的时间成本。
参见图5B,上述步骤S503可以包括如下步骤:
步骤S511,判断是否已记录与待测试组件的待测试代码分支的当前代码提交记录(即commit id)对应的镜像的版本号;若是,则进入步骤S512;若否,则进入步骤S514;
步骤S512,判断记录的镜像的版本号是否与生产环境中使用的待测试组件的版本信息中记录的镜像的版本号相同;若是,则进入步骤S518;若否,则进入步骤S513;
这里,默认当前本地存储的待测试镜像的版本号为生产环境中使用的待测试组件的版本信息中记录的镜像的版本号。
步骤S513,将本地存储的待测试镜像的版本号更新为记录的镜像的版本号;进入步骤S518;
步骤S514,获取待测试组件的待测试代码分支的当前代码提交记录;
步骤S515,判断当前代码提交记录与生产环境中使用的待测试组件的镜像的版本号对应的代码提交记录是否相同;若是,进入步骤S512;若否,则进入步骤S516;
步骤S516,触发持续集成工具基于当前代码提交记录,对待测试组件进行镜像构建;
步骤S517,接收回调函数的结果,得到与当前代码提交记录匹配的镜像的版本号;进入步骤S513;
步骤S518,基于本地存储的待测试镜像的版本号,触发测试服务器部署待测试组件。
需要说明的是,上述步骤S511至步骤S515中确定测试服务器需要部署的待测试镜像的版本号的逻辑可以由测试平台执行,也可以由持续集成工具执行,这里并不限定。
在测试平台触发GitLab CI插件部署待测试组件时,可以基于待测试组件的配置信息,确定是否使用自动打包生成的镜像进行部署。在使用自动打包生成的镜像进行部署的情况下,测试服务器中部署的即为待测试组件的最新的代码版本。在不使用自动打包生成的镜像进行部署的情况下,则使用生产环境中使用的待测试组件的版本信息中记录的镜像的版本号,对待测试组件进行部署。在生产环境中使用的待测试组件的版本信息中,会指定对应的镜像的版本号,测试服务器可以基于该镜像的版本号从镜像仓库中获取待测试组件的镜像。这样,能更灵活的支持生产环境中使用的组件的版本测试和正在开发的组件的版本测试。在实施时,可以默认部署待测试组件时不使用自动打包生成的镜像进行部署,即使用生产环境中使用的待测试组件的版本信息中记录的镜像的版本号,对待测试组件进行部署。
在开发项目中有多个待测试组件都需要进行镜像构建的情况下,可在测试平台上将多个待测试组件的镜像构建配置为并行执行,从而可以触发持续集成工具对多个待测试组件并行进行镜像构建,从而可以节省镜像构建的运行时间,提高测试效率。参见图5C,在需要对组件A、组件B、组件C进行镜像构建的情况下,可以执行如下步骤:
步骤S521,触发持续集成工具进行镜像构建;
步骤S522,持续集成工具采用并行的方式,分别对组件A、组件B、组件C进行镜像构建;
步骤S523,在组件A、组件B、组件C的镜像构建全部完成的情况下,确定持续集成工具执行镜像构建完成。
整个过程的执行时间为组件A、组件B、组件C中镜像构建时长中最长的时长。
步骤S504,对测试环境进行检查,以确认待测试组件运行正常。
这里,测试环境可以包括操作系统、基础组件、待测试组件。在待测试组件部署完成之后,需要确认操作系统、基础组件、待测试组件的部署均正常,从而才能确认待测试组件运行正常。确认待测试组件运行正常后,再执行测试任务。这样,能够及时发现待测试组件部署是否异常,并能减少由于组件部署异常导致的测试用例执行失败。
步骤S505,执行测试任务。
这里,测试任务中可以配置好需要执行的测试用例。
步骤S506,对测试任务的执行结果进行统计分析,得到并发送测试报告。
这里,测试任务执行完成之后,测试平台会发邮件通知项目相关人员,并对测试结果进行初步的汇总分析,包括测试任务的执行时间、执行的用例总数、用例的通过率及失败率等,方便测试人员及时掌握测试结果。通过比较一段时间内同一个持续集成任务的测试报告,能够监控开发项目的质量。
当测试环境中同时有M1和M2两个模块(模块可以包含至少一个组件)都需要测试时,执行完M1模块相关的测试用例后,为避免历史测试数据对M2模块测试结果的影响,需要清理测试环境,包括停止M1模块相关的服务,删除存储卷中的临时数据或中间数据等。参见图6,对M1和M2两个模块进行测试时,可以包括如下步骤:
步骤S601,触发测试服务器重装系统。
步骤S602,触发测试服务器部署测试所需的基础组件。
步骤S603,触发持续集成工具对M1模块进行镜像构建,并触发测试服务器基于该镜像部署M1模块中的组件。
步骤S604,对测试环境进行检查,以确认M1模块中的组件运行正常。
步骤S605,执行M1模块的测试任务。
步骤S606,清理测试环境。
步骤S607,触发持续集成工具对M2模块进行镜像构建,并触发测试服务器基于该镜像部署M2模块中的组件。
步骤S608,对测试环境进行检查,以确认M2模块中的组件运行正常。
步骤S609,执行M2模块的测试任务。
步骤S610,对M1模块的测试任务的执行结果和M2模块的测试任务的执行结果进行统计分析,得到并发送测试报告。
本申请实施例提供的测试方法,至少具有以下有益效果:1)对待测试组件的待测试代码自动实现包括镜像构建、测试环境部署以及测试任务执行的全流程的自动化测试方法;2)在进行自动镜像构建时,通过比对待测试组件的待测试代码的最新提交记录与记录的历史测试过程中构建的镜像的版本信息是否对应,来减少进行自动镜像构建的次数,从而可以节省测试的时间成本及镜像仓库的存储空间成本;3)在多个待测试组件都需要进行自动镜像构建时,通过并行操作,可以减少整个测试过程中构建镜像的时间;4)在同一测试环境中有多个模块进行测试时,通过优化全流程任务过程,在一个模块的测试任务执行完成后,清理测试环境,再执行其他模块的测试任务,可以减少历史测试数据对测试结果的影响。
图7为本申请实施例提供的一种测试装置的组成结构示意图,如图7所示,测试装置700包括:构建模块710、部署模块720和第一测试模块730,其中:
构建模块710,用于基于待测试组件的待测试代码的版本信息,触发所述待测试组件的持续集成工具对所述待测试组件进行镜像构建,得到与所述待测试代码的版本信息匹配的待测试镜像的版本信息;其中,所述持续集成工具构建的镜像存储在镜像仓库;
部署模块720,用于基于所述待测试镜像的版本信息,触发测试服务器部署所述待测试组件的测试环境;其中,所述测试环境是基于所述镜像仓库中与所述待测试镜像的版本信息匹配的待测试镜像部署的;
第一测试模块730,用于在所述测试环境部署成功的情况下,执行设定的测试任务,得到所述待测试组件的测试结果。
在一些实施例中,所述装置还包括:分析模块,用于对所述待测试组件的测试结果进行分析,得到所述测试任务的执行结果统计信息;发送模块,用于基于所述测试任务的执行结果统计信息,生成并发送所述待测试组件的测试报告。
在一些实施例中,所述待测试组件的数量为多个,所述构建模块还用于:基于多个待测试组件的待测试代码的版本信息,采用并行的方式,触发所述多个待测试组件的持续集成工具分别对所述多个待测试组件进行镜像构建,得到与每一所述待测试组件的所述待测试代码的版本信息匹配的待测试镜像的版本信息。
在一些实施例中,所述部署模块还用于:基于所述待测试镜像的版本信息,触发测试服务器执行如下操作:获取与所述待测试镜像的版本信息匹配的操作系统的版本信息以及基础组件的版本信息;其中,所述基础组件为所述待测试组件运行时所依赖的组件;基于所述操作系统的版本信息,进行操作系统重装;基于所述基础组件的版本信息,在所述操作系统中对所述基础组件进行部署;基于所述待测试镜像的版本信息,从所述镜像仓库中获取与所述待测试镜像的版本信息匹配的待测试镜像,并利用所述待测试镜像,在所述操作系统中部署所述待测试组件。
在一些实施例中,所述待测试组件包括待测试的第一组件,所述装置还包括:第一获取模块,用于获取对待测试的第二组件的测试需求;清理模块,用于响应于所述第二组件与所述第一组件所依赖的操作系统和基础组件均相同的情况下,触发所述测试服务器在所述测试环境中清理所述待测试组件的测试数据;第二测试模块,用于基于所述第二组件的待测试代码的版本信息,完成对所述第二组件的测试。
在一些实施例中,所述构建模块还用于:基于所述待测试组件的待测试代码的版本信息,查询所述待测试代码的版本信息与镜像的版本信息之间的对应关系;在查询到所述对应关系中不存在与所述待测试代码的版本信息匹配的镜像的版本信息的情况下,基于所述待测试代码的版本信息,触发所述待测试组件的持续集成工具对所述待测试组件进行镜像构建,得到与所述待测试代码的版本信息匹配的待测试镜像的版本信息;和/或,在查询到所述对应关系中存在与所述待测试代码的版本信息匹配的镜像的版本信息的情况下,将所述镜像的版本信息确定为待测试镜像的版本信息。
在一些实施例中,所述待测试代码的版本信息包括所述待测试代码的分支信息,所述构建模块还用于:基于所述待测试代码的分支信息,触发所述待测试组件的持续集成工具对所述待测试组件进行镜像构建,得到所述待测试代码的分支信息对应的最近一次代码提交记录,以及与所述最近一次代码提交记录所匹配的待测试镜像的版本信息。
在一些实施例中,所述待测试代码的版本信息还包括所述待测试代码的代码提交记录,所述装置还包括:第二获取模块,用于基于所述待测试代码的分支信息,从待测试组件的代码管理工具中获取所述待测试代码的最近一次代码提交记录;所述构建模块还用于:基于所述待测试代码的最近一次代码提交记录,查询所述待测试代码的代码提交记录与镜像的版本信息之间的对应关系。
在一些实施例中,所述构建模块还用于:在查询到所述对应关系中存在与所述待测试代码的最近一次代码提交记录匹配的镜像的版本信息的情况下,将所述镜像的版本信息确定为待测试镜像的版本信息。
在一些实施例中,所述构建模块还用于:在基于所述待测试组件的配置信息,确定开启自动镜像构建功能的情况下,基于待测试组件的待测试代码的版本信息,触发所述待测试组件的持续集成工具对所述待测试组件进行镜像构建,得到与所述待测试代码的版本信息匹配的待测试镜像的版本信息。
在一些实施例中,所述构建模块还用于:在基于所述配置信息,确定未开启所述自动镜像构建功能的情况下,获取所述待测试组件在生产环境中使用的镜像的版本信息,并将所述镜像的版本信息确定为待测试镜像的版本信息。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的测试方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。
对应地,本申请实施例提供一种测试设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的步骤。
对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。
对应地,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(SoftwareDevelopment Kit,SDK)等等。
对应地,本申请实施例提供一种计算机程序,包括计算机可读代码,当所述计算机可读代码在计算机设备中运行时,所述展示设备中的处理器执行用于实现上述方法中的部分或全部步骤。
这里需要指出的是:以上存储介质、计算机程序、计算机程序产品和测试设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质、计算机程序产品和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,图8为本申请实施例中测试设备的一种硬件实体示意图,如图8所示,该测试设备800的硬件实体包括:处理器801、通信接口802和存储器803,其中:
处理器801通常控制计算机设备800的总体操作。
通信接口802可以使计算机设备通过网络与其他终端或服务器通信。
存储器803配置为存储由处理器801可执行的指令和应用,还可以缓存待处理器801以及计算机设备800中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:APP功耗测试的方法