51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 10239|回复: 33
打印 上一主题 下一主题

[原创] 我的测试历程5—QTP之狭义的数据驱动模型

[复制链接]
  • TA的每日心情
    奋斗
    2014-12-18 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2010-2-22 15:36:11 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
           07年我参加了软件测试工程师培训课程(课程中包含自动测试工具,功能:QTP,性能:LR),QTP课程主要讲解了QTP的关键字视图相关的内容(专家视图部分没有涉及),培训完以后,我对QTP的认识是:QTP使用起来很简单,就是一个录制、回放(不通过就调试)、细化脚本、再回放(不通过就再调试)、出报告的过程,那时候对QTP的认识很肤浅,也和一些朋友一样对QTP产生过类似的质疑:QTP能满足实际项目包罗万象的需求吗?当时感觉QTP只能应用在主要流程的验证上,而且没有真正意义上做到测试的自动化(当然以上都是07年对QTP的认识)于是我停止了继续深入学习QTP……
          09年9月左右,由于项目人手少,测试时间又短,所以每次版本更新后,只对新增功能和相关模块进行测试,而比较稳定的模块只走一个正常流程(甚至时间太紧连正常流程也来不及走了),另外由于我所在项目和另外一个项目都是一个大项目的子项目,所以另外一个项目的修改也可能导致本项目的一些功能不可用,下面有个实际项目中遇到的例子:有一次另外那个项目修改了数据库结构,数据库中删除了一个字段,导致我这个项目的一些特别稳定的功能中查询该字段的所有地方都报“黄页”(当然这些地方都做了安全处理,只抛了个自定义的页面,没有把代码抛出来),当时吓出了一身“冷汗”,还好每次更新我都会挑一些没有修改模块进行抽查,这次运气好,刚好抽到了,俗话说:“吃一堑长一智”,就算完全没有修改的模块也应该验证一下,但是目前的时间和人力只够对新功能的测试,我又想到了QTP,于是我安装了QTP,将老功能的业务流程录制成脚本,每次更新后,跑一下流程,验证一下老功能是否可用,成功案例:有一次QTP回放当中发现2个地方报“黄页”,后来才知道是因为另外一个项目更新了WEBSERVICE,而我这个项目的那2个地方刚好要调用那个WEBSERVICE,所以会报错,由于这一次的经历让我忽然对QTP产生了兴趣,对QTP脚本进行了更深入的学习,从07年的完全自动录制到现在的手动写脚本,从脚本依赖对象库到脱离对象库,从求助别人到帮别人写实际项目的自动化测试脚本,从各个测试脚本相互独立,到自己编写自动化测试框架……2个月前自己写了个测试框架,实现了运行一个VBS脚本,就可以打开QTP(脱离对象库)并按照CASE优先级从高到低运行所有需要运行的CASE,运行结束自动将结果写入文件中……2个星期前重新设计框架提高脚本开发效率和简单易用性。

    下面写下现在我对QTP的看法:在没有接触自动化测试框架之前,我所有的脚本都是都是相互独立的,即:每个功能作为一个TESTCASE,这样就导致每次都要手动把每个脚本运行一遍,然后看报告,感觉自动化一点也不自动化,而且脚本的可重用性也很不好。于是我就在想,怎样才能做到真正意义上的自动化呢?可不可以通过运行一个驱动脚本打开QTP然后自动运行所有指定的脚本用例呢?后来在网上查了相关资料,开始自己搭建自动化测试框架:

           我的第一个框架:由依赖对象库到脱离对象库,由自动录制到手动编写测试脚本。这个框架思想是学习于51
    论坛中的《轻量级自动化测试框架》,只不过在此基础添加了一些功能,比如用例执行优先级。当时觉得这个框架很好用,全部使用描述性编程这样可以使用例不依赖对象库运行,提高了脚本的可移植性,但是随着对QTP认识的不断的深入,渐渐的发现描述性编程的弊端:脚本开发效率太低,同样开发一个测试脚本,完全使用描述性编程和自动录制+手动增强脚本相比,录制一个同样的功能,需要的时间大约3-4倍,甚至更长,因为使用描述性编程需要对对象的各个属性特别熟悉,另外完全使用描述性编程的调试效率也很低,使用哪些属性作为识别该对象的依据又需要一个判断过程,这样都会降低测试脚本的开发效率,还有描述性编程对编程基础有一定要求,所以我觉得脚本开发应该以自动录制+手动增强脚本为主,以描述性编程为辅。因为在有的项目中有些步骤可能通过自动录制是录制不到的,这时候描述性编程就起到很好的辅助作用。
           我的第二个框架:由脱离对象库到依赖对象库,由手动编写测试脚本到自动录制+手动增强脚本(以描述性编程为辅)。由于第一个框架的弊端,所以我在想怎样避免这个弊端,提高脚本开发效率,自动录制是开发脚本最快的一种方式,而且对脚本开发人员的要求很低,于是我开始把目光回归到QTP这一最简单最基本的功能上。开始设计一个属于我们“菜鸟”的测试框架。(其中借鉴了《QTP项目应用与进阶》中测试用例模板)
    这个框架(相对于第一个框架)的优点:1、降低人员素质的要求,使用例的脚本开发人员不需要懂得太多QTP方面的专业知识,只要掌握简单的录制回放过程和脚本增强就可以,这样避免有些人整天忙有些人“没事”做了,从而达到资源的充分利用。2、提高脚本开发效率。
    这个框架(相对于第一个框架)的缺点:调用外部ACTION相对复杂一点,需要明确知道该ACTION所在脚本的位置,不过这一点可以通过文档解决这个问题,制作一个 ACTION列表就可以了。2、对象库维护比较烦琐。假设页面元素的属性发生变化,那就要UPDATE所有使用到该页面元素的脚本中的对象。
            由于这个框架写在了“丫头”的毕业论文中,目前她还没答辩,为了避免不必要的麻烦,所以这里就不详细写了(大家看了附件的框架实例就应该能明白我的思路了)本实例是使用QTP10.0录制的,重点阐述的是一种思想,脚本中很多功能未加入。例如:自动加载插件的功能,不过大家可以自己加一下(QTP自动化对象模型参考中有加载插件的代码),另外QTP版本比较低的朋友可以自己录制下脚本替换掉Script文件夹下对应的脚本试下。若要设置脚本运行时QTP可见,可以将函数driver()中的qtapp.visible=False修改为qtapp.visible=True
            最后,如果哪位朋友有什么好的建议或觉得哪里需要改进,可以给我留言,如果有时间我会试着改进一下,另外写的不好的地方也请多多指正,谢谢!
    向大家推荐2本QTP相关的很不错书:
    《QTP项目应用与进阶》    E测工作室(风过无息、斐明哲、黄先容、韩柳、俞戴龙   化学工业出版社
    《QTP自动化测试实践》    陈能技                                                                                        电子工业出版社
    第一本书我买了而且前段时间看了,感觉很不错,思路很清晰,而且包含编码规范等自动化以外的的知识,感觉写的蛮好的。
    第二本书最近才了解到这本书,不过没看过,朋友说很不错,正打算买呢,另外看了作者博客里的资料,感觉写的很好,所以就推荐大家看看,希望能对大家有所帮助,谢谢!


    [ 本帖最后由 feiyunkai 于 2010-2-23 17:46 编辑 ]

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    34#
    发表于 2011-5-18 17:50:42 | 只看该作者
    另外,很想知道的是,QC参数如何使用,关联到执行脚本,和数据文件?主要是脚本
    想实现,QC1个案例的参数,带动读取数据文件,执行指定脚本,生成测试结果,再在QC上输出执行结果,首先保证QC通过与否,再考虑测试报告。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    33#
    发表于 2011-5-18 17:45:29 | 只看该作者
    不错不错,和我现在想的差不多,参考一下,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32#
    发表于 2011-5-9 15:08:40 | 只看该作者
    个人觉着框架这个东西,能够把不同功能的代码用函数来实现,然后再录制脚本后,修改脚本的时候可以调用封装的好的东西才能称为框架
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    31#
    发表于 2011-5-6 11:51:55 | 只看该作者
    兄弟写得很好,专门来mark的,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    30#
    发表于 2011-2-21 16:19:24 | 只看该作者
    学习中
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    29#
    发表于 2011-2-18 17:46:03 | 只看该作者
    十分感谢你的意见,可能是我对框架的理解还不够,希望不吝赐教什么才是框架?以便于我的进一步学习,谢 ...
    feiyunkai 发表于 2010-2-23 13:24



        恩,《QTP项目进阶应用》有两个测试框架,分别是用RO和DP的,分别是大项目和小项目,顶一个
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    28#
    发表于 2010-12-30 14:39:19 | 只看该作者
    本帖最后由 smallpigpig_26 于 2010-12-30 14:42 编辑

    回复 1# feiyunkai

    LZ,我下载了你的附件,可是运行不了driver文件,出现如下提示:,我的QTP版本是9.0,请问是版本不兼容的原因所以打不开吗?  如果是因为我的QTP版本较低,有没办法可以正常打开高版本编辑的VBS文件呢~~~

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    27#
    发表于 2010-12-29 19:14:59 | 只看该作者
    这几天都是在泡论坛学习QTP,也是搞不懂数据驱动和关键字驱动的思想有什么区别,现在总算有点认识吧,由于还没实践过,认识不深
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26#
    发表于 2010-10-9 11:14:06 | 只看该作者
    不错,学习了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    25#
    发表于 2010-10-9 11:07:09 | 只看该作者
    正在学习QTP
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-10-19 13:26
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]测试小兵

    24#
    发表于 2010-8-29 20:06:42 | 只看该作者
    谁有好的框架给俺也分享分享,最好有对象能在外部维护且方便的。
    发俺邮箱里:kavensyw@163.com
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    23#
    发表于 2010-8-26 10:22:35 | 只看该作者
    最近一直在整框架,很有启发,谢谢~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    22#
    发表于 2010-8-3 09:37:21 | 只看该作者
    也可以做 QTP与excel结合的框架,这个可能比较容易开展
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    21#
    发表于 2010-3-19 16:44:35 | 只看该作者
    dsfsdfsdfdsfsdfsdfsdfsdfsdfdsfsdfd
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2016-11-16 23:39
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    20#
    发表于 2010-2-23 16:00:35 | 只看该作者
    正要学习QTP 多谢啦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-12-18 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    19#
     楼主| 发表于 2010-2-23 15:39:52 | 只看该作者
    原帖由 tongxj80 于 2010-2-23 15:23 发表
    谢谢,回头我试下,我用的版本是9.2的。而且我的电脑一旦开了QTP软件,IE浏览器就不能用了,很奇怪,在别的电脑上没这个问题。
    另外,请教一个问题,一个action里包含几个testcase?这个是如何定义或管理的?

    问题一:可以参考以下帖子http://bbs.51testing.com/thread-134240-1-1.html
    问题二:这个一般根据个人习惯,很多人习惯将每个功能点作为一个ACTION,然后根据TESTCASE的相关功能去调用相应的ACTION,这样可以提高脚本的可重用性。我觉得这样蛮好的,可以少写不少脚本,呵呵
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2010-2-23 15:23:25 | 只看该作者

    回复 17# 的帖子

    谢谢,回头我试下,我用的版本是9.2的。而且我的电脑一旦开了QTP软件,IE浏览器就不能用了,很奇怪,在别的电脑上没这个问题。
    另外,请教一个问题,一个action里包含几个testcase?这个是如何定义或管理的?

    [ 本帖最后由 tongxj80 于 2010-2-23 15:30 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2014-12-18 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    17#
     楼主| 发表于 2010-2-23 15:14:31 | 只看该作者

    可以试下以下方法

    你用的QTP版本是什么?是否安装了.NET 3.5 Framework?据我所知,QTP9.2和.NET 3.5 Framework同时安装时,会出现这种情况,解决方法:卸载QTP及插件,卸载.NET 3.5 Framework,安装.NET 3.0 Framework,安装QTP及插件。如果还是解决不了,可以向斑竹:风过无息、陈技能他们求助,祝你成功,谢谢!

    [ 本帖最后由 feiyunkai 于 2010-2-23 15:18 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2010-2-23 14:50:54 | 只看该作者
    另外,还有个问题,就是我已经装了.Net addin,且也可以用.Net windows forms spy,但是我用这个工具去捕捉我们用C#开发的软件时,提示The QuickTest .Net windows form spy works only on windows form control。实际上这个软件里的控件都是dotnetbar里,为何会这样呢?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-21 21:44 , Processed in 0.108637 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表