QTP自动化测试工具笔记.docx

上传人:b****2 文档编号:16913577 上传时间:2023-04-24 格式:DOCX 页数:22 大小:23.53KB
下载 相关 举报
QTP自动化测试工具笔记.docx_第1页
第1页 / 共22页
QTP自动化测试工具笔记.docx_第2页
第2页 / 共22页
QTP自动化测试工具笔记.docx_第3页
第3页 / 共22页
QTP自动化测试工具笔记.docx_第4页
第4页 / 共22页
QTP自动化测试工具笔记.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

QTP自动化测试工具笔记.docx

《QTP自动化测试工具笔记.docx》由会员分享,可在线阅读,更多相关《QTP自动化测试工具笔记.docx(22页珍藏版)》请在冰豆网上搜索。

QTP自动化测试工具笔记.docx

QTP自动化测试工具笔记

PPT1recording

一、QTP简介

1、QuickTestProfessional

2、关键字驱动功能自动化测试工具

3、QTP的视图:

关键字视图(keywordview)--关键字

专家视图(Expertview)--VBScript

二、录制

设置录制的位置:

Automation--RecordandRunSettings

WindowApplication:

手动启动:

录制桌面上已经存在的被测程序

特征:

1、systemutil.Run

2、补录

自动启动:

录制由QTP打开的指定测试程序\录制由Window启动的指定被测程序

Web:

手动启动:

录制桌面上已经存在的浏览器

注意:

1、将浏览器放到快速启动栏

2、将被测网站设置为首页(浏览器--工具--Internet选项)

3、补录

自动启动:

录制指定网站的被测浏览器

三、QTP的录制回放原理(****)

录制原理:

1、获取被操作对象的属性信息

2、使用唯一的对象名(逻辑名)将对象记录在对象仓库中

3、将对象的全部属性信息记录在对象仓库中

4、标识对象的关键属性信息

5、在脚本中记录该对象和他相应的动作

回放原理:

1、从脚本中获取对象(item字段--控件)

2、在对象仓库中查找该对象,记录该对象的关键属性信息

3、根据获取的关键属性信息去被测程序上查找

4、如果对象的关键属性信息比较一致,按照脚本驱动测试程序

四、将对象添加到对象仓库

1、在对象仓库中添加--AddObjectstoLocal

a.准备好被测程序(显示要添加的对象)

b.进入对象仓库(Resources--ObjectsRepository)

c.点击带加号的按钮(AddObjectstoLocal)

d.出现小手--去点击需要添加的对象(如果对象被覆盖,长按Ctrl键)

e.正确选取需要添加的对象(类型、名称)--OK

2、ActiveScreen

a.选中录制时生成代码

b.QTP左下角的位置切换到ActiveScreen界面

c.查看需要添加的被测对象是否显示(a步骤重新选择代码)

d.选择需要添加的被测对象(右键)--View\AddObjects...

e.确认所添加的对象是否正确--AddtoRepository

f.点击ViewinRepositoty--查看对象仓库,对象是否添加成功

五、对象仓库的类型

1、本地对象仓库--Local

2、共享对象仓库--Shared

本地对象仓库生成的途径:

录制脚本时生成的对象仓库(添加对象到对象仓库)

共享对象仓库生成的途径:

a.将本地对象仓库导出:

ObjectRepository--File--ExportLocalObjects...

b.保存本地对象仓库(.tsr)

c.新建脚本关联对象仓库:

Resources--AssociateRepositories

点击加号按钮添加对象仓库文件--自动识别对象仓库中的Action--双击(箭头按钮)需要关联的Action

d.共享的对象仓库里的对象不能更改

e.如果想更改共享对象仓库里对象的属性--右键需要更改的对象--CopytoLocal

 

PPT2recording

一、认识WindowsWeb常用的控件

二、检查点

1、作用:

检查点--设置预期结果回放脚本--实际结果

如果相等,reporter--Passed

如果不相等,reporter--Failed

2、类型

标准检查点:

检查的是对象的属性

添加方法:

1、Insert菜单

a.录制脚本时,准备被测程序需要添加检查点的对象

b.Insert--CheckPoint--StandardCheckPoint

c.用小手抓取需要添加检查点的控件(Ctrl)

d.确认添加检查点对象的名称、类型

选择需要检查的属性(光标选中此属性)

设置预期值(Constant)

设置超时时间timeout

2、ActiveScreen

a.正确选取当前步骤

b.在ActiveScreen界面--选择需要添加检查点的对象(右键)

c.InsertStandardCheckpoint

d.确认添加检查点对象的名称、类型

选择需要检查的属性(光标选中此属性)

设置预期值(Constant)

设置超时时间timeout

选择当前步骤之前or当前步骤之后

 

PPT3recording

一、多Action

1、代码中实现多Action方法:

CalltoNewAction:

a.Insert--CalltoNewAction

b.设置新添加Action的名字

对新添加Action的描述

复选框--设置Action的种类:

勾选--ReusableAction

不勾选--non-ReusableAction

单选钮--设置新添加Action与之前Action的关系

Attheendoftest--顺序(兄弟)

Afterthecurrentstep--层次(父子)

生成新的Action:

1、每个Action对应拥有自己的sheet页

2、每个Action对应拥有自己的对象仓库

CalltoExistingofAction:

调用已经存在的Action

a.Insert--CalltoExistingofAction

b.选择要调用Action所在的test(脚本)

选择需要调用的可复用的Action

描述该Action

单选钮--设置所调用Action与之前Action的关系

Attheendoftest--顺序(兄弟)

Afterthecurrentstep--层次(父子)

调用已经存在的Action:

1、只能调用可复用的Action

2、调用过来的Action只能以只读的方式使用,不能修改

3、调用过来的Action生成新的种类--外部的Action(External)

CalltoCopyofAction:

拷贝其它脚本的Action

a.Insert--CalltoCopyofAction

b.选择要拷贝Action所在的test(脚本)

选择需要拷贝的Action

描述该Action

单选钮--设置所拷贝Action与之前Action的关系

Attheendoftest--顺序(兄弟)

Afterthecurrentstep--层次(父子)

拷贝已经存在的Action:

1、可以拷贝可复用、不可复用的Action

2、拷贝过来的Action可以进行修改

如果需要调整Action的执行顺序:

a.切换到关键字视图--在左侧的下拉框切换到TestFlow

b.用鼠标拖拽Action--调整其执行顺序

Action的种类:

1、可复用的Action(ReusableAction)

2、不可复用Action(non-ReusableAction)

(3、外部的Action--ExternalAction)

split:

切分Action

切分的标识--切分出来的下一个Action代码的第一行

a.点击splitaciton按钮

b.选择切分出来的两个Action的关系

independentofeachother--顺序(兄弟)

Nested--层次(父子)

分别给两个Action重新命名

三、Action参数化

设置方法:

将参数化的数据放到Action对应的sheet中

打开Action循环开关:

关键字视图(TestFlow)--选中某一Action--右键--Actioncallproperties--Run选项卡

Global:

1、测试数据针对整个脚本

2、循环开关默认是循环所有行

3、File--Settings--Run

Action:

1、测试数据针对当前sheet所对应的Action

2、循环开关默认是循环一次

 

PPT4recording

一、VBS过程

过程:

实现某一功能的代码段,放到sub,或者function中,以便后边的调用

注意:

1、构造无参数过程,在过程名后要写上空括号

2、构造有参数过程,过程名后写的是形式参数,参数之间用,相隔,调用过程时,传递实际参数

3、sub过程没有返回值,function过程有返回值--在过程中将返回值赋值给过程名

二、int、fix、cint、rnd

int(number)

处理规则:

正数--舍掉小数部分,保留整数部分

负数--舍掉小数部分,整数部分-1

fix(number)

处理规则:

正负数一致--舍掉小数部分,保留整数部分

cint(expression)

cint(strint)--string-->int

cint(number)

处理规则:

正负数一致--遵循四舍五入,但是.5特殊

.5处理规则:

正负数一致--返回的数据是离number最近的一个偶数

rnd

作用:

获取0~0.9......随机小数

取消根据次数随机的规则:

randomize

三、VBS的错误处理

1、onerrorresumenext

2、File--Settings--Run--Whenerroroccuresduringrunsession(1、弹出错误提示框2、运行下一个Action3、停止脚本4、运行下一行代码)

四、认识Expertview

1、专家视图中描述控件的方法:

控件的类型("控件的名称")

2、对象与对象之间用.

3、对象与操作之间用.

4、操作用操作数之间用空格

五、检查点的返回值

1、将检查点的参数加括号

2、检查点的返回值类型:

布尔类型

 

PPT5recording

一、取值和赋值

取值:

RawValue

printDataTable.RawValue("ParameterId","sheetId")

参数一:

ParameterID--"列名"|indexindex从1开始

参数二:

SheetID--"表单名"|indexindex从1开始|dtGlobalSheet从Global表单中取值|dtLocalSheet从代码所在的Action对应的表单中取值

printDataTable("ParameterID","SheetID")---RawValue可省略

赋值:

value

value也可以用于取值--用法同RawValue

赋值:

DataTable.Value("ParameterID","SheetID")="NewValue"

无论取值和赋值value均可省略:

DataTable("ParameterID","SheetID")="NewValue"

注意:

赋值过程发生在脚本运行中,所以所赋新值不会更改原先DataTable中的数据,想要查看所赋的新值,在Repoter-Run-timeDataTable

