多测试场景自动调度系统和方法技术方案

技术编号:2825172 阅读:258 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及多测试场景自动调度系统。该系统包括:多个服务器,在每个服务器上部署包括准备和清理服务的动作库;和与多个服务器相连的测试机器,在该测试机器上部署调度引擎和配置库,其中所述配置库包括场景定义文件。在执行场景测试时,调度引擎验证和解析配置库中的场景定义文件,顺序执行多个测试场景,并在场景切换前后的准备和清理过程中与所述多个服务器中的至少一个服务器交互,使所述至少一个服务器执行动作库中的准备或清理服务。本发明专利技术解决了目前尚无合适方式组织和复用多场景切换时的典型准备或者清理动作的问题,大大降低了编写和维护多场景调度脚本的代价,极大的减少了人工干预并保证各项服务连贯、跨平台执行。

【技术实现步骤摘要】

本专利技术属于计算机测试领域。
技术介绍
目前主流的测试工具厂家如Mercury,Compuware提供的工具可定制启动场景的时机,也能够实现以命令行(command line)方式在Windows平台上自动运行测试场景。另外,借助编写简单的脚本或者任务计划,可以实现多个测试场景的串行运行。但测试场景的切换前后往往还需要开展多种有依赖关系、跨平台的准备与清理工作,例如:测试数据的更新、备份和恢复,服务器软件的重新启动,测试记录的标记与保存等工作。现有的测试工具难以粘合跨平台的应用,简单的脚本或者任务计划也难以满足个性化、有依赖关系、跨平台的准备与清理工作需求,因此尚没有合适的方式组织和复用这些测试准备以及清理动作,往往只能是针对实际的测试需要,分别编写和维护庞大的脚本,代价很大,复用程度低。因此,迫切需要本专利技术提出的多测试场景自动调度工具。
技术实现思路
本专利技术的目的是以通用的可灵活定制、扩展、跨平台的方式实现多测试场景的自动调度,能够自动在场景切换前后进行准备和清理工作,复用典型的准备和清理工作的代码,降低多测试场景调度脚本的开发工作量。另外,提供服务扩展点,实现不更改现有代码即插入新的服务,提供较好的可扩展性。根据本专利技术的一个方面,提供了一种多测试场景自动调度系统,包括:多个服务器,在每个服务器上部署包括准备和清理服务的动作-->库;和与所述多个服务器相连的测试机器,在该测试机器上部署调度引擎和配置库,其中所述配置库包括场景定义文件,其特征在于:在执行场景测试时,调度引擎验证和解析配置库中的场景定义文件,顺序执行多个测试场景,并在场景切换前后的准备和清理过程中与所述多个服务器中的至少一个服务器交互,使所述至少一个服务器自动执行动作库中的准备或清理服务。根据本专利技术的另一方面,提供一种多测试场景自动调度方法,包括:部署包括场景准备和清理服务的动作库;部署调度引擎和包括场景定义文件的配置库;由调度引擎验证和解析所述配置库中的场景定义文件;以及顺序执行场景定义文件中的多个测试场景,并在场景切换前后自动执行动作库中的准备或清理服务。本专利技术能大大降低测试执行的所需人力及手工执行的出错率,并使各项准备、执行、清理服务连贯、跨平台执行。附图说明图1示出了根据本专利技术一种实施方式的多测试场景自动调度系统的框图;图2示出了场景定义文件的数据结构;图3示出了根据本专利技术一种实施方式的多测试场景自动调度系统的操作流程图;图4a示出了根据本专利技术一个实施例的测试场景1;以及图4b示出了根据本专利技术一个实施例的测试场景2。具体实施方式图1示出了根据本专利技术一种实施方式的多测试场景自动调度系统1的框图。该系统1包括执行场景的机器10(例如Windows PC)、数据库服务器11、应用服务器12,三者之间通过本领域中公知的方式相互通信,例如LAN、WAN、Internet等。机器10、服务器11和12中的每一个都具有处理器、存储器、输入/输出设备、显示设备、网络-->接口等常见的组件,这些组件都是本领域的普通技术人员熟知的,这里没有示出,也不具体解释。本领域的技术人员可以理解,在该系统1中可以根据需要增加其它服务器和执行场景的机器。下面进一步介绍几个和本专利技术有关的概念。测试环境在本专利技术的一种实施方式中,为了运行多测试场景自动调度系统1,需要在执行场景的机器10上部署Perl环境以及相应的服务模块,例如网络模块、配置模块等,这些服务模块例如是Perl的一些插件,实现远程登录、控制等功能。配置库配置库14存放在执行场景的机器10上,包括场景定义文件。场景定义文件的数据结构如图2所示,可用TXT或者XML描述。动作库动作库15是可扩展的准备与清理服务的集合,具体实现为一些脚本执行文件。基本的准备或清理服务包括:执行本地或远程主机OSshell脚本、获取并更新测试数据、执行Oracle数据库statspack快照、重启Oracle/Tuxedo服务、同步机器时间、清理日志、上传以及下载文件、执行通用的Windows bat/Unix shell。准备或者清理服务可以根据任务定制、扩展。在本专利技术的一种实施方式中,在整个系统运行之前,利用Windowsbat/Unix shell语言编写脚本执行文件,实现多个场景执行准备与清理服务。编写完毕,可根据需要将脚本执行文件(即动作库)上传到不同类型的服务器(例如数据库服务器11和应用服务器12)并授予执行权限。调度引擎调度引擎13是整个系统的核心,用于解释与执行配置库14中定-->义的工作流程,执行过程中调度引擎13调用动作库15提供的服务完成工作。调度引擎13能够解析、验证依照预定规则定义的.txt文本或XML方式的场景定义文件,然后顺序执行多个测试场景。调度引擎13在场景准备和场景退出后提供两个服务扩展点(HOOK POINT),并可在扩展点挂接任意多个顺序的服务,满足常用的评测需求,并能够根据需要采用外挂shell脚本的方式实现灵活的扩展。在验证场景定义文件之后,调度引擎13解析在场景定义文件(图2)的“场景准备服务列表”、“场景清理服务列表”中指定的服务,并实现服务的分发。所谓“分发”,是指在调度引擎13的分发器中对“场景准备服务列表”和“场景清理服务列表”的服务名称与参数进行识别,然后分发到各个处理子模块中转换为实际的动作库服务路径与名称,这样才能完成实际服务的执行。在一个实施例中,处理子模块是调度引擎程序中的子程序,如数据库重启子模块、应用日志清理模块。只要在分发器搜索到即执行相应的服务。服务执行过程中,实时输出服务状态,并根据不同的服务状态决定下一个准备/清理服务或者测试内容。在本专利技术的一种实施方式中,本专利技术设计的多测试场景自动调度工具调度引擎利用Perl语言实现,利用其内嵌的网络服务、XML服务、配置解析等常用API实现快速编程,发挥脚本语言的胶着多项应用的强大功能。图3示出了根据本专利技术一种实施方式的多测试场景自动调度系统的工作流程图。在步骤31中,调度引擎13读取并验证位于同一机器10上的场景定义文件。在步骤32,调度引擎13解析“场景准备服务列表”21中的准备动作,对服务名称和参数进行识别。在步骤33,调度引擎13根据步骤32中的识别结果将服务分发到相应的处理子模块,在子模块中转换为实际的动作库服务路径和名称。然后调度引擎13按照指定的服务路径访问相应的数据库,在通过执行权限验证后,执行预先编写并上传到数据库中的脚本执行文件,完成场景准备。在步-->骤34,调度引擎13检查该场景准备是否完成。实际中,可能由于多种原因导致场景准备中断,例如重启数据库失败,登录失败等。如果在步骤34的结果为“是”,即场景准备完成,过程前进到步骤35,否则返回到步骤33,继续执行场景准备动作。在步骤35,调度引擎13在测试机器10上执行测试场景。在步骤36,调度引擎13解析“场景清理列表”23中的场景清理动作,对服务名称和参数进行识别。在步骤37,类似于步骤33执行上传到相应的服务器上的脚本执行文件,完成场景清理。在步骤38,检查该场景清理是否完成?如果完成,前进到步骤39,否则返回到步骤37。在步骤39检查是否所有的场景都已完成,如果是,则过程结束,否则返回到步骤32准备下一个场景执行过程本文档来自技高网...

