一、输出值(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 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 "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 Files\HP\QuickTest Professional\samples\flight\app\flight4a.exe","","C:\Program Files\HP\QuickTest Professional\samples\flight\app\","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次
          购票
          登录->购票->退出
          购票

最新文章

  1. 以self-contained方式在Linux上部署ASP.NET Core站点
  2. Sql Server系列:流程控制语句
  3. stanford coursera 机器学习编程作业 exercise 5(正则化线性回归及偏差和方差)
  4. visual studio2010 “类视图”和“对象浏览器”图标
  5. tip use view.isineditmode() in your custom views to skip code when shown in eclipse
  6. iDSDT搞定显卡和声卡 黑苹果不纠结
  7. FireBug 调试JS入门
  8. zookeeper_笔记
  9. e = e || window.event用法细节讨论
  10. JAVA-Servlet-过滤器知识总结
  11. Java基础学习笔记十二 类、抽象类、接口作为方法参数和返回值以及常用API
  12. AspNetCore中使用Ocelot之 IdentityServer4(1)
  13. hashMap源码解析(五)
  14. for in&amp; for each in &amp;for of
  15. Luogu3164 CQOI2014 和谐矩阵 异或高斯消元
  16. element ui里dialog关闭后清除验证条件
  17. 14.会场安排问题(L4)
  18. 朽木第一至三季/全集Deadwood迅雷下载
  19. 【AndroidManifest.xml详解】Manifest属性之sharedUserId、sharedUserLabel
  20. ios NSURLSession使用说明及后台工作流程分析

热门文章

  1. 一些php常用函数积累
  2. dockerfile文件命令详解
  3. 【转帖】K8s-yaml的使用及命令
  4. [官网] 一个很好的 search rpm 或者是deb 包的网站
  5. Kick Start 2019 Round H. Elevanagram
  6. 阿里云ECS云服务器CentOS部署个人网站
  7. Postgresql explain的analyze和buffers选项
  8. 开始写下自己的python的cocos2d, pyglet学习
  9. 关于HA(2.102 -2.103 服务器排障)
  10. 一行python能干什么?