一种持续集成的实现方法及装置制造方法

文档序号:6505877阅读:182来源:国知局
一种持续集成的实现方法及装置制造方法
【专利摘要】本申请公开了一种持续集成的实现方法及装置,该方法包括:根据项目开发的网站系统信息从保存的网站系统与自动化测试代码的对应关系信息中查询到网站系统对应的自动化测试代码;根据保存的自动化测试代码与自动化测试类型的对应关系信息,确定查询到的自动化测试代码对应的自动化测试类型的任务模板;自动生成该项目的持续集成任务变量信息并与任务模板合并,得到持续集成任务配置信息,按照持续集成任务配置信息自动创建持续集成任务,以对网站系统进行自动化测试。本申请以全自动支持多种自动化测试类型和多个自动化测试代码的持续集成,解决了目前需要人工操作的问题,释放了在分析项目信息和配置持续集成任务投入的人工资源,节省了成本。
【专利说明】
一种持续集成的实现方法及装置

【技术领域】
[0001]本申请涉及网站开发【技术领域】,尤其涉及一种持续集成的实现方法及装置。

【背景技术】
[0002]随着互联网的快速发展,大多数互联网公司通常都有多个网站系统,和传统软件行业一样,软件测试是在互联网项目开发过程中必不可少的。为了快速的进行软件测试过程,自动化测试已经在各个公司中广泛使用。而自动化测试业界有很多不同的解决方案,因此产生了很多不同的自动化测试框架,每一种自动化测试框架都是针对解决网站系统某一特定方面的测试问题,例如Junit解决了单元测试问题,JTester解决了接口测试问题,Watir解决了 UI测试问题等。
[0003]随着互联网公司的快速成长,其网站系统复杂度已经可以和操作系统相媲美,其系统架构层次会越来越清晰。对网站系统进行自动化分层测试,就需要使用多种自动化框架来编写代码,才能对网站系统各个层次的代码进行针对性的测试,以保证代码的质量。
[0004]互联网公司为了应对快速发展的需求,会积累大量的功能,为了使这些功能容易维护,往往会拆出很多子网站系统。而一个项目的开发过程中都会涉及到这些子网站系统。每个网站系统拥有不同自动化框架类型的自动化测试代码后,在项目中如何定期、快速的构建自动化测试,是每个公司所需要解决的问题。
[0005]持续集成是近几年比较热门的话题,每个公司每个人对持续集成都有自己的见解,其中的一种解释是:它是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现系统问题。
[0006]目前持续集成的工具有很多,Hudson就是一个开源的持续集成工具,且被大多数公司使用,使用Hudson进行持续集成需要人工实现导致人工成本开销过大。


【发明内容】

