QTP(5)
一、检查点
1、位图检查点(Bitmap CheckPoint)
(1)作用:主要用于检查UI界面,检查页面布局,包括控件位置、大小、颜色、状态等
(2)确定位图检查点的要素:
a.检查哪个控件
b.确定检查的区域
c.确定检查点插入的位置
d.确定超时时间
(3)插入位图检查点的步骤:
注意:位图检查点建议在录制时添加,不建议在Active Screen 添加
a.录制时操作到需要添加位图检查点的步骤
b.点击QTPInsert菜单栏->Checkpoint->Bitmap Chckpoint(位图检查点)
c.在弹出的Object Selection中确定对象,OK
d.在Bitmap Checkpoint properties位图检查点属性对话框中,设置位图检查点的属性:
--check entire bitmap:检查整张图
--check only selected area:检查指定的区域(常用),需要使用十字光标画一个区域
Save only selected area:只保存选择的区域,节省空间
--tolerance:设置容差
GRB:色差
Pix:像素差
--设置超时时间
--OK
练习3:Mtours
要求:
a.录制Mtours系统登录+退出业务
b.使用位图检查点验证登录是否成功
Test5004_Mtours_位图检查点
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "Mercury"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "5a55854e6241b30568d3a4c5"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 18,9
Browser("Welcome: Mercury Tours").Page("Find a Flight: Mercury").Image("mast_flightfinder").Check CheckPoint("mast_flightfinder")
2、文本检查点Text Checkpoint
(1)作用:检查被测系统中出现的文本字符串内容是否等于预期值,比如提示信息
(2)确定文本检查点的要素:
a.确定待检查的控件对象,哪个文本,文本内容本身就是一个对象
b.确定预期值
c.确定检查点插入的位置
d.确定超时时间
(3)添加文本检查点的步骤:
方式一:在录制时添加
a.录制时操作到需要添加检查点的步骤
b.点击QTP菜单栏Insert->Checkpoint->Text Checkpoint(文本检查点),使用手型鼠标 点击需要检查的文本
c.在Object Selection对话框中确认对象,一般都是static类型,OK
d.在Text checkpoint properties属性框中设置检查点属性
--填写预期值
--选择匹配方式:
Match Case:匹配大小写
Ignore Spaces:忽略空格
Exact Match :精确匹配
Text Not displayed:文本未显示
--设置超时时间
--OK
方式二:录制后通过Active Screen截图视图添加
注意:需要检查的文本必须在截图视图能够显示才能使用该方法
a.在代码中定位一个步骤,能够在Active Screen显示待检查的文本
b.在Active Screen中,在待检查的文本上右击选择 Insert Text Checkpoint(插入文本检查点)
c.确认文本对象,设置属性
--Before current step:当前步骤之前
--After current step:当前步骤之后
当前步骤指a步骤
d.如果检查的位置错误,把检查点代码剪切到正确位置
练习4:Flight4a
要求:
a.为Agent Name对象添加文本检查点
b.不输入任何信息,点击"OK"按钮,为提示信息添加文本检查点
Test5005_Flight4a_文本检查点_登录提示信息
Dialog("Login").Static("Agent Name:").Check CheckPoint("Agent Name:")
Dialog("Login").WinButton("OK").Click
Dialog("Login").Dialog("Flight Reservations").Static("Please enter agent name").Check CheckPoint("Please enter agent name")
Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click
Dialog("Login").WinButton("Cancel").Click
练习5:Flight4a
要求:
a.没有输入任何信息时,检查提示信息是否正确
b.用户名输入3位字符,检查提示信息是否正确
c.输入正确的用户名,不输入密码,检查提示信息是否正确
d.输入正确的用户名,输入错误的密码,检查提示信息是否正确
Test5006_Flight4a_文本检查点_登录提示信息
Dialog("Login").WinButton("OK").Click
Dialog("Login").Dialog("Flight Reservations").Static("Please enter agent name").Check CheckPoint("Please enter agent name")
Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click
Dialog("Login").WinEdit("Agent Name:").Set "123"
Dialog("Login").WinButton("OK").Click
Dialog("Login").Dialog("Flight Reservations").Static("Please enter agent name").Check CheckPoint("Agent name must be at least 4 characters long.")
Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click
Dialog("Login").WinEdit("Agent Name:").Set "1234"
Dialog("Login").WinEdit("Password:").SetSecure "5a55ae03aa62d710b5585eb7b35de1331b66"
Dialog("Login").WinButton("OK").Click
Dialog("Login").Dialog("Flight Reservations").Static("Please enter agent name").Check CheckPoint("Incorrect password. Please try again")
Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click
Dialog("Login").WinButton("Cancel").Click
练习6:Flight3a 第一个版本
要求:
a.录制Flight3a的登录+退出业务
b.为登录界面添加位图检查点
c.使用录制好的代码对Flight4a进行回归测试
Test5002_Flight4a_位图检查点
Dialog("Login").WinEdit("Agent Name:").Set "abcd"
Dialog("Login").WinEdit("Password:").SetSecure "5a557b6befda237b3116c69eb42d8e165954086a"
Dialog("Login").Check CheckPoint("Login")
Dialog("Login").Check CheckPoint("Login_2")
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").Close
练习7:Flight3a 第一个版本
要求:
a.录制Flight3a登录+退出业务
b.对登录后的界面添加位图检查点
c.使用录制好的代码对Flight4a进行回归测试
练习8:Flight4a
要求:
a.验证输入错误的日期时的提示信息
b.验证输入过期的日期时的提示信息
c.验证Tickets输入15时的提示信息
d.验证打开2000号订单时的提示信息
Test5007_Flight4a_文本检查点_购票+打开订单提示信息
Dialog("Login").WinEdit("Agent Name:").Set "abcd"
Dialog("Login").WinEdit("Password:").SetSecure "5a55b4da0ad581e9c066279366a164369cbecf62"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").ActiveX("MaskEdBox").Type "343256"
Window("Flight Reservation").WinComboBox("Fly From:").Select "Frankfurt"
Window("Flight Reservation").Dialog("Flight Reservations").Static("Invalid year Entered.").Check CheckPoint("Invalid year Entered. The year must be greater than 2018 and less than 2038.")
Window("Flight Reservation").Dialog("Flight Reservations").WinButton("确定").Click
Window("Flight Reservation").ActiveX("MaskEdBox").Type micBack
Window("Flight Reservation").ActiveX("MaskEdBox").Type micBack
Window("Flight Reservation").ActiveX("MaskEdBox").Type micBack
Window("Flight Reservation").ActiveX("MaskEdBox").Type micBack
Window("Flight Reservation").ActiveX("MaskEdBox").Type micBack
Window("Flight Reservation").ActiveX("MaskEdBox").Type micBack
Window("Flight Reservation").ActiveX("MaskEdBox").Type "111111"
Window("Flight Reservation").WinComboBox("Fly From:").Select "London"
Window("Flight Reservation").Dialog("Flight Reservations").Static("Invalid year Entered.").Check CheckPoint("Valid flight dates are after 01/10/18")
Window("Flight Reservation").Dialog("Flight Reservations").WinButton("确定").Click
Window("Flight Reservation").ActiveX("MaskEdBox").Drag 48,5
Window("Flight Reservation").WinObject("Flight Schedule:").Drop 3,61
Window("Flight Reservation").ActiveX("MaskEdBox").Type "111119"
Window("Flight Reservation").WinComboBox("Fly To:").Select "Frankfurt"
Window("Flight Reservation").WinButton("FLIGHT").Click
Window("Flight Reservation").Dialog("Flights Table").WinButton("OK").Click
Window("Flight Reservation").WinEdit("Name:").Set "abcd"
Window("Flight Reservation").WinEdit("Tickets:").Set "15"
Window("Flight Reservation").WinButton("Insert Order").Click
Window("Flight Reservation").Dialog("Flight Reservations").Static("Invalid year Entered.").Check CheckPoint("Only ten tickets may be ordered at one time")
Window("Flight Reservation").Dialog("Flight Reservations").WinButton("确定").Click
Window("Flight Reservation").WinEdit("Tickets:").Set "1"
Window("Flight Reservation").Static("Name:").Check CheckPoint("Name:")
Window("Flight Reservation").Static("Tickets:").Check CheckPoint("Tickets:")
Window("Flight Reservation").WinButton("Insert Order").Click
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 "2000"
Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click
Window("Flight Reservation").Dialog("Open Order").Dialog("Flight Reservations").Static("Order number 2000 does").Check CheckPoint("Order number 2000 does not exist")
Window("Flight Reservation").Dialog("Open Order").Dialog("Flight Reservations").WinButton("确定").Click
Window("Flight Reservation").Dialog("Open Order").WinButton("Cancel").Click
Window("Flight Reservation").Close
3、文本区域检查点Text area Checkpoint
(1)作用:检查被测系统中指定的矩形区域内显示的文本字符串是否与预期一致
(2)确定检查点的要素:
a.确定检查的控件对象
b.确定检查哪个区域内的文本
c.确定预期值
d.确定插入位置
e.确定超时时间
(3)输入文本区域检查点的步骤:
注意:文本区域检查点只能在录制时添加
文本区域检查点不支持web系统
a.录制时操作到需要添加检查点的位置
b.在QTP中点击Insert->Checkpoint->Text area Checkpoint(文本区域检查点),使用十字光标画一个区域,区域内是需要检查的文本
c.在文本区域检查点属性框中设置检查点的属性,设置预期值、设置匹配方式
(4)文本检查点和文本区域检查点的区别
a.检查的控件对象不一样:
文本:文本文身
区域:存放文本的对象
b.支持的系统不一样
文本:支持C/S和B/S系统
区域:不支持B/S系统
c.插入的时间不同
文本:录制时、后都能添加
区域:只能录制时添加
练习9:Flight4a
要求:a.为Flight4a的登录页面添加文本 区域检查点,检查三个按钮的文本是否正确
Test5008_Flight4a_文本区域检查点_登录按钮
Dialog("Login").Check CheckPoint("Login")
Dialog("Login").WinButton("Cancel").Click
练习10:Flight4a
要求:a.为购票页面的Tickets对象添加文本区域检查点,把代码在Flight3a中进行回放
Test5009_Flight4a_文本区域检查点_Tickets
Dialog("Login").WinEdit("Agent Name:").Set "abcd"
Dialog("Login").WinEdit("Password:").SetSecure "5a55c80870a470f74aeda19c4b33008ca46246cd"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").WinObject("Order Information:").Check CheckPoint("Order Information:")
Window("Flight Reservation").Close
练习11:Flight4a
要求:
a.录制Flight4a登录+购票+打开订单+发送传真+退出业务
b.为登录后窗口中的图片添加位图检查点
c.为打开订单窗口中的Customer Name添加文本检查点
d.为发送传真界面的四个按钮添加文本区域检查点
e.为发送传真是否成功添加标准检查点
Test5010_Flight4a_检查点综合练习
Dialog("Login").WinEdit("Agent Name:").Set "abcd"
Dialog("Login").WinEdit("Password:").SetSecure "5a55d14da54352506630863a43a42b60077e741f"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").Static("Static").Check CheckPoint("Static")
Window("Flight Reservation").WinButton("Button").Click
Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Customer Name").Check CheckPoint("Customer Name")
Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"
Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set "5"
Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click
Window("Flight Reservation").WinMenu("Menu").Select "File;Fax Order..."
Window("Flight Reservation").Dialog("Fax Order No. 5").Check CheckPoint("Fax Order No. 5")
Window("Flight Reservation").Dialog("Fax Order No. 5").ActiveX("MaskEdBox").Type "1111111111"
Window("Flight Reservation").Dialog("Fax Order No. 5").WinButton("Send").Click
Window("Flight Reservation").ActiveX("Threed Panel Control").Check CheckPoint("Threed Panel Control")
Window("Flight Reservation").Close
手工测试:
预置条件:被测系统已打开
01
1 输入"第一个数"为:99
2 输入"第二个数"为:-99
3 点击"计算"按钮
4 点击"重置"按钮
预期值:0
预置条件:被测系统已打开
02
1 输入"第一个数"为:0
2 输入"第二个数"为:56
3 点击"计算"按钮
4 点击"重置"按钮
预期值:56
预置条件:被测系统已打开
03
1 输入"第一个数"为:77
2 输入"第二个数"为:17
3 点击"计算"按钮
4 点击"重置"按钮
预期值:94
------------------------------------------------------------------
自动化测试:
预置条件:被测系统已打开(QTP打开)
01
1 输入"第一个数"为:num1
2 输入"第二个数"为:num2
3 点击"计算"按钮
检查点ex
4 点击"重置"按钮
预期值:
num1=99 0 77
num2=-99 56 17
ex=0 56 94
二、参数化(DataTable参数化)
1、应用场景:使用多组测试数据测试同一个业务流程
2、DataTable参数化就是使用DataTable中的参数替代录制好的脚本中的常量的技术
3、实现方式:
练习12:两位数加法器
要求:a.为两位数加法器实现参数化
Test5011_两位数加法器_参数化
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").VbButton("重置(C)").Click
练习13:Flight4a
要求:a.为登录实现参数化
uname:1234 abcd a78p
passwd:mercury MERCURY Mercury
Test5012_Flight4a_登录参数化
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 DataTable("uname", dtGlobalSheet)
Dialog("Login").WinEdit("Password:").SetSecure DataTable("passwd", dtGlobalSheet)
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").Check CheckPoint("Flight Reservation")
Window("Flight Reservation").Close
4、总结检查点失败可能的原因:
a.检查的控件、属性、预期值错误
b.检查点插入的位置错误
d.超时时间太短
e.需求变更
f.被测系统的缺陷
QTP(5)的更多相关文章
- 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 ...
随机推荐
- layui select 联动渲染赋值不了数据的问题
今天用 layui做select的时候,数据老是看不到,而且联动的数据是对不上的,看了网上一堆是 最后要用 form.render('select'); 这个是必须的, 但是我用了还是这样,其实是la ...
- VMware一些概念
物理机:真真实实存在的机器,有操作系统.内存.硬盘.网卡. 虚拟机:vmware虚拟出来的,和物理机一样有操作系统.内存.硬盘.网卡. 虚拟机的网络连接的桥接模式.NAT模式.仅主机模式简单解说: ...
- C++调用windowsAPI
1.需要#include <windows.h>http://zhidao.baidu.com/link?url=yOeEGkhe3-kVI6rCqyNp14IjTyXBkQhLeNt-X ...
- J-流浪西邮之寻找火石碎片 【经典背包变形】
题目来源:2019 ACM ICPC Xi'an University of Posts & Telecommunications School Contest 链接:https://www. ...
- 11.把文本文件的数据导入到Hive表中
先在hive里面创建一个表 create table mydb2.t3(id int,name string,age int) row format delimited fields terminat ...
- dev控件学习笔记之----CxGrid2
一.cxgrid 表格自适应列宽和增加注脚注和 for i := 0 to ado_lxr_cx.FieldCount - 1 do begin //如果是数字,则注脚求合 ...
- 终于有人把“TCC分布式事务”实现原理讲明白了
所以这篇文章,就用大白话+手工绘图,并结合一个电商系统的案例实践,来给大家讲清楚到底什么是 TCC 分布式事务. 首先说一下,这里可能会牵扯到一些 Spring Cloud 的原理,如果有不太清楚的同 ...
- spring-boot war包部署(二)
环境 jdk 8 tomcat 8.5 sts 4.4.2 maven 3.6.1 背景 有时候,服务器已经有了,我们必须要使用 war 包进行部署,所以需要 spring boot 支持打包和部署成 ...
- DLL导出函数
使用DEF文件从DLL导出 模块定义(.def)文件时包含一个或多个描述DLL各种属性的Module语句的文本文件.如果不使用_declspec(dllexport)关键字导出DLL的函数,则DLL需 ...
- STL priority_queue 常见用法详解
<算法笔记>学习笔记 priority_queue 常见用法详解 //priority_queue又称优先队列,其底层时用堆来实现的. //在优先队列中,队首元素一定是当前队列中优先级最高 ...