51Testing软件测试论坛

标题: 菜鸟QTP10.0学习实录(实时更新) [打印本页]

作者: 283017152    时间: 2010-2-4 14:54
标题: 菜鸟QTP10.0学习实录(实时更新)
QuickTest Professional10.0学习点滴,记录并总结,不足或错误之处望前辈多多指点……

HP QuickTest Professional 支持功能测试和回归测试自动化,用于每个主要软件应用程序和环境。此解决方案使用关键字驱动的测试概念,简化了测试创建和维护过程。它使测试人员能够使用专业的捕获技术直接从应用程序屏幕中捕获流程来构建测试案例。测试专家还可通过集成的脚本和调试环境完全访问内在测试和对象属性。(官方广告)

一、安装
在HP http://welcome.hp.com/country/us/en/welcome.html#Connect注册一个用户,网站内搜索QuickTest Professional下载了QTP10.0 DVD版,安装过程很简单,一直按照安装向导完成即可。

安装后运行桌面快捷键QuickTest Professional,启动时将看见 自带注册插件ActiveX, VisualBasic, Web,其余的额外购买插件Java, DotNet, PeopleSoft, VisualAge, Siebel, Oracle,flex,(自带插件听说还有Database, StdWindows, TEA, XML,慢慢了解)。

先从默认的开始学习

[ 本帖最后由 283017152 于 2010-2-4 15:25 编辑 ]
作者: zzxxbb112    时间: 2010-2-4 14:55
不错~支持一下~~~
作者: 283017152    时间: 2010-2-4 15:09
这么快就有人捧场了,谢谢
作者: 283017152    时间: 2010-2-4 15:17
还是先按照小强老师的视频开始(慢慢学习后面的视频),链接地址http://www.51testing.com/?uid-28 ... space-itemid-205108

QTP学习指南—初级
我们使用QTP的目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。因此在测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。强烈建议按照QTTutorial.pdf文件来认认真真、从头到尾地执行一遍,包括录制脚本、分析脚本、增加check point、Split Action等。这会减少在学习QTP过程中的不少困惑和疑虑。这篇文档对如何使用QTP写的非常详细,是QTP初学者的经典教材。我就是看了这边文档后才对QTP的整个测试流程有了一个初步的认识。

二、安装后部分目录说明
├─addins——插件包
├─bin——可执行文件
│  ├─DefaultTextBoxStyles
├─CodeSamplesPlus——一些示例代码
│ ─dat——备份和配置信息
├─help——帮助中心
├─recovery——恢复文件存放在这儿(断电恢复设置)
├─samples——示例程序
└─Tests——安装路径的注册信息

[ 本帖最后由 283017152 于 2010-2-4 15:24 编辑 ]
作者: yujie6832    时间: 2010-2-4 15:18
好啊,这个要支持下的,期待常更新
作者: 283017152    时间: 2010-2-4 15:31
三、界面分析
快捷键:F1帮助;F2录制;F4回放;F5运行;Ctrl+R打开对象库;F10 Step Over;F11 Step into

Keyword View和Expert View两个视图:
Data Table和Action Screeen
1.Data Table中的值只在运行时显示,运行后不显示,可以在Results中查看
2.有Global和Action之分;
3.Active Screen——可以在此方便的添加checkpoint;添加对象到对象库;进行Step Generator

这系列视频学习完发现目前用的最多的是
Tools—Options—Restore Layout;
Automation—Record and Run Settings;
File—Settings

[ 本帖最后由 283017152 于 2010-7-16 14:03 编辑 ]
作者: lydia89122    时间: 2010-2-4 15:52
我是今天才进来的啦。。呵呵。。支持一下。。。加油哈。。。。
作者: 283017152    时间: 2010-2-4 15:54
四、Qtp基本操作与回放
录制:
1.以windows的订票系统为例
2.录制登录退出操作
3.点击Tools-Options-General-Restore Layout(回归一下)-确定(注意一下界面的变化);
4.设置Automation-Record Actions-windows Applications-“+”(选择程序)-确定;
5.record这里用户名统一用mercury
回放:
录制完成后为了验证录制是否正确,要进行脚本的回放
查看报告:
回放结束后在Automation-Results查看结果报告
可以在tools-Option-Run标签中是否勾选ViewResults when run session ends来设定Results在什么时候显示
调试:
1.在要调试的步骤前端插入breakpoint
2.View-Debug Viewer
3.debug-Step over(Ctr+F10)或step into(F11)
4.Run to step:从脚本开始跑到你指定的Step停止
5.Debug from step:从当前指定的步骤开始跑到结尾

