一种web应用自动化测试的方法及装置的制作方法

文档序号:7752548阅读:146来源:国知局
专利名称:一种web应用自动化测试的方法及装置的制作方法
技术领域
本申请涉及软件测试领域,特别是涉及一种TOB应用的自动化测试的方法及装置。
背景技术
目前,采用B/S架构的TOB应用软件大范围应用于各行业。如何对WEB应用进行 快速有效的功能测试,从而保证软件的质量,是每一家软件企业所面临的挑战。现有的对与功能测试普遍采用的方式为录制回放模式,即用测试工具先人工录 制一遍要测试的操作,然后由工具自动回放录制脚本。此种解决方案存在以下几个方面的 不足1、大多数录制工具通过页面坐标位置来定位页面元素,这导致同一测试脚本在不 同的机器上几乎不可能重用。也有少数工具是通过页面元素的id属性将其识别,但对于很 多Ajax框架(如ZK),这种方法并不可行一因为这种框架生成的页面元素的id每次都会 变化,这导致了所录制的脚本几乎没有重用性。2、目前流行的测试工具对于测试的验证点仅限于界面层次,几乎没有后台数据的 验证功能(如数据库中数据的比对,进程的监控等等),这影响了测试的质量和有效性,也 不便定位导致产品缺陷的原因。3、目前流行的测试工具所生成的测试报告内容不能定制,信息也不够详细完整 (如缺乏测试本身的异常信息、被测程序异常截图、产品日志的异常信息等等),不利于开 发人员准确定位缺陷发生的原因。

发明内容
为解决上述技术问题,本申请实施例提供一种TOB自动化测试的方法及装置,以 解决现有的WEB应用自动化测试工具重复利用率低,功能不完善,测试结果不清晰的问题。技术方案如下一种WEB应用自动化测试的方法,包括将预配置的测试用例以任务的形式按顺序进行部署;通过批处理命令调用所述以任务形式部署的测试用例;发送测试指令至测试服务器,由所述测试服务器对所述测试用例进行测试。上述的方法,优选的,所述配置测试用例的过程为新建测试用例并在所述新建测试用例中创建子用例;对所述新建测试用例及子用例的测试环境进行准备,指定所述子用例的执行顺序 和依赖关系;在所述子用例中根据所述指定的执行顺序添加测试操作和测试验证。上述的方法,优选的,还包括将测试用例的数据配置在外部配置文件中,使测试 用例循环读取测试数据。
上述的方法,优选的,所述测试用例包括测试目的、测试前提、测试步骤及测试预 期效果;其中所述测试前提用于自动化测试的环境准备。上述的方法,优选的,对所述测试用例的测试具体为调用所述按顺序部署的测试用例,根据所述测试用例的子用例中的测试操作和测 试验证对所述子用例进行测试;测试结束后对所述经过测试的子用例的测试环境进行清理;判断所述经过测试的子用例是否测试通过,若通过,则按顺序对与所述经过测试 的子用例存在依赖关系的其它子用例执行测试;若未通过,则按顺序对与所述经过测试的 子用例没有依赖关系的其它子用例执行测试;对所述测试用例的测试环境进行清理。上述的方法,优选的,还包括根据预先定义的测试监听接口生成测试报告。一种WEB应用自动化测试的装置,包括测试部署单元、指令发送单元和测试服务器;其中所述测试部署单元用于将预配置的测试用例以任务的形式按顺序进行部 署;所述指令发送单元用于发送批处理命令至所述测试部署单元调用所述以任务形 式部署的测试用例并发送测试指令至测试服务器,控制所述测试服务器对所述测试用例进 行测试。上述的装置,优选的,还包括预设单元;所述预设单元用于对新建测试用例及其子用例的测试环境进行准备;指定所述子 用例的执行顺序和依赖关系;并预设测试监听接口。上述的装置,优选的,还包括外部数据单元;所述外部数据单元用于配置测试用例的数据,测试用例可以从所述外部数据单元 循环读取测试数据。上述的装置,优选的,所述测试服务器包括测试单元、判断单元和测试环境清理单元;所述测试单元用于调用所述按顺序部署的测试用例,根据所述测试用例的子用例 中的测试操作和测试验证对所述子用例进行测试;所述判断单元用于对经过测试的子用例是否测试通过进行判断,若通过,则指示 所述测试单元按顺序对与所述经过测试的子用例存在依赖关系的其它子用例执行测试;若 未通过,则指示所述测试单元按顺序对与所述经过测试的子用例没有依赖关系的其它子用 例执行测试;所述测试环境清理单元用于在所述测试用例及子用例测试结束后,对其测试环境 进行清理。上述的装置,优选的,还包括测试报告生成单元,所述测试报告生成单元用于根据 预先定义的测试监听接口生成测试报告。由以上本申请实施例提供的技术方案可见,本发明提供的针对TOB应用的自动化 测试方法及装置,结合测试用例自动化,将需要进行回归测试以及在多种配置下需要执行的测试用例进行自动化测试,并提炼公共业务测试类,提高复用程度,形成一种快速有效, 并且可靠的自动化测试框架;本方法完全采用JAVA技术实现,可以完全兼容目前JAVA平台 的开源测试工具,支持多线程,可以同时运行多个测试用例,使用XPATH来定位页面元素, 测试用例的可重用性达到最高,测试用例高度可以配置,包括测试步骤的配置和测试数据 的配置,用例和场景的组合灵活度很高,用例之间的干扰小,测试报告的内容可以定制,能 够记录被测程序的异常截图,可以与被测产品的日志相关联,以便测试人员和开发人员快 速定位产品缺陷。