二、数据表的导入导出

导入:

DataTable.Import"FileName"

FileName:

外部Excel表单的文件名以及路径

FileName可以使用相对路径--前提条件:

将Excel文档放到脚本文件夹中

如果Excel、QTP表单个数不一致--以少数为主

DataTable.ImportSheet"FileName","Excel_sheetname","QTP_sheetname"

将Excel里某个表单(参数二)导入到QTP中某张表单(参数三)

注意:

1、导入之后,QTP的表单名称不变

2、导入过程发生在脚本运行中,脚本运行结束,导入进来的数据消失

 

PPT6recording

一、环境变量Environment

1、设置位置:

File--Settings--Environment

2、作用:

实现数据共享的时候使用

3、分类:

内置的环境变量Built-In

用户自定义的环境变量User-defined

内部的Internal:

通过点击加号按钮新添加生成的环境变量

外部的External:

通过共享环境变量的XML文件

4、内置的环境变量的性质:

不能新添加、不能删除、不能修改、不能导出、不能导入、不能在代码中修改其值

常用的内置环境变量:

ActionIteration:

保存的是Action反复到第几次

TestIteration:

保存的是Test反复到第几次

TestName:

保存的是脚本的名称

TestDir:

保存的是脚本的路径

OS:

操作系统

5、用户自定义的环境变量的性质:

Internal:

可以新添加、可以删除、可以修改、可以导出(Export--XML)、可以导入、可以在代码中修改其值

External:

同Built-In

二、随机数RandomNumber

res=RandomNumber(初值,终值)

返回值res:

为初值与终值之间的随机数

ForeachActionIteration---Action(默认)

ForeachTestIteration--Global

Onceperentiretestrun--Test

三、参数化的类型

1、DataTable

2、Environment

3、RandomNumber

四、输出值可以保存的位置

1、DataTable

2、Environment

 

PPT7recording

一、TO&RO

TO:

仓库对象or录制对象

RO:

运行时对象or被测系统上的对象

TO:

录制和编辑的方法:

TO生成:

录制时,通过抓取RO,将对象保存到对象仓库--对象仓库中存在的对象就叫做TO

TO编辑:

1、进入对象仓库,修改仓库对象的属性

2、在代码运行中,通过SetTOProperty进行修改

RO编辑:

1、通过对对象具体的操作(测试)

2、通过编码的方式(开发)

TO的属性值范围大于RO的属性值范围

二、TO的相关函数

1、GetTOProperty

语法:

property_value=object.GetTOProperty("property_name")

作用:

获取仓库对象的某个属性对应的属性值

2、GetTOProperies

语法:

setprops=object.GetTOProperties

作用:

获取某仓库对象GetTOProperies这个函数认为重要的属性对

获取属性对的总数:

props.count

取属性对的属性名和属性值---属性对的编号从0开始

Fori=0toprops.count-1

printprops(i).name&"="&props(i).value

Next

3、SetTOProperty

语法:

object.SetTOProperty"property_name","property_value"

作用:

运行时,修改仓库对象的某个属性的属性值

三、RO的相关函数

语法:

property_value=object.GetROProperty("property_name")

作用:

获取运行时被测软件(RO)上某个对象的属性的属性值

四、描述性编程

1、分类

初级描述性编程(直描)

Description对象描述性编程

2、QTP识别对象的两种机制

a.通过对象仓库识别通过TO寻找和操作RO

b.通过描述性编程通过RO寻找和操作RO(抛弃TO)

第一个RO指的是脚本中的属性对

第二个RO指的是回放脚本时,弹出来的被测软件

3、描述性编程的过程:

a.通过使用objectSPY在被测软件上抓取对象,获取其关键属性(类型classtype名称textattachedtextname索引id)

b.编写脚本:

1、写上被测对象的类型2、在类型后写上一对括号

3、括号里写上至少两对双引号,每对双引号之间用逗号相隔4、双引号内写上描述该对象的属性对--属性对的书写方法:

属性名:

=属性值:

=两边不允许有空格

c.注意操作对象的结构,不要忘了补充操作对象的方法和值

4、初级描述性编程可以解决的问题:

a.对象无法识别的问题

b.如果识别到了相同的对象,使用描述性编程

5、index

编号规则:

将对象编号,并且从0开始

eg:

有5个相同的对象,使用index属性后,将对象分别编号为:

01234

处理规则:

处理完一个相同的对象之后,重新编号

01234

0123

012

01

0

解决此问题:

将index:

=0

6、简化

将对象赋值给变量(set)

With...EndWith

7、描述性编程的属性值,默认为是正则表达式格式

8、Description描述性编程

创建Description对象:

setmydes=Description.Create()

给Description对象赋值一些属性,用来描述控件:

mydes("property_name").value="property_value"