[ 本帖最后由 283017152 于 2010-7-16 14:37 编辑 ]
作者: 283017152    时间: 2010-2-4 15:56
五、Qtp的三种录制方式:
Normal recording默认的正常录制模式。他通过识别程序中的对象来代贴以前屏幕坐标的形式。但是正常模式并不能保证程序中所有的对象,因此还需要其他两种模式来补充。
Analog Recording
Low Level Recording
作者: 283017152    时间: 2010-2-4 16:07
五、增强help步骤
(一)加入判断语句增强Help步骤
1)加入If语句进行判断,如果出现指定的窗口,点“确定”按钮
   Dialog("Login").WinButton("Help").Click
If Dialog("Login").Dialog("text:=Flight Reservations").Exist Then
  Dialog("Login").Dialog ("Flight Reservations").WinButton ("确定").Click
End If

2)Exist方法(help里面详细地解释)
(二)把help单独设成一个Action
1)名为Action_Help——Insert\Call to New Action
2)设成可以复用的——Action_Help右键选择Action Properties勾选下面Reusable action。
3)?为什么不能正常运行——先打开对象库,Resources\Object Repository…把原有对象保存(导出出去F:\QTP\LoginDemo\test.tsp),然后进行关联,Resources\Associate Repositorries 选择F:\QTP\LoginDemo\test.tsr
(三)关联对象:当在一个Actoin中想使用另一个Action中的对象时,需要进行对象关联

(增加点击Help步骤
选中Agent Name点击右键(Login )
Insert step-Step Generator
PS:全部操作都在Keyword View下完成)

[ 本帖最后由 283017152 于 2010-2-5 10:08 编辑 ]
作者: 283017152    时间: 2010-2-4 16:15
标题: 回复 7# 的帖子
像成都的TX呢
作者: 283017152    时间: 2010-2-4 16:25
六、Checkpoint:检查点
(一)标准检查点:
所有操作我们均在Action Screeen中完成;Cheak “Login 登陆框”。
——在Action Screen 中点击右键Insert Standard Checkpoint…确定后Run
(二)图像检查点
检查登陆界面飞机图片
(三)位图检查点
检查登陆界面飞机图片
    ——在Action Screen 中点击右键Insert Bitmap Checkpoint…确定后Run
(四)文本检查点
检查Agent Name
——在Action Screen 中点击右键,最后一行
(五)Output Value
输出登陆界面飞机图片的长度和宽度,放在Data Table.
——在Action Screen 中点击右键Insert Output Value后选择高度和宽度【以上文件保存为订票系统(手动添加Help)】
(六)可访问性检查点
利用LR带的Web网站来进行实验
——新建一个Test
(七)页面检查点
检查页面中的链接,图片等信息【以上文件保存为“页面检查点(Veb Tours)”】
(八)参数化【文件为:RandomNumber】
(九)录制试验程序
1)录制预订机票的流程
——先回归一下(Tools-)然后设置(Record and Settings中选择第一项即Record and run test …);
——打开Flight 即可按计划录制
2)对预定机票的数据进行参数化
(十)使用DataTable进行参数化
1)对FlyFrom和FlyTo进行参数化——选中后旁边的#字图标,左键选中参数化,在DataTable中输入计划的地点;
2)回放
3)发现问题,如何解决?
——及通过RandomNumber解决。
(十一)RandomNumber
经过分析,我们可以用RandomNumber这中参数化来解决上述问题。
(十二)环境变量的使用(new)
1)录制简单的登录和关闭
2)对Agent Name和Password定义变量
3)File\Test Settings\Environment(Variable type:选择User-defined)\”+”自定义Name:AgentName,Value:mercury;在添加一个Name:Password,Value:mercury
(环境变量可以导出导入)
(十三)Data Driver
——功能可以自动检测脚本中可能需要进行参数化的变量
Tools——Data Driver里面列出可能要进行参数化
作者: 283017152    时间: 2010-2-4 16:27
七、Tools下的工具介绍
请利用好这些工具
Password Encoder:密码转移器
Test Batch Runner:批处理的运行
Silent Test Runner:(LoadRunner如果要调用QTP的脚本,需要在QTP中创建一个事务)打开以前录制的Environment登录脚本,插入事务(选中Action 然后菜单Insert\Start transaction输入login;选中OK然后菜单Insert\End transaction 确定,注意脚本的变化)——保存,关闭QTP,然后用此工具跑一下
QuickTest Script Editor:方便脚本的编写
Test Results Deletion Tool:管理和删除报告
HP Micro Player:播放器
作者: flowersthese    时间: 2010-2-5 09:38
标题: ……
快更新啊!!!村头厕所没纸了!!!
作者: wugecat    时间: 2010-2-5 09:47
标题: 回复 14# 的帖子

