文档章节

QTP(5)

o
 osc_xv7zq561
发布于 2018/03/24 23:16
字数 2894
阅读 5
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

一、检查点
  1、位图检查点(Bitmap CheckPoint)
    (1)作用:主要用于检查UI界面,检查页面布局,包括控件位置、大小、颜色、状态等
    (2)确定位图检查点的要素:
      a.检查哪个控件
      b.确定检查的区域
      c.确定检查点插入的位置
      d.确定超时时间
    (3)插入位图检查点的步骤:
      注意:位图检查点建议在录制时添加,不建议在Active Screen 添加
      a.录制时操作到需要添加位图检查点的步骤
      b.点击QTPInsert菜单栏->Checkpoint->Bitmap Chckpoint(位图检查点)
      c.在弹出的Object Selection中确定对象,OK
      d.在Bitmap Checkpoint properties位图检查点属性对话框中,设置位图检查点的属性:
        --check entire bitmap:检查整张图
        --check only selected area:检查指定的区域(常用),需要使用十字光标画一个区域
          Save only selected area:只保存选择的区域,节省空间
        --tolerance:设置容差
          GRB:色差
          Pix:像素差
        --设置超时时间
        --OK
      练习3:Mtours
        要求:

          a.录制Mtours系统登录+退出业务
          b.使用位图检查点验证登录是否成功
        Test5004_Mtours_位图检查点

Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "Mercury"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "5a55854e6241b30568d3a4c5"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 18,9
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("mast_flightfinder").Check CheckPoint("mast_flightfinder")


  2、文本检查点Text Checkpoint
    (1)作用:检查被测系统中出现的文本字符串内容是否等于预期值,比如提示信息
    (2)确定文本检查点的要素:
      a.确定待检查的控件对象,哪个文本,文本内容本身就是一个对象
      b.确定预期值
      c.确定检查点插入的位置
      d.确定超时时间
    (3)添加文本检查点的步骤:
      方式一:在录制时添加
        a.录制时操作到需要添加检查点的步骤
        b.点击QTP菜单栏Insert->Checkpoint->Text Checkpoint(文本检查点),使用手型鼠标 点击需要检查的文本
        c.在Object Selection对话框中确认对象,一般都是static类型,OK
        d.在Text checkpoint properties属性框中设置检查点属性
          --填写预期值
          --选择匹配方式:
            Match Case:匹配大小写
            Ignore Spaces:忽略空格
            Exact Match :精确匹配
            Text Not displayed:文本未显示
          --设置超时时间
          --OK

      方式二:录制后通过Active Screen截图视图添加
        注意:需要检查的文本必须在截图视图能够显示才能使用该方法
        a.在代码中定位一个步骤,能够在Active Screen显示待检查的文本
        b.在Active Screen中,在待检查的文本上右击选择 Insert Text Checkpoint(插入文本检查点)
        c.确认文本对象,设置属性
          --Before current step:当前步骤之前
          --After current step:当前步骤之后
            当前步骤指a步骤
        d.如果检查的位置错误,把检查点代码剪切到正确位置

 

        练习4:Flight4a
          要求:

            a.为Agent Name对象添加文本检查点
            b.不输入任何信息,点击"OK"按钮,为提示信息添加文本检查点

          Test5005_Flight4a_文本检查点_登录提示信息

Dialog("Login").Static("Agent Name:").Check CheckPoint("Agent Name:")
Dialog("Login").WinButton("OK").Click
Dialog("Login").Dialog("Flight Reservations").Static("Please enter agent name").Check CheckPoint("Please enter agent name")
Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click
Dialog("Login").WinButton("Cancel").Click

        练习5:Flight4a
          要求:
            a.没有输入任何信息时,检查提示信息是否正确
            b.用户名输入3位字符,检查提示信息是否正确
            c.输入正确的用户名,不输入密码,检查提示信息是否正确
            d.输入正确的用户名,输入错误的密码,检查提示信息是否正确

          Test5006_Flight4a_文本检查点_登录提示信息