property_value本身是正则表达式格式,如果想取消属性值的正则表达式属性:

mydes("property_name").RegularExpression=False

作用:

a、用来描述对象--方便管理、可以修改属性值的正则表达式格式

b、用作ChildObjects的参数

9、ChildObjects

语法:

setChildO=Object.ChildObjects(mydes)

作用:

取得object这个父对象上的所有满足Description对象描述的子对象,将获取的子对象保存在变量ChildO中,将对象赋值给变量(set)

获取子对象的总数:

Tnum=ChildO.count

遍历操作所有的子对象:

Fori=0toTnum-1

ChildO(i).set"admin"

Next

随机操作其中一个子对象:

Rnum=RandomNumber(0,Tnum-1)

ChildO(Rnum).click

作业:

用Flight3a录制脚本:

登录--订票--发送传真--退出

回放脚本时用Flight4a

 

PPT8recording

一、QTP的录制模式:

1、正常录制Record

2、模拟录制Record--Automation--AnalogRecording

3、低级录制Record--Automation--Low_LevelRecording

正常录制:

录制的是对象(对对象做操作)

模拟录制:

录制的是鼠标的移动轨迹

a.相对于屏幕:

窗口需要发生移动或者需要在2个以上的窗口录制鼠标的移动轨迹

Desktop.RunAnalog"Track1"

b.相对于窗口:

生成的保存鼠标移动轨迹的文件里只保存在窗口内的鼠标移动轨迹

Window("窗口的名称").RunAnalog"Track1"

低级录制:

录制的是对控件操作的精确位置

注意:

1、操作后如果带xy坐标,这个坐标指的是控件所在其父对象上的xy坐标

2、如果操作加密输入框,输入操作为Type,密码明文显示(安全系数不高)

3、将所有被操作的对象识别为WinObject,所有的父对象识别为Window

4、正常录制模式下,无法录制的键盘操作(***)

二、Web系统参数设置

Tools-->WebEventRecordingcofiguration

作用:

细化鼠标的操作

三、ActiveScreen捕获截图级别设置

None:

不捕获任何对象到ActiveScreen中

Min:

捕获每一步操作到的对象以及其父对象

Par:

第一步的时候,捕获被操作对象and其父对象and父对象下所有的子对象,如果接下来的步骤遇到该父对象以及该父对象下的所有子对象,不再捕获

complete:

每一步都捕获被操作对象and其父对象and父对象下的所有子对象

四、虚拟对象

解决问题:

解决回放脚本时,对象无法识别的问题

如果1、添加对象到对象仓库2、正则表达式3、描述性编程

都无法解决对象无法识别的问题,那就是可能是QTP本身无法识别该对象,考虑使用虚拟对象那个

创建过程:

Tools-->VirtualObjects--NewVirtualObject

a.选择该对象所要被虚拟的类型

b.点击MarkObject,用十字型的鼠标选中所要虚拟的对象

c.选择该虚拟对象的父对象(***)

d.给该虚拟对象重新命名,选择所要保存的.vot文件

e.使用该虚拟对象重新录制脚本(***)

虚拟对象管理:

Tools-->VirtualObjects-->VirtualObjectManager

可以新建虚拟对象所要保存的文件,可以删除虚拟对象以及其文件

复用该虚拟对象:

找到保存虚拟对象的文件:

QTP安装目录--dat-->VoTemplate

将该文件夹下保存的.vot文件拷贝到另外机器上的相同文件下,可以实现虚拟对象的复用

五、字符串的加密和解密

字符串的加密:

1、QTP-->Tools-->PasswordEncoder

2、DataTable--将需要加密的字符串书写到DataTable中的单元格内-->选中此单元格点击右键-->Data-->Encrypt(给加密输入框参数化的时候DataTable)

3、res=Crypt.Encrypt(str)--str为需要加密的字符串,res为加密过的字符串(在脚本执行中,需要输入加密的字符串)

解密:

将明文显示的输入框的操作方法更改为:

SetSecure-->将加密过的字符串接到此方法后,运行脚本,密码就显示在明文输入框中

 

PPT9recording

一、Window常用控件的高级测试

1、WinComboBox

select

WinComboBox.select"内容"|WinComboBox.selectindex

index从0开始

随机选择三步骤:

a.获取控件下内容的总数:

方法一Tnum=WinComboBox.GetItemsCount

方法二Tnum=WinComboBox.GetROProperty("itemscount")

b.获取随机数

Rnum=RandomNumber(0,Tnum-1)

‘Rnum=RandomNumber(1,Tnum)

c.进行随机选择

方法一

WinComboBox.selectRnum

方法二

res=WinComboBox.GetItem(index)

index从0开始

获取index对应的下拉框中的内容

res=WinComboBox.GetItem(Rnum)

WinComboBox.select

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1