作者: 283017152    时间: 2010-2-5 11:12
八、qtp插件分析
(一)概述:QTP支持广泛的应用程序类型,包括VB,JAVA,.NET等,对于不同的应用程序类型,要使用不同的插件来进行测试。
(二)QTP插件介绍:
1)QTP在使用不同插件时需要为插件提供不同的License;
2)在Help——About QuickTest Professional中查看当前安装和加载的插件;
3)要使用哪个插件就加载哪个,不要加载不用的插件,这样可以提高运行效率;
4)启动QTP,弹出对话框,选在自己要安装的插件,(这里ActiveX)——登录后在Help菜单最后一项
(三)内部插件与外部插件:
1)内部插件就是安装完QTP自带的ActionX,VB和Web;
2)外部插件是可以通过外部的安装来扩展、从插件。比如.NET,Java的插件;
3)可以到HP网站或其他的网站去下载需要的插件;
(四)插件管理
1)QTP——Add-in Manager;
2)在Tools—Options的General下设置;
3)插件关联可以在File——Setting中设置;
4)附加介绍在QTP常用选项,Tools——Options的General;Tools——View Options;File——Setting
(五)插件与检查点类型的关系
作者: 283017152    时间: 2010-2-5 11:25
九、recovery Scenarios
什么是recovery Scenarios:在脚本运行过程中,可能会出现一些非预期的事件、错误、程序崩溃等情况,阻止脚本继续执行下去,测试脚本可能会一直暂停执行,直到某些界面操作被执行才能恢复。为了处理这类错误,QTP创建了recovery Scenarios,并关联到某个测试脚本。这些恢复场景会被相应的事件触发而执行。
什么时候使用recovery Scenarios:recovery Scenarios的设计目的是用于处理那些不可预见的事件,例如:可以定义一个recovery Scenario用于处理打印错误,这样,当运行脚本过程中打印机出现错误时,recovery Scenarios就会指导QTP执行某个操作。
对于那些可以预见的错误,要用If语句来处理不要依赖于recovery Scenario。
定义recovery Scenarios:可以通过recovery Scenario向导来创建和定义recovery Scenarios。Resources——Recovery Scenario Manager,进入后New scenario—下一步—Select Trigger Event选择
关联recovery Scenario到测试脚本:在要关联的脚本中选File—Setting进行添加
作者: 283017152    时间: 2010-2-5 11:26
十、虚拟对象
(一)什么是虚拟对象
可以让QTP学会认识某些他不能识别的控件,方法是把这些控件所在的区域定义为虚拟对象。使用虚拟对象技术,可以对那些通常不能被QTP所识别的对象进行录制和运行测试。
如果程序中包含哪些行为类似标准对象的对象,但是不被QTP说识别,这可以把这些对象定义为虚拟对象,并且映射到某类标准对象。QTP在测试过程中就会对这些虚拟对象模拟执行用户操作。
(二)定义虚拟对象
1)演示登录程序(LoadRunner演示网站)
录制的login是一个图片不是button。如果要变成button,打开Tools—Virtual Objects—New Virtual Object…选择button—下一步
2)登录按钮是图片,用虚拟对象技术使它能为button。
(三)虚拟对象的使用和管理:
1)创建虚拟对象后,可通过选择菜单Tools—Virtual Objects—Virtual Object Manager来进行管理。
2)创建虚拟对象后,在录制脚本时,QTP就会以虚拟对象对应的控件形式来录制测试对象。
作者: 283017152    时间: 2010-2-5 11:31
十一、专家视图测试脚本开发
(一)专家视图(Expert View)与关键字视图(Keyword View)的对应关系
在关键字视图中,QTP用基于图标的表格来展示测试步骤和测试对象的层次,顺序关系,而在专家视图中,则是以VBS的语法或语句来表达的。
(二)编辑脚本的方法:
1)输入测试对象的顶层对象的控件类型名;
2)输入一个测试对象后,就可以范围其下的属性、方法,以及下级对象
3)完成测试对象的选择后,可输入“.”选择针对该测试对象做出的操作。
(三)启动自动化VBS语法识别
在QTP的专家视图中,支持自动化的VBS语法识别和完成,例如:在脚本编辑器中输入if,然后按空格,QTP将自动化完成下面的代码
if then
end if
Tools——View Options,勾选住“Auto-Expand VBScript syntax”
(四)Utility对象
1)使用Extern对象加载DLL。我们可以使用它来调用丰富的windows api函数,能够编写更为强大和灵活的测试代码;
'申明FindWindow方法,调用User32.dll中的FindWindows函数
Extern.Declare micHwnd,"FindWindows","user32.dll","FindWindowA",micString,micString
'申明SetWindow Text方法
Extern.Declare micLong,"SetWindowText","user32.dll","SetWindowTextA",micHwnd,micString
'获取记事本的窗口句柄
hwnd = Extern.FindWindows("Notepad",vbNullString)
'hwnd = Extern.FindWindow("Notepad",vbNullString)
If hwnd=0 Then
        MsgBox"未能找到记事本窗口!"
