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

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

    '阻止鼠标和键盘输入
    SystemUtil.BlockInput
    
    ''启动计算器程序
    'SystemUtil.Run "C:WINDOWSsystem32calc.exe"
    ''1、关闭计算器程序
    ''SystemUtil.CloseProcessByName "calc.exe"
    'SystemUtil.CloseProcessByWndTitle "计算器"
    ''启动两位数加法器
    'SystemUtil.Run "D:两位数加法器V2.exe"
    ''2、关闭两位数加法器
    ''SystemUtil.CloseProcessByName "两位数加法器V2.exe"
    'SystemUtil.CloseProcessByWndTitle "测试技术"
    ''3、关闭任务管理器
    ''SystemUtil.CloseProcessByName "taskmgr.exe"
    ''Test14002_SystemUtil对象
    
    
    '4、启动Mtours系统
    SystemUtil.Run "iexplore.exe","http://localhost:8080/mtours/servlet/WelcomeServlet"
    Dim a,b,c,d
    a=10
    b=20
    c=a+b
    'msgbox c
    d=b-a
    '解锁鼠标和键盘输入
    SystemUtil.UnblockInput

      DataTable("列名","表单名")

    一、SystemUtil对象
      System:系统
      Util:工具


      1、CloseDescendantProcesses方法
        Close:关闭
        Descendant:后代,子代
        Processes:进程
        (1)作用:结束由QTP启动的所有进程,无论是自动启动还是手动启动的被测系统进程都会被关闭,包括QTP的测试结果报告
        (2)语法:SystemUtil.CloseDescendantProcesses
        (3)注意:没有参数、没有返回值


      2、CloseProcessByName方法
        (1)作用:结束指定名称的进程
        (2)语法:
          SystemUtil.CloseProcessByName "进程名称"
          SystemUtil.CloseProcessByName "flight4a.exe"
        (3)说明:进程名称在电脑任务管理器中查看

      3、CloseProcessByWndTitle方法
        (1)作用:关闭指定标题的窗口的进程
        (2)语法:
          SystemUtil.CloseProcessByWndTitle "窗口标题"
        (3)说明:窗口标题在任务管理其任务列中查看

      4、Run方法
        (1)作用:运行一个应用程序,一般用于启动被测系统
        (2)语法:
          a.启动windows程序
            SystemUtil.Run "程序的启动地址"
            SystemUtil.Run "D:两位数加法器.exe"
          b.启动web程序
            SystemUtil.Run "浏览器","URL地址"
            SystemUtil.Run "iexplore.exe","http://localhost:8080/Mtours"

      5、运行代码时防止干扰
        (1)语法:
          SystemUtil.BlockInput 阻止鼠标和键盘输入
          SystemUtil.UnBlockInput 解锁鼠标和键盘输入
        (2)注意:
          不能再代码中有Inputbox、msgbox、死循环语句


    二、Function方法、函数
      wait GetRoProperty Set Select
      登录


      1、Function是VBS提供的自定义函数,根据需求把需要的步骤、功能封装到一个Function中,需要使用这些步骤或功能时,调用Function就可以实现


      2、应用场景
        a.复用代码
        b.结构化代码
          需求1:测试Flight4a购票功能
            业务流程:登录->购票->关闭系统
          需求2:测试Flight4a打开订单功能
            业务路程:登录->购票->打开订单->关闭

          需求1:测试Flight4a登录功能
            操作步骤:

              1、打开系统
              2、输入用户名(参数化)
              3、输入密码(参数化)
              4、点击登录
              5、关闭
            数据分析:

              有效数据,无效数据
              有效数据->结果:登录成功
              无效数据->提示错误信息
              数据1:abc -> 标记:小于4位
              数据2: 123 ->标记:小于4位
              数据3:*#$ ->标记:小于4位
              数据4:jack->标记:正确

            Function 检查1(小于4位)

            End Function
            Function 检查2(正确)

            End Function 

          Test14002_无参无返回值_Function案例

    'F11
    myfun
    myfun()  '建议在调用时加上括号
    Call myfun
    Call myfun()
    
    Function myfun()
    	Dim uname
    	uname=Inputbox("请输入您的姓名:")
    	msgbox uname&",欢迎学习QTP!"
    End Function


      3、Function的特点:不调用不执行,调用时才执行


      4、不带参数也没有返回值(相当于去银行取钱不带卡,没有密码,也不需要把钱取回来)
        例子:去银行取钱
          Function getMoney()
            取钱
          End Function
        (1)定义:
          Function 函数名称()
            函数体
          End Function
        (2)Function函数的调用方式:
          函数名称
          函数名称() 建议使用该方式调用
          Call 函数名称
          Call 函数名称()
          练习2:两位数加法器
            要求:
              a.录制两位数加法器的打开系统+加法+退出业务流程
              b.把打开系统、加法、退出分别封装在3个Function中
              c.实现打开系统1次、加法2次、退出1次
          Test14003_无参无返回值_两位数加法器

    '打开系统
    openA()
    '加法
    myadd()
    '加法
    myadd()
    '退出
    myclose()
    
    '1、封装打开被测系统的代码为一个Function
    Function openA()
    	SystemUtil.Run "D:两位数加法器V2.exe","","D:","open"
    End Function
    '2、封装加法的代码为一个Function
    Function myadd()
    	VbWindow("Form1").VbEdit("Text1").Set "10"
    	VbWindow("Form1").VbEdit("Text2").Set "20"
    	VbWindow("Form1").VbButton("计算(J)").Click
    	VbWindow("Form1").VbButton("重置(C)").Click
    End Function
    '3、封装退出的代码为一个Function
    Function myclose()
    	VbWindow("Form1").VbButton("退出(E)").Click
    	VbWindow("Form1").Dialog("退出提示").WinButton("确定").Click
    End Function

          练习3:Flight4a
            要求:
              a.录制Flight4a登录+购票+打开5号订单+退出业务流程
              b.把代码分别封装在4个Function中
              c.实现登录->打开5号订单->购票->打开5号订单->退出


      5、带参数无返回值的Function(相当于去银行取钱,带上卡,有密码,不需要把钱拿回来)
        (1)应用场景
          a.多次调用Function时,每次执行函数体需要使用不同的数据
          b.把相似的多段代码封装为一个Function时,需要传入一个标记,标记函数体代码执行哪个分支
            Test14004_有参无返回值_Function案例

    'myadd 1,2,30
    'myadd "10","20","40"
    Dim m
    m=200
    myadd m,90,m+100
    
    Function myadd(num1,num2,num3)
    	msgbox num1+num2+num3
    End Function

        (2)定义:
          Function 函数名称(形参1,形参2,......)
            函数体
          End Function
          定义时注意:
            a.形参可以有0个和多个
            b.所有的形参需要在函数中使用
            c.形参不需要使用Dim定义
        (3)调用:
          函数名称 实参1,实参2,......
          调用时注意:
            a.传入的实参数据格式和顺序必须和形参一致
            b.不要随意给参数加括号
            c.实参可以由变量和表达式提供数据
              Test14005_有参无返回值_两位数加法器

    '打开系统
    openA()
    '加法
    myadd 39,50'  39+50
    '加法
    myadd 99,-10           '99+(-10)
    '退出
    myclose()
    
    '1、封装打开被测系统的代码为一个Function
    Function openA()
    	SystemUtil.Run "D:两位数加法器V2.exe","","D:","open"
    End Function
    '2、封装加法的代码为一个Function
    '功能:实现两位加法计算
    '参数:第一数、第二个数
    '返回值:无
    Function myadd(num1,num2)
    	VbWindow("Form1").VbEdit("Text1").Set num1
    	VbWindow("Form1").VbEdit("Text2").Set num2
    	VbWindow("Form1").VbButton("计算(J)").Click
    	VbWindow("Form1").VbButton("重置(C)").Click
    End Function
    '3、封装退出的代码为一个Function
    Function myclose()
    	VbWindow("Form1").VbButton("退出(E)").Click
    	VbWindow("Form1").Dialog("退出提示").WinButton("确定").Click
    End Function

              把练习3进行修改
            d.实现登录->打开5号订单->购票->打开15号订单->退出

      6、有参数有返回值的Function(相当于去银行取钱,拿着卡,有密码,把钱取回来)
        Test14006_有参有返回值_Function案例

    Dim result
    'result=sum(10,20)
    result=sum(99,-40)
    msgbox result
    
    Function sum(num1,num2)
      sum=num1+num2
    End Function

        (1)应用场景:函数体中的数据或者结果需要在调用函数的位置使用,将数据或者结果返回给调用方
          如:购票Function生成的订单号,需要返回,提供给打开订单Function使用
        (2)定义:
          Function 函数名称(形参1,形参2,......)
            函数体
            函数名称=返回值
          End Function
        (3)调用:
          变量=函数名称(实参1,实参2,......)
          无返回值:wait 5
          有返回值:GetRoProperty("text")
          练习4:Flight4a
            要求:
              a.录制Flight4a的登录+购票+打开订单+退出业务流程
              b.把代码封装在4个Function中
              c.把购票Function返回一个订单号,打开订单时传入购票Function返回的订单号
              d.为购票Function传入一个参数是顾客姓名
              e.实现登录->购票->退出->登录->打开订单->退出
          Test14007_有参有返回值_Flight4a

    '登录
    login()
    '购票
    No=buy("Rose")
    '退出
    logOut()
    '登录
    login()
    '打开订单
    open No
    '退出
    logOut()
    
    
    '1、登录Function
    '功能:登录系统
    '参数:无
    '返回值:无
    Function login()
    	SystemUtil.Run "C:Program FilesHPQuickTest Professionalsamplesflightappflight4a.exe","","C:Program FilesHPQuickTest Professionalsamplesflightapp","open"
    	Dialog("Login").WinEdit("Agent Name:").Set "Jack"
    	Dialog("Login").WinEdit("Password:").SetSecure "5a66f92bec1ae518f4798f2fa2ab424dbc5bd891"
    	Dialog("Login").WinButton("OK").Click
    	wait 8
    End Function
    
    '2、购票Function
    '功能:购票
    '参数:顾客姓名
    '返回值:订单号
    Function buy(cName)
    	Window("Flight Reservation").ActiveX("MaskEdBox").Type "111119"
    	Window("Flight Reservation").WinComboBox("Fly From:").Select "Frankfurt"
    	Window("Flight Reservation").WinComboBox("Fly To:").Select "Los Angeles"
    	Window("Flight Reservation").WinButton("FLIGHT").Click
    	Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select "20334   FRA   12:12 AM   LAX   07:23 PM   AA     $112.20"
    	Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
    	Window("Flight Reservation").WinEdit("Name:").Set cName
    	Window("Flight Reservation").WinButton("Insert Order").Click
    	wait 6
    	buy=Window("Flight Reservation").WinEdit("Order No:").GetROProperty("text")
    
    	Window("Flight Reservation").WinButton("Button").Click
    End Function
    
    '3、打开订单Function
    '功能:打开订单
    '参数:订单号
    '返回值:无
    Function open(orderNo)
    	Window("Flight Reservation").WinButton("Button_2").Click
    	Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"
    	Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set orderNo
    	Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click
    End Function
    
    '4、退出Function
    '功能:退出系统
    '参数:无
    '返回值:无
    Function logOut()
    	Window("Flight Reservation").Close
    End Function

          练习5:两位数加法器
            要求:
              a.录制两位数加法器加法+退出业务流程
              b.给加数实现随机参数化,使用自定义检查点检查计算结果是否正确,再退出系统
              c.将自定义检查点封装到一个Function中,把两个加数作为参数传入
                Function check(num1,num2)
                  res=Text3.GetROProperty("text")
                  ex=num1+num2
                  if res=ex then
                    相等
                  else
                    不相等

                End Function

  • 相关阅读:
    route命令
    自动删除n天前日志
    ss命令
    rcp命令
    crontab,at命令,常见问题
    locate,nl命令
    kill,killall,top,free,vmstat,iostat,watch命令
    [转载]memcached stats 命令
    Swift学习笔记
    C++移位运算符
  • 原文地址:https://www.cnblogs.com/KalosOwen/p/8810813.html
Copyright © 2011-2022 走看看