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

  2、位图检查点(Bitmap Checkpoint)
    作用:检查UI界面,大小、颜色、状态

  3、文本检查点(Text Checkpoint)
    作用:检查被测系统界面显示的文本字符串内容

  4、文本区域检查点(Text area Checkpoint)
    作用:检查某个对象指定区域内的文本字符串内容

    Test6001_Mtours_检查点综合练习

Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "mercury"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "5a56bb903e88a888604dfec9"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 22,10
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").WebList("fromPort").Check CheckPoint("fromPort")
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("mast_flightfinder").Check CheckPoint("mast_flightfinder")
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Check CheckPoint("Find a Flight: Mercury Tours:")
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("sign-off").FireEvent "onmouseover"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("sign-off").Click
Browser("Welcome: Mercury Tours").Page("Sign-on: Mercury Tours").Sync
Browser("Welcome: Mercury Tours").Close

      Mtours
        Mercury 123
        Jack 123456
        Rose abcdef

    练习1:Mtours系统
      要求:a.为登录实现参数化
      注意:在测试时如何知道哪些数据需要实现参数化?
        一般有输入的地方,都可以实现参数化
      Test6002_Mtours_登录参数化

Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set DataTable("userName", dtGlobalSheet)
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure DataTable("password", dtGlobalSheet)
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 15,7
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("sign-off").Check CheckPoint("sign-off")
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("sign-off").FireEvent "onmouseover"
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("sign-off").Click
'Browser("Welcome: Mercury Tours").Page("Sign-on: Mercury Tours").Sync
'Browser("Welcome: Mercury Tours").Close

  

  变量 参数(Parameter)

    练习2:Flight4a
    要求:a.使用参数化的方式打开1-5号订单
      Order No:num
      num=1 2 3 4 5
    Test6003_Flight4a_打开订单参数化

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("num", dtGlobalSheet)
Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click

  

    练习3:Flight4a
      要求:

      a.录制Flight4a购票业务
      b.为顾客Mercury购票2张票
        为顾客Rose购买3张票
        为顾客Jack购票5张票

    Test6004_Flight4a_顾客Tickets参数化

Window("Flight Reservation").WinButton("Button").Click
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").WinButton("OK").Click
Window("Flight Reservation").WinEdit("Name:").Set DataTable("Name", dtGlobalSheet)
Window("Flight Reservation").WinEdit("Tickets:").Set DataTable("Tickets", dtGlobalSheet)
Window("Flight Reservation").WinButton("Insert Order").Click
Window("Flight Reservation").WinButton("Button").Click

  

    TM
      我去使用TM,我要登录到系统上,我是用的账号是123456@qq.com 123456
      你去使用TM,你要登录到系统上,你是用的账号是abcdefg@qq.com 123456
      他去使用TM,他要登录到系统上,他是用的账号是######@qq.com 123456

    操作:登录操作
      输入用户名
      输入密码
      确定登录