End If
'改变记事本窗口的标题
res = Extern.SetWindowText(hwnd,"Hello World! ")
2)SystemUtil对象;
打开一个计算器。
SystemUtil.Run"calc"
3)Reporter对象可用于发送信息到测试结果文件,这对于测试结果分析比较有用。可以使用Reporter对象的reporetEvent方法来向测试结果写入一个事件。
(五)Environment对象的使用
1)通过Environment对象可以读取和设置环境变量。环境变量包括built-in和user-defined两种。Bulit-in是内建的环境变量,user-defined是用户自定义的环境变量。可以设置和读取user-defined,但只能读取built-in。
2)通常会在以下两个方面使用到环境变量:
①希望访问QTP的系统数据,例如:测试的名称,操作系统名称等
②希望存储数据,以备不同的action或函数使用
(六)Msgbox和Print
Msbox和Print的区别在于,Print显示的信息窗口是非模式的,而Msgbox显示的是模式窗口,会暂停脚本的执行,直到消息窗口被确认关闭会继续执行后续的测试脚本。

[ 本帖最后由 283017152 于 2010-2-5 11:34 编辑 ]
作者: 283017152    时间: 2010-2-5 11:36
十二、qtp描述性编程
(一)引言
1)QTP的描述性编程能够摆脱测试对象库的限制,编写出更为复杂、适应力更强的测试脚本。
2)录制方式的测试脚本创建是最简单和快捷的测试脚本开发方式,但是,它带来的问题也是明显的,就是依赖测试对象库,测试脚本中使用的对象都必须是测试对象库中的对象。
(二)什么时候使用描述性编程
在测试过程中,有些界面元素师动态出现或动态变化的,在录制的时候并没有添加到对象库中。
(三)描述性编程的运行原理
用描述性编程编写的测试脚本在运行时,QTP会使用测试脚本中给的对象描述来查找对象,查找的位置不是对象库,而是与测试程序运行时QTP为其创建的临时对象版本进行匹配。
(四)描述性编程的使用方法
一种是直接描述的方法
TestObject(“PropertyName1:=PropertyValue1”,”…”)
另一种是使用Description对象的方法
(五)描述性编程的特点
  如果在测试对象层次结构的某一点开始使用了描述性编程,则该测试对象层次结构下的后续测试对象都要使用描述性编程的方式来描述对象(后续性强迫性)
