【自动化测试工具】QTP/UFT入门

【自动化测试工具】QTP/UFT入门准备工作:QTP11.5安装教程:http://www.iquicktest.com/qtp-uft-11-5-download.html注: QuickTestPro(QTP)11.5后更名为UnifiedFunctionalTesting(UFT)1、安装后打开QTP,勾选Webadd-in,进入QTP后File-New-Test。2、选择File菜单下New

大家好,又见面了,我是你们的朋友全栈君。

准备工作:

QTP11.5安装教程:http://www.iquicktest.com/qtp-uft-11-5-download.html

注: QuickTest Pro(QTP)11.5后更名为UnifiedFunctional Testing(UFT)

1、安装后打开QTP,勾选Web add-in,进入QTP后File-New-Test。

【自动化测试工具】QTP/UFT入门

2、选择File菜单下New-Test。

【自动化测试工具】QTP/UFT入门

选择GUI Test,输入Name“第一个脚本”,Create。

【自动化测试工具】QTP/UFT入门

3、打开IE,进入百度首页www.baidu.com

4、使用Tools菜单下的ObjectSpy。

【自动化测试工具】QTP/UFT入门

5、点击手型按钮,点击后鼠标变为手型,再点击浏览器上的“百度一下”按钮。

【自动化测试工具】QTP/UFT入门
【自动化测试工具】QTP/UFT入门

6、正常识别结果如图:

【自动化测试工具】QTP/UFT入门

未能识别结果如图:

【自动化测试工具】QTP/UFT入门

如果未能识别对象:

1、检查QTP版本、浏览器版本、操作系统版本,QTP安装目录“\help”下的QTP_PAM.pdf或UFT_PAM.pdf文件提供了支持的操作系统、插件版本、web-addin支持的浏览器及版本、支持的其他HP工具及版本等信息。

1.1、例如测试WEB时,可以从这个PDF文档里得出支持的组合如XPsp3+QTP11+IE8,Win7+UFT11.5+IE9,UFT11.53+Chrome30,不支持组合如QTP11+FireFox27。

1.2、QTP11官方提供了IE9补丁,安装后可以识别IE9对象。

1.3、64位系统下的IE也分32位和64位,例如QTP11测试64位IE,还需要64位补丁。

QTP11补丁:http://blog.csdn.net/zzxxbb112/article/details/6968418

QTP11.5补丁:http://www.iquicktest.com/uft-qtp11-5-patches.html

 

2、检查IE是否加载了BHOmanagerClass。IE设置-Internet选项-程序-管理加载项-所有加载项。如果BHOmanager Class是未启用状态,改为启用。

【自动化测试工具】QTP/UFT入门

如果所有加载项中没有BHOmanager Class,打开开始菜单-HP Software-HP Unified Functional Testing-Tools-AdditionalInstallation Requirements,勾选“配置Internet Explorer 设置”,运行。

【自动化测试工具】QTP/UFT入门

2.1、FireFox和Chrome同样需要检查插件是否安装并启用。
FireFox附加组件-扩展中应有Unified Functional Testing Extension。
Chrome工具-扩展程序中应有Unified Functional Testing Agent。

3、以管理员身份运行QTP。

4、如果仍不能识别,尝试关闭其他程序、关闭杀毒软件,先打开QTP后打开IE再识别。

第一个脚本:

1、打开QTP,加载Web add-in。

2、打开IE,进入百度首页www.baidu.com

3、打开QTP本地对象库,打开Resources菜单下的ObjectRepository

【自动化测试工具】QTP/UFT入门

4、添加对象到本地对象库。

Object菜单下的Add Object to Local

【自动化测试工具】QTP/UFT入门

点击百度输入文本框。

【自动化测试工具】QTP/UFT入门

点击OK后,就出现在对象库了。

【自动化测试工具】QTP/UFT入门
【自动化测试工具】QTP/UFT入门

选中wd对象,使用View菜单下的Highlight  in Application,如果浏览器中的输入框闪烁说明QTP能正确定位对象。

