QTP(4)
一、常见回放错误
1、The "XXX" XXX object was not found in the Object Repository.(在对象库中未找到对象)
......not found......
方法三:通过Active Screen添加对象
a.在代码中定位一个步骤,要求能够在Active Screen(截图视图)中显示出待添加的对象
b.在Active Screen中选中要添加的对象,右击选择View / Add Objects(查看/添加对象)
c.在Object Properties中点击"Add to Repository"(添加到对象库)按钮
d.如果要在对象库中查看添加的对象,就点击View in Repository按钮
e.如果要对对象进行操作,就切换到Keyword View关键字视图中:
--找到需要添加的位置的上一个对象
--右击上个对象,选择Insert new step(插入新的步骤)选项,选择要操作的对象(刚添加到对象库中的对象)
--如果操作的对象需要参数,就在Value列中输入参数
Blue Skies Airlines$40$108$5:03 pm$;
Blue Skies Airlines$41$127$7:07 pm$;
Pangea Airlines$42$136$9:11 pm$;
Unified Airlines$43$155$11:15 pm$
练习1:Flight4a
要求:a.录制Flight4a的购票业务流程(手动启动)
Test4001_Flight4a_添加航班对象
Window("Flight Reservation").Move 421,140
Window("Flight Reservation").ActiveX("MaskEdBox").Type "111119"
Window("Flight Reservation").WinComboBox("Fly From:").Select "Frankfurt"
Window("Flight Reservation").WinComboBox("Fly To:").Select "London"
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select "13584 FRA 08:00 AM LON 08:45 AM SR $162.30"
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").WinButton("Button").Click
练习2:Mtours
要求:
a.录制Mtours系统的登录+购票+退出业务(录制时使用默认的数据,只需要填写First Name 、Last Name、Number)
b.注意:Mtours是web系统
a.启动服务
b.选择web插件
Test4002_Mtours_添加对象
录制步骤:
1 输入用户名:mercury
2 输入密码:123
3 点击"Sign-In"按钮
选择起飞城市:London
选择到达城市:Paris
4 点击"Continue"按钮
TM
登录-选择商品-添加购物车-结算-付款-查看订单-退出
登录
选择商品
添加购物车
if 是结算
付款
else
调用结算代码
2、......match......
原因:QTP对象库中的对象属性无法匹配被测系统上的一个对象
具体是什么原因导致的
(1)由于版本升级,被测系统的对象进行了修改
解决方案:
a.把升级后的版本中的对象添加到对象库中
b.再把代码修改为新的对象
(2)被测系统未打开
a.360杀毒软件阻止了
b.检查Record and Run Settings是否设置正确
d.代码的第一行是否为SystemUtil.Run
(3)被测系统打开了多个
a.运行前没有关闭已经打开的被测系统
b.Record and Run Settings中指定了多个路径
(4)被测系统的界面不对,代码的顺序不对
二、QTP的原理简化
1、录制:封装对象(TO)、记录脚本
(1)获取操作的控件对象的所有属性
(2)使用唯一的名称封装到对象库中
(3)存储所有的属性
(4)标记关键属性
(5)在代码中记录测试对象、操作、使用的数据
2、回放:识别对象(RO)、操作对象
(1)获取Item列中的对象名称
(2)到对象库中找到该名称的对象
(3)使用对象库中的对象关键属性与被测系统中的对象对比,识别出该对象
(4)按照脚本来操作该对象
3、TO:Test Object,对象库中的对象,可以修改也可以查看
4、RO:Run time Object,运行时对象,只能查看不能修改
三、Object Spy
1、对象探测器,可以查看对象的属性以及属性值
2、使用方法:
a.打开Object Spy(Tools->Object Spy)
b.打开被测系统,显示出要操作的RO
c.点击Object Spy上的手型按钮,使用手型鼠标点击RO,就可以查看RO的属性
注意:如果RO被遮挡,就按住Ctrl把RO操作显示出来,再释放Ctrl键
四、检查点
1、应用场景:对测试用例中的预期结果进行检查,从而验证被测系统的功能是否正确
2、QTP实现检查点的原理:
1) 录制时:把预期数据放在测试代码的合适位置,生成一句检查点的代码
2) 回放时:QTP自动捕获被测系统生成的实际数据,和代码中的预期数据对比,对比一致,在结果报告中记录Passed,反之记录Failed
3、检查的分类
(1)标准检查点:检查对象的属性值是否正确
(2)位图检查点:检查对象的UI界面,颜色、大小、像素....
(3)文本检查点:检查本文对象
(4)文本区域检查点:对指定区域内的文本进行检查
(5)表检查点
(6)XML检查点
(7)数据库检查点......
两位数加法器的测试步骤:
a.打开被测系统
b.输入第一个数:29
c.输入第二个数:9
d.点击"计算"按钮
检查点:
对象:结果框
属性:Text
预期值:38
e.退出系统
4、标准检查点(Standard Checkpoint) 重点
(1)作用:检查RO的属性值是否与预期值一致
(2)确定标准检查点的要素:
a.确定检查的控件对象
b.确定属性名称
c.确定预期值
d.确定检查点的位置
e.确定检查点的超时时间
(3)插入标准检查点的步骤:
方式一:在录制时插入
a.录制时操作到需要添加检查点的步骤
b.点击QTP菜单栏Insert->Checkpoint->Standard Checkpoint
c.使用手型鼠标点击需要检查的对象
d.在弹出的Object Selection中选择对象,确定
e.在弹出的Checkpoint Properties(检查点属性)对话框中设置属性:
-- 勾选要检查的属性
-- 填写预期结果
-- 设置超时时间
-- 确定
(4)常用的属性:
1) text :记录控件中的文本
2) enabled:记录控件是否可用,True:代表可用,False:代表不可用
3) checked:记录复选框或单选按钮是否处于选中的状态,ON:代表选中,OFF:代表未选中
4) items count:记录控件选项的个数(下拉框、列表、按钮组)
5) all items:记录控件中的每个选项
6) selection:记录被选中的值
7) visible:记录控件是否显示
练习3:两位数加法器
要求:
a.录制两位数加法器的加法过程
b.验证计算结果是否正确
确定要素:
a.确定检查的控件对象:结果框
b.确定属性名称:text
c.确定预期值:38
d.确定检查点的位置:点击计算
e.确定检查点的超时时间:不需要
Test4003_两位数加法器_标准检查点
VbWindow("Form1").VbEdit("Text1").Set "-66"
VbWindow("Form1").VbEdit("Text2").Set "9"
VbWindow("Form1").VbButton("计算(J)").Click
VbWindow("Form1").VbEdit("Text3").Check CheckPoint("Text3")
VbWindow("Form1").Close
练习4:计算器
要求:
a.录制计算器的计算过程
b.验证计算结果是否正确
Test4004_计算器_标准检查点
Window("计算器").WinButton("5").Click
Window("计算器").WinButton("+").Click
Window("计算器").WinButton("6").Click
Window("计算器").WinButton("=").Click
Window("计算器").WinEdit("Edit").Check CheckPoint("Edit")
Window("计算器").Close
练习5:Flight4a
要求:
a.录制Flight4a登录+退出业务
b.验证登录是否成功
Test4005_Flight4a_标准检查点_验证登录是否成功
Dialog("Login").WinEdit("Agent Name:").Set "mercury"
Dialog("Login").WinEdit("Password:").SetSecure "123456"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").Check CheckPoint("Flight Reservation")
Window("Flight Reservation").Close
练习6:Flight4a
要求:
a.录制Flight4a登录+购票+打开订单+退出业务
b.验证购票是否成功
c.验证打开订单是否成功
Test4006_Flight4a_标准检查点_验证购票+打开订单是否成功
Dialog("Login").WinEdit("Agent Name:").Set "abcd"
Dialog("Login").WinEdit("Password:").SetSecure "5a548dbbe32dd50b8d06f0a3a3fc7a2bb35d054a"
Dialog("Login").WinButton("OK").Click
wait 6
Window("Flight Reservation").ActiveX("MaskEdBox").Type "111119"
Window("Flight Reservation").WinComboBox("Fly From:").Check CheckPoint("Fly From:")
Window("Flight Reservation").WinComboBox("Fly From:").Select "Frankfurt"
Window("Flight Reservation").WinComboBox("Fly To:").Check CheckPoint("Fly To:")
Window("Flight Reservation").WinComboBox("Fly To:").Select "London"
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select "13596 FRA 03:12 PM LON 03:57 PM SR $160.00"
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Window("Flight Reservation").WinEdit("Name:").Set "abcd"
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").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"
Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set "10"
Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click
Window("Flight Reservation").WinEdit("Order No:").Check CheckPoint("Order No:")
Window("Flight Reservation").Close
练习7:Flight4a
要求:
a.录制Flight4a系统的登录+购票+退出业务
b.登录后验证Flights按钮为不可用状态
c.输入日期、起飞城市、到达城市后验证Flights按钮为可用状态
d.点击Insert Order按钮后,验证First、Economy舱位是否被选中
QTP(4)的更多相关文章
- QTP(16)
一.QTP项目(ECShop) 1.ECShop是一个开源免费的一个B2C的电子商务系统,主要用于商家和顾客进行商品交易操作. 2.ECShop分为前台和后台两个子系统: (1)ECShop前台:顾客 ...
- QTP(14)
练习1.Flight4a 要求: a.录制Flight4a登录+退出业务流程 b.使用自定义检查结合Exist属性验证登录是否成功 c.为用户名实现参数化 用户名 Jack 正确 Rose 正确 12 ...
- QTP(13)
练习1:Flight4a 要求: a.录制Flight4a登录+购票+退出业务流程 b.实现登录1次,购票3次,退出1次 c.对Fly From.Fly to.航班实现随机参数化 随机参数化:Rand ...
- QTP(12)
练习:录制两位数加法器加法计算后退出的步骤,对两个加数做随机数参数化,随机数范围是0-50,在计算后获得被测系统计算的结果,判断如果结果等于100,msgbox提示“满分”,如果结果在80和99之间, ...
- QTP(10)
一.VBS语言基础 1.运算符和表达式 (1)运算符 (2)表达式 a.数学表达式:由算术运算符连接,计算结果为数字 b.字符串表达式:由字符串连接符连接,计算结果为字符串 c.条件表达式:由关系运算 ...
- QTP(9)
常用的Windows控件 WinEdit---Set "数据值" SetSecure "加密数值" WinButton---Click WinComboBox- ...
- QTP(8)
一.Action 1.调用Action C:\Program Files\HP\QuickTest Professional\CodeSamplesPlus\Flight_Samples (1)调用A ...
- QTP(7)
一.输出值(Output Value) 1.应用场景: 1) 关心被测系统的数据 2) 将被测系统生成的数据作为后面步骤的输入 2.输出值就是输出被测系统中实际运行时的数据的一种技术 a.运行中对象的 ...
- QTP(6)
一.检查点 1.标准检查点(Standard Checkpoint) 作用:检查对象的属性值是否正确 文本框对象:text 预期值 单选按钮对象:checked ON/OFF 下拉框对象:Select ...
- QTP(5)
一.检查点 1.位图检查点(Bitmap CheckPoint) (1)作用:主要用于检查UI界面,检查页面布局,包括控件位置.大小.颜色.状态等 (2)确定位图检查点的要素: a.检查哪个控件 b. ...
随机推荐
- docker容器内存和CPU使用限制
docker容器内存和CPU使用限制 示例如下 sudo docker run --name seckill0 -p 8080:8080 -m 1024M --cpus=0.2 -d seckill: ...
- python之selenium三种等待方法
前提: 我们在做Web自动化时,有的时候要等待元素加载出来,才能操作,不然会报错 1.强制等待 2.隐式等待 3.显示等待 内容: 一,强制等待 这个比较简单,就是利用time模块的sleep的方法来 ...
- Python爬虫:scrapy 的运行流程和各模块的作用
scrapy的运行流程 爬虫 -> 起始URL封装Request -> 爬虫中间件 -> 引擎 -> 调度器(Scheduler): 缓存请求, 请求去重 调度器 -> ...
- MySQL知识篇-nmon监控
说明1:监控MySQL服务器资源不止一种方式,这种nmon监控图形化.历史记录查询笔记方便,便于MySQL优化后,对比其效率不同,资源利用率不同. 说明2:摘抄自https://www.cnblogs ...
- JavaScript 3种内置对象
前面我们学了对象,如何创建对象及使用对象. 内置对象不需要实例化,就可以使用. 可以通俗地理解,在内存里的东东是对象,也就是实例化好的.在磁盘里的东东是类,需要实例化才能使用.实例化后的东东在内存里. ...
- [CF544E]Remembering Strings_状压dp
E. Remembering Strings 题目大意: You have multiset of n strings of the same length, consisting of lowerc ...
- 内网和wifi同时存在
1.注意都要用管理员身份运行 2.将以下代码编写为.bat文件,然后以管理员身份运行此文件 route delete 0.0.0.0 route delete 10.10.0.0 route dele ...
- linux下vi编辑器常用命令
最近折腾云主机centOS,不得不接触到各种命令,特别是vi编辑器. 时常悔恨当时没好好听金老伯的linux课,导致现在操作命令用的十分生疏,甚至跳转行首行尾都要查一查才知道. 所以〒▽〒有了下面这篇 ...
- Linux系列(0):入门之Linux版本说明以及用户登录与切换
你知道你登录时所在目录吗? 知道根目录下有哪些子目录吗? 知道如何切换用户吗? 知道如何添加用户吗? 如果你不知道,那就可以了解一下本章节啦! 前言:你知道Linux有多少发行版吗,如下图所示: 1. ...
- #undef取消宏定义
如果你想定义这个宏那就#define X 如果你不想让你已经#define X的宏在其他地方由于引入这个包含宏定义的.h文件而引起一些编译问题,那你就#undef X掉,就这么简单. 举个简单的例子: ...