zoukankan      html  css  js  c++  java
  • QTP(4)

    一、常见回放错误
      1、The "XXX" XXX object was not found in the Object Repository.(在对象库中未找到对象)
        ......not found......
        方法三:通过Active Screen添加对象
          a.在代码中定位一个步骤,要求能够在Active Screen(截图视图)中显示出待添加的对象
          b.在Active Screen中选中要添加的对象,右击选择View / Add Objects(查看/添加对象)
          c.在Object Properties中点击"Add to Repository"(添加到对象库)按钮
          d.如果要在对象库中查看添加的对象,就点击View in Repository按钮
          e.如果要对对象进行操作,就切换到Keyword View关键字视图中:
            --找到需要添加的位置的上一个对象
            --右击上个对象,选择Insert new step(插入新的步骤)选项,选择要操作的对象(刚添加到对象库中的对象)
            --如果操作的对象需要参数,就在Value列中输入参数 

              Blue Skies Airlines$40$108$5:03 pm$;
              Blue Skies Airlines$41$127$7:07 pm$;
              Pangea Airlines$42$136$9:11 pm$;
              Unified Airlines$43$155$11:15 pm$

          练习1:Flight4a
            要求:a.录制Flight4a的购票业务流程(手动启动)
            Test4001_Flight4a_添加航班对象

    Window("Flight Reservation").Move 421,140
    Window("Flight Reservation").ActiveX("MaskEdBox").Type "111119"
    Window("Flight Reservation").WinComboBox("Fly From:").Select "Frankfurt"
    Window("Flight Reservation").WinComboBox("Fly To:").Select "London"
    Window("Flight Reservation").WinButton("FLIGHT").Click
    Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select "13584   FRA   08:00 AM   LON   08:45 AM   SR     $162.30"
    Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
    Window("Flight Reservation").WinEdit("Name:").Set "mercury"
    Window("Flight Reservation").WinButton("Insert Order").Click
    Window("Flight Reservation").WinButton("Button").Click

          练习2:Mtours
            要求:

              a.录制Mtours系统的登录+购票+退出业务(录制时使用默认的数据,只需要填写First Name 、Last Name、Number)
              b.注意:Mtours是web系统
                a.启动服务
                b.选择web插件
            Test4002_Mtours_添加对象
              录制步骤:
                1 输入用户名:mercury
                2 输入密码:123
                3 点击"Sign-In"按钮
                  选择起飞城市:London
                  选择到达城市:Paris
                4 点击"Continue"按钮

                TM
                  登录-选择商品-添加购物车-结算-付款-查看订单-退出
                  登录
                  选择商品
                  添加购物车

                  if 是结算
                    付款
                  else
                    调用结算代码

      2、......match......
        原因:QTP对象库中的对象属性无法匹配被测系统上的一个对象
        具体是什么原因导致的
          (1)由于版本升级,被测系统的对象进行了修改
            解决方案:
              a.把升级后的版本中的对象添加到对象库中
              b.再把代码修改为新的对象
          (2)被测系统未打开
            a.360杀毒软件阻止了
            b.检查Record and Run Settings是否设置正确
            d.代码的第一行是否为SystemUtil.Run
          (3)被测系统打开了多个
            a.运行前没有关闭已经打开的被测系统
            b.Record and Run Settings中指定了多个路径
          (4)被测系统的界面不对,代码的顺序不对

    二、QTP的原理简化
      1、录制:封装对象(TO)、记录脚本
        (1)获取操作的控件对象的所有属性
        (2)使用唯一的名称封装到对象库中
        (3)存储所有的属性
        (4)标记关键属性
        (5)在代码中记录测试对象、操作、使用的数据


      2、回放:识别对象(RO)、操作对象
        (1)获取Item列中的对象名称
        (2)到对象库中找到该名称的对象
        (3)使用对象库中的对象关键属性与被测系统中的对象对比,识别出该对象
        (4)按照脚本来操作该对象

      3、TO:Test Object,对象库中的对象,可以修改也可以查看


      4、RO:Run time Object,运行时对象,只能查看不能修改

    三、Object Spy
      1、对象探测器,可以查看对象的属性以及属性值


      2、使用方法:
        a.打开Object Spy(Tools->Object Spy)
        b.打开被测系统,显示出要操作的RO
        c.点击Object Spy上的手型按钮,使用手型鼠标点击RO,就可以查看RO的属性
        注意:如果RO被遮挡,就按住Ctrl把RO操作显示出来,再释放Ctrl键


    四、检查点
      1、应用场景:对测试用例中的预期结果进行检查,从而验证被测系统的功能是否正确


      2、QTP实现检查点的原理:
        1) 录制时:把预期数据放在测试代码的合适位置,生成一句检查点的代码
        2) 回放时:QTP自动捕获被测系统生成的实际数据,和代码中的预期数据对比,对比一致,在结果报告中记录Passed,反之记录Failed


      3、检查的分类
        (1)标准检查点:检查对象的属性值是否正确
        (2)位图检查点:检查对象的UI界面,颜色、大小、像素....
        (3)文本检查点:检查本文对象
        (4)文本区域检查点:对指定区域内的文本进行检查
        (5)表检查点
        (6)XML检查点
        (7)数据库检查点......

        两位数加法器的测试步骤:
          a.打开被测系统
          b.输入第一个数:29
          c.输入第二个数:9
          d.点击"计算"按钮
            检查点:
              对象:结果框
              属性:Text
              预期值:38
          e.退出系统


      4、标准检查点(Standard Checkpoint) 重点
        (1)作用:检查RO的属性值是否与预期值一致
        (2)确定标准检查点的要素:
          a.确定检查的控件对象
          b.确定属性名称
          c.确定预期值
          d.确定检查点的位置
          e.确定检查点的超时时间
        (3)插入标准检查点的步骤:
          方式一:在录制时插入
            a.录制时操作到需要添加检查点的步骤
            b.点击QTP菜单栏Insert->Checkpoint->Standard Checkpoint
            c.使用手型鼠标点击需要检查的对象
            d.在弹出的Object Selection中选择对象,确定
            e.在弹出的Checkpoint Properties(检查点属性)对话框中设置属性:
              -- 勾选要检查的属性
              -- 填写预期结果
              -- 设置超时时间
              -- 确定
        (4)常用的属性:
          1) text :记录控件中的文本
          2) enabled:记录控件是否可用,True:代表可用,False:代表不可用
          3) checked:记录复选框或单选按钮是否处于选中的状态,ON:代表选中,OFF:代表未选中
          4) items count:记录控件选项的个数(下拉框、列表、按钮组)
          5) all items:记录控件中的每个选项
          6) selection:记录被选中的值
          7) visible:记录控件是否显示

          练习3:两位数加法器
            要求:

              a.录制两位数加法器的加法过程
              b.验证计算结果是否正确
            确定要素:
              a.确定检查的控件对象:结果框
              b.确定属性名称:text
              c.确定预期值:38
              d.确定检查点的位置:点击计算
              e.确定检查点的超时时间:不需要
            Test4003_两位数加法器_标准检查点

    VbWindow("Form1").VbEdit("Text1").Set "-66"
    VbWindow("Form1").VbEdit("Text2").Set "9"
    VbWindow("Form1").VbButton("计算(J)").Click
    VbWindow("Form1").VbEdit("Text3").Check CheckPoint("Text3")
    VbWindow("Form1").Close

          练习4:计算器
            要求:

              a.录制计算器的计算过程
              b.验证计算结果是否正确

            Test4004_计算器_标准检查点

    Window("计算器").WinButton("5").Click
    Window("计算器").WinButton("+").Click
    Window("计算器").WinButton("6").Click
    Window("计算器").WinButton("=").Click
    Window("计算器").WinEdit("Edit").Check CheckPoint("Edit")
    Window("计算器").Close

          练习5:Flight4a
            要求:

              a.录制Flight4a登录+退出业务
              b.验证登录是否成功
            Test4005_Flight4a_标准检查点_验证登录是否成功

    Dialog("Login").WinEdit("Agent Name:").Set "mercury"
    Dialog("Login").WinEdit("Password:").SetSecure "123456"
    Dialog("Login").WinButton("OK").Click
    Window("Flight Reservation").Check CheckPoint("Flight Reservation")
    Window("Flight Reservation").Close

          练习6:Flight4a
            要求:

              a.录制Flight4a登录+购票+打开订单+退出业务
              b.验证购票是否成功
              c.验证打开订单是否成功

            Test4006_Flight4a_标准检查点_验证购票+打开订单是否成功

    Dialog("Login").WinEdit("Agent Name:").Set "abcd"
    Dialog("Login").WinEdit("Password:").SetSecure "5a548dbbe32dd50b8d06f0a3a3fc7a2bb35d054a"
    Dialog("Login").WinButton("OK").Click
    wait 6
    Window("Flight Reservation").ActiveX("MaskEdBox").Type "111119"
    Window("Flight Reservation").WinComboBox("Fly From:").Check CheckPoint("Fly From:")
    Window("Flight Reservation").WinComboBox("Fly From:").Select "Frankfurt"
    Window("Flight Reservation").WinComboBox("Fly To:").Check CheckPoint("Fly To:")
    Window("Flight Reservation").WinComboBox("Fly To:").Select "London"
    Window("Flight Reservation").WinButton("FLIGHT").Click
    Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select "13596   FRA   03:12 PM   LON   03:57 PM   SR     $160.00"
    Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
    Window("Flight Reservation").WinEdit("Name:").Set "abcd"
    Window("Flight Reservation").WinButton("Insert Order").Click
    Window("Flight Reservation").ActiveX("Threed Panel Control").Check CheckPoint("Threed Panel Control")
    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 "10"
    Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click
    Window("Flight Reservation").WinEdit("Order No:").Check CheckPoint("Order No:")
    Window("Flight Reservation").Close

          练习7:Flight4a
            要求:

              a.录制Flight4a系统的登录+购票+退出业务
              b.登录后验证Flights按钮为不可用状态
              c.输入日期、起飞城市、到达城市后验证Flights按钮为可用状态
              d.点击Insert Order按钮后,验证First、Economy舱位是否被选中

  • 相关阅读:
    uni.navigateTo 无法跳转到页面
    微信小程序 navigateTo 只能使用几次 无效后 怎么处理的?
    Vue中computed和watch的区别
    vue 动态添加样式的方式
    浏览器数据库IndexedDB介绍
    Gitlab CI/CD 之 Gitlab Runner Docker Executor 缓存问题
    Gitlab CI/CD 之 Gitlab-Runner
    .neter 的 java 学习之路
    Gitlab 迁移后 runner 访问报错的问题
    .neter 的 java 学习之路
  • 原文地址:https://www.cnblogs.com/KalosOwen/p/8641940.html
Copyright © 2011-2022 走看看