作者: 283017152    时间: 2010-2-5 11:38
十三、qtp测试脚本编写规范
(一)代码编写规范
1)对象、变量和函数的命名规范
2)注释规范
3)代码行缩进规范(常用Tab键来控制)
(二)常量命名规范
1)在VBS中用const来声明常量,所以常量的命名应使用con作为前缀,进行驼峰命名
2)conMyValue
(三)变量命名规范
使用变量类型的缩写作为前缀,如Boolean类型的blnFound,double类型的dblMoney
(四)对象命名规范
在QTP代码编程中,可能会碰见到各种各样的控件对象,我们应该用控件的缩写或前缀加以标识。如:check box—chkReadOnly,image—imglcon,text box—txtLastName
(五)代码注释规范
1)所有函数,过程、子过程都应该有一个简明的注释描述开始,注释不应该详细地描述所要实现的功能或实现的方法细节,因为这些细节可能经常改变。应该把细节描述到代码行注释里;
2)传入的参数应该被描述清楚其意图、范围等,返回值,引用参数、在函数或过程中改变的变量都应该有相应的简单描述
3)对于函数或过程的头注释应该尽可能包括以下几个方面:目的、假设、影响、输入、返回值
4)每个重要的变量都应该包含注释
(六)对象库的管理
QTP的对象与实际的应用程序中的测试对象有一一映射的关系,通过调整对象库的层次关系、给对象进行新的命名,都可以有效提高测试脚本的可读性。
作者: 283017152    时间: 2010-2-5 11:41
针对小强老师的视频学习告一段落,继续相关知识的学习实践
学习目标:精通才是硬道理

[ 本帖最后由 283017152 于 2010-2-5 11:55 编辑 ]
作者: youxiangyan    时间: 2010-2-5 17:00
标题: 小布视频
感觉这个教学视频更像是功能介绍,学习QTP的最好资料还是自带的帮助文档
作者: zhengpeipei    时间: 2010-2-7 16:24
标题: 回复#14
无语!!!
作者: 283017152    时间: 2010-2-8 09:38
标题: 回复 23# 的帖子
我正在看帮助文档里面相关的文档,我先看的是小强老师的视频,小布老师的视频也正在看,他的视频全是英文的,学习一下英文也不错
作者: yujie6832    时间: 2010-2-8 09:50
好,大家加油,再坚持努力地更新下去
作者: mowandao1985    时间: 2010-2-8 16:20
很不错,谢谢共享!期待更新。
作者: yujie6832    时间: 2010-2-9 09:50
好有更新吗?继续啊!
作者: 283017152    时间: 2010-2-9 17:22
标题: 回复 28# 的帖子
我会继续努力,谢谢关注。
我学习完一系列后再更新,加上快放假了,有点忙不过来。我看过你博客里面好多可以学习的内容哦,也是很好的学习资料哦
作者: yujie6832    时间: 2010-2-9 17:35
标题: 回复 30# 的帖子
呵呵,共通探讨
作者: ls_721521    时间: 2010-2-9 17:39
好!!
作者: ls_721521    时间: 2010-2-9 17:40
我要升级了。。。
作者: yujie6832    时间: 2010-2-10 10:00
标题: 回复 33# 的帖子
恭喜升鸡。公的母的?
作者: ls_721521    时间: 2010-2-10 14:51
标题: 回复 34# 的帖子
  有鸡鸡还能是母的。。哈哈
作者: juniting    时间: 2010-4-9 11:45

