• QTP(5)


    一、检查点
      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 FilesHPQuickTest Professionalsamplesflightappflight4a.exe","","C:Program FilesHPQuickTest Professionalsamplesflightapp","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.被测系统的缺陷

  • 相关阅读:
    【转】[行业透视] 外企九年-我最终选择放弃
    【转】Win7下有线与无线网络使用优先级
    【转】POJ 1177 Picture(1)
    【转】POJ 1151 Atlantis
    POJ1151Atlantis(扫描线求面积并+线段树+离散化)
    【转】poj_1151(Atlantis)
    【转】poj pku 线段树题目20道汇总+简要算法+分类+难度
    【转】POJ 1151 Atlantis(AC)
    【转】线段树(segment tree)
    【转】poj 1177 pictures(2)
  • 原文地址:https://www.cnblogs.com/KalosOwen/p/8641993.html
Copyright © 2020-2023  润新知