QTP(14)
练习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)的更多相关文章
- Neutron 理解(14):Neutron ML2 + Linux bridge + VxLAN 组网
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- 基于MVC4+EasyUI的Web开发框架经验总结(14)--自动生成图标样式文件和图标的选择操作
在很多Web系统中,一般都可能提供一些图标的选择,方便配置按钮,菜单等界面元素的图标,从而是Web系统界面看起来更加美观和协调.但是在系统中一般内置的图标样式相对比较有限,而且硬编码写到样式表里面,这 ...
- Web 在线文件管理器学习笔记与总结(13)重命名文件夹(14)复制文件夹
(13)重命名文件夹 ① 重命名文件夹通过 rename($oldname,$newname) 实现 ② 检测文件夹名是否符合规范 ③ 检测当前目录中是否存在同名文件夹名称,如果不存在则重命名成功 i ...
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-系统小结
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-系统小结 不知不觉已经过了13讲,(本来还要讲多一讲是,数据验证之自定义验证,基于园友还是对权限这 ...
- Android菜鸟的成长笔记(14)—— Android中的状态保存探究(上)
原文:[置顶] Android菜鸟的成长笔记(14)—— Android中的状态保存探究(上) 我们在用手机的时候可能会发现,即使应用被放到后台再返回到前台数据依然保留(比如说我们正在玩游戏,突然电话 ...
- Windows Phone开发(14):数据模板
原文:Windows Phone开发(14):数据模板 数据模板,如果你仅仅听到这个名词,你一定很迷惑,什么来的?用来干什么的?不急,亲,今天,我们一起来探索一下吧. 用白话文说,数据模板就是用来规范 ...
- [.net 面向对象程序设计深入](14)Redis——基础
[.net 面向对象程序设计深入](14)Redis——基础 很长一段时间没更新博客了,坚持做一件事,真不是件容易的事,后面我会继续尽可能的花时间更新完这个系列文章. 因这个系列的文章涉及的范围太大了 ...
- Java设计模式(14)责任链模式(Chain of Responsibility模式)
Chain of Responsibility定义:Chain of Responsibility(CoR) 是用一系列类(classes)试图处理一个请求request,这些类之间是一个松散的耦合, ...
- leecode刷题(14)-- 有效的字母异位词
leecode刷题(14)-- 有效的字母异位词 有效的字母异位词 描述: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词. 示例 1: 输入: s = " ...
随机推荐
- 刀塔OMG塔防1.23单机版使用方法
使用方法1.确保魔兽的版本为1.26(低版本会报错),如果版本不对用附件中的版本转换器转一下2.把 omg.w3x 复制到 魔兽的MAPS文件夹 WarcraftIII 游戏根目录\Maps3.双击运 ...
- PJzhang:如何缓解Mimikatz从Windows2008 R2内存中读取域控密码?
猫宁!!! 参考: https://xz.aliyun.com/t/4180 https://www.anquanke.com/post/id/156299 https://www.cnblogs.c ...
- 一个提高照片质量的网站和一个改变照片DPI的方法
相信很多童鞋都有遇到过,碰到一张很喜欢的图片,想用来做背景什么的,蛋似--因为画质太AV了怕引起误会,所以不敢使用!很气--!! 这时大神就会跳出来说,画质不好?PS是用来吃si的么! 我:我才不会用 ...
- 【机器学习】ICA算法简介
ICA算法的研究可分为基于信息论准则的迭代估计方法和基于统计学的代数方法两大类,从原理上来说,它们都是利用了源信号的独立性和非高斯性.基于信息论的方法研究中,各国学者从最大熵.最小互信息.最大似然和负 ...
- prometheus 监控 hadoop + Hbase + zookeeper
1. run JMX exporter as a java agent with all the four daemons. For this I have added EXTRA_JAVA_OPTS ...
- 2019牛客暑期多校训练营(第七场)-H Pair(数位dp)
题目链接:https://ac.nowcoder.com/acm/contest/887/H 题意:给定A,B,C,求有多少对(x,y)满足x&y>C或者x^y<C,其中1< ...
- 【1.1】mysql frm文件丢失(ibd文件丢失)
[1]故障模拟准备环境 这里以innodb为例 [1.1]配置参数 开启独立表空间 innodb_file_per_table; [1.2]构建测试数据 create database test; c ...
- sql sever 授予用户create table权限
sql server2008的用户权限管理及其细致.此处我也不知道是表扬还是批评.所以经常会遇到各种“对不起您没有**权限”的问题. 本次遇到的问题机器常见.在尝试修改数据库结构时提示"没有 ...
- SQLite基础-6.运算符
目录 SQLite 运算符 1. 运算符 2. 算数运算符 3. 比较运算符 4. 逻辑运算符 SQLite 运算符 1. 运算符 首先,问大家运算符是什么?运算符在很多领域均用使用.它也分很多中,常 ...
- mysql查询出数据更新到另一张表
公司今天有个需求,大体意思就是把一个表的玩家游戏场数统计出来,然后赋值到另一张表的字段上,说白了就是两张表,但是查询出来的玩家账号和次数是多条,尝试很多种写法都没用,最后用了最笨的方式解决. -- - ...