作者: lydia89122    时间: 2010-5-8 15:03
标题: 回复 11# 的帖子
为什么说我像成都的呢。。。。。。
作者: 夏语嫣    时间: 2010-9-27 10:42
小强老师,为什么QTP10.0在IE8下,录制不起步骤。是差补丁还是设置的问题。
作者: maojuan110    时间: 2010-9-27 21:08
今天刚学了QTP,稀里糊涂的,正好有资料补一补,谢谢啦!
作者: iorl1987    时间: 2010-10-2 17:57
呵呵,不错,帮顶
作者: zhaoshenzhou    时间: 2010-10-3 17:26
介绍了一下qtp的功能,不过我们需要的更多。
作者: vikesgao    时间: 2010-10-9 11:14
不错,学习了
作者: fys0329    时间: 2010-10-12 15:03
我之前用的9.2,后来安装了10.0后,10.0不能录制windows应用程序,只能录制web,请问怎么回事???
作者: SundyG    时间: 2010-11-2 15:10
找时间慢慢看
作者: antalove    时间: 2010-11-9 21:12
看看。。。
作者: 664340486    时间: 2011-3-9 01:25
杯具没法下载了官网,谁能提供其他的下载地址,谢谢,或者邮件给我也行,谢谢
作者: 664340486    时间: 2011-3-9 01:26
杯具没法下载了官网,谁能提供其他的下载地址,谢谢,或者邮件给我也行,谢谢
作者: 664340486    时间: 2011-3-9 01:26
杯具没法下载了官网,谁能提供其他的下载地址,谢谢,或者邮件给我也行,谢谢
作者: 小涛testing    时间: 2011-9-13 10:27
正在学习这个,共勉一下
作者: chunxia001    时间: 2011-11-15 16:46
能把你的qtp 10.0 安装文件发我一份吗,小女子感谢了。我邮箱地址是:chunxia5168@163.com 希望能尽快发给我,我急着学习,谢谢!
作者: chunxia001    时间: 2011-11-15 16:46
能把你的qtp 10.0 安装文件发我一份吗,小女子感谢了。我邮箱地址是:chunxia5168@163.com 希望能尽快发给我,我急着学习,谢谢!
作者: chunxia001    时间: 2011-11-15 16:46
能把你的qtp 10.0 安装文件发我一份吗,小女子感谢了。我邮箱地址是:chunxia5168@163.com 希望能尽快发给我,我急着学习,谢谢!
作者: chunxia001    时间: 2011-11-15 16:47
能把你的qtp 10.0 安装文件发我一份吗,小女子感谢了。我邮箱地址是:chunxia5168@163.com 希望能尽快发给我,我急着学习,谢谢!
作者: chunxia001    时间: 2011-11-15 16:47
能把你的qtp 10.0 安装文件发我一份吗,小女子感谢了。我邮箱地址是:chunxia5168@163.com 希望能尽快发给我,我急着学习,谢谢!
作者: 931743010    时间: 2011-11-17 14:19
回复 54# chunxia001
作者: 931743010    时间: 2011-11-17 14:20
回复 55# 931743010
我的 你要不
作者: yun880111    时间: 2012-4-16 11:33
本帖最后由 yun880111 于 2012-4-16 11:37 编辑

楼主和各位大神,帮忙看下“为什么我建立的文本检查点与别人的不同,不参数化运行正常,参数化后就不行了”
[attach]78478[/attach]
不参数化的运行结果
[attach]78479[/attach]
参数化后的运行结果
[attach]78480[/attach]
作者: yun880111    时间: 2012-4-16 17:34
问题已解决!
作者: hbycyf123    时间: 2012-5-17 22:25
每天能学那么多内容,强人!
作者: sunstear    时间: 2012-5-22 15:48
跟进学习中。
作者: kerryliyan    时间: 2012-5-23 14:12
我学习QTP的过程:(1)xml编写(2)VBS基础知识(3)框架学习(4)编写脚本(5)code review。
个人觉得其实可以不用学习怎么录制,还有QTP很多的自带的功能我都没用,包括DataTable,适合自己的才是最重要的,只要会在专家视图编写脚本就好了。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2