【自动化测试工具】QTP/UFT入门

以相同步骤添加“百度一下”按钮

 

5、刷新Toolbox以显示新添加的对象。

【自动化测试工具】QTP/UFT入门

刷新后界面

【自动化测试工具】QTP/UFT入门

6、拖拽wd对象到右侧编辑区(或双击wd对象):

【自动化测试工具】QTP/UFT入门

在Set后输入参数:

【自动化测试工具】QTP/UFT入门

7、拖拽“百度一下”对象到编辑区(或双击对象)

【自动化测试工具】QTP/UFT入门

8、运行脚本。

Run菜单下的Run。

【自动化测试工具】QTP/UFT入门

点击Run

【自动化测试工具】QTP/UFT入门

运行后结果:

【自动化测试工具】QTP/UFT入门

代码结构:

父对象Class(“父对象Name”).子对象Class(“子对象Name”).方法 [参数]

【自动化测试工具】QTP/UFT入门


实例:对象库如何工作:

1、添加“百度一下”按钮到对象库(参考“第一个脚本”1-4步),使用Highlight可以定位对象。如图,“百度一下”对象的name属性是“百度一下”。

【自动化测试工具】QTP/UFT入门

2、修改“百度一下”对象的name属性为“百度一下修改”,并将“Enable Smart Identification”的Value改为False。再使用Highlight,QTP提示错误“不能在应用中找到选择的对象”。

【自动化测试工具】QTP/UFT入门

【自动化测试工具】QTP/UFT入门

3、打开IE的开发者人员工具(F12),如图,使用鼠标形按钮选择“百度一下”按钮。选择后HTML代码定位到相应元素。修改“百度一下”按钮元素的value值为“百度一下修改”。

【自动化测试工具】QTP/UFT入门

修改前代码:

<inputclass=”bg s_btn” id=”su”οnmοuseοut=”this.className=’bg s_btn'”οnmοusedοwn=”this.className=’bg s_btn s_btn_h'”type=”submit”value=”百度一下/>

修改后代码:

<inputclass=”bg s_btn” id=”su”οnmοuseοut=”this.className=’bg s_btn'”οnmοusedοwn=”this.className=’bg s_btn s_btn_h'”type=”submit”value=”百度一下修改/>

修改后页面:

【自动化测试工具】QTP/UFT入门

修改后在对象库中选择“百度一下”对象使用Highlight,QTP又能正确定位了。

 

4、修改“百度一下”按钮位置,如图:

【自动化测试工具】QTP/UFT入门

修改后在对象库中选择“百度一下”对象使用Highlight,能正确定位。

 

5、复制“百度一下”按钮代码,在页面上再添加一个按钮,修改后如图

【自动化测试工具】QTP/UFT入门

修改后在对象库中选择“百度一下”对象使用Highlight,能正确定位。QTP提示错误:有多个符合描述的对象。

【自动化测试工具】QTP/UFT入门

添加界面上两个“百度一下”按钮到对象库,现在对象库里有三个“百度一下”按钮对象,对比属性,只有ordinal identifier部分不一样。

界面只有一个按钮时添加的对象Type,Value值是None

【自动化测试工具】QTP/UFT入门

界面有两个个按钮时添加的对象Type,Value值分别是”index,1”和”index,2”

【自动化测试工具】QTP/UFT入门
【自动化测试工具】QTP/UFT入门

对象库工作模型:

1、添加对象时:

【自动化测试工具】QTP/UFT入门

1.1、QTP Spy被测软件被选中的对象,获取对象的属性集合和对象类型。

1.2、按照Object Identification中相应对象类型的设置,筛选属性集合后存入对象库。

1.3、打开Tools菜单下Object Identification,如图,以WebButton为例。

【自动化测试工具】QTP/UFT入门

【自动化测试工具】QTP/UFT入门

2、运行时:

【自动化测试工具】QTP/UFT入门

2.1、如运行到第二行。

【自动化测试工具】QTP/UFT入门

