一、输出值(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次
          购票
          登录->购票->退出
          购票

QTP(7)的更多相关文章

  1. QTP(16)

    一.QTP项目(ECShop) 1.ECShop是一个开源免费的一个B2C的电子商务系统,主要用于商家和顾客进行商品交易操作. 2.ECShop分为前台和后台两个子系统: (1)ECShop前台:顾客 ...

  2. QTP(14)

    练习1.Flight4a 要求: a.录制Flight4a登录+退出业务流程 b.使用自定义检查结合Exist属性验证登录是否成功 c.为用户名实现参数化 用户名 Jack 正确 Rose 正确 12 ...

  3. QTP(13)

    练习1:Flight4a 要求: a.录制Flight4a登录+购票+退出业务流程 b.实现登录1次,购票3次,退出1次 c.对Fly From.Fly to.航班实现随机参数化 随机参数化:Rand ...

  4. QTP(12)

    练习:录制两位数加法器加法计算后退出的步骤,对两个加数做随机数参数化,随机数范围是0-50,在计算后获得被测系统计算的结果,判断如果结果等于100,msgbox提示“满分”,如果结果在80和99之间, ...

  5. QTP(10)

    一.VBS语言基础 1.运算符和表达式 (1)运算符 (2)表达式 a.数学表达式:由算术运算符连接,计算结果为数字 b.字符串表达式:由字符串连接符连接,计算结果为字符串 c.条件表达式:由关系运算 ...

  6. QTP(9)

    常用的Windows控件 WinEdit---Set "数据值" SetSecure "加密数值" WinButton---Click WinComboBox- ...

  7. QTP(8)

    一.Action 1.调用Action C:\Program Files\HP\QuickTest Professional\CodeSamplesPlus\Flight_Samples (1)调用A ...

  8. QTP(6)

    一.检查点 1.标准检查点(Standard Checkpoint) 作用:检查对象的属性值是否正确 文本框对象:text 预期值 单选按钮对象:checked ON/OFF 下拉框对象:Select ...

  9. QTP(5)

    一.检查点 1.位图检查点(Bitmap CheckPoint) (1)作用:主要用于检查UI界面,检查页面布局,包括控件位置.大小.颜色.状态等 (2)确定位图检查点的要素: a.检查哪个控件 b. ...

随机推荐

  1. python基础知识(循环语句)

    for循环.while循环.循环嵌套 for 迭代变量 In 对象: 循环体 range(start,end,step) 第一个和第三个可以省略生成一系列的连续整数 start 包括起始值 end  ...

  2. hadoop第一个程序WordCount

    hadoop第一个程序WordCount package test; import org.apache.hadoop.mapreduce.Job; import java.io.IOExceptio ...

  3. mariadb第一章

    1.什么是数据库? 简单的说,数据库就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织,存储的,我们可以通过数据库提供的多种方法来管理数据库里的数 ...

  4. 【并行计算-CUDA开发】CUDA编程——GPU架构,由sp,sm,thread,block,grid,warp说起

    掌握部分硬件知识,有助于程序员编写更好的CUDA程序,提升CUDA程序性能,本文目的是理清sp,sm,thread,block,grid,warp之间的关系.由于作者能力有限,难免有疏漏,恳请读者批评 ...

  5. C++学习笔记-STL

    C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列), lists(链表), 和 ...

  6. Mac下使用sshpass让iterm2支持多ssh登录信息保存

    mac下没有xshell等连接linux服务器的工具,当需要管理的服务器越来越多之后,密码管理就成了一个很头疼的问题,每次都需要去复制粘贴密码,浪费了很多时间,在网上查了不少资料,发现mac下可以使用 ...

  7. fedora使用

    1.更改ip 添加ip和掩码 sudo ifconfig p4p1 172.31.8.7/24 up 添加网关 sudo route add default gw 172.31.8.1   2.远程登 ...

  8. 2019牛客暑期多校训练营(第九场)-D Knapsack Cryptosystem (折半搜索)

    题目链接:https://ac.nowcoder.com/acm/contest/889/D 题意:题意简单,从大小为36的集合中选若干元素使得他们的和为sum. 思路:第一感觉用搜索,复杂度为2^3 ...

  9. 【转帖】安卓的Bionic 简介

    https://blog.csdn.net/yongyu_it/article/details/52574797 google 自己实现了一套libc 的库函数 比glibc 要小一些 占用内存也小. ...

  10. 【LOJ】#3043. 「ZJOI2019」线段树

    LOJ#3043. 「ZJOI2019」线段树 计数转期望的一道好题-- 每个点设两个变量\(p,q\)表示这个点有\(p\)的概率有标记,有\(q\)的概率到祖先的路径上有个标记 被覆盖的点$0.5 ...