二、参数化(DataTable参数化)
  1、应用场景:使用多组数据测试同一个业务流程

  2、DataTable参数化就是使用DataTable表格中的数据替换脚本中的常量数据,常量数据是录制时使用的数据

  3、实现方式:
    在DataTable表中准备多行测试数据,代码在运行时,QTP会自动读取DataTable表中的数据,DataTable中的一行控制脚本运行一次(DataTable中有几行数据,脚本就会运行几次)

  4、在使用DataTable参数化时,脚本执行一次称为一次迭代(Iteration)/一次反复

  5、DataTable参数化的步骤:
    1) 确定要做DataTable参数化的数据,如登录时的用户名、密码,如购票时的日期、城市、航班等...
    2) 录制业务流程代码(可以根据测试用例录制)
    3) 实现参数化的步骤(做参数化)
      a.在Keyword View关键字视图中,点击需要做参数化对象的Value列中的<#>按钮
      b.在参数化配置对话框中,选择Parameter(参数)单选钮,选择参数类型为DataTable类型
        --DataTable类型:把测试数据存放在DataTable表单中
        --Environment类型:把测试数据存放在环境变量中
        --Random Number类型:随机选择一个数字作为参数
      c.输入Name:填写参数名称,如果DataTable中没有该参数,就会自动创建,如果有该参数,就直接使用该参数中的数据
      d.Location in DataTable:选择数据存放在DataTable的哪个表单
        --Global Sheet:全局表单,默认的,脚本中的每个Action都可以使用全局表单中的数据,全局表单中的数据行控制脚本的运行次数
        --Current Action Sheet(Local):每个脚本中可以有多个Action,每个Action都有单独的表单,Current Action Sheet指的是当前表单
    4) 在DataTable中准备多行数据

  6、DataTable参数化的注意事项(非常重要)
    (1)受影响的参数也需要实现参数化
      如:对两位数加法器第一个数和第二个数实现了参数化,检查点中的预期值也需要实现参数化
      如:对Mtours的用户名实现了参数化,密码也必须实现参数化
    (2)代码执行最后一个步骤后,被测系统的状态允许代码执行第一个步骤(被测系统的界面必须保持首尾一致)
      首:第一句代码执行之前被测系统的状态
      尾:最后一句代码执行完后被测系统的状态

      如:Flight4执行购票后,需要清空界面才能再次执行购票操作
    (3)在DataTable中准备多组测试数据时,要注意:
      1) 不能有多于的行,黑线为有效行
      2) 彻底删除行、列:选中行、列右击选择Edit(编辑)->Delete(删除)
      3) 加密数据:选中需要加密的数据,右击选择Data(数据)->Encrypt(加密)
      4) 保存以0开头的数据,在0前写个英文状态的单引号,如:'0001
      5) 保留多为数字,需要在数据前写个英文状态 的单引号,如:'894208493878976

      练习4:Flight4a
        要求:
          a.录制Flight4a登录+购票+退出业务
          b.为购票实现参数化
            日期     起飞城市    到达城市
            121219   Denver     London
            111119    Paris      Zurich
            101019   Portland    Frankfurt
          c.验证购票是否成功
      Test6005_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 "5a57023fd93ceeab350314dd1d61d3f306ca43fd"
Dialog("Login").WinButton("OK").Click
'等待一会儿,让购票页面加载出来后再执行下面的操作
wait 8
Window("Flight Reservation").ActiveX("MaskEdBox").Type DataTable("日期", dtGlobalSheet)
Window("Flight Reservation").WinComboBox("Fly From:").Select DataTable("起飞城市", dtGlobalSheet)
Window("Flight Reservation").WinComboBox("Fly To:").Select DataTable("到达城市", dtGlobalSheet)
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select DataTable("航班", dtGlobalSheet)
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").ActiveX("Threed Panel Control").Check CheckPoint("Threed Panel Control")
Window("Flight Reservation").WinButton("Button").Click
Window("Flight Reservation").Close

   

        手动启动
          打开->登录->购票->关闭
          打开->登录->购票->关闭
          打开->登录->购票->关闭

        购票
          打开->登录->购票->关闭
        购票

          自动启动
          QTP打开->登录->购票->退出
          登录->购票->退出

        自动启动
          QTP 打开->登录->购票(购票页面)
          登录->购票

