51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 18673|回复: 59
打印 上一主题 下一主题

[原创] 菜鸟QTP10.0学习实录(实时更新)

[复制链接]
  • TA的每日心情
    奋斗
    2015-12-14 18:17
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    跳转到指定楼层
    1#
    发表于 2010-2-4 14:54:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    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 编辑 ]
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2010-2-4 14:55:12 | 只看该作者
    不错~支持一下~~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-12-14 18:17
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    3#
     楼主| 发表于 2010-2-4 15:09:55 | 只看该作者
    这么快就有人捧场了,谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-12-14 18:17
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    4#
     楼主| 发表于 2010-2-4 15:17:57 | 只看该作者
    还是先按照小强老师的视频开始(慢慢学习后面的视频),链接地址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 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2010-2-4 15:18:33 | 只看该作者
    好啊,这个要支持下的,期待常更新
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-12-14 18:17
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    6#
     楼主| 发表于 2010-2-4 15:31:04 | 只看该作者
    三、界面分析
    快捷键: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 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2010-2-4 15:52:02 | 只看该作者
    我是今天才进来的啦。。呵呵。。支持一下。。。加油哈。。。。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-12-14 18:17
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    8#
     楼主| 发表于 2010-2-4 15:54:41 | 只看该作者
    四、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 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-12-14 18:17
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    9#
     楼主| 发表于 2010-2-4 15:56:56 | 只看该作者
    五、Qtp的三种录制方式:
    Normal recording默认的正常录制模式。他通过识别程序中的对象来代贴以前屏幕坐标的形式。但是正常模式并不能保证程序中所有的对象,因此还需要其他两种模式来补充。
    Analog Recording
    Low Level Recording
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-12-14 18:17
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    10#
     楼主| 发表于 2010-2-4 16:07:26 | 只看该作者
    五、增强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 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-12-14 18:17
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    11#
     楼主| 发表于 2010-2-4 16:15:25 | 只看该作者

    回复 7# 的帖子

    像成都的TX呢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-12-14 18:17
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    12#
     楼主| 发表于 2010-2-4 16:25:09 | 只看该作者
    六、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里面列出可能要进行参数化
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-12-14 18:17
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    13#
     楼主| 发表于 2010-2-4 16:27:43 | 只看该作者
    七、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:播放器
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2010-2-5 09:38:06 | 只看该作者

    ……

    快更新啊!!!村头厕所没纸了!!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2010-2-5 09:47:31 | 只看该作者

    回复 14# 的帖子

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-12-14 18:17
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    16#
     楼主| 发表于 2010-2-5 11:12:07 | 只看该作者
    八、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
    (五)插件与检查点类型的关系
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-12-14 18:17
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    17#
     楼主| 发表于 2010-2-5 11:25:07 | 只看该作者
    九、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进行添加
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-12-14 18:17
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    18#
     楼主| 发表于 2010-2-5 11:26:49 | 只看该作者
    十、虚拟对象
    (一)什么是虚拟对象
    可以让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就会以虚拟对象对应的控件形式来录制测试对象。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-12-14 18:17
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    19#
     楼主| 发表于 2010-2-5 11:31:04 | 只看该作者
    十一、专家视图测试脚本开发
    (一)专家视图(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 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-12-14 18:17
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    20#
     楼主| 发表于 2010-2-5 11:36:43 | 只看该作者
    十二、qtp描述性编程
    (一)引言
    1)QTP的描述性编程能够摆脱测试对象库的限制,编写出更为复杂、适应力更强的测试脚本。
    2)录制方式的测试脚本创建是最简单和快捷的测试脚本开发方式,但是,它带来的问题也是明显的,就是依赖测试对象库,测试脚本中使用的对象都必须是测试对象库中的对象。
    (二)什么时候使用描述性编程
    在测试过程中,有些界面元素师动态出现或动态变化的,在录制的时候并没有添加到对象库中。
    (三)描述性编程的运行原理
    用描述性编程编写的测试脚本在运行时,QTP会使用测试脚本中给的对象描述来查找对象,查找的位置不是对象库,而是与测试程序运行时QTP为其创建的临时对象版本进行匹配。
    (四)描述性编程的使用方法
    一种是直接描述的方法
    TestObject(“PropertyName1:=PropertyValue1”,”…”)
    另一种是使用Description对象的方法
    (五)描述性编程的特点
      如果在测试对象层次结构的某一点开始使用了描述性编程,则该测试对象层次结构下的后续测试对象都要使用描述性编程的方式来描述对象(后续性强迫性)
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-25 22:57 , Processed in 0.086190 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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