Dialog("Login").WinButton("OK").Click
Dialog("Login").Dialog("Flight Reservations").Static("Please enter agent name").Check CheckPoint("Please enter agent name")
Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click
Dialog("Login").WinEdit("Agent Name:").Set "123"
Dialog("Login").WinButton("OK").Click
Dialog("Login").Dialog("Flight Reservations").Static("Please enter agent name").Check CheckPoint("Agent name must be at least 4 characters long.")
Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click
Dialog("Login").WinEdit("Agent Name:").Set "1234"
Dialog("Login").WinEdit("Password:").SetSecure "5a55ae03aa62d710b5585eb7b35de1331b66"
Dialog("Login").WinButton("OK").Click
Dialog("Login").Dialog("Flight Reservations").Static("Please enter agent name").Check CheckPoint("Incorrect password. Please try again")
Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click
Dialog("Login").WinButton("Cancel").Click

 

        练习6:Flight3a 第一个版本
          要求:
            a.录制Flight3a的登录+退出业务
            b.为登录界面添加位图检查点
            c.使用录制好的代码对Flight4a进行回归测试
          Test5002_Flight4a_位图检查点

Dialog("Login").WinEdit("Agent Name:").Set "abcd"
Dialog("Login").WinEdit("Password:").SetSecure "5a557b6befda237b3116c69eb42d8e165954086a"
Dialog("Login").Check CheckPoint("Login")
Dialog("Login").Check CheckPoint("Login_2")
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").Close

        练习7:Flight3a 第一个版本
          要求:
            a.录制Flight3a登录+退出业务
            b.对登录后的界面添加位图检查点
            c.使用录制好的代码对Flight4a进行回归测试

        练习8:Flight4a
          要求:
            a.验证输入错误的日期时的提示信息
            b.验证输入过期的日期时的提示信息
            c.验证Tickets输入15时的提示信息
            d.验证打开2000号订单时的提示信息

          Test5007_Flight4a_文本检查点_购票+打开订单提示信息

Dialog("Login").WinEdit("Agent Name:").Set "abcd"
Dialog("Login").WinEdit("Password:").SetSecure "5a55b4da0ad581e9c066279366a164369cbecf62"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").ActiveX("MaskEdBox").Type "343256"
Window("Flight Reservation").WinComboBox("Fly From:").Select "Frankfurt"
Window("Flight Reservation").Dialog("Flight Reservations").Static("Invalid year Entered.").Check CheckPoint("Invalid year Entered.  The year must be greater than 2018 and less than 2038.")
Window("Flight Reservation").Dialog("Flight Reservations").WinButton("确定").Click
Window("Flight Reservation").ActiveX("MaskEdBox").Type  micBack
Window("Flight Reservation").ActiveX("MaskEdBox").Type  micBack
Window("Flight Reservation").ActiveX("MaskEdBox").Type  micBack
Window("Flight Reservation").ActiveX("MaskEdBox").Type  micBack
Window("Flight Reservation").ActiveX("MaskEdBox").Type  micBack
Window("Flight Reservation").ActiveX("MaskEdBox").Type  micBack
Window("Flight Reservation").ActiveX("MaskEdBox").Type "111111"
Window("Flight Reservation").WinComboBox("Fly From:").Select "London"
Window("Flight Reservation").Dialog("Flight Reservations").Static("Invalid year Entered.").Check CheckPoint("Valid flight dates are after 01/10/18")
Window("Flight Reservation").Dialog("Flight Reservations").WinButton("确定").Click
Window("Flight Reservation").ActiveX("MaskEdBox").Drag 48,5
Window("Flight Reservation").WinObject("Flight Schedule:").Drop 3,61
Window("Flight Reservation").ActiveX("MaskEdBox").Type "111119"
Window("Flight Reservation").WinComboBox("Fly To:").Select "Frankfurt"
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Window("Flight Reservation").WinEdit("Name:").Set "abcd"
Window("Flight Reservation").WinEdit("Tickets:").Set "15"
Window("Flight Reservation").WinButton("Insert Order").Click
Window("Flight Reservation").Dialog("Flight Reservations").Static("Invalid year Entered.").Check CheckPoint("Only ten tickets may be ordered at one time")
Window("Flight Reservation").Dialog("Flight Reservations").WinButton("确定").Click
Window("Flight Reservation").WinEdit("Tickets:").Set "1"
Window("Flight Reservation").Static("Name:").Check CheckPoint("Name:")
Window("Flight Reservation").Static("Tickets:").Check CheckPoint("Tickets:")
Window("Flight Reservation").WinButton("Insert Order").Click
Window("Flight Reservation").WinButton("Button").Click
Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"
Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set "2000"
Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click
Window("Flight Reservation").Dialog("Open Order").Dialog("Flight Reservations").Static("Order number 2000 does").Check CheckPoint("Order number 2000 does not exist")
Window("Flight Reservation").Dialog("Open Order").Dialog("Flight Reservations").WinButton("确定").Click
Window("Flight Reservation").Dialog("Open Order").WinButton("Cancel").Click
Window("Flight Reservation").Close

 