[0007]本申请要解决的技术问题是提供一种持续集成的实现方法及装置,能够节约人工成本,提高自动化测试的效率。
[0008]为解决上述技术问题,本申请的一种持续集成的实现方法,包括:
[0009]根据项目开发的网站系统信息从保存的网站系统与自动化测试代码的对应关系信息中查询到所述网站系统对应的自动化测试代码;
[0010]根据保存的自动化测试代码与自动化测试类型的对应关系信息,确定查询到的自动化测试代码对应的自动化测试类型的任务模板;
[0011]自动生成该项目的持续集成任务变量信息并与所述任务模板合并,得到持续集成任务配置信息,按照所述持续集成任务配置信息自动创建持续集成任务,以对所述网站系统进行自动化测试。
[0012]进一步地,所述自动生成该项目的持续集成任务变量信息,包括:
[0013]根据查询到的所述自动化测试代码,得到自动化测试代码信息,生成测试代码变量;
[0014]根据项目开发分支信息得到项目信息变量;
[0015]根据所述自动化测试代码信息获得对应的自动化测试类型,根据该自动化测试类型生成以下变量中的一种或多种:构建命令、构建服务器、构建超时时间、触发定时器、结果报告搜集方式和代码扫描搜集方式。
[0016]进一步地,所述自动化测试类型的任务模板包含相应持续集成任务的公共配置信息和采用变量表示的非公共配置信息;
[0017]所述自动生成该项目的持续集成任务变量信息并与所述任务模板合并,包括:将所述任务模板中包含的变量替换为所述持续集成任务变量信息中的该变量的值。
[0018]进一步地,所述项目开发的网站系统信息和项目开发分支信息为对项目开发的网站系统和开发分支进行分析自动获得。
[0019]进一步地,所述自动化测试类型为一种自动化测试框架。
[0020]进一步地,一种持续集成的实现装置,包括:代码确定单元、模板确定单元、配置信息生成单元和集成任务生成单元,其中:
[0021]所述代码确定单元,用于根据项目开发的网站系统信息从保存的网站系统与自动化测试代码的对应关系信息中查询到所述网站系统对应的自动化测试代码;
[0022]所述模板确定单元,用于根据保存的自动化测试代码与自动化测试类型的对应关系信息,确定查询到的自动化测试代码对应的自动化测试类型的任务模板;
[0023]所述配置信息生成单元,用于自动生成该项目的持续集成任务变量信息并与所述任务模板合并,得到持续集成任务配置信息;
[0024]所述集成任务生成单元,用于按照所述持续集成任务配置信息自动创建持续集成任务,以对所述网站系统进行自动化测试。
[0025]进一步地,所述配置信息生成单元自动生成该项目的持续集成任务变量信息,包括:根据查询到的所述自动化测试代码,得到自动化测试代码信息,生成测试代码变量;根据项目开发分支信息得到项目信息变量;根据所述自动化测试代码信息获得对应的自动化测试类型,根据该自动化测试类型生成以下变量中的一种或多种:构建命令、构建服务器、构建超时时间、触发定时器、结果报告搜集方式和代码扫描搜集方式。
[0026]进一步地,所述自动化测试类型的任务模板包含相应持续集成任务的公共配置信息和采用变量表示的非公共配置信息;
[0027]所述配置信息生成单元自动生成该项目的持续集成任务变量信息并与所述任务模板合并,包括:将所述任务模板中包含的变量替换为所述持续集成任务变量信息中的该变量的值。
[0028]进一步地,所述项目开发的网站系统信息和项目开发分支信息为对项目开发的网站系统和开发分支进行分析自动获得。
[0029]进一步地,所述自动化测试类型为一种自动化测试框架。
[0030]综上所述,本申请以全自动支持多种自动化测试类型和多个自动化测试代码的持续集成,解决了现有方案中需要人工操作的问题,释放了在分析项目信息和配置持续集成任务投入的人工资源,从而节省了人工投入的成本。

【专利附图】

【附图说明】
[0031]图1为本申请的保存自动化测试代码的对应关系信息的示意图;
[0032]图2为本申请的保存自动化测试类型的任务模板的示意图;
[0033]图3为本申请的持续集成的实现方法的流程图;
[0034]图4为本申请的进行变量与模板合并的示意图;
[0035]图5为本申请的持续集成的实现装置的架构图。