QTP读取对象库中Class是WebButton,name是“百度一下”的对象,获取属性集合(TO)。

2.2、获取被测软件上的对象集合。

2.3、获取第一个对象的属性集合(RO)。对比RO和TO。

2.4、如果属性值不一致,获取第二个WebButton对象的属性集合后对比。如果属性值一致,则触发WebButton对象的方法。

关于录制:

使用录制后可以看出录制自动完成了添加对象到对象库和在编辑区输入脚本(对象、方法和参数)的过程。但录制经常有步骤缺失的问题,比如实际点击某个页面对象A但录制结束后对象库中没有对象A,编辑区也没有相关代码。不补全脚本就Run就会报错了。

使用QTP帮助文档:

在编辑区选中Browser(“”).Page(“”).WebEdit(“”)下的Set 按F1,帮助文档会自动定位到Web> WebEdit Object > Methods > Set Method,帮助文档提供了语法、参数说明、返回类型和例子,查看Example可以看到代码示例。

【自动化测试工具】QTP/UFT入门

【自动化测试工具】QTP/UFT入门

点击WebEdit Object,可以看到WebEdit对象的说明、方法和属性,

【自动化测试工具】QTP/UFT入门【自动化测试工具】QTP/UFT入门【自动化测试工具】QTP/UFT入门


检查点