为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。图1为本申请实施例提供的TOB应用自动化测试的方法流程图;图2为本申请实施例公开的预配置测试用例的方法流程图;图3为本申请实施例公开的预配置测试用例的一详尽流程图;图4为本申请实施例公开的对具体测试用例进行测试的流程图;图5为本申请实施例公开的具体测试用例进行测试的整体流程图;图6为本申请实施例公开的WEB应用自动化测试的装置结构示意图;图7为本申请实施例公开的WEB应用自动化测试装置的一详尽结构示意图;图8为本申请实施例公开的WEB应用自动化测试装置的又一详尽结构示意图;图9为本申请实施例公开的WEB应用自动化测试装置中测试服务器的结构示意 图;图10为本申请实施例公开的WEB应用自动化测试装置的再一详尽结构示意图。
具体实施例方式本申请实施例提供一种针对TOB应用自动化测试的方法及装置,测试脚本通过调 用客户端API可以向服务器发送指令,然后由服务器执行指令,实现对被测试页面的操作, 从而实现模拟手动操作的效果,达到自动化测试的目的。以上是本申请的核心思想,为了使本技术领域的人员更好地理解本申请方案。下 面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显 然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实 施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应 当属于本申请保护的范围。本申请实施例提供的TOB应用自动化测试的方法流程图如图1所示,包括步骤SlOl 将预配置的测试用例以任务的形式按顺序进行部署;步骤S102 通过批处理命令调用上述以任务形式部署的测试用例;步骤S103 发送测试指令至测试服务器,由测试服务器对上述测试用例进行测
试ο
本申请实施例公开的方法,采用ANT技术,ANT是一种基于JAVA的build工具,可 以将多个测试任务联合起来,并配置测试的监听器以及日志输出的目录。将预配置的测试用例通过ANT以任务的形式按合理的顺序部署在一起,然后编写 简单的批处理命令来调用任务,这样执行测试任务时只需要简单的执行批处理文件即可。同时还采用了 Selenium技术,Selenium是一个开源API,分为服务器和客户端两 部分。测试脚本通过调用客户端API可以向Selenium服务器发送JavaScript指令,实现 对被测试页面的操作,从而实现模拟手动操作的效果。本申请实施例公开的预配置测试用例的方法流程图如图2所示,包括步骤S201 新建测试用例并在新建测试用例中创建子用例;步骤S202 对上述新建测试用例及子用例的测试环境进行准备,指定子用例的执 行顺序和依赖关系;步骤S203 在所述子用例中根据指定的执行顺序添加测试操作和测试验证。需要说明的是一个测试用例中包含一个或多个子用例;每一个子用例用注释OTest标识;整 个测试用例的环境准备用注释OBeforeClass标识;整个测试用例的环境清理用注释@ AfterClass标识;单个子用例的环境准备用注释OBeforeMethod标识;单个子用例的环境 清理用注释OAfterMethod标识。通过特定选项来指定子用例的执行顺序和依赖关系,这种 依赖关系的作用是当测试用例B依赖于测试用例A时,则测试用例A执行失败时则测试用 例B会被跳过。在配置操作和验证时,可以直接指定测试数据,也可以通过指定键值来使用外部 数据表格中的测试数据。操作主要是通过调用SeleniumAPI实现对被测网页的操作,验证 可以是任何用JAVA语言或跟JAVA兼容的语言实现的代码片段。本申请实施例公开的预配置测试用例的一详尽流程图如图3所示,还包括步骤 S204:将测试用例的数据配置在外部配置文件中,使测试用例循环读取测试数据。所有测试用例的测试数据都可以配置在外部配置文件中,这样可以让测试用例循 环读取测试数据以达到数据驱动自动测试的要求,此文件通常是JAVA支持的properties 键值对属性文件。需要说明的是,选择适合自动化的测试用例,测试用例中要明确测试目的、测试前 提、测试步骤,以及通过各种方式明确的验证点即预期结果,测试前提用于自动化测试的数 据等环境准备,验证点是自动化测试可行的分析重点;一个详细准确的测试用例是自动化 测试成功的重要前提保障。本申请实施例提供的一个测试用例样本如下测试目的在KingBase环境下,测试构件MD5S0urce,对源表有关键字、目的的表在没有关键 字的情况下,是否能够正确同步。测试前提网络连接正常;数据库连接信息配置正确;用户拥有足够的权限。测试步骤步骤1 修改RSR模式下的MD5 KLS SINK2表,使其失去主键;
步骤2 安装 MD5S. SINK 0RA2 服务;步骤3 数据传输完毕,查看数据是否完整传送;步骤4 分别增加、修改、删除一条记录;步骤5 查看数据定时同步是否正确。以上是本申请实施例提供的一个测试用例样本,除步骤3和步骤5以外,其它均为 测试人员应当做的操作,步骤3和步骤5是需要加以验证的操作。脚本开发人员会按照此 测试用例来编写代码,对于操作,如果操作时对产品某个网页进行的,则需要使用Selenium 来模拟完成,如果操作时对后台某个方面进行的,则需要编写JAVA代码,因为Selenium本 身支持JAVA,所以两者可以很好的无缝结合在一起;对于验证,如果验证是针对网页的,需 要使用Selenium来进行判断,如果是后台数据的验证,则需要编写JAVA代码。代码的编 写需要遵循一定的规范,可以在重要的地方利用Log4J来记录日志,测试完成后要删除测 试数据等等,一个脚本编写完成后,这就是一个可以用TestNG来独立运行的用例。脚本编 写人员需要把所有能够自动化的用例都实现,然后通过ANT组织在一起,然后打成一个可 执行文件,交付给测试人员每日执行。对于已经自动化的用例,测试人员就可以不再手动测 试,而是利用夜间或周末自动执行,然后可以迅速的分析测试报告。这样节省了基本功能的 测试时间,测试人员可以有时间去做更为复杂的测试和设计新的测试用例。需要说明的是本申请实施例还采用了 Log4J技术,Log4j是Apache的一个开放 源代码项目,可以控制日志的输送地、输出格式;通过配置文件灵活的配置日志信息的级 别。采用了 Firebug+FireXPath技术,Firebug是Firefox的一个扩展,提供了诸多网 页开发的辅助功能,FireXPath是Firebug的一个扩展,两者结合可以方便的检查并生成所 需页面元素的XPATH定位值。本申请实施例公开的对具体测试用例进行测试的流程图如图4所示,包括步骤S301 测试开始;步骤S302 对新建测试用例A的测试环境进行准备;步骤S303 对新建测试用例A中子用例a的测试环境进行准备;步骤S304 根据子用例a中的测试操作和测试验证对子用例a进行测试;步骤S305 子用例a测试结束后对子用例a的测试环境进行清理;步骤S306 判断子用例a是否测试通过,若通过,执行步骤S307 ;否则,执行步骤 S308 ;步骤S307 对依赖于子用例a的子用例b进行测试操作;步骤S308 对独立于子用例a的子用例c进行测试操作;步骤S309 对测试用例A的测试环境进行清理;步骤S310 根据预先定义的测试监听接口生成测试报告;步骤S311 对测试用例A的测试结束。需要说明的是针对子用例抛出的任何异常,都应该将异常堆栈的详细信息传递 给测试监听器,这样最终的报告中才会包含这些异常。本申请实施例采用TestNG技术,通过注释来标识测试方法及环境准备方法, 并且可以通过特定的选项来指定用例之间先后依赖关系;通过实现TestNG框架的ITestListener接口,可以编写自定义的测试监听器,以便在测试完成后生成自定义内容的 测试报告。本申请实施例公开的具体测试用例进行测试的整体流程图如图5所示,包括步骤S401 测试开始; 步骤S402 对测试用例A执行测试;步骤S403 对测试用例B执行测试;步骤S404 对其他测试用例依次执行测试;步骤S405 测试结束。申请实施例公开的WEB应用自动化测试的装置结构示意图如图6所示,包括测试部署单元502、指令发送单元501和测试服务器503 ;其中测试部署单元502用于将预配置的测试用例以任务的形式按顺序进行部 署;指令发送单元501用于发送批处理命令至测试部署单元502调用上述以任务形式 部署的测试用例并发送测试指令至测试服务器503,控制测试服务器503对测试用例进行 测试。本申请实施例公开的TOB应用自动化测试装置的一详尽结构示意图如图7所示, 自动化测试装置还包括预设单元504 ;预设单元504用于对新建测试用例及其子用例的测试环境进行准备;指定子用例 的执行顺序和依赖关系;并预设测试监听接口。本申请实施例公开的WEB应用自动化测试装置的又一详尽结构示意图如图8所 示,自动化测试装置还包括外部数据单元505 ;外部数据单元505用于配置测试用例的数据,测试用例可以从外部数据单元505 循环读取测试数据。本申请实施例公开的TOB应用自动化测试装置中测试服务器的结构示意图如图9 所示,测试服务器503包括测试单元506、判断单元508和测试环境清理单元507 ;测试单元506用于调用上述按顺序部署的测试用例,根据测试用例的子用例中的 测试操作和测试验证对所述子用例进行测试;判断单元508用于对经过测试的子用例是否测试通过进行判断,若通过,则指示 测试单元506按顺序对与经过测试的子用例存在依赖关系的其它子用例执行测试;若未通 过,则指示测试单元506按顺序对与经过测试的子用例没有依赖关系的其它子用例执行测 试;测试环境清理单元507用于在测试用例及子用例测试结束后,对其测试环境进行清理。本申请实施例公开的TOB应用自动化测试装置的再一详尽结构示意图如10所示, 自动化测试装置还包括测试报告生成单元509,所述测试报告生成单元509用于根据预先 定义的测试监听接口生成测试报告。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部 分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。以上所述仅是本申请的具体实施方式
,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原 理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
权利要求
一种WEB应用自动化测试的方法,其特征在于,包括将预配置的测试用例以任务的形式按顺序进行部署;通过批处理命令调用所述以任务形式部署的测试用例;发送测试指令至测试服务器,由所述测试服务器对所述测试用例进行测试。
2.根据权利要求1所述的方法,其特征在于,所述配置测试用例的过程为 新建测试用例并在所述新建测试用例中创建子用例;对所述新建测试用例及子用例的测试环境进行准备,指定所述子用例的执行顺序和依 赖关系;在所述子用例中根据所述指定的执行顺序添加测试操作和测试验证。
3.根据权利要求2所述的方法,其特征在于,还包括将测试用例的数据配置在外部配 置文件中,使测试用例循环读取测试数据。
4.根据权利要求2所述的方法,其特征在于,所述测试用例包括测试目的、测试前提、 测试步骤及测试预期效果;其中所述测试前提用于自动化测试的环境准备。
5.根据权利要求2所述的方法,其特征在于,对所述测试用例的测试具体为调用所述按顺序部署的测试用例,根据所述测试用例的子用例中的测试操作和测试验 证对所述子用例进行测试;测试结束后对所述经过测试的子用例的测试环境进行清理;判断所述经过测试的子用例是否测试通过,若通过,则按顺序对与所述经过测试的子 用例存在依赖关系的其它子用例执行测试;若未通过,则按顺序对与所述经过测试的子用 例没有依赖关系的其它子用例执行测试; 对所述测试用例的测试环境进行清理。
6.根据权利要求5所述的方法,其特征在于,还包括根据预先定义的测试监听接口生 成测试报告。
7.—种TOB应用自动化测试的装置,其特征在于,包括 测试部署单元、指令发送单元和测试服务器;其中所述测试部署单元用于将预配置的测试用例以任务的形式按顺序进行部署; 所述指令发送单元用于发送批处理命令至所述测试部署单元调用所述以任务形式部 署的测试用例并发送测试指令至测试服务器,控制所述测试服务器对所述测试用例进行测试。
8.根据权利要求7所述的装置,其特征在于,还包括预设单元;所述预设单元用于对新建测试用例及其子用例的测试环境进行准备;指定所述子用例 的执行顺序和依赖关系;并预设测试监听接口。
9.根据权利要求7所述的装置,其特征在于,还包括外部数据单元;所述外部数据单元用于配置测试用例的数据,测试用例可以从所述外部数据单元循环 读取测试数据。
10.根据权利要求7所述的装置,其特征在于,所述测试服务器包括 测试单元、判断单元和测试环境清理单元;所述测试单元用于调用所述按顺序部署的测试用例,根据所述测试用例的子用例中的测试操作和测试验证对所述子用例进行测试;所述判断单元用于对经过测试的子用例是否测试通过进行判断,若通过,则指示所述 测试单元按顺序对与所述经过测试的子用例存在依赖关系的其它子用例执行测试;若未通 过,则指示所述测试单元按顺序对与所述经过测试的子用例没有依赖关系的其它子用例执 行测试;所述测试环境清理单元用于在所述测试用例及子用例测试结束后,对其测试环境进行清理。
11.根据权利要求7所述的装置,其特征在于,还包括测试报告生成单元,所述测试报 告生成单元用于根据预先定义的测试监听接口生成测试报告。
全文摘要
本申请公开了一种WEB应用自动化测试的方法及装置,其方法包括将预配置的测试用例以任务的形式按顺序进行部署;通过批处理命令调用所述以任务形式部署的测试用例;发送测试指令至测试服务器,由所述测试服务器对所述测试用例进行测试。本发明提供的针对WEB应用的自动化测试方法及装置,结合测试用例自动化,将需要进行回归测试以及在多种配置下需要执行的测试用例进行自动化测试,并提炼公共业务测试类,提高复用程度,有效解决了现有的WEB应用自动化测试工具重复利用率低,功能不完善,测试结果不清晰的问题。
文档编号H04L29/08GK101882107SQ20101021047
公开日2010年11月10日 申请日期2010年6月28日 优先权日2010年6月28日
发明者刘维秀, 张洪超 申请人:山东中创软件商用中间件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1