3、文本区域检查点Text area Checkpoint
  (1)作用:检查被测系统中指定的矩形区域内显示的文本字符串是否与预期一致
  (2)确定检查点的要素:
    a.确定检查的控件对象
    b.确定检查哪个区域内的文本
    c.确定预期值
    d.确定插入位置
    e.确定超时时间
  (3)输入文本区域检查点的步骤:
    注意:文本区域检查点只能在录制时添加
      文本区域检查点不支持web系统
    a.录制时操作到需要添加检查点的位置
    b.在QTP中点击Insert->Checkpoint->Text area Checkpoint(文本区域检查点),使用十字光标画一个区域,区域内是需要检查的文本
    c.在文本区域检查点属性框中设置检查点的属性,设置预期值、设置匹配方式

  (4)文本检查点和文本区域检查点的区别
    a.检查的控件对象不一样:
      文本:文本文身
      区域:存放文本的对象
    b.支持的系统不一样
      文本:支持C/S和B/S系统
      区域:不支持B/S系统
    c.插入的时间不同
      文本:录制时、后都能添加
      区域:只能录制时添加

    练习9:Flight4a
      要求:a.为Flight4a的登录页面添加文本 区域检查点,检查三个按钮的文本是否正确

      Test5008_Flight4a_文本区域检查点_登录按钮

Dialog("Login").Check CheckPoint("Login")
Dialog("Login").WinButton("Cancel").Click

    练习10:Flight4a
      要求:a.为购票页面的Tickets对象添加文本区域检查点,把代码在Flight3a中进行回放

      Test5009_Flight4a_文本区域检查点_Tickets

Dialog("Login").WinEdit("Agent Name:").Set "abcd"
Dialog("Login").WinEdit("Password:").SetSecure "5a55c80870a470f74aeda19c4b33008ca46246cd"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").WinObject("Order Information:").Check CheckPoint("Order Information:")
Window("Flight Reservation").Close

    练习11:Flight4a
      要求:
        a.录制Flight4a登录+购票+打开订单+发送传真+退出业务
        b.为登录后窗口中的图片添加位图检查点
        c.为打开订单窗口中的Customer Name添加文本检查点
        d.为发送传真界面的四个按钮添加文本区域检查点
        e.为发送传真是否成功添加标准检查点
      Test5010_Flight4a_检查点综合练习

Dialog("Login").WinEdit("Agent Name:").Set "abcd"
Dialog("Login").WinEdit("Password:").SetSecure "5a55d14da54352506630863a43a42b60077e741f"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").Static("Static").Check CheckPoint("Static")
Window("Flight Reservation").WinButton("Button").Click
Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Customer Name").Check CheckPoint("Customer Name")
Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"
Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set "5"
Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click
Window("Flight Reservation").WinMenu("Menu").Select "File;Fax Order..."
Window("Flight Reservation").Dialog("Fax Order No. 5").Check CheckPoint("Fax Order No. 5")
Window("Flight Reservation").Dialog("Fax Order No. 5").ActiveX("MaskEdBox").Type "1111111111"
Window("Flight Reservation").Dialog("Fax Order No. 5").WinButton("Send").Click
Window("Flight Reservation").ActiveX("Threed Panel Control").Check CheckPoint("Threed Panel Control")
Window("Flight Reservation").Close

      手工测试:
        预置条件:被测系统已打开
        01
          1 输入"第一个数"为:99
          2 输入"第二个数"为:-99
          3 点击"计算"按钮
          4 点击"重置"按钮
            预期值:0

        预置条件:被测系统已打开
        02
          1 输入"第一个数"为:0
          2 输入"第二个数"为:56
          3 点击"计算"按钮
          4 点击"重置"按钮
            预期值:56

        预置条件:被测系统已打开
        03
          1 输入"第一个数"为:77
          2 输入"第二个数"为:17
          3 点击"计算"按钮
          4 点击"重置"按钮
            预期值:94

------------------------------------------------------------------
      自动化测试:
      预置条件:被测系统已打开(QTP打开)
      01
        1 输入"第一个数"为:num1
        2 输入"第二个数"为:num2
        3 点击"计算"按钮
          检查点ex
        4 点击"重置"按钮
          预期值:
            num1=99 0 77
            num2=-99 56 17
            ex=0 56 94

 

二、参数化(DataTable参数化)
  1、应用场景:使用多组测试数据测试同一个业务流程


  2、DataTable参数化就是使用DataTable中的参数替代录制好的脚本中的常量的技术


  3、实现方式:

    练习12:两位数加法器
      要求:a.为两位数加法器实现参数化

      Test5011_两位数加法器_参数化

