51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 158457|回复: 452
打印 上一主题 下一主题

[原创] 循序渐进学习QTP三步曲

[复制链接]
  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2006-1-14 21:26:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    循序渐进学习QTP--初级篇

          我们使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。
          强烈建议你按照版主oldsidney 写的 Tutorial_oldsidney_cn.pdf 文件来认认真真、从头到尾地执行一遍,包括录制脚本、分析脚本、增加check point、Split Action等。我想这会减少你在学习QTP过程中的不少困惑和疑虑。
          这篇文档对如何使用QTP写的非常详细,是QTP初学者的经典教材。我就是看了这篇文档后才对QTP的整个测试流程有了一个初步的认识。在此,我对oldsidney表示感谢。
         注意:
          1,确保你的IE运行正常,依次点击菜单 查看 --> 工具栏,一定要上网助手等插件卸载掉,特别3721这个垃圾网站和其它拦截广告的插件(它也把测试过程中弹出的窗口当成广告,一样会拦截的!)!
        2,如果是按照Tutorial_oldsidney_cn.pdf 文件 中的订购飞机票的例子来练习 QTP的使用,那么只需选择Web 插件就可以了。如果是测试其它的应用程序或系统,就要根据需要来选择相应的插件了。

    [ 本帖最后由 walker1020 于 2006-10-19 13:38 编辑 ]
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏1
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
     楼主| 发表于 2006-1-14 21:30:11 | 只看该作者

    循序渐进学习QTP---中级篇

    在这个阶段你就要自己针对某个系统去录制脚本、维护脚本了。在录制后的回放过程中,你可能会遇到各种问题,这个时候就需要发挥你的主观能动性来解决遇到的问题。我想你可以按照下面的方法去解决:

           1,查看QTP的有关文档,包括Help 、QTP User’s Guide等文档。这些都是比较系统全面的学习材料。你该好好利用呀。
           2,在本论坛上查看以前别人是如何解决此类问题的(如果有的话)或者是发新贴寻求帮助,也可以搜索Google 等网站寻找问题的解决方法;
          3,与自己部门的同事交流,例如与测试人员交流他们是如何解决的,与开发人员交流某个QTP无法识别的控件具体是用什么属性来识别的等。毕竟他们对测试的环境和测试的软件比论坛上的人熟悉呀。
          4,自己通过学习VBScript 等方式来提高自己的管理QTP Script的能力。

    或许你会发现许多问题都是由提出问题的人来解决的,因为他们希望问题得到解决的迫切心比谁都强烈。

    [ 本帖最后由 walker1020 于 2007-10-18 17:39 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
     楼主| 发表于 2006-1-14 21:31:37 | 只看该作者

    循序渐进学习QTP---高阶篇

    如果你对VB Script 、QTP和需要测试的程序或系统非常熟悉,你可能就想直接写QTP Script来表现一下了。如果你能达到这个水平,那么恭喜你---你就是真正的高手了。这个时候你已经可以从宏观上把握QTP了,也能灵活自如地使用QTP了。偶离这个阶段还好远呢。

    [ 本帖最后由 walker1020 于 2006-10-19 13:43 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    4#
     楼主| 发表于 2006-1-15 20:13:26 | 只看该作者
    怎么没有反应?失望ing!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2006-1-16 09:10:35 | 只看该作者
    呵呵,不错;
    对于第三个阶段,我认为你说的不全面。到这个阶段编写脚本相对不重要的,重要的是如何有效地设计、组织每个Action来完成你的一个测试目标,控制他们之间的参数传递,使Action之间偶合度低每个Action又能极易扩展功能或数据驱动
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2006-1-16 14:12:12 | 只看该作者
    呵呵,kai_top说的有道理。

    偶还在第二阶段挣扎哩
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2006-1-18 11:14:06 | 只看该作者
    我是刚刚开始学习QTP,有很多东西要看呢!努力ing!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2006-2-16 16:45:28 | 只看该作者
    1.写好测试用例,设计好数据
    2.根据测试用例,将涉及的页面的的对象全部抓下来
    3.在专家视图里面,手动编写脚本,写VBS脚本校验页面和数据库的值
    4.在dataTable中添加预期的数据
    5.调试脚本
    因为录制的脚本,生成的对象都很乱,而且不能把页面所有的对象都抓下来
    所以不喜欢用录制的方式来生成脚本。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2006-2-16 17:40:09 | 只看该作者
    偶刚踏上这段旅程,加油加油,坚持走完这3步,谢谢各位楼主的心得
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    10#
     楼主| 发表于 2006-2-16 19:42:57 | 只看该作者
    There is anothere useful frorum about QuickTest Professional . Its website is http://www.qaforums.com/. But all tester
    speak English to ask and answer questions.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2006-2-21 12:11:54 | 只看该作者
    其实作为一个qa要处理好多业务逻辑的,测试仅仅是一部分那末如能成为QTP高手可以省好多时间, 正在努力。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2006-2-21 13:03:25 | 只看该作者
    我也在努力,可惜方向很模糊~~~~~
    QTP还要学习VBS么?
    我都没学过呀,我只学了JS一点皮毛~~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2006-2-28 11:20:38 | 只看该作者
    我是新手,我没有经验,但是我有信心和积极的态度!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    14#
     楼主| 发表于 2006-8-30 12:17:12 | 只看该作者

    后记

    《循序渐进学习QTP三步曲》是我在今年一月份完整地把QTP Tutorial里的用例操作了一遍、然后录制了几个简单的脚本后写的学习QTP的感想和体会。现在时间已过去了快8个月了,我发现当初的想法太简单、幼稚了。引用我在另外一个帖子上的回复作为我现在的感想吧。

    ”脚本是严格按照用例情况来录制的。” 你的测试用例规定了需要测试哪些功能,用到哪些测试数据。如果没有测试用例,那么你用QTP进行测试就没有依据,就成了无的放矢、缘木求鱼了。
    QTP 只是代替了手工测试,只是一个工具而已。测试工程师要做的事情就是 制定测试计划、编写测试用例、录制脚本、优化和回放脚本、分析Test Report。 在测试流程中,使用QTP 只是其中的一个环节。如果QTP 什么都能做,那么就不需要我们这些测试人员了。 QTP 不能代替一切测试工作,就像 机器永远不能代替人一样!

    [ 本帖最后由 walker1020 于 2006-8-30 13:05 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2006-8-30 14:29:02 | 只看该作者
    加紧学习咯
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2006-8-30 15:38:25 | 只看该作者
    非常赞同walker1020 的初级篇,

    更加关注kai_top 提到的Action的设计。

    不太同意mstiunicon 的观点:把页面上的所有对象都抓下来。我认为需要用到的对象才添加到对象库,没必要把不相干的对象都加到对象库,多了便是垃圾。

    关于初级篇,我还有几点体会:
    1、我们的产品是web的,对于所有的页面,IE标题栏显示的都是相同的名字,也就是说所有page对象其实都相同。但在QTP默认的设置下,录制后对象库里却出现很多的page,后来才知道QTP默认是按照URL来区分page对象的,但网站是动态内容,URL大部分都是变化的,在回放的时候出现很对找不到对象的情况。
       害得我重新设置参数 TOOLs> Option > WEB>Page/Fram Options.., 选择 Different object descriptions,然后再修改对象库里的对象,修改脚本,花了不少时间。

    2、Action的设计其实应该放到初级篇,否则做完后发现没有一个Reusable Action那就麻烦了,要利用已完成的脚本增加测试用例根本不可能。
        所以我的理解是,一个好的脚本,要尽量多的Reuseable action,一个测试用例就是多个Reuseable action的串连。

    3、不要忽略了检查点或验证。尽量多的增加检查点,确保测试成功,否则有时候测试报告里没有错误,但实际上测试是不成功的。

    刚开始用QTP,不要在乎实现的用例的多少,而要在不断的测试中维护,优化脚本,使之能真正部分代替手工测试。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    17#
     楼主| 发表于 2006-8-30 16:40:56 | 只看该作者

    循序渐进学习QTP---中级篇(补充)

    谢谢   麦子华华  的批评和建议。根据我的工作经验,需要对循序渐进学习QTP(中级篇) 进行补充。

        录制完一个Action 后,建议立即回放一次,以确保此Action 运行正常。如果遇到对象不能识别等问题,要立即解决。

        1,优化脚本,提高脚本的重用性和稳定性。

        这方面的工作包括:
           添加注释   必要的注释是需要的。这样利于以后的维护
           添加检查点 Check point  这包括QTP自带的Check point  和 自己写的Check point  
          参数化   这需要用到 Local Sheet 或 Global Sheet
          正则表达式   如果对象的属性或数据有规律的变化的话,可以采用它来优化脚本。
          还有自己修改脚本,增加判断、循环等结构来更好的完成测试。

      2,设计Reuseable action
       对于常用的Action,要把它设计为一个Reuseable action。引用像麦子华华说的,“ 一个好的脚本,要尽量多的Reuseable action,一个测试用例就是多个Reuseable action的串连。” 我现在的做法就是把单个的Action 都设计成Reuseable action, 然后 利用Call the Existing Action 方式把它们串连起来,组成一个大的脚本。每次我只需要运行大的那个脚本就可以了。

      3, 把测试用例中的常量和公共函数放到一个 vbs 文件中。 脚本调用它时只需要写  ExecuteFile "d:\MyFuctions.vbs"就可以了,如果d:\MyFuctions.vbs 就是你写的文件。

        需要强调的是,QTP 测试 需要以测试计划和测试用例为依据来展开。所有的这一切都是为了完成你的测试工作。

       在此向麦子华华  表示感谢,因为他(还是她?)给我指出了一个错误。谢谢麦子华华!

    [ 本帖最后由 walker1020 于 2006-9-29 17:13 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2006-8-30 16:58:10 | 只看该作者
    这样交流心得,我喜欢。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2006-8-30 17:19:23 | 只看该作者
    下面是我对QTP录制的原理的理解 不知道是不是正确
    首先 在录制的时候QTP会把测试对象的一些属性记住,然后再你运行脚本的时候,QTP会用这些属性去辨别
    运行时的对象 。也就是说QTP会从对象库中找到相匹配对象然后再执行方法 。
    其实他声称的脚本就是在调用不同的对象罢了 。不知道我理解的是否正确 ,请高手指教
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    20#
     楼主| 发表于 2006-8-30 17:46:36 | 只看该作者

    回ztcreative

    你的想法基本正确。 只是你说 “声称的脚本就是在调用不同的对象”,我感到有点片面,脚本可以调用对象的方法(其实就是VBScript 中 的函数),还可以操作各种数据,因为某些对象的操作需要数据。例如 输入框需要你输入内容。
    我建议你看一下 看一下 oldsidney 大师写的 《何謂 QTP8 的 Keyword-Driven Testing》:
      http://bbs.51testing.com/thread-2348-1-1.html
    我相信你看完后,会对 QTP 的脚本的认识更深一步。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-19 13:39 , Processed in 0.091897 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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