1、新建一个脚本,在百度知道(http://zhidao.baidu.com/)页添加关键字输入框和搜索答案对象,添加后如图:

【自动化测试工具】QTP/UFT入门

输入以下脚本:

【自动化测试工具】QTP/UFT入门

2、执行后打开对象库,选择”word”对象使用Highlightin Application,在搜索后的百度页面仍能定位。

3、使用Object Spy查看搜索后页面的文本框,查看value属性,值为“QTP”。删除文本框内容后使用Object Spy,查看value属性,值为空,如图。

所以这里可以用对象“word”的value属性值判断功能是否正确。

【自动化测试工具】QTP/UFT入门

4、修改脚本如下,修改后Run。

【自动化测试工具】QTP/UFT入门

5、运行后打开View菜单下的Last RunResults。

【自动化测试工具】QTP/UFT入门

如图, Property “value” has the expected value:”QTP”.对象“word”的value属性的值是期望的“QTP”,检查点Pass。

【自动化测试工具】QTP/UFT入门

 

参数化

1、在Global表中输入多行数据,并修改脚本如下。

【自动化测试工具】QTP/UFT入门

2、打开File菜单下的Settings,设置Run如下。

【自动化测试工具】QTP/UFT入门

3、Run脚本,可以看到执行过程中依次搜索了Global表中的数据,打开Last Run Results,可以每次迭代的结果,如图,每次迭代检查点都有记录。

【自动化测试工具】QTP/UFT入门

4、选中Global表中有数据的行,在右键菜单中选择Delete删除行。

【自动化测试工具】QTP/UFT入门

注意,如果删除了表格中的内容——比如用键盘的退格和删除,而有黑线的行仍是三行(如图),还是会迭代三次。

【自动化测试工具】QTP/UFT入门

5、在Action1表中输入多行数据,并修改脚本如下,注意脚本和使用Global表时不同。

【自动化测试工具】QTP/UFT入门

6、打开View菜单下的TestFlow。

【自动化测试工具】QTP/UFT入门

右键Action1,在菜单中选择Action Call Properties。

【自动化测试工具】QTP/UFT入门

设置如下。

【自动化测试工具】QTP/UFT入门

7、Run脚本,可以看到执行过程中依次搜索了Action1表中的数据,打开Last Run Results可以查看结果。

 

参数化迭代流程图

A:一个脚本可以有多个Action。

B:File-Settings-Run下的设置控制脚本的迭代。

C:Action CallProperties-Run下的设置控制Action的迭代。

【自动化测试工具】QTP/UFT入门

一个迭代实例

1、新建GUI Test,选择Design菜单下的Call toNew Action

【自动化测试工具】QTP/UFT入门

点击“OK”后添加了一个action。

【自动化测试工具】QTP/UFT入门

2、在Global表添加两行数据“Global第1行”和“Global第2行”;Action1表下添加两行数据“Action1第1行”,“Action1第2行”;Action2表下添加两行数据“Action2第1行”,“Action2第2行”。

3、修改File-Settings-Run设置为Run on allrows。修改Action1和Action2的Call Properties-Run设置为Run on all rows。

4、在Action1和Action2的编辑区输入下图脚本。

【自动化测试工具】QTP/UFT入门

5、Run脚本,可以看到弹窗出现16次,依次如下:

Global第1行

Action1第1行

Global第1行

Action1第2行

Global第1行

Action2第1行

Global第1行

Action2第2行

Global第2行

Action1第1行

Global第2行

Action1第2行

Global第2行

Action2第1行

Global第2行

Action2第2行

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140402.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • python 怎么保留小数「建议收藏」

    python 怎么保留小数「建议收藏」使用字符串格式化大部分语言都可以使用字符串格式化的方法来实现保留两位小数的效果,python也不例外:a=3.1415926print(“%.2f”%a)#%代表格式化输出,.2代表小数点后保留两位,f代表数据类型是浮点型使用round内置函数python内置了一个名为round的函数,这个函数可以用来对数据进行格式化。代码如下:a=3.1415926a1=round(a,2)#将a通过round函数处理后赋值给a1,传入的2代表保留两位小数print(a1)使

  • Tess4J 简单使用入门[通俗易懂]

    Tess4J 简单使用入门[通俗易懂]Tesseract-OCR支持中文识别,并且开源和提供全套的训练工具,是快速低成本开发的首选。而Tess4J则是Tesseract在JavaPC上的应用。在英文和数字识别中性能还是不错的,但是在中文识别中,无论速度还是识别率还是较弱,建议有条件的话,针对场景进行训练,会获得较好结果,本文仅对目前Tess4J的用法进行介绍。———————本文来自jian_cheng_90的CSDN博客,全文地址请点击:https://blog.csdn.net/risky

  • Eclipse导入Maven项目详解(新手初学)

    Eclipse导入Maven项目详解(新手初学)最近遇到Maven管理下的SpringMVC项目,组内某位将项目代码扔过来,一脸懵逼(囧),查阅了一些资料后终于将此项目运行通了(>_<),特此记录下来与各位分享。通俗的来说,Maven就是个类似于git的项目管理工具。而SpringMVC就是将M(Model)、V(View)、C(Controller)三者进行分离进行处理,更有利于开发的进行。下面我将介绍一个别人已经编译好的Maven项

  • docker项目经验_如何培育与指导部署

    docker项目经验_如何培育与指导部署每个人的前半生,都在不停地做加法。可到了后半生,我们就要学会不断地做减法。目录前置工作1、需要准备的东西2、连接云服务器安装Docker环境1、安装Docker的依赖库。2、添加DockerCE的软件源信息。3、安装DockerCE。4、启动Docker服务。准备Dockerfile并部署项目(构建新的业务镜像)1、准备nginx.conf.template、Dockerfile、dist(前端项目build后的包)2、部署项目知识点(需要…

    2022年10月19日
  • JDBC prepareStatement 与Statement的区别

    JDBC prepareStatement 与Statement的区别

  • 通过 MATLAB 处理大数据[通俗易懂]

    通过 MATLAB 处理大数据[通俗易懂]原文链接:通过MATLAB处理大数据大数据指的是创建的数据和供分析的数据的数量与速率迅速增加。大数据使分析师和数据专家有机会获得更好的见解,进行更明智的决策,但是它同时也会带来许多的挑战:可用的内存可能无法足以处理大数据集,可能需要花太久的时间进行处理或可能流动太快而无法存储标准算法通常不能以合理的时间或内存来处理大数据集等等。目前没有任何一种单一方法可以处理大数据。为此,MATLAB…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号