VbWindow("Form1").VbEdit("Text1").Set DataTable("num1", dtGlobalSheet)
VbWindow("Form1").VbEdit("Text2").Set DataTable("num2", dtGlobalSheet)
VbWindow("Form1").VbButton("计算(J)").Click
VbWindow("Form1").VbEdit("Text3").Check CheckPoint("Text3")
VbWindow("Form1").VbButton("重置(C)").Click

  

    练习13:Flight4a
      要求:a.为登录实现参数化
        uname:1234 abcd a78p
        passwd:mercury MERCURY Mercury

      Test5012_Flight4a_登录参数化

SystemUtil.Run "C:\Program Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe","","C:\Program Files\HP\QuickTest Professional\samples\flight\app\","open"

Dialog("Login").WinEdit("Agent Name:").Set DataTable("uname", dtGlobalSheet)
Dialog("Login").WinEdit("Password:").SetSecure DataTable("passwd", dtGlobalSheet)
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").Check CheckPoint("Flight Reservation")
Window("Flight Reservation").Close

  

 

  4、总结检查点失败可能的原因:
    a.检查的控件、属性、预期值错误
    b.检查点插入的位置错误
    d.超时时间太短
    e.需求变更
    f.被测系统的缺陷

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
iOS 5+数据缓存模块--RequestCacher

RequestCacher 是一个 iOS 5+ 的数据缓存模块。 RequestCacher 可自动实现: 快速缓存数据 创建本地数据库用于跟踪所存储的数据 在本地存储上存储数据 需要的时候重新获取数据 自维护 使用方...

小编辑
2013/07/02
3.1K
1
phalapi-进阶篇5(数据库读写分离以及多库使用)

先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 读写分离是我们常用的一种解决方案,它可以解决大量读操作的时候数据库瓶颈的问题,我们在真正开发一个项目的过程...

喵了_个咪
2015/11/24
2.1K
4
在Google使用Borg进行大规模集群的管理 5-6

使用效率 Borg的一个主要目的就是有效的利用Google的机器舰队,这可是一大笔财务投资:让效率提升几个百分点就能省下几百万美元。这一节讨论了和计算了一些Borg使用的技术和策略。 5.1 测度方...

难易
2015/10/14
1.7K
3
zephir-(5)类型

先在这里感谢各位zephir开源技术提供者 Zephir既可以使用动态类型也可以使用静态类型,这是zephir独特的一点,今天笔者就来和大家一同了解zephir中的基本的类型使用. 注:笔者水平有限,说的不正...

喵了_个咪
2016/03/07
247
0
【腾讯bugly干货分享】HTML 5 视频直播一站式扫盲

本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://bugly.qq.com/bbs/forum.php?mod=viewthread&tid=1277 视频直播这么火,再不学就 out 了。 为了紧跟潮流,本文将...

腾讯Bugly
2016/07/04
1.2K
5

没有更多内容

加载失败,请刷新页面

加载更多

认识Node

什么是Node? Node 是 JavaScript 的一种运行环境。可以使 JS 代码不依赖浏览器也可以执行。他俩的差异如下: 两个运行环境都包含了 ECMScript 。另一方面 JavaScript 包含了 BOM 和 DOM。 ...

长臂猿猴
39分钟前
13
0
正则表达式中的非捕获组是什么? - What is a non-capturing group in regular expressions?

问题: 非捕获组(即(?:) )如何在正则表达式中使用,它们有什么用? 解决方案: 参考一: https://stackoom.com/question/Ejkl/正则表达式中的非捕获组是什么 参考二: https://oldbug.net...

技术盛宴
39分钟前
15
0
他在国外演讲时说,学Python只要看答案做完这几十道题,就足够了

你想学Python?其实很简单,因为Python本身就是一门比较简单的编程语言。 你要做的也就是看着答案做完这几十道题就可以了,不管你是不是有编程基础,因为答案摆在那儿,你不可能不会做。 为什...

python小天
39分钟前
0
0
「2020最新」Spring最易学习教程 4—整合Mybatis 事务控制

0 复习 代理模式 代理模式,可以为目标类添加额外功能。 Spring 动态代理 定义目标类对象 定义额外功能,增强。实现Spring内置的接口 配置增强类 定义切入点 编织组装 增强类型 前置增强 Me...

鹿老师的Java笔记
59分钟前
21
0
OpenCV开发笔记(六十九):红胖子8分钟带你使用传统方法识别已知物体(图文并茂+浅显易懂+程序源码)

若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址:h...

红模仿_红胖子
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部