• QTP(7)


    一、输出值(Output Value)
      1、应用场景:
        1) 关心被测系统的数据
        2) 将被测系统生成的数据作为后面步骤的输入


      2、输出值就是输出被测系统中实际运行时的数据的一种技术
        a.运行中对象的值,也就是RO的值
        b.如果在脚本添加了输出值,只有在运行时,数据在DataTable表中显示,结束运行后,DataTable表中将不显示
        c.如果想查看输出的值,就在Result结果报告中Run-time DataTable中查看


      3、标准输出值(Standard Output Value)
        (1)作用:输出RO的当前属性值
        (2)确定输出值的要素:
          a.确定RO对象
          b.确定输出RO对象的哪个属性名称
          c.确定插入的位置
        (3)插入输出值的步骤:
          方式一:录制时插入
            a.录制时操作到需要插入输出值的步骤
            b.选择QTP的Insert菜单栏->Output Value->Standard output value(标准输出值)选项
            c.在弹出的Object Selection对话框中确定对象,OK
            d.在Standard Output Value Properties(标准输出值属性)中设置属性:
              --勾选要输出的属性名称
              --点击"Modify"按钮
              --填写参数名称(默认存放在DataTable表中)
              --OK
          方式二:通过Active Screen截图视图插入
            a.在代码中定位一句代码,把需要输出的对象显示在Active Screen
            b.在Active Screen中右击对象,选择Insert Output Value选项,设置输出的属性,设置方法与方式一一致
            c.插入位置:
              Before Current Step:插入到a步骤代码之前
              After Current Step:插入到a步骤代码之后
            d.确认

            练习2:Flight4a
              要求:

                a.录制Flight4a登录+购票+打开订单+退出系统业务
                b.打开订单时 使用的订单号来自购票后 生成的订单号

            Test7002_Flight4a_输出订单号进行打开订单

    SystemUtil.Run "C:Program FilesHPQuickTest Professionalsamplesflightappflight4a.exe","","C:Program FilesHPQuickTest Professionalsamplesflightapp","open"
    Dialog("Login").WinEdit("Agent Name:").Set "abcd"
    Dialog("Login").WinEdit("Password:").SetSecure "5a5825206abf73e99b60dd1f295a2da50e461242"
    Dialog("Login").WinButton("OK").Click
    Window("Flight Reservation").WaitProperty "enabled", True, 10000
    Window("Flight Reservation").ActiveX("MaskEdBox").Type "111119"
    Window("Flight Reservation").WinComboBox("Fly From:").Select "Denver"
    Window("Flight Reservation").WinComboBox("Fly To:").Select "London"
    Window("Flight Reservation").WinButton("FLIGHT").Click
    Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select "20264   DEN   12:12 AM   LON   07:23 PM   AA     $112.20"
    Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
    Window("Flight Reservation").WinEdit("Name:").Set DataTable("顾客姓名", dtGlobalSheet)
    Window("Flight Reservation").WinButton("Insert Order").Click
    '插入订单后,需要等进度条执行完,才显示订单号
    '所以需要使用wait模拟进度条执行的过程
    wait 8
    
    Window("Flight Reservation").WinEdit("Order No:").Output CheckPoint("Order No:")
    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 DataTable("订单号", dtGlobalSheet)
    Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click
    Window("Flight Reservation").WinEdit("Order No:").Check CheckPoint("Order No:_2")
    
    '补录发送传真
    Window("Flight Reservation").WinMenu("Menu").Select "File;Fax Order..."
    Window("Flight Reservation").Dialog("Fax Order No. 80").ActiveX("MaskEdBox").Type DataTable("传真号", dtGlobalSheet)
    Window("Flight Reservation").Dialog("Fax Order No. 80").WinButton("Send").Click
    Window("Flight Reservation").Close
    

      

          补充:同步点Synchronization Point
            (1)作用:同步对象,当对象同步出来后再执行下面的操作,当被测系统有加载过程时,在脚本中可以使用同步点模拟加载过程
            (2)插入方式:Insert->Synchronization Point
              设置同步点的属性:
                Property Name:选择同步对象的哪个属性
                Property Value:当该属性变成什么值时,就可以执行下面的操作
                Timeout:超时时间
            (3)wait 与 同步点的区别:
              1) 都是等待的步骤
              2) wait是等待指定的时间
              3) 同步点比较灵活,会在超时时间内自动检测同步的对象是否显示,如果显示就不再等待,如果未显示继续等待

    二、Action
      1、Action 是动作,是一系列的步骤的集合,是一个逻辑单元


      2、在一个Test(脚本)中可以有多个 Action,但至少有一个,默认的是Action1,执行脚本时是顺序执行每一个Action


      3、Action的作用:
        1) 实现代码分组,有利于维护代码
        2) 实现代码的局部反复
        3) 实现代码的复用
        4) 实现测试数据分组
        5) 实现TO分组


      4、修改Action属性
        1) 在Keyword View中,在Action上右键鼠标,选择Action Properties(Action属性)
        2) 修改Name名称、Description描述、选择Reusable Action(是否可复用)复选框
        3) 确定


      5、创建Action:
        1) Insert ->Call to new Action
        2) 输入Name名称、Description描述、选择Reusable Action(是否可复用)复选框、选择Location位置:
          At the end of the test:在脚本的末尾,与已有的Action为兄弟关系
          After the current step:在当前步骤之后,与已有的Action为父子关系,嵌套关系


      6、分Action录制代码
        方式一:先创建多个Action,再录制
        方式二:边录制边创建Action

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

              a.使用分Action的方式录制加法+退出业务
              b.为加法实现参数化,要求加法执行3次,退出执行1次
                首:打开并且清空的状态
                  1 输入第一个数
                  2 输入第二个数
                  3 点击 计算按钮
                  4 重置
                尾:打开并且清空的状态

              c.验证计算结果是否正确

          Test7004_两位数加法器_使用分Action方式录制脚本

    ’加法Action
    VbWindow("Form1").VbEdit("Text1").Set DataTable("第一个数", dtLocalSheet)
    VbWindow("Form1").VbEdit("Text2").Set DataTable("第二个数", dtLocalSheet)
    VbWindow("Form1").VbButton("计算(J)").Click
    VbWindow("Form1").VbEdit("Text3").Check CheckPoint("Text3")
    VbWindow("Form1").VbButton("重置(C)").Click
    
    ’退出Action
    VbWindow("Form1").VbButton("退出(E)").Click
    VbWindow("Form1").Dialog("退出提示").WinButton("确定").Click

          练习4:Flight4a
            要求:
              a.使用分Action的方式录制Flight4a打开被测系统+登录+购票+退出业务流程
              b.为购票实现参数化,让购票执行3次,其他Action执行1次
                日期 起飞城市 到达城市 航班 顾客名称 票数
              c.输出订单号

          Test7005_Flight4a_使用分Action方式录制购票脚本

    ’打开被测系统Action
    SystemUtil.Run "C:Program FilesHPQuickTest Professionalsamplesflightappflight4a.exe","","C:Program FilesHPQuickTest Professionalsamplesflightapp","open"
    ’登录Action
    Dialog("Login").WinEdit("Agent Name:").Set "abcd"
    Dialog("Login").WinEdit("Password:").SetSecure "5a58749062373afbec5deee0cee3732ee3358bca"
    Dialog("Login").WinButton("OK").Click
    Window("Flight Reservation").WaitProperty "enabled", True, 10000
    ’购票Action
    Window("Flight Reservation").ActiveX("MaskEdBox").Click 2,3
    Window("Flight Reservation").ActiveX("MaskEdBox").Type DataTable("日期", dtLocalSheet)
    Window("Flight Reservation").WinComboBox("Fly From:").Select DataTable("起飞城市", dtLocalSheet)
    Window("Flight Reservation").WinComboBox("Fly To:").Select DataTable("到达城市", dtLocalSheet)
    Window("Flight Reservation").WinButton("FLIGHT").Click
    Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select RandomNumber(1, 10)
    Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
    Window("Flight Reservation").WinEdit("Name:").Set DataTable("顾客姓名", dtLocalSheet)
    Window("Flight Reservation").WinEdit("Tickets:").Set "2"
    Window("Flight Reservation").WinButton("Insert Order").Click
    wait 8
    Window("Flight Reservation").WinEdit("Order No:").Output CheckPoint("Order No:")
    Window("Flight Reservation").WinButton("Button").Click
    ’退出Action
    Window("Flight Reservation").Close

      7、Action级别的DataTable参数化,单独让某个Action执行多次
        Action级别:把测试数据存放在某个Action表单中
        Test级别:把测试数据存放在Global表单中
          (1)确定需要参数化的数据
          (2)分Action录制代码
            注意:需要反复执行的步骤录制在一个Action中
          (3)实现Action参数化:
            a.在Keyword View中,点击Value列的<#>
            b.选择Parameter参数,使用默认的DataTable类型
            c.输入参数名称Name或者选择已有的参数
            d.选择Location in DataTable在数据表中的位置:
              --Current Action Sheet(local):把数据存放在Action自己的表单中进行读取
            e.确定
          (4)在Action表单中准备多组测试数据
          (5)设置运行行(必须设置)
            a.在Keyword View中,选择Test Flow(测试流)
            b.在要反复的Action上右键选择Action Call Properties(Action 调用属性)
            c.选择运行方式
              --Run one iteration only:只运行第一行
              --Run on all rows:运行所有数据行
              --Run from row [?] to row [?]:运行指定行,一般用于调试
              注意:设置Global的运行行方式为File->Settings->Run
          (6)Action参数化注意事项(非常重要)
            1) 受影响的数据也需要实现Action参数化
            2) 保持被测系统首尾一致
            3) 数据必须存放在Action自己的表单中
            4) 必须设置运行行

            练习5:Flight4a
              要求:
                a.使用分action的方式录制Flight4a打开被测系统+登录+打开订单+发送传真+退出业务
                b.为打开订单实现参数化,打开订单执行3次,其他Action执行1次
                c.验证打开订单是否成功

            练习6:Flight6
              要求:
                a.使用分Action录制Flight4a打开被测系统+登录+购票+打开订单+退出
                b.为购票实现参数化,实现购票3次,其他Action执行1次
                c.打开订单时使用的订单号为购票生成的订单号
                d.验证打开订单是否成功

              1次 3次 1次
              购票
              登录->购票->退出
              购票

  • 相关阅读:
    Cypress web自动化7-连接器connectors
    Cypress web自动化6- Assertions断言使用(should, expect)
    Cypress web自动化5-table表格元素(别名使用Aliasing)
    Cypress web自动化4-操作页面元素(Actions行为事件)
    Cypress web自动化3- 登录web网站案例脚本
    Cypress web自动化2-pycharm写第一个脚本
    MapReduce实现手机上网流量分析(业务逻辑)
    Cannot initialize Cluster. Please check your configuration for mapreduce.framework.name and the co
    Input path does not exist: file:/.......
    基于Maven引入Hadoop包报Missing artifact jdk.tools:jdk.tools:jar:1.6
  • 原文地址:https://www.cnblogs.com/KalosOwen/p/8642075.html
Copyright © 2020-2023  润新知