首页 基于RFT和STAF进行的无需人工干预的跨平台自动化回归测试

基于RFT和STAF进行的无需人工干预的跨平台自动化回归测试

举报
开通vip

基于RFT和STAF进行的无需人工干预的跨平台自动化回归测试基于RFT和STAF进行的无需人工干预的跨平台自动化回归测试 基于RFT和STAF进行的无需人工干预的跨平台自动化回 归测试 发布时间: 2011-7-18 13:12 作者: 古力 来源: 51Testing软件测试网采编 简介:本文随着回归测试的自动化程度不同,而结合 Rational Functional Tester (RFT) 展开如下回归测试:手工回归测试 -> 自动化回归测试 -> 无需人工干预的自动化回归测试 -> 无需人工干预的跨平台并发自动化回归测试。 回归测试是指修改了旧代码之后,重新...

基于RFT和STAF进行的无需人工干预的跨平台自动化回归测试
基于RFT和STAF进行的无需人工干预的跨平台自动化回归测试 基于RFT和STAF进行的无需人工干预的跨平台自动化回 归测试 发布时间: 2011-7-18 13:12 作者: 古力 来源: 51Testing软件测试网采编 简介:本文随着回归测试的自动化程度不同,而结合 Rational Functional Tester (RFT) 展开如下回归测试:手工回归测试 -> 自动化回归测试 -> 无需人工干预的自动化回归测试 -> 无需人工干预的跨平台并发自动化回归测试。 回归测试是指修改了旧代码之后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。回归测试作为软件生命周期的一个重要组成部分,在整个软件测试过程中占有很大的比重,并且伴随着渐进和快速迭代开发的广泛应用,新版本的连续发布对回归测试的频率和效率都有了更高的要求。因此自动化回归测试无论是从时间、效率还是成本的角度考虑,都是解决这一问题的不二选择。本文随着回归测试的自动化程度不同而展开如下:手工回归测试 -> 自动化回归测试 -> 无需人工干预的自动化回归测试 -> 无需人工干预的跨平台并发自动化回归测试。 1. 手工回归测试 手工回归测试软件一般由以下步骤组成: ? 监测并下载最新版本的被测软件 ? 准备测试环境 ? 安装被测软件 ? 手工执行测试用例 ? 记录执行结果 2. 自动化回归测试 2.1 自动化回归测试工具 回归测试的步骤以及回归测试用例本身相对固定的特点,保证了自动化回归测试的可行性。除了利用 Java,ANT 等直接开发自动化脚本以外,各种自动化测试的软件和工具也保证了自动化回归测试的可行性: ? IBM Rational Functional Tester(RFT)是一个面向对象的自动化测试工具,用于测试 Windows 2000、Windows XP 和 Linux 平台上的基于 Java、HTML、VB.NET、Microsoft Windows 的应用软件。 ? Software Test Automation Framework (STAF) 是一个开源的、跨平台、支持多语言的自动化测试框架,它是基于可重用的组件来构建的。 2.2 自动化回归测试的可行性 将手工测试自动化,首先需要考虑的是手工测试的每一步(见章节 1)是否可以实现自动化。换而言之,也就是是否可以利用命令行操作或者脚本语言来代替手工测试中需要人机交互的部分: ? (自动)监测并下载最新版本的被测软件 根据被测软件存放的服务器类型、 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 的不同,可以利用相应的命令行操作工具,实现自动监测并下载最新版本的被测软件。例如:wget,mget。 ? (自动)准备测试环境 目前被广泛使用的 VMware 虚拟机,不但支持多种操作系统,可以通过 revert to snapshot 恢复到任何环境,还提供了命令行工具 vmrun 。因此,我们可以利用命令行操作实现自动将虚拟机还原到最初的干净的测试环境,并且开启虚拟机。举例如下 : \VMware VIX\vmrun revertToSnapshot \VMware VIX\vmrun start ? (自动)安装被测软件 大部分的软件都会提供命令行安装方式,也就是所谓的“ Silent Installation ”。利用提前设置好的安装配置信息,实现无需用户输入的自动安装软件并不是一件难事。 ? (自动)执行测试用例 Rational Functional Tester 是目前非常流行的一个面向对象的自动化测试工具。通过编写 RFT 脚本,可以实现对 Java、.Net 以及基于 Web 的各种应用程序的自动测试。 ? (自动)记录执行结果。 Rational Functional Tester 提供了两种开发环境:Eclipse 框架中的 Java, 或者 Microsoft, Visual Studio, 开发系统中的 Microsoft, Visual Basic, .NET 。无论是使用哪一种脚本,都可以通过嵌入 DAO 的方式访问数据库,进而将 RFT 脚本的执行结果自动记录到数据库中,再经由网页展现出来,见图 1 。 图 1. 自动记录执行结果 2.3 自动化回归测试 基于以上的可行性分析,手工回归测试的每一步都是可以通过命令行操作,或者脚本语言来实现的。如果将把手工回归测试的每一步分别自动化,比喻成一颗颗的珍珠,那么 STAF/STAX 就是一根绳子,它将一颗颗珍珠串起,构成了一根美丽的项链。 Software Test Automation Framework (STAF) 是开源、跨平台、支持多语言并且基于可重用的组件来构建的自动化测试框架。 STAF eXecution engine (STAX) 是基于 XML 的执行引擎,它是 STAF 提供的众多外部服务中的一种。简单来说,STAX 脚本不但可以利用 STAF 提供的各种内部、外部服务,方便快捷地实现很多功能,而且它还可以在任何一台装有 STAF 的机器上远程同时执行。基础架构见图 2 。 2. 基础架构 图 为了方便重用,我们可以把手工回归测试的各个部分写成独立的 STAX 脚本,如图 3 所示。 图 3. 自动化脚本 各部分的 STAX 脚本代码示例如下: 示例代码 1. 转换虚机状态 VMWare Server 'vmwareRun' 'revertToSnapshot vmwareVirtualMachinePath vmImageFile vmImageFile' 'Failed to Revert VMware Image Snapshot' 'Waiting for target %s open' % (vmIP) VM 'PING' 'PING' 'local' 'DELAY' 'DELAY %s' % (delayTime) '%s is opened' % (vmIP) 'The target failed to reboot and start STAF within the specified amount of time. Please check the target for further details' 通过在 VMware 服务器上执行 VMware 软件本身提供的转换 snapshot 的命令,可以方便的将目标 虚拟机恢复到测试的初始状态。继而,可以通过 STAF 提供的 PING 服务进一步确认目标虚拟机已经开 启,并且运行在其上的 STAF 也工作正常。一旦确认目标机工作正常,便可以开始后续的测试工作,否则 需输出出错提示,并且返回。 示例代码 2. 安装被测产品 target 'installCmdonWin' 'installParmsonWin' 'Failed to Install Product on Windows' target 'installCmdonLinux' 'installParmsonLinux' 'Failed to Install Product on Linux' 利用 STAF 可以在目标虚拟机上执行命令行操作和运行脚本的特点,我们可以在目标虚拟机上运行安装被 测产品的脚本或者直接通过执行命令行操作安装被测产品。如果待测产品的安装命令在不同的操作系统上 有所不同,则需要先判断操作系统之后,再根据不同的操作系统,执行不同的命令行操作。当然,如果是 通过运行脚本程序来达到安装被测产品的目的,那么在脚本中实现操作系统的判断是更为合理而且通用的。 示例代码 3. 执行 RFT 脚本 target 'java' '-classpath "%s" %s -datastore %s -playback %s' %(classpath, rftClass, rftProject, rftScript) 'Failed to Run RFT Scripts' RFT 不但提供了通过界面执行 RFT 脚本的方式,还提供了命令行的执行方式。因此,我们可以通过 STAF,从命令行调用 RFT 并执行 RFT 自动化测试脚本。 3. 无需人工干预的自动化回归测试 最大程度的自动化回归测试自然是无需人工干预的自动化测试,也就是不但可以把手工测试的每一步 都自动化,而且还可以在拿到新版本的软件之后自动触发回归测试,自动记录执行结果 , 并且发送 通知 关于发布提成方案的通知关于xx通知关于成立公司筹建组的通知关于红头文件的使用公开通知关于计发全勤奖的通知 。 3.1 自动触发回归测试 STAF 内部的信号量服务(Semaphore Service)提供了两种信号量的操作,mutex 和 event 。我 们可以利用它来开始自动化回归测试。 示例代码 4. 利用信号量服务触发事件 STAF serverIPAddress SEM POST EVENT event_name STAF serverIPAddress SEM RESET EVENT event_name 如果你想定时触发自动化回归测试,Windows 和 Linux 操作系统本身都提供了定时调度任务的功能。 在 Windows 上,可以利用 Windows 任务调度程序(Windows Task Scheduler);在 Linux 上,可以 利用 Crontab 。继而可以通过定时调用 shell 脚本或者 batch 文件,触发自动回归测试。 但是,定时触发并执行回归测试往往是不够的,更加智能和有效的方式是在每拿到一个新版本的软件 的同时,开始一轮新的回归测试。为了实现这种触发方式,我们可以将定时触发并执行自动回归测试,改 为定时检测服务器端的软件版本,比如每隔五分钟检测一次。一旦检测到服务器端已经上载完全的新版本 的软件,就可以调用 STAF 的信号量服务来触发自动回归测试。 3.2 自动发送测试结果 在执行完回归测试的自动脚本并且将结果记入数据库之后,在将结果传回 STAF 服务器的同时,还可 以发送邮件将测试结果通知给相关人员。 示例代码 5. 回传执行结果并发送邮件通知 'local' 'EMAIL' 'SEND %s FROM %s@%s SUBJECT "%s" MESSAGE "%s"' % (emailString, hostname, dnsString, subject, message) 通过 STAF 的 EMAIL 服务,可以将测试结果以邮件形式通知测试人员 图 4 描述了无需人工干预的自动回归测试的流程: 图 4. 无需人工干预的自动回归测试流程 4. 多平台并发 4.1 多平台(Windows、Vista、Linux) 在回归测试的过程里,只有安装产品和执行测试脚本两部分与操作系统有关,而 RFT 和 STAF 都是 跨平台的,所以很容易扩展到多平台。我们需要做的仅仅是在 RFT 和 STAX 脚本里,利用条件判断语句, 对不同的操作系统做不同的处理。 示例代码 6. RFT 脚本中的平台判断 if(RationalTestScript.getOperatingSystem().isWindows()){ callScript(new testcases_for_win()); }else{ callScript(new testcases_for_linux()); } RFT 脚本有很多种判断平台的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ,示例代码只是其中的一种。当测试用例本身针对不同的平台,有 比较大的差别时,除了可以在脚本内部根据不同的平台,灵活运动用不同的函数以外,也可以直接将一个 脚本,分成针对不同平台的多个脚本,在另外的脚本中,统一调用。 示例代码 7. STAX 脚本中的平台判断 ... ...... 同理,STAX 脚本的部分,如果根据不同的平台有所不同,也需要在脚本中区别操作系统,而后分别 对待。 4.2 并发 STAX 不但可以顺序执行任务,还可以并发任务。通过并发任务,可以更好的利用资源,节约时间, 提高效率。 示例代码 8. 并发任务 vmIP,buildPath,installPath,installConfiguration 'Failed to install and test product' 利用 STAX 提供的元素 parallel 和 paralleliterate,可以很容易实现同一系列任务在多台目标机上的 并发执行。例如示例代码中原本针对一个目标机执行的安装和测试函数,通过 paralleliterate 即可变成同 时在目标机列表中的所有目标机上同时执行,极大的节约了总体执行的时间,提高了执行的效率。 5. 结论 更加系统和全面的自动化回归测试,无疑是回归测试未来发展的一个必然趋势。本文是作者根据自动 化回归测试的实际经验积累和总结而成。伴随着自动化测试的自动化程度展开的同时,介绍了几种主流的 自动化测试工具的使用经验。希望能对正在实现和准备实现自动化回归测试的同仁有所帮助。 免责 声明 无利益冲突声明中华医学会杂志社职业健康检查不够规范教育部留学服务中心亲友住房声明 本文仅代表作者本人观点 转载地址:
本文档为【基于RFT和STAF进行的无需人工干预的跨平台自动化回归测试】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_841159
暂无简介~
格式:doc
大小:84KB
软件:Word
页数:0
分类:
上传时间:2018-05-30
浏览量:20