循序渐进学习QTP三步曲
循序渐进学习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 编辑 ]
循序渐进学习QTP---中级篇
在这个阶段你就要自己针对某个系统去录制脚本、维护脚本了。在录制后的回放过程中,你可能会遇到各种问题,这个时候就需要发挥你的主观能动性来解决遇到的问题。我想你可以按照下面的方法去解决:1,查看QTP的有关文档,包括Help 、QTP User’s Guide等文档。这些都是比较系统全面的学习材料。你该好好利用呀。
2,在本论坛上查看以前别人是如何解决此类问题的(如果有的话)或者是发新贴寻求帮助,也可以搜索Google 等网站寻找问题的解决方法;
3,与自己部门的同事交流,例如与测试人员交流他们是如何解决的,与开发人员交流某个QTP无法识别的控件具体是用什么属性来识别的等。毕竟他们对测试的环境和测试的软件比论坛上的人熟悉呀。
4,自己通过学习VBScript 等方式来提高自己的管理QTP Script的能力。
或许你会发现许多问题都是由提出问题的人来解决的,因为他们希望问题得到解决的迫切心比谁都强烈。
[ 本帖最后由 walker1020 于 2007-10-18 17:39 编辑 ]
循序渐进学习QTP---高阶篇
如果你对VB Script 、QTP和需要测试的程序或系统非常熟悉,你可能就想直接写QTP Script来表现一下了。如果你能达到这个水平,那么恭喜你---你就是真正的高手了。这个时候你已经可以从宏观上把握QTP了,也能灵活自如地使用QTP了。偶离这个阶段还好远呢。[ 本帖最后由 walker1020 于 2006-10-19 13:43 编辑 ] 怎么没有反应?失望ing! 呵呵,不错;
对于第三个阶段,我认为你说的不全面。到这个阶段编写脚本相对不重要的,重要的是如何有效地设计、组织每个Action来完成你的一个测试目标,控制他们之间的参数传递,使Action之间偶合度低每个Action又能极易扩展功能或数据驱动 呵呵,kai_top说的有道理。
偶还在第二阶段挣扎哩 我是刚刚开始学习QTP,有很多东西要看呢!努力ing! 1.写好测试用例,设计好数据
2.根据测试用例,将涉及的页面的的对象全部抓下来
3.在专家视图里面,手动编写脚本,写VBS脚本校验页面和数据库的值
4.在dataTable中添加预期的数据
5.调试脚本
因为录制的脚本,生成的对象都很乱,而且不能把页面所有的对象都抓下来
所以不喜欢用录制的方式来生成脚本。 偶刚踏上这段旅程,加油加油,坚持走完这3步,谢谢各位楼主的心得 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. 其实作为一个qa要处理好多业务逻辑的,测试仅仅是一部分那末如能成为QTP高手可以省好多时间, 正在努力。。。 我也在努力,可惜方向很模糊~~~~~
QTP还要学习VBS么?
我都没学过呀,我只学了JS一点皮毛~~~ 我是新手,我没有经验,但是我有信心和积极的态度!
后记
《循序渐进学习QTP三步曲》是我在今年一月份完整地把QTP Tutorial里的用例操作了一遍、然后录制了几个简单的脚本后写的学习QTP的感想和体会。现在时间已过去了快8个月了,我发现当初的想法太简单、幼稚了。引用我在另外一个帖子上的回复作为我现在的感想吧。”脚本是严格按照用例情况来录制的。” 你的测试用例规定了需要测试哪些功能,用到哪些测试数据。如果没有测试用例,那么你用QTP进行测试就没有依据,就成了无的放矢、缘木求鱼了。
QTP 只是代替了手工测试,只是一个工具而已。测试工程师要做的事情就是 制定测试计划、编写测试用例、录制脚本、优化和回放脚本、分析Test Report。 在测试流程中,使用QTP 只是其中的一个环节。如果QTP 什么都能做,那么就不需要我们这些测试人员了。 QTP 不能代替一切测试工作,就像 机器永远不能代替人一样!
[ 本帖最后由 walker1020 于 2006-8-30 13:05 编辑 ] 加紧学习咯 非常赞同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,不要在乎实现的用例的多少,而要在不断的测试中维护,优化脚本,使之能真正部分代替手工测试。
循序渐进学习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 编辑 ] 这样交流心得,我喜欢。。 下面是我对QTP录制的原理的理解 不知道是不是正确
首先 在录制的时候QTP会把测试对象的一些属性记住,然后再你运行脚本的时候,QTP会用这些属性去辨别
运行时的对象 。也就是说QTP会从对象库中找到相匹配对象然后再执行方法 。
其实他声称的脚本就是在调用不同的对象罢了 。不知道我理解的是否正确 ,请高手指教
回ztcreative
你的想法基本正确。 只是你说 “声称的脚本就是在调用不同的对象”,我感到有点片面,脚本可以调用对象的方法(其实就是VBScript 中 的函数),还可以操作各种数据,因为某些对象的操作需要数据。例如 输入框需要你输入内容。我建议你看一下 看一下 oldsidney 大师写的 《何謂 QTP8 的 Keyword-Driven Testing》:
http://bbs.51testing.com/thread-2348-1-1.html
我相信你看完后,会对 QTP 的脚本的认识更深一步。