【具体实施方式】
[0036]为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0037]在本申请一个典型的配置中,所涉及的计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0038]内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0039]计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0040]为实现本申请的持续集成的实现方法,需要保存网站系统与自动化测试代码的对应关系信息,保存自动化测试代码与自动化测试类型的对应关系信息,并保存自动化测试类型的任务模板,以下分别进行说明。
[0041](I)保存网站系统与自动化测试代码的对应关系信息。
[0042]如图1所示,每个自动化测试代码都可以与一个或者多个网站系统相关联,每个网站系统也可以对应多个自动化测试代码,是一个多对多的关系,通过数据库持久化保存网站系统与自动化测试代码的对应关系信息。
[0043]自动化测试代码是一段可通过执行构建命令自动进行软件测试的代码,比如一段Junit框架测试的Java代码,一段QTP框架的VBScript代码,一段Watir框架的Ruby代码坐寸ο
[0044](2)保存自动化测试代码与自动化测试类型的对应关系信息。
[0045]每个自动化测试代码有且只有一个自己关联的自动化测试类型,自动化测试类型有多种,所以每种自动化测试类型有不同的自动构建命令,不同的执行环境等配置与之相关联。单元测试代码保存在开发分支中,不需要特别的处理。
[0046]本实施例中,一种自动化测试框架作为一种自动化测试类型。自动化测试框架是可被重复利用的自动化测试平台或代码包,用于编写自动化测试代码,如Junit框架、QTP框架和Watir框架等可以分别作为一种自动化测试类型。
[0047](3)保存自动化测试类型的任务模板。
[0048]如图2所示,每种自动化测试类型拥有一个任务模板,任务模板中包含相应持续集成任务的公共配置信息,并将这种自动化测试类型所需的配置中非公共配置信息保存为变量(占位符)。
[0049]如图3所示,本申请的持续集成的实现方法,包括:
[0050]步骤301:根据项目开发的网站系统信息从保存的网站系统与自动化测试代码的对应关系信息中查询到网站系统对应的自动化测试代码;
[0051]本实施方式是对开发的项目进行自动化测试。项目信息是一个开发项目信息,包含项目开发的网站系统信息、项目开发分支信息和项目开发人员测试人员的信息等。一个项目可能涉及到多个网站系统,多条开发分支。
[0052]项目开发的网站系统信息可以自动分析网站系统获得也可手动获得。
[0053]步骤302:根据保存的自动化测试代码与自动化测试类型的对应关系信息,确定查询到的自动化测试代码对应的自动化测试类型的任务模板;
[0054]步骤303:自动生成项目的持续集成任务变量信息后,与自动化测试类型的任务模板合并,生成持续集成任务配置信息;
[0055]本实施例中,自动生成该项目的持续集成任务变量信息,包括:
[0056]根据查询到的网站系统对应的自动化测试代码,得到自动化测试代码信息,生成测试代码变量;
[0057]根据项目开发分支信息得到项目信息变量;项目开发分支信息为对项目开发的开发分支进行分析自动获得。
[0058]根据所述自动化测试代码信息,获得对应的自动化测试类型信息,生成构建命令、构建服务器、构建超时时间、触发定时器、结果报告搜集方式和代码扫描搜集方式等变量。
[0059]步骤304:调用Hudson API按照持续集成任务配置信息自动创建或更新持续集成任务,对网站系统进行自动化测试。
[0060]在项目信息更新后,重新分析项目信息,对已有的任务进行增删改操作。
[0061]持续集成任务是通过Hudson创建的一个任务,用于定时检出代码,执行构建命令,汇总构建结果等。
[0062]自动化测试类型的任务模板包含相应持续集成任务的公共配置信息和采用变量表示的非公共配置信息。
[0063]如图4所示,持续集成任务变量信息与自动化测试类型的任务模板合并,包括:将任务模板中包含的变量替换为持续集成任务变量信息中的该变量的值。
[0064]例如,在一段文本内容中使用特殊符号来进行变量的指定,$变量名称$,通过将“变量名称=变量值”的替换,任务模板中的“$变量名称$”将会被替换成“变量值”。
[0065]在项目开发涉及多个网站系统的情况下,查询到涉及的全部网站系统各自对应的自动化测试代码后,得到一个自动化测试代码集合;根据项目开发分支信息和自动化测试代码信息生成持续集成任务变量信息,其中,每个自动化测试代码对应一组变量信息;合并任务模板与持续集成任务变量信息,得到多份持续集成任务配置信息,调用Hudson自动创建持续集成任务,每份配置信息生成一个持续集成任务,对网站系统进行自动化测试。
[0066]如图5所示,本实施方式还提供了一种持续集成的实现装置,包括:代码确定单元、模板确定单元、配置信息生成单元和集成任务生成单元,其中:
[0067]代码确定单元,用于根据项目开发的网站系统信息从保存的网站系统与自动化测试代码的对应关系信息中查询到网站系统对应的自动化测试代码;
[0068]模板确定单元,用于根据保存的自动化测试代码与自动化测试类型的对应关系信息,确定查询到的自动化测试代码对应的自动化测试类型的任务模板;
[0069]配置信息生成单元,用于自动生成该项目的持续集成任务变量信息并与任务模板合并,得到持续集成任务配置信息;
[0070]集成任务生成单元,用于按照持续集成任务配置信息自动创建持续集成任务,以对网站系统进行自动化测试。
[0071]配置信息生成单元自动生成该项目的持续集成任务变量信息,包括:根据查询到的自动化测试代码,得到自动化测试代码信息,生成测试代码变量;根据项目开发分支信息得到项目信息变量;根据自动化测试代码信息获得对应的自动化测试类型,根据该自动化测试类型生成以下变量中的一种或多种:构建命令、构建服务器、构建超时时间、触发定时器、结果报告搜集方式和代码扫描搜集方式。
[0072]自动化测试类型的任务模板包含相应持续集成任务的公共配置信息和采用变量表示的非公共配置信息;
[0073]配置信息生成单元自动生成该项目的持续集成任务变量信息并与任务模板合并,包括:将任务模板中包含的变量替换为持续集成任务变量信息中的该变量的值。
[0074]项目开发的网站系统信息和项目开发分支信息为对项目开发的网站系统和开发分支进行分析自动获得。
[0075]自动化测试类型为一种自动化测试框架。
[0076]本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。
[0077]以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
【权利要求】
1.一种持续集成的实现方法,包括: 根据项目开发的网站系统信息从保存的网站系统与自动化测试代码的对应关系信息中查询到所述网站系统对应的自动化测试代码; 根据保存的自动化测试代码与自动化测试类型的对应关系信息,确定查询到的自动化测试代码对应的自动化测试类型的任务模板; 自动生成该项目的持续集成任务变量信息并与所述任务模板合并,得到持续集成任务配置信息,按照所述持续集成任务配置信息自动创建持续集成任务,以对所述网站系统进行自动化测试。
2.如权利要求1所述的方法,其特征在于,所述自动生成该项目的持续集成任务变量信息,包括: 根据查询到的所述自动化测试代码,得到自动化测试代码信息,生成测试代码变量; 根据项目开发分支信息得到项目信息变量; 根据所述自动化测试代码信息获得对应的自动化测试类型,根据该自动化测试类型生成以下变量中的一种或多种:构建命令、构建服务器、构建超时时间、触发定时器、结果报告搜集方式和代码扫描搜集方式。
3.如权利要求1所述的方法,其特征在于: 所述自动化测试类型的任务模板包含相应持续集成任务的公共配置信息和采用变量表示的非公共配置信息; 所述自动生成该项目的持续集成任务变量信息并与所述任务模板合并,包括:将所述任务模板中包含的变量替换为所述持续集成任务变量信息中的该变量的值。
4.如权利要求2所述的方法,其特征在于: 所述项目开发的网站系统信息和项目开发分支信息为对项目开发的网站系统和开发分支进行分析自动获得。
5.如权利要求1所述的方法,其特征在于:所述自动化测试类型为一种自动化测试框架。
6.一种持续集成的实现装置,包括:代码确定单元、模板确定单元、配置信息生成单元和集成任务生成单元,其中: 所述代码确定单元,用于根据项目开发的网站系统信息从保存的网站系统与自动化测试代码的对应关系信息中查询到所述网站系统对应的自动化测试代码; 所述模板确定单元,用于根据保存的自动化测试代码与自动化测试类型的对应关系信息,确定查询到的自动化测试代码对应的自动化测试类型的任务模板; 所述配置信息生成单元,用于自动生成该项目的持续集成任务变量信息并与所述任务模板合并,得到持续集成任务配置信息; 所述集成任务生成单元,用于按照所述持续集成任务配置信息自动创建持续集成任务,以对所述网站系统进行自动化测试。
7.如权利要求6所述的装置,其特征在于: 所述配置信息生成单元自动生成该项目的持续集成任务变量信息,包括:根据查询到的所述自动化测试代码,得到自动化测试代码信息,生成测试代码变量;根据项目开发分支信息得到项目信息变量;根据所述自动化测试代码信息获得对应的自动化测试类型,根据该自动化测试类型生成以下变量中的一种或多种:构建命令、构建服务器、构建超时时间、触发定时器、结果报告搜集方式和代码扫描搜集方式。
8.如权利要求6所述的装置,其特征在于: 所述自动化测试类型的任务模板包含相应持续集成任务的公共配置信息和采用变量表示的非公共配置信息; 所述配置信息生成单元自动生成该项目的持续集成任务变量信息并与所述任务模板合并,包括:将所述任务模板中包含的变量替换为所述持续集成任务变量信息中的该变量的值。
9.如权利要求7所述的装置,其特征在于: 所述项目开发的网站系统信息和项目开发分支信息为对项目开发的网站系统和开发分支进行分析自动获得。
10.如权利要求6所述的装置,其特征在于:所述自动化测试类型为一种自动化测试框架。
【文档编号】G06F11/36GK104298588SQ201310298070
【公开日】2015年1月21日 申请日期:2013年7月16日 优先权日:2013年7月16日
【发明者】鲁小川, 金灵杰, 孙琛 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1