【精品论文文献】qtp自动化测试框架的企业级应用.pdf_第1页
【精品论文文献】qtp自动化测试框架的企业级应用.pdf_第2页
【精品论文文献】qtp自动化测试框架的企业级应用.pdf_第3页
【精品论文文献】qtp自动化测试框架的企业级应用.pdf_第4页
【精品论文文献】qtp自动化测试框架的企业级应用.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

【精品论文文献】qtp自动化测试框架的企业级应用.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

复旦大学 硕士学位论文 qtp自动化测试框架的企业级应用 姓名:俞戴龙 申请学位级别:硕士 专业:软件工程 指导教师:支晓繁;夏宽理 2010-03-10 q t p 自动化测试框架的企业级应用 摘要 摘要 软件测试在国内逐渐受到重视,国内软件测试技术正在加速追赶着国际先进 水平。软件测试在整个软件生命周期中保证软件质量,其中会运用到各种先进的 技术。自动化测试就是其中的一项技术。q u i c kt e s tp r o f e s s i o n a l ( q t p ) 为自动 化测试工具中最具典型性和代表性的一个工具,但是在企业级的实际使用中往往 自动化工程师们各自为营,没有真正发挥q t p 的功效,因此自动化测试对于软 件质量保证也大打折扣。 首先分析了软件测试和自动化测试在软件生命周期的重要意义,明确了企 业自动化测试发展的现状和q t p 在项目应用中的弊端以及发展过程中必然会遇 到的难以突破的瓶颈,从而讲述引入自动化测试框架的重要意义,并以q t p 自 动化测试框架为中心,先对q 口自身的特点作了充分分析。然后基于自动化测 试框架的设计准则,结合公司的实际需求,详细介绍本框架独特的设计、结构、 实现等细节。最后以美世咨询的具体应用实例验证q t p 自动化测试框架实施上 的可行性、应用上的便捷性、记录缺陷的准确性,凸显了该自动化测试框架在企 业应用的巨大价值。 框架 关键词:软件生命周期;q u i c k t e s tp r o f e s s i o n a l ;质量保证;自动化测试 i v q t p 自动化测试框架的企业级应用 a b s t r a c t a b s t r a c t s o f t w a r et e s t i n gi sb e i n gr e g a r d e dm o r ea n dm o r es e r i o u s l yt h e s ey e a r s ,t e s t i n g t e c h n o l o g yi nc h i n ai sg r o w i n gf a s ta g a i n s tw o r l d - c l a s sl e v e l s o f t w a r et e s t i n g e n s u r e ss o f t w a r e sq u a l i t yi ns d l c a u t o m a t i o nt e s t i n gi so n eo ft h ea d v a n c e d t e c h n o l o g i e si ns o f t w a r et e s t i n g a m o n ga l lk i n d so fa u t o m a t i o nt e s t i n gt o o l s ,q u i c k t e s tp r o f e s s i o n a l ( q t p ) i st h em o s tt y p i c a lo n e ,b u ta c t u a l l ya u t o m a t i o ne n g i n e e r s a l w a y sw o r ka l o n ei n s t e a do fw o r k i n ga sat e a mt h u st h et e a mc o u l dn o tu s et h eb e s t o fq t pa sar e s u l t ,t h ee f f i c i e n c yo fq u a l i t ya s s u r a n c ei sa f f e c t e d t h i st h e s i sw i l lf i r s ta n a l y s i st h ei m p o r t a n c eo fs o f t w a r et e s t i n ga n da u t o m a t i o n t e s t i n gi ns d l c ,t h e nd i s c u s st h eb o t t l e n e c ke a c hc o m p a n yw i l le n c o u n t e rw i t ht h e d e v e l o p m e n to fa u t o m a t i o nt e a m a sar e s u l t ,a u t o m a t i o nf r a m e w o r kw i l lb e i n t r o d u c e d r e g a r d i n gq t pa u t o m a t i o nf r a m e w o r k ,f i r s t l ya n a l y s i st h ec h a r a c t e r i s t i c s o fq et h e nb a s eo na u t o m a t i o nf r a m e w o r kd e s c r i b ei nd e t a i la b o u t d e s i g n , a r c h i t e c h t u r e ,i m p l e m e n t so fq t pa u t o m a t i o nf r a m e w o r k a tl a s t ,l e v e r a g em e r c e r s a u t o m a t i o np r o j e c tt op r o v et h ef e a s i b i l i t y , c o n v e n i e n c e ,a c c u r a c yo fo u rf r a m e w o r k p r o v et h eg r e a tv a l u eq t pa u t o m a t i o nf r a m e w o r kc o u l dc r e a t e k e y w o r d s :s d l c ;q u i c k t e s tp r o f e s s i o n a l ,;q u a l i t ya s s u r a n c e :a u t o m a t i o n f r a m e w o r k v q t p 自动化测试框架的企业级应用第一章绪论 第一章绪论 1 1 本文研究背景及意义 3 0 年前,人月神话中说道“不为系统测试安排足够的时间简直就是一场 灾难”。 15 年前,中国的软件公司大部分只有测试工作而没有测试人员。 8 年前,中国的软件公司开始让“老弱病残 做专门的软件测试。 3 年前,很多中国的软件公司发现,没有通过专业测试人员测试过的软件根 本不敢给客户看【”。 这是国内测试界的事实。随着国内软件行业不断的向国外学习,现在国内和 国外软件行业在技术、流程、管理上的差距正在逐步缩小。而测试人员正在逐渐 受重视,并且很多公司都建立起了独立的测试部门,配备精英测试团队,以期使 公司的产品达到预期的质量。 自动化测试是手工测试发展的必然,纯粹的手工测试容易使测试人员产生抵 制、消极、疲倦、没有激情等情绪。测试人员就很少会有工作的成就感,相反是 在一遍一遍验证软件的正确性,每一个版本都需要手工执行所有的测试用例,包 括前几个版本已经执行过的测试用例不免让人觉得枯燥。自动化测试工具就由此 产生,自动化测试的初衷就是为了把测试人员从枯燥无味的手工测试中解放出 来,让测试有更多的时间关注真正需要关心的问题而不是把大量的时间放在大量 的但是缺陷相对少的用例执行上面 2 1 。 功能性自动化测试主要应用在回归测试中,这其实也是大多数自动化测试工 具的强项。而投入和产出往往是大家关注的问题。实际上,实施自动化测试的成 本是很高的,一个自动化测试脚本至少有效执行6 - - 7 次才能够收回成本,有些 u i 变化比较频繁的脚本甚至需要重用4 0 一- 5 0 次才足以收回成本。那么如何才能 够减低成本或者快速收回成本呢? 关键是增强脚本的健壮性、稳定性和减少脚本 的维护工作量,主要方法如下: 选择更好、更合适的测试工具: 尽量将脚本结合数据驱动,这一点很重要; 结构化脚本,高内聚低耦合封装脚本,包括脚本的分层次; 结合测试框架使脚本适应框架。 表1 1 举例了部分测试方法的收益率1 3 j 。 q t p 自动化测试框架的企业级应用第一章绪论 表1 1部分测试方法的收益率 结构成本收益净收益 不进行自动化测试 000 简单录制一回放 8 31 12 7 使用数据驱动测试 8 4 189 6 使用测试框架 9 8155 2 测试框架结合数据驱动 1 1 6197 4 从表1 1 中可以看到,使用数据驱动的测试由于代码复用率相对较高,所以 受益最大,但是纯粹的数据驱动代码不宜维护和共享,而且灵活性也不够,结合 测试框架与数据驱动才是最佳选择。 测试框架( f r a m e w o r k ) ,w i k i p e d i a 给它下的定义是“一种用于解决复杂 问题的基本概念性的结构”。形象一些,好比我们需要盖一幢房子,那么先用钢 把它的外形搭建出来,再由工人进行内部搭建,这层外型就是我们的测试框架。 自动化测试框架是一组自动化测试整体解决方案,可以让组内的成员更好更便捷 的使用自动化测试工具。 总结测试框架的优点如下: 测试代码复用,任何人可以执行其他任何人的任何测试脚本进行任何测 试;并且可以在任一阶段使用( 预测试阶段、冒烟测试阶段、回归测试 阶段等) ,也可以在多种场合使用,如普通的回归测试、敏捷测试中的自 动化验收测试等h : 可以使得整个测试是受控的,有后台记录,回归测试井然有序; 扩充和完善测试工具,弥补测试工具的不足。如测试框架可以重写q t p 的报表,自定义e x c e l 、h t m l 等各式各样的报表,并使每一份报表的 结果都有矩阵跟踪; 知识共享,一个测试团队的技术高手一次性解决技术难关,其他测试人 员只需要调用就可以了,节约了宝贵时间,测试人员通过框架内部函数 或对象的调用可以花更多的时间在真正设计测试用例上而不是工具本身 如何实现的问题。 一个自动化测试小组只有有了测试框架才算真正实现了测试自动化,否则充 其量只是自动化测试。这也正是本文研究的核心意义所在。 2 q 耶自动化测试框架的企业级应用 第一章绪论 1 2q t p 自动化测试的发展现状和方向 1 2 1q t p 自动化测试的发展现状 如今市场上浮现出一大批商业自动化测试工具,包括开源的以及非开源的 女口:h p - m e r c u r yq t p 、r a t i o n a lr o b o t f u n c t i o n a lt e s t e r 、s i l k t e s t 、s e l e n i u m 。 其中q t p 是将功能自动化推向极致的测试工具,每一个版本的q t p 都比上一个 版本有很大的改进。此外,q t p 是目前市场占有率最大的功能测试工具,是此 类工具的典型( 图1 1 为5 1 t e s t i n g 在2 0 0 8 年1 2 月做的市场统计【5 】) 。 公司甚前使用的自动化测试工具 来源:5 1t o s t g 技体潮j 试网 ,_ 5 1 t e s t n 最c o - 鲞 :h p 廷r c u r y c 轴i c k t e s tp r o - b :h p 瞻r c u r yw i n r u n n e r 龇c :l b 鹾r a t i o n a lr o b o t d :i b 隧f u n c t i o nt e s t e r e :b o r l t n ds i l k t e s t if :a u t o m a t e d c 睫t e s t c o m p l e t e g :w 鼓 r 巍h :萁它 图1 15 1 t e s t i n g 在2 0 0 8 年做的市场统计 从上图我们可以看到q t p 以3 8 的比例高居市场占有率第一的位置。 1 2 2 q t p 自动化测试的发展方向 q t p 自从2 0 0 5 年发布了其8 0 版本,并首次引入“关键字驱动”( k e y w o r k d r i v e n ) 概念之后一路高唱凯歌占据了市场。但是与此同时,一些开源自动化测 试工具也渐渐进入到了人们的视野( 如图1 2 ) m 一1 0 0s e l e n i u i i t - _ 2 3 0w t 疆l o 1 0 = t f m i i i i i i i = m3 t 5 毒o :0tr n ; q 耶自动化测试框架的企业级应用 第一章绪论 1 2q t p 自动化测试的发展现状和方向 1 2 1q t p 自动化测试的发展现状 如今市场上浮现出一大批商业自动化测试工具,包括开源的以及非开源的 女口:h p - m e r c u r yq t p 、r a t i o n a lr o b o t f u n c t i o n a lt e s t e r 、s i l k t e s t 、s e l e n i u m 。 其中q t p 是将功能自动化推向极致的测试工具,每一个版本的q t p 都比上一个 版本有很大的改进。此外,q t p 是目前市场占有率最大的功能测试工具,是此 类工具的典型( 图1 1 为5 1 t e s t i n g 在2 0 0 8 年1 2 月做的市场统计【5 】) 。 公司甚前使用的自动化测试工具 来源:5 1t o s t g 技体潮j 试网 ,_ 5 1 t e s t n 最c o - 鲞 :h p 廷r c u r y c 轴i c k t e s tp r o - b :h p 瞻r c u r yw i n r u n n e r 龇c :l b 鹾r a t i o n a lr o b o t d :i b 隧f u n c t i o nt e s t e r e :b o r l t n ds i l k t e s t i f :a u t o m a t e d c 睫t e s t c o m p l e t e g :w 鼓 r 巍h :萁它 图1 1 5 1 t e s t i n g 在2 0 0 8 年做的市场统计 从上图我们可以看到q t p 以3 8 的比例高居市场占有率第一的位置。 1 2 2 q t p 自动化测试的发展方向 q t p 自从2 0 0 5 年发布了其8 0 版本,并首次引入“关键字驱动”( k e y w o r k d r i v e n ) 概念之后一路高唱凯歌占据了市场。但是与此同时,一些开源自动化测 试工具也渐渐进入到了人们的视野( 如图1 2 ) m 一1 0 0s e l e n i u i i t - _ 2 3 0w t 疆l o 1 0 = t f m i i i i i i i = m3 t 5 毒o :0tr n ; q t p 自动化测试框架的企业级应用第一章绪论 图1 2自动化测试工具对比 从上图的g o o g l e 趋势可以发现: 1 r a t i o n a lf u n c t i o n a lt e s t e r ( r t f ) 正在渐渐的失去竞争力,而其它工具( 如 q t p ) 正在不断的被市场认可,究其原因,主要可以归结为以下几方面:用户界 面的友好性、编写脚本的方便程度、工具的扩展性、控件识别能力等,这也是各 家自动化厂商的发展和努力方向,q t p 目前处于领先地位。 2 开源自动化测试工具( 如s e l e n i u m ,r u b y + w a t i r ) 广泛的得到了市场的 认可和肯定,但是开源工具由于资金、技术、产品定位等因素的限制,在发展过 程中会遇到很大的瓶颈。这也正是q t p 的优势,一般来说我们会把开源自动化 测试工具定义为轻量级工具,而q t p 无疑是一个重量级的测试工具。但是更开 放的二次开发平台也将是今后所有自动化测试工具的发展方向。 1 3 本文的主要工作和组织结构 1 3 1 本文的主要工作 论文首先将传统的录制一回放模式、数据驱动模式、使用数据驱动与测试框 架相结合这三种模式的投入与回报率的关系展开论述,分析了传统的作坊式的自 动化测试模式的诸多弊端和企业在发展自动化测试过程中必将遇到的瓶颈等问 题,得出了实施自动化测试框架的必要性。 基于对传统自动化测试模式弊端的分析和过往经验的总结,本文整理出了 自动化测试框架必须解决的问题并归纳入了框架设计准则。本文的q t p 自动化测 试框架秉承了目前普遍采取的关键字驱动( k e y w o r d d r i v e n ) 和数据驱动 ( d a t a d r i v e n ) 的模式,并基于此开发了带有宏的e x c e l 模板供用户在外部可以 设计自动化测试计划、测试用例与测试数据。整个自动化测试框架均以此e x c e l 测试表作为外部测试流程、数据的输入。q t p 自动化测试框架的后台主要由q t p 脚本语言和v b s c r i p t 实现,前台用户友好的界面使用a s p n e t 开发完成。论文 详细介绍了该框架的设计与实现原理,包括启动引擎的设计实现、异常处理的逻 辑、报表引擎的设计实现、日志的处理等。并由抽象到具体的借助美世咨询b a 2 系统在做自动化测试全过程中完美地与本自动化测试框架相结合进行自动化脚 本开发、运行、分析的案例,诠释了本q t p 自动化测试框架对于企业的巨大价值 所在。 4 q t p 自动化测试框架的企业级应用第一章绪论 图1 2自动化测试工具对比 从上图的g o o g l e 趋势可以发现: 1 r a t i o n a lf u n c t i o n a lt e s t e r ( r t f ) 正在渐渐的失去竞争力,而其它工具( 如 q t p ) 正在不断的被市场认可,究其原因,主要可以归结为以下几方面:用户界 面的友好性、编写脚本的方便程度、工具的扩展性、控件识别能力等,这也是各 家自动化厂商的发展和努力方向,q t p 目前处于领先地位。 2 开源自动化测试工具( 如s e l e n i u m ,r u b y + w a t i r ) 广泛的得到了市场的 认可和肯定,但是开源工具由于资金、技术、产品定位等因素的限制,在发展过 程中会遇到很大的瓶颈。这也正是q t p 的优势,一般来说我们会把开源自动化 测试工具定义为轻量级工具,而q t p 无疑是一个重量级的测试工具。但是更开 放的二次开发平台也将是今后所有自动化测试工具的发展方向。 1 3 本文的主要工作和组织结构 1 3 1 本文的主要工作 论文首先将传统的录制一回放模式、数据驱动模式、使用数据驱动与测试框 架相结合这三种模式的投入与回报率的关系展开论述,分析了传统的作坊式的自 动化测试模式的诸多弊端和企业在发展自动化测试过程中必将遇到的瓶颈等问 题,得出了实施自动化测试框架的必要性。 基于对传统自动化测试模式弊端的分析和过往经验的总结,本文整理出了 自动化测试框架必须解决的问题并归纳入了框架设计准则。本文的q t p 自动化测 试框架秉承了目前普遍采取的关键字驱动( k e y w o r d d r i v e n ) 和数据驱动 ( d a t a d r i v e n ) 的模式,并基于此开发了带有宏的e x c e l 模板供用户在外部可以 设计自动化测试计划、测试用例与测试数据。整个自动化测试框架均以此e x c e l 测试表作为外部测试流程、数据的输入。q t p 自动化测试框架的后台主要由q t p 脚本语言和v b s c r i p t 实现,前台用户友好的界面使用a s p n e t 开发完成。论文 详细介绍了该框架的设计与实现原理,包括启动引擎的设计实现、异常处理的逻 辑、报表引擎的设计实现、日志的处理等。并由抽象到具体的借助美世咨询b a 2 系统在做自动化测试全过程中完美地与本自动化测试框架相结合进行自动化脚 本开发、运行、分析的案例,诠释了本q t p 自动化测试框架对于企业的巨大价值 所在。 4 q t p 自动化测试框架的企业级应用第一章绪论 1 3 2 本文的组织结构 本文共分为五章,首先简要介绍了论文的背景情况,引出本文所作的主要 工作内容。然后简单介绍了q t p 的特点,并在此基础上根据自动化测试框架的设 计准则设计并实现了q t p 自动化测试框架。最后将此q t p 自动化测试框架应用于 美世咨询b a 2 项目中,证明了该框架在企业级应用的巨大价值。文章的内容具体 安排如下: 第一章介绍自动化测试的过往历史和发展方向,由图表说明自动化测试框 架所创造的价值。并简单介绍q t p 这一工业界比较典型的自动化测试工具。 第二章是全文的知识铺垫,主要介绍了q t p 常用的基本方法与理论,如q t p 的录制一回放原理、对象库、以及其他特点等。为后面介绍q t p 自动化测试框架 打下重要理论基础。 第三章为本文的核心章节。从自动化测试瓶颈开始研究,分析了普通自动 化测试的弊端,并由此引出自动化测试框架的定义。继而对市面上常用的自动化 测试框架进行分析,然后集各家之大成和以往的自动化测试经验定义了自动化测 试的设计准则;随后根据这些准则设计了整套自动化测试框架,并且讲述了实现 的具体细节;最后概述了使用自动化测试框架的优势所在。 第四章为前几章节在项目中的具体应用,引用了美世咨询的b a 2 自动化测 试项目的案例,结合了q t p 自动化测试框架的思想,介绍了基于该框架的一个实 现案例。完成了从理论到实践的升华。 第五章为结论,是对全文的总结。 5 q t p 自动化测试框架的企业级应用第二章q t p 自动化测试理论与技术 第二章q t p 自动化测试理论与技术 2 1q t p 自动化测试的发展历史 q t p 全称q u i c k t e s tp r o f e s s i o n a l ,是惠普公司花费4 5 亿收购的m e r c u r y i n t e r a c t i v e 芒品套鞋之一,是一款以v b s c r i p t 为内嵌语言用于功能自动化测 试的工具 8 1 。、 在过去的几年里,软件测试自动化已经发生了深刻的变化,测试工具也从最 初的单纯的录制一添加验证点一回放,到后来的数据驱动的测试( d a t a - d r i v e n t e s t i n g ) ,再到现在的关键字驱动测试( k e y w o r d - d r i v e nt e s t i n g ) ,每一次变革 都使得测试工具更加得心应手。 数据驱动测试:在数据驱动测试产生之前,测试工具所能帮助测试人员做的 就是单纯的录制一回放,它最大的局限在于测试脚本比较“脏”,虽然录制过程很 快,但是完全是录制脚本的叠加,录制完以后脚本“脏”的程度使测试人员无法 对它进行复用。于是数据驱动测试技术诞生了。数据驱动是指自动化测试工具从 外部读取测试数据,而不是把测试数据写死在脚本中。一般来说,需要从外部读 取的数据在测试脚本中用变量代替,再进行读取和循环跑测试脚本。外部数据的 格式是多样化的,可以使用d b 、e x c e l 甚至文本文件。有些测试工具对数据驱 动有更好的支持方案,如r a t i o n a lr o b o t 可以使用数据池、q t p 有自带的数据 表进行数据驱动测试【7 】。图2 1 为数据驱动的基本结构。 有 图2 1 数据驱动的基本结构 关键字驱动测试:q t p8 0 版本诞生了一个很重要的概念,即关键字驱动。 q t p 自动化测试框架的企业级应用 第二章q t e 自动化测试理论与技术 其实早在q t p 发布之前,就已经有“基于活动的测试( a c t i o n b a s e dt e s t i n g ) ” 一说。关键字驱动实质上是比较复杂的数据驱动的技术的逻辑扩展,将需要测试 的业务用带有关键字的描述性方法进行记录,用一系列的关键字描述要执行的任 务。关键字驱动测试中没有复杂的测试脚本,测试脚本即易于理解的关键字。而 且随着测试量的增加,测试代码的不断累积,其优越性愈加明显【8 】。关键字驱动 因为支持数据驱动,所以测试脚本规模不会随测试用例数的增多而扩大,规模只 随被测对象的规模增加而增加。关键字驱动技术的产生可以让不会写代码的测试 人员轻松的使用测试工具。q t p 有两种脚本编辑模式:关键字驱动和专家视图。 关键字驱动模式可以供非技术人员使用q t p ,专家视图供技术人员让脚本发挥 的更出色。非技术人员是否适合写脚本还有待时间的考量,但是关键字驱动确实 是很有革命理念的让脚本更易重用和维护。 2 20 t p 自动化测试原理 q t p 自动化测试原理即对象的识别以及对于对象的操作,并由此作出基本的 录制一回放,才得以自动化测试的开展。 2 2 1 测试对象模型概述 1 测试对象模型 测试对象模型指的是一组对象类库,q t p 用它们来描述被测试的应用程序 中的实际对象。测试对象模型中的每个对象类都拥有一系列用于惟一确定实际对 象的属性列表和一组方法函数。q t p 以插件的形式来加载这些类库。 a c t i v e x 、v i s u a lb a s i c 、w e b 为q t p 在启动的时候加载的类库,如图2 2 所示。 q t p 自动化测试框架的企业级应用 第二章q t e 自动化测试理论与技术 其实早在q t p 发布之前,就已经有“基于活动的测试( a c t i o n b a s e dt e s t i n g ) ” 一说。关键字驱动实质上是比较复杂的数据驱动的技术的逻辑扩展,将需要测试 的业务用带有关键字的描述性方法进行记录,用一系列的关键字描述要执行的任 务。关键字驱动测试中没有复杂的测试脚本,测试脚本即易于理解的关键字。而 且随着测试量的增加,测试代码的不断累积,其优越性愈加明显【8 】。关键字驱动 因为支持数据驱动,所以测试脚本规模不会随测试用例数的增多而扩大,规模只 随被测对象的规模增加而增加。关键字驱动技术的产生可以让不会写代码的测试 人员轻松的使用测试工具。q t p 有两种脚本编辑模式:关键字驱动和专家视图。 关键字驱动模式可以供非技术人员使用q t p ,专家视图供技术人员让脚本发挥 的更出色。非技术人员是否适合写脚本还有待时间的考量,但是关键字驱动确实 是很有革命理念的让脚本更易重用和维护。 2 20 t p 自动化测试原理 q t p 自动化测试原理即对象的识别以及对于对象的操作,并由此作出基本的 录制一回放,才得以自动化测试的开展。 2 2 1 测试对象模型概述 1 测试对象模型 测试对象模型指的是一组对象类库,q t p 用它们来描述被测试的应用程序 中的实际对象。测试对象模型中的每个对象类都拥有一系列用于惟一确定实际对 象的属性列表和一组方法函数。q t p 以插件的形式来加载这些类库。 a c t i v e x 、v i s u a lb a s i c 、w e b 为q t p 在启动的时候加载的类库,如图2 2 所示。 q t p 自动化测试框架的企业级应用 第二章q t p 自动化测试理论与技术 图2 2 加载类库 通过对象探测窗口可以获取并查看被测试应用程序中对象的属性及方法函 数。 2 r u n t i m e 对象 r u n t i m e 对象是被测试应用程序中的实际对象,对象的方法函数将在运行中 被执行。 3 t e s t 对象 t e s t 对象是用于描述和定位被测试应用程序实际对象的仓库对象,存储在 q t p 对象库中。 q t p 识别对象时,通常要求首先在对象库文件里定义仓库对象,里面存有实 际对象的特征属性的值。然后在运行的时候,q t p 会根据脚本里的对象名称,在 对象库里找到对应的仓库对象,接着根据仓库对象的特征属性描述,在被测试软 件里搜索相匹配的实际对象,最后就可以对实际对象进行操作了。 图2 3 对象探测窗口 仓库对象一般在录制编写脚本时加入仓库文件,它不仅可以在录制编写时 进行修改,也可以在运行过程中进行动态修改,以匹配实际对象。 2 2 2 对象在操作过程中的作用 1 q t p 的录制过程 q t p 的录制过程如下。 q t p 自动化测试框架的企业级应用第二章0 1 3 ) 自动化测试理论与技术 ( 1 ) 定位用于描述当前操作对象的测试对象类,并创建相应的测试对象。 ( 2 ) 读取当前操作对象属性的当前值,并存储一组属性和属性值到测试对 象中。 ( 3 ) 为测试对象创建一个有别于其他对象的名称,通常使用一个突出属性 的值,如t e x t 属性。 ( 4 ) 记录对象上的执行动作。 2 q t p 的回放过程 q t p 的回放过程如下。 ( 1 ) 根据脚本中对象的名称在对象库( o b j e c tr e p o s i t o r y ) 中查找相应的 对象。 ( 2 ) 读取对象的描述,即对象的属性和属性值。 ( 3 ) 基于对象的描述,q t p 在被测试应用程序中查找相应的对象。 ( 4 ) 执行相关的操作。 2 3o t p 自动化测试的特点 2 3 1 对象库与描述性编程共存 本文的2 2 节已经详细讲述了q t p 对象库( o b j e c tr e p o s i t o r y ) 的识别模式。 利用对象库来识别w i n d o w s w e b 控件是q t p 的一大特色,而且q t p 可以 极大的提高脚本编写速度。 同时,q t p 也保留了利用描述性方法来识别对象的途径,我们称之为“描述 性编程 ( d e s c r i p t i v ep r o g r a m m i n g ) 。事实上,绝大多数自动化测试工具都只 支持描述性方法来识别控件,如r a t i o n a lf u n c t i o n a lt e s t e r 等。这两种方法识别 控件的原理其实都是一样的,都是通过一定的方法解析d o m ( h t m ld o c u m e n t o b j e c tm o d e l ) ,只是界面展现方式上不同,脚本编写方式也不一样【9 j 。 下面为一例描述性编程的实例: 9 q t p 自动化测试框架的企业级应用第二章0 1 3 ) 自动化测试理论与技术 ( 1 ) 定位用于描述当前操作对象的测试对象类,并创建相应的测试对象。 ( 2 ) 读取当前操作对象属性的当前值,并存储一组属性和属性值到测试对 象中。 ( 3 ) 为测试对象创建一个有别于其他对象的名称,通常使用一个突出属性 的值,如t e x t 属性。 ( 4 ) 记录对象上的执行动作。 2 q t p 的回放过程 q t p 的回放过程如下。 ( 1 ) 根据脚本中对象的名称在对象库( o b j e c tr e p o s i t o r y ) 中查找相应的 对象。 ( 2 ) 读取对象的描述,即对象的属性和属性值。 ( 3 ) 基于对象的描述,q t p 在被测试应用程序中查找相应的对象。 ( 4 ) 执行相关的操作。 2 3o t p 自动化测试的特点 2 3 1 对象库与描述性编程共存 本文的2 2 节已经详细讲述了q t p 对象库( o b j e c tr e p o s i t o r y ) 的识别模式。 利用对象库来识别w i n d o w s w e b 控件是q t p 的一大特色,而且q t p 可以 极大的提高脚本编写速度。 同时,q t p 也保留了利用描述性方法来识别对象的途径,我们称之为“描述 性编程 ( d e s c r i p t i v ep r o g r a m m i n g ) 。事实上,绝大多数自动化测试工具都只 支持描述性方法来识别控件,如r a t i o n a lf u n c t i o n a lt e s t e r 等。这两种方法识别 控件的原理其实都是一样的,都是通过一定的方法解析d o m ( h t m ld o c u m e n t o b j e c tm o d e l ) ,只是界面展现方式上不同,脚本编写方式也不一样【9 j 。 下面为一例描述性编程的实例: 9 q t p 自动化测试框架的企业级应用 第二章q t p 自动化测试理论与技术 以上的脚本事实上将b r o w s e r 的对象、p a g e 的对象、c h i l d o b j e c t 对象使用 了描述性方法进行了实现,最后对指定对象执行“c l i c k 操作。 描述性编程和对象库方法各有其优劣。描述性编程可以在w i n d o w s 程序 w e b 系统还没有开发出来之前先行进行自动化测试脚本的开发,缺点是脚本开 发复杂度加大,维护量也比较大;对象库的的优点在于脚本开发速度相对快很多, 而且对象库是q t p 的一大亮点,本文为了凸显q t p 的特性,后续的测试框架也 将基于对象库进行实现 2 3 2 内置的数据表 事实上,自动化测试的诞生正是为了解决以往测试人员枯燥乏味的重复性手 工劳动,所以数据驱动( d a t a - d r i v e nt e s t i n g ) 显得尤为重要。有关数据驱动的 概念本文已经在2 1 有较为详细的解释,相对于r a t i o n a lr o b o t 的数据驱动形式 一数据池来说,q t p 将数据表( d a t a t a b l e ) 内置在了q t p 中,使得数据驱动做 的更加简单易用,如此一来对不懂得编程的测试人员也能轻松应用数据驱动来进 行自动化测试【1 0 】。 曼塑主塑曼;:i i 。j 。溢。二。山。一。- 出。;。墨- _ 工二。二” a 6 l l o c j i n _ n a m el o q i n _ p a s s w o r d cd 1 w a l l y l m e r c e r 2 w o l l y 2 e b a y 3 w o l l y 3 f u d a n j 图2 4 数据表 如图2 4 所示即为q t p 自带的数据表。同时,q t p 也为数据表提供了丰富 的接口极大的方便了数据驱动测试 2 3 3 多样化的录制模式 q t p 为了提高“录制一回放”成功效率,提供了多样化的录制模式: 普通录制一最常用的录制方法,适合于大多数的测试脚本录制( 如 图3 0 所示) 。经常与“单步脚本生成”( s t e pg e n e r a t o r ) 一起使用, 生成回放脚本。 a n a l o g 录制一a n a l o g 录制模式能够精确记录下鼠标和键盘在被测对 象中的一系列操作过程,包括鼠标在窗口或对测试对象的移动、拖曳 等。最典型的实例就是使用鼠标绘制签名。 l o wl e v e l 录制一l o wl e v e l 录制方式是q t p 提供的另一种区别于 普通录制和a n a l o g 录制的方式,主要用于录制一些使用普通录制方 q t p 自动化测试框架的企业级应用第二章q t p 自动化测试理论与技术 法时q t p 无法识别的对象和无法识别的操作。l o wl e v e l 录制方式是 基于坐标的记录模式。 翻i e 神蚺i r r t6 u t o m a 蛳酗$ o l j r c g $ 呲摊蛳蝴 垒竺:童塑:塑登2 :;璺望垡。! 量透翟建圃乙;璺皇。曼。; 图2 5 普通录制 此外,q t p 对于无法识别的控件还提供一种额外的功能来识别:虚拟对象 ( v i r t u a lo b j e c t ) 。虚拟对象需要在录制之前就将无法识别的控件定义为一个虚 拟对象从而进行正常的操作。如将一个f l a s h 按钮定义为一个虚拟“按钮” ( b u t t o n ) ,那么q t p 在以后的操作中就会将其当作普通按钮来进行操作。 正是因为q t p 提供了多样化的录制方式才能保证它对于w i n d o w s w e b 控 件的高质量的识别和高通过率的回放。也由此奠定了q t p 在同类工具中无法动 摇的地位。 2 3 4 扩展性 一个好的工具通常都会有极佳的扩展性,可以方便调用各类a p i 接口,也提 供自身接口供其他高级语言调用实现二次开发。q t p 也不例外,简单罗列一下 q t p 的扩展性: 方便的a p i 调用 方便的c o m 组件调用 提供保留对象机制实现扩充的内置函数 支持外部x m l 配置 提供丰富的自动化对象模型 与q c 有非常方便的集成 支持n e t 接口,调用n e t 生成的封装的类和方法 2 3 5 其它 此外,q t p 作为一个重量级的工业化自动化测试工具,它还具备了非常多的 易于帮助自动化测试工程师的功能,如场景恢复、检查点、a c t i v es c r e e n 、与 q c 方便的结合等。 q t pa 动化测试框架的企业级应用第三章q t p 自动化测试框架在的设计与实现 第三章q t p 自动化测试框架的设计与实现 传统意义上的自动化测试往往会随着公司企业自动化测试小组规模的不断 增大而遇到诸多问题,如团队成员相互独立协作性差、脚本移植性和维护性不佳 等。久而久之就会成为难以突破的发展瓶颈。建立一套自动化测试框架是突破瓶 颈的有效方法,可以使自动化测试团队不断茁壮成长。 3 1 传统自动化测试的流程及弊端 一般来说,在不使用自动化测试框架时,传统的自动化步骤无外乎三个步骤, 即:录制一增强脚本专回放和分析 录制,通常是对控件的识别并记录成q t p 语言。例如,我们在普通录制状 态下执行下面的步骤:打开计算器专按键“1 ”专按键“+ ”专按键“2 按键 “= ”专关闭计算器,那么,在q t p “专家视图即可以看见以下对应的6 行代 脚本增强,这个步骤通常是自动化测试的核心,也是判断自动化测试工程师 能力的标准,为了方便起见,我们在这个步骤之增加对输出结果作判断的脚本, 增强后的脚本如下: 1 2 q t p 自动化测试框架的企业级应用第三章q t p 自动化测试框架在的设计与实现 如上的脚本对输出值做了条件判断。事实上,一个优秀的自动化测试工程师 的自动化测试脚本中的“录制”和“增强”脚本的比例一般在1 :4 左右,甚至 增强的脚本的比重会更高,由于q t p 的脚本语言采用的是v b s c r i p t ,所以优秀 的q t p 自动化测试工程师通常也是v b s 程序高手。 回放和分析,录制和脚本增强的目的就是为了回放,上述代码在回放是会报 “t e s tf a i l e d ”以作为测试输出结果。这时候可以分析一下便知道,我们定义的 预期值是“5 ”,而实际值为“3 ”,所以报错,那么就可以报告给项目组。 上述关于传统自动化测试的步骤来实现自动化,往往会随着公司的自动化测 试技术不断完善而遇到很多无法突破的瓶颈,例举如下: 公司的自动化测试工程师实力参差不齐,导致各个被测模块脚本的健壮性 各不相同 公司的自动化测试工程师编码风格迥然不同,导致脚本维护起来非常困 难,一旦有人员的流失,该工程师负责的脚本就几乎需要重新编写 初级自动化测试工程师往往会因为技术能力有限,而把时间花在了脚本实 现上而不是业务模式上 可重用的模块( 如登录模块等) 由不同的工程师重复编写,各自为营,导 致了极大的冗余性 脚本管理非常不方便,由于各个工程师负责各自的模块的自动化,所有的 自动化脚本无法统一管理 每个自动化测试工程师有自己喜欢的报告格式,各自为战,最后会发现模 块a 的报表为q t p 自带的报表,模块b 生成了自己写的t x t 格式报表, 模块c 的工程师是v b a 高手于是生成了e x c e l 格式报表,模块d 导出了 h t m l 格式的报表 脚本迁移时由于各个工程师的系统配置、i e 设置、组件安装等各不相同 脚本迁移成功的可能性并不高 脚本执行起来也会有很大的问题,由于各个自动化测试工程师之间脚本编 写时没有交互,想要执行其他工程师的脚本时会发现很难和自己的脚本有 效融合 自动化收益低。一般来说一个自动化测试脚本需要运行至少6 次以上才能 够收回成本。作坊式的自动化通常维护量大,且无法重复执行,导致了收 益远小于付出 q t p 自动化测试框架的企业级应用 第三章q t p 自动化测试框架在的设计与实现 而一个适合于企业的自动化测试框架可以解决上述的所有问题,并使自动化 测试部门的各个成员真正的融为一体,并有效的生成自动化测试脚本。 3 2 自动化测试框架定义 自动化测试框架( a u t o m a t i o nf r a m e w o r k ) ,是在所有不同的测试自动化阶 段定义的一整套指导准则:需求分析阶段、脚本设计阶段、执行阶段、报告和维 护阶段。框架即对于内部复杂架构的一种包装,这样的包装可以使得最终用户方 便的使用。框架还具有对于流程标准的强制执行性。 通俗的来讲,自动化测试框架就是某种应用的半成品,或者是一组组件,供 用户选用完成特定的系统。简单来说就是使用已经搭好的舞台,用户自行演出。 框架一般是成熟的且不断升级的软件。公司的自动化测试框架应该具有对自己的 业务的适应性,可以将自己公司的业务快速自动化并纳入框架。 3 3 常见的自动化测试框架分析 业界目前都在不断摸索自动化测试框架的实现方式,本节将归纳一些常见的 自动化测试框架 3 3 1 按照框架结构分类以及混合型框架的优势 自动化测试框架根据在w i k i p e d i a 的定义被分为5 类: 1 m o d u l a r i t y d r i v e nt e s t i n g ( 基于模块驱动的测试框架) 2 d a t a d r i v e nt e s t i n g ( 基于数据驱动的测试框架) 3 k e y w o r d d r i v e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论