三、输出值(Output Value)
  1、应用场景:
    1) 关心被测系统的数据
    2) 将被测系统生成的数据使用在后面的步骤中
      如:把购票生成的订单号,使用在打开订单时

  2、输出值就是把被测系统实际运行时的数据输出的技术

  3、输出值的类型:
    1) 标准输出值
    2) 文本输出值
    3) 文本区域输出值

  4、标准输出值(Standard output value)
    1) 作用:输出RO的当前属性值
    2) 确定输出值的要素:
      a.确定要输出值的控件对象
      b.确定要输出的属性名称
      c.确定插入的位置
      练习5:两位数加法器
        要求:

          a.为两位数加法器实现参数化
          b.验证计算结果
          c.输出实际结果
      Test6006_两位数加法器_输出值

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").VbEdit("Text3").Output CheckPoint("Text3_2")
VbWindow("Form1").VbButton("重置(C)").Click

  

      练习6:Flight4a
        要求:

          a.录制Flight4a登录+打开订单+退出业务
          b.为打开订单实现参数化,打开1-5号订单
          c.为每张订单建立输出值

      Test6007_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 "5a5726e3f37c82993b8ccae5f8d399c38b0b705d"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").WaitProperty "enabled", True, 10000
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 "1"
Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click
Window("Flight Reservation").ActiveX("MaskEdBox").Output CheckPoint("MaskEdBox")
Window("Flight Reservation").WinComboBox("Fly From:").Output CheckPoint("Fly From:")
Window("Flight Reservation").WinComboBox("Fly To:").Output CheckPoint("Fly To:")
Window("Flight Reservation").WinEdit("Flight No:").Output CheckPoint("Flight No:")
Window("Flight Reservation").WinEdit("Departure Time:").Output CheckPoint("Departure Time:")
Window("Flight Reservation").WinEdit("Arrival Time:").Output CheckPoint("Arrival Time:")
Window("Flight Reservation").WinEdit("Airline:").Output CheckPoint("Airline:")
Window("Flight Reservation").WinEdit("Name:").Output CheckPoint("Name:")
Window("Flight Reservation").WinEdit("Tickets:").Output CheckPoint("Tickets:")
Window("Flight Reservation").WinRadioButton("First").Output CheckPoint("First")
Window("Flight Reservation").WinRadioButton("Business").Output CheckPoint("Business")
Window("Flight Reservation").WinRadioButton("Economy").Output CheckPoint("Economy")
Window("Flight Reservation").WinEdit("Price:").Output CheckPoint("Price:")
Window("Flight Reservation").WinEdit("Total:").Output CheckPoint("Total:")
Window("Flight Reservation").WinEdit("Order No:").Output CheckPoint("Order No:")
Window("Flight Reservation").Close

  

QTP(6)的更多相关文章

  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(7)

    一.输出值(Output Value) 1.应用场景: 1) 关心被测系统的数据 2) 将被测系统生成的数据作为后面步骤的输入 2.输出值就是输出被测系统中实际运行时的数据的一种技术 a.运行中对象的 ...

  9. QTP(5)

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

随机推荐

  1. NDK学习笔记-C语言

    本文简要回顾了C语言的一些注意事项和理解细节,不再赘述C语言的所有语法 头文件 头文件作为引入文件,在编译的时候,加载到源代码,参与编译 在VS2013中可以看到,当引入头文件时候,只能看到函数的声明 ...

  2. maven运行工程

    1.cd到工程目录下,执行打包命令-----mvn package 2.cd到工程的target目录执行运行命令 java -classpath myapp-1.0-SNAPSHOT.jar cn.m ...

  3. 不要轻易使用ffmpeg的audio_device_number来设置音频设备

    最近项目中需要使用ffmpeg实现录音功能,使用的ffmpeg-3.4.4的库,根据源代码dshow.c中的定义 { "audio_device_number", "se ...

  4. 【LOJ】#3083. 「GXOI / GZOI2019」与或和

    LOJ#3083. 「GXOI / GZOI2019」与或和 显然是先拆位,AND的答案是所有数字为1的子矩阵的个数 OR是所有的子矩阵个数减去所有数字为0的子矩阵的个数 子矩阵怎么求可以记录每个位置 ...

  5. js报Uncaught SyntaxError: Unexpected token <错误 解决方法

    js报Uncaught SyntaxError: Unexpected token <错误 解决方法 错因 js被shiro的拦截器拦下,访问不了 #shiro的配置 shiro: hash-a ...

  6. mongodb 批量替换内容的语句

    // 注意上面的集合要和下面的集合名称相同 db.rand_web_test.find( { 'content': /^.*要替换的字符串.*$/ } ).forEach( function (ite ...

  7. Linux磁盘挂载、分区、扩容操作

    本文最早发布于 Rootrl's blog 注:以下操作系统环境为CentOS7 基本概念 在操作前,首先要了解一些基本概念 磁盘 在Linux系统中所有的设备都会以文件的形式存储.设备一般保存在/d ...

  8. 安装kubenetes-遇到的问题总结

    # 5.修改docker的cgroup驱动(不需要操作)# kubelet# 看到最后一行:error: failed to run Kubelet: failed to create kubelet ...

  9. Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Chinese_PRC_CI_AI" in the equal to operation.

    Executed as user: NT AUTHORITY\SYSTEM. Cannot resolve the collation conflict between "Chinese_P ...

  10. 《深入实践C++模板编程》之二——模板类

    1.类的模板的使用 类,由于没有参数,所以没有模板实参推导机制. #include <stdexcept> template<typename T> class my_stac ...