我会定期把我的测试心得和体会发表在这里,希望来阅览的每位朋友都有所获。即使没有,有一点启发,我也心满意足。我也欢迎您的留言,哪怕是对我的批评,或者是指出我的错误。

循序渐进学习QTP三步曲

上一篇 / 下一篇  2008-03-24 10:43:36 / 天气: 晴朗 / 心情: 高兴 / 精华(3) / 置顶(3)

查看( 51913 ) / 评论( 451 )

循序渐进学习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 插件就可以了。如果是测试其它的应用程序或系统,就要根据需要来选择相应的插件了。

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

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

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

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

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

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

(进一步的讨论和补充,请见http://bbs.51testing.com/thread-24742-1-1.html)


TAG:

walker1020的个人空间 walker1020 发布于2006-01-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 编辑 ]
walker1020的个人空间 walker1020 发布于2006-01-14 21:31:37
循序渐进学习QTP---高阶篇
如果你对VB Script 、QTP和需要测试的程序或系统非常熟悉,你可能就想直接写QTP Script来表现一下了。如果你能达到这个水平,那么恭喜你---你就是真正的高手了。这个时候你已经可以从宏观上把握QTP了,也能灵活自如地使用QTP了。偶离这个阶段还好远呢。

[ 本帖最后由 walker1020 于 2006-10-19 13:43 编辑 ]
walker1020的个人空间 walker1020 发布于2006-01-15 20:13:26
怎么没有反应?失望ing!
kai_top发布于2006-01-16 09:10:35
呵呵,不错;
对于第三个阶段,我认为你说的不全面。到这个阶段编写脚本相对不重要的,重要的是如何有效地设计、组织每个Action来完成你的一个测试目标,控制他们之间的参数传递,使Action之间偶合度低每个Action又能极易扩展功能或数据驱动
michelle_happy发布于2006-01-16 14:12:12
呵呵,kai_top说的有道理。

偶还在第二阶段挣扎哩
人生天地之间,若白驹过隙,忽然而已。 九月属金 发布于2006-01-18 11:14:06
我是刚刚开始学习QTP,有很多东西要看呢!努力ing!
mstiunicon的个人空间 mstiunicon 发布于2006-02-16 16:45:28
1.写好测试用例,设计好数据
2.根据测试用例,将涉及的页面的的对象全部抓下来
3.在专家视图里面,手动编写脚本,写VBS脚本校验页面和数据库的值
4.在dataTable中添加预期的数据
5.调试脚本
因为录制的脚本,生成的对象都很乱,而且不能把页面所有的对象都抓下来
所以不喜欢用录制的方式来生成脚本。
yaojingisababy的个人空间 yaojingisababy 发布于2006-02-16 17:40:09
偶刚踏上这段旅程,加油加油,坚持走完这3步,谢谢各位楼主的心得
walker1020的个人空间 walker1020 发布于2006-02-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.
Crazy-Run发布于2006-02-21 12:11:54
其实作为一个qa要处理好多业务逻辑的,测试仅仅是一部分那末如能成为QTP高手可以省好多时间, 正在努力。。。
sogoc发布于2006-02-21 13:03:25
我也在努力,可惜方向很模糊~~~~~
QTP还要学习VBS么?
我都没学过呀,我只学了JS一点皮毛~~~
信仰发布于2006-02-28 11:20:38
我是新手,我没有经验,但是我有信心和积极的态度!
walker1020的个人空间 walker1020 发布于2006-08-30 12:17:12
后记
《循序渐进学习QTP三步曲》是我在今年一月份完整地把QTP Tutorial里的用例操作了一遍、然后录制了几个简单的脚本后写的学习QTP的感想和体会。现在时间已过去了快8个月了,我发现当初的想法太简单、幼稚了。引用我在另外一个帖子上的回复作为我现在的感想吧。

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

[ 本帖最后由 walker1020 于 2006-8-30 13:05 编辑 ]
testcat的个人空间 testcat 发布于2006-08-30 14:29:02
加紧学习咯
麦子华华的个人空间 麦子华华 发布于2006-08-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,不要在乎实现的用例的多少,而要在不断的测试中维护,优化脚本,使之能真正部分代替手工测试。
walker1020的个人空间 walker1020 发布于2006-08-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 编辑 ]
麦子华华的个人空间 麦子华华 发布于2006-08-30 16:58:10
这样交流心得,我喜欢。。
ztcreative的个人空间 ztcreative 发布于2006-08-30 17:19:23
下面是我对QTP录制的原理的理解 不知道是不是正确
首先 在录制的时候QTP会把测试对象的一些属性记住,然后再你运行脚本的时候,QTP会用这些属性去辨别
运行时的对象 。也就是说QTP会从对象库中找到相匹配对象然后再执行方法 。
其实他声称的脚本就是在调用不同的对象罢了 。不知道我理解的是否正确 ,请高手指教
walker1020的个人空间 walker1020 发布于2006-08-30 17:46:36
回ztcreative
你的想法基本正确。 只是你说 “声称的脚本就是在调用不同的对象”,我感到有点片面,脚本可以调用对象的方法(其实就是VBScript 中 的函数),还可以操作各种数据,因为某些对象的操作需要数据。例如 输入框需要你输入内容。
我建议你看一下 看一下 oldsidney 大师写的 《何謂 QTP8 的 Keyword-Driven Testing》:
  http://bbs.51testing.com/thread-2348-1-1.html
我相信你看完后,会对 QTP 的脚本的认识更深一步。
ztcreative的个人空间 ztcreative 发布于2006-08-30 18:14:01
呵呵  小生对斑竹以及诸位 的帮助是感激涕零   我有一种胜读十年书的感觉
我来说两句

(可选)

Open Toolbar