【技术保护点】
一种多测试场景自动调度系统,包括:多个服务器,在每个服务器上部署包括准备和清理服务的动作库;和与所述多个服务器相连的测试机器,在该测试机器上部署调度引擎和配置库,其中所述配置库包括场景定义文件,其特征在于:在执行场景测试时,调度引擎验证和解析配置库中的场景定义文件,顺序执行多个测试场景,并在场景切换前后的准备和清理过程中与所述多个服务器中的至少一个服务器交互,使所述至少一个服务器自动执行动作库中的准备或清理服务。

【技术特征摘要】
1. 一种多测试场景自动调度系统,包括:多个服务器,在每个服务器上部署包括准备和清理服务的动作库;和与所述多个服务器相连的测试机器,在该测试机器上部署调度引擎和配置库,其中所述配置库包括场景定义文件,其特征在于:在执行场景测试时,调度引擎验证和解析配置库中的场景定义文件,顺序执行多个测试场景,并在场景切换前后的准备和清理过程中与所述多个服务器中的至少一个服务器交互,使所述至少一个服务器自动执行动作库中的准备或清理服务。2. 如权利要求1所述的系统,其中,所述场景定义文件包括场景准备服务列表、场景执行服务和场景清理服务列表。3. 如权利要求2所述的系统,其中,所述调度引擎包括分发器和处理子模块,在所述分发器中对场景准备服务列表和场景清理服务列表中的服务名称与参数进行识别,然后将服务分发到不同的处理子模块,在处理子模块中将服务名称和参数转换为实际的动作库服务路径与名称,以便与相应的服务器交互。4. 如权利要求1所述的系统,其中,在场景执行过程中,所述调度引擎实时输出服务状态,并根据不同的服务状态决定下一个准备或清理服务或者测试内容。5. 如权利要求1所述的系统,其中,所述调度引擎在场景准备和场景退出后提供两个服务扩展点,并可在扩展点挂接任意多个顺序的服务。6. 如权利要求1所述的系统,其中,所述调度引擎是利用Perl语言实现的。7. 如权利要求1所述的系统,其中,所述动作库中的准备和清理服务被具体实现为脚本执行文件。8. 如...

【专利技术属性】
技术研发人员:梁剑钊杨润华袁立宇陈剑波夏红莉
申请(专利权)人:中国电信股份有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1