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

    一、检查点
      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 FilesHPQuickTest Professionalsamplesflightappflight4a.exe","","C:Program FilesHPQuickTest Professionalsamplesflightapp","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 FilesHPQuickTest Professionalsamplesflightappflight4a.exe","","C:Program FilesHPQuickTest Professionalsamplesflightapp","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
    

      

  • 相关阅读:
    Python 3.8六大新功能
    不小心删除/etc/passwd文件怎么办
    python干货三例(需基础) ​​​​
    程序员喜爱的七款热门Linux系统介绍(附下载地址)
    零代码时代即将到来?没那么简单
    来说说成功的云迁移的10个经验教训
    日本已开始提供10Gbps万兆光纤接入服务
    微软:将向安卓和苹果iOS平台推出杀毒软件Defender
    有jQuery背景,该如何用AngularJS编程思想?
    自用迷你版的Deferred
  • 原文地址:https://www.cnblogs.com/KalosOwen/p/8642033.html
Copyright © 2011-2022 走看看