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

'阻止鼠标和键盘输入
SystemUtil.BlockInput ''启动计算器程序
'SystemUtil.Run "C:\WINDOWS\system32\calc.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 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 "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

QTP(14)的更多相关文章

  1. Neutron 理解(14):Neutron ML2 + Linux bridge + VxLAN 组网

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  2. 基于MVC4+EasyUI的Web开发框架经验总结(14)--自动生成图标样式文件和图标的选择操作

    在很多Web系统中,一般都可能提供一些图标的选择,方便配置按钮,菜单等界面元素的图标,从而是Web系统界面看起来更加美观和协调.但是在系统中一般内置的图标样式相对比较有限,而且硬编码写到样式表里面,这 ...

  3. Web 在线文件管理器学习笔记与总结(13)重命名文件夹(14)复制文件夹

    (13)重命名文件夹 ① 重命名文件夹通过 rename($oldname,$newname) 实现 ② 检测文件夹名是否符合规范 ③ 检测当前目录中是否存在同名文件夹名称,如果不存在则重命名成功 i ...

  4. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-系统小结

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-系统小结 不知不觉已经过了13讲,(本来还要讲多一讲是,数据验证之自定义验证,基于园友还是对权限这 ...

  5. Android菜鸟的成长笔记(14)—— Android中的状态保存探究(上)

    原文:[置顶] Android菜鸟的成长笔记(14)—— Android中的状态保存探究(上) 我们在用手机的时候可能会发现,即使应用被放到后台再返回到前台数据依然保留(比如说我们正在玩游戏,突然电话 ...

  6. Windows Phone开发(14):数据模板

    原文:Windows Phone开发(14):数据模板 数据模板,如果你仅仅听到这个名词,你一定很迷惑,什么来的?用来干什么的?不急,亲,今天,我们一起来探索一下吧. 用白话文说,数据模板就是用来规范 ...

  7. [.net 面向对象程序设计深入](14)Redis——基础

    [.net 面向对象程序设计深入](14)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...

  8. Java设计模式(14)责任链模式(Chain of Responsibility模式)

    Chain of Responsibility定义:Chain of Responsibility(CoR) 是用一系列类(classes)试图处理一个请求request,这些类之间是一个松散的耦合, ...

  9. leecode刷题(14)-- 有效的字母异位词

    leecode刷题(14)-- 有效的字母异位词 有效的字母异位词 描述: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词. 示例 1: 输入: s = " ...

随机推荐

  1. Vue和其他框架的区别

    原文地址 React React 和 Vue 有许多相似之处,它们都有: 使用 Virtual DOM 提供了响应式 (Reactive) 和组件化 (Composable) 的视图组件. 将注意力集 ...

  2. 在VM虚拟机Windows Server r2上部署安装Microsoft Dynamics CRM 2016 步骤详解(一)

    应公司需求,最近在学微软的Dynamics CRM.在搭建环境的过程中也遇到了一些雷坑,在这里分享一下安装部署过程当中所遇到的一些问题, 安装Microsoft Dynamics CRM 2016的几 ...

  3. VAEs(变分自编码)之keras实践

    VAEs最早由“Diederik P. Kingma and Max Welling, “Auto-Encoding Variational Bayes, arXiv (2013)”和“Danilo ...

  4. BasePage基础页面的封装

    Paget Object设计模式,不多说,但在接触了poium测试库后,个人感觉BasePage都是多余的..但在次还是做个记录 class Page(): def __init__(self, dr ...

  5. 【计算机视觉】【并行计算与CUDA开发】GPU硬编码

    一.OpenCV中的硬编码 OpenCV2.4.6中,已实现利用GPU进行写视频,编码过程由cv::gpu::VideoWriter_GPU完成,其示例程序如下. 1 int main(int arg ...

  6. TP5模型belongsTo和hasOne这两个方法的区别

    在使用tp5模型的ORM的时候出现belongsTo和hasOne都有表示一对一的关系,但是二者并不相同.以下举例说明两者的区别: 首先有user表 字段 id name password字段 然后有 ...

  7. SpringBoot配置文件可存放位置和加载顺序

    使用IDEA创建一个spring初始化项目后.默认的配置文件在resources文件夹下. SpringBoot启动时,会扫描application.properties或application.ym ...

  8. Oracle 中 decode 函数用法(字段A,B, C,A不为空则取A,否则取B,B为空则取C)

    –decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值) SELECT DECODE(TEMP.SCORE, ‘A’, ‘90-100’, ‘B’, ‘80-89’, ‘C’, ...

  9. MySQL优化心得

    一打开科技类论坛,最常看到的文章主题就是MySQL性能优化了,为什么要优化呢? 因为: 数据库出现瓶颈,系统的吞吐量出现访问速度慢 随着应用程序的运行,数据库的中的数据会越来越多,处理时间变长 数据读 ...

  10. 第二周Java课堂作业

    演示一: public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size ...