QTP

转载 2015年11月21日 16:27:32

]QTP 小技巧

1.在脚本运行过程中屏蔽鼠标键盘输入
 SystemUtil.BlockInput 开始处
 这里是你的脚本
 SystemUtil.UnblockInput 结尾处

---------------------------------------

补充关闭进程的方法:Systemutil.closeprocessbyname "GreenBrowser.exe"
2.检查页面对象是否可用
 yanzheng=Browser("电子政务").Page("::::行政审批系统::::").Frame("10_3").WebButton("验证").GetTOProperty("disabled")
 用GetTOProperty("disabled")获得对象disabled 的属性值,如果为1,则不可用,为可用
3.WebTable index属性

今天才发现原来,WebTable原来还有index这个属性,设置了index属性后问题得以解决。不知道咱们搞的,公司的那个系统在找WebTable时,增加对个对属性去匹配,搞了好久才发现原来是自己需要的WebTable有多个,添加index属性后,问题得以解决。

4.WebTable RowCount重新获值
 在第一次获得RowCount值后,比如要执行删除操作,这时要重新获取表格的属性值(用set ...),这样RowCount才能变化,否则还是之前(第一次)的值。

5.qtp识别的mandatoryassistive属性

qtp识别属性有mandatoryassistive,如果是mandatory 属性变了就识别不到,assistive属性变了就不一定

6.qtp执行页面刷新

方法1,使用IE上自带的刷新按钮
方法2,使用Refresh函数
Sub Refresh_Example()
'The following example uses the Refresh method to refresh the
'objects in the Mercury Tours browser.
Browser("Mercury Tours").Refresh
End Sub

7.对象获得焦点

Browser("审批工作平台").Page("工作平台").WebEdit("user_pass").Object.focus

一定是Object.focus而不是focus

8.QTPLoadrunner获取系统内置环境变量方法(通用)

os=environment.Value("OS")
provesi=environment.Value("ProductVer")
hostname=environment.Value("LocalHostName")
msgbox os &","& provesi &","& hostname

9.通过浏览器打开网址操作

systemutil.run "iexplore.exe","http://mail.163.com","","",2

注意 2 为最小化3为最大化。

10.编辑共享对象对象库

通过Resources-Object Repository Manager,进入后,打开共享的对象库文件,默认对象库是不能编辑的,要在file菜单中点击 enable editing,就可以编辑了!

11。Call to copy of Action与call existing Action的区别

QTP中可以使用两种调用其他Action的方法分别是call to copy of Actioncall existing Action,他们之间的区别如下:

两种方式都是将以被保存的Action调用过来,但是copy Action是将原本Action中的所有属性,及其参数值调用过来,并且可以在其上随意的更改,而且这些更改并不影响源Action,call existing Action虽然也是将源Action的所有属性及其参数值都调用过来,但是你不能更改其中的任何步骤和参数值,如果一定要更改,需要重新打开源Action,在源Action上进行更改,所作的改动将自动体现在调用的Action上。

12.QTP中计算脚本执行时间方法

如果要计算一个action或者要计算一段脚本执行的时间,这里的解决方法是:添加事物开始Services.StartTransaction "trans_test"和 Services.EndTransaction "trans_test",运行完成后,在result中就可以看到该事务的执行时间。如图:


13.设置可重用检查点(个人感觉有点创意)

方法一:

将检查点全用描述性编程定义成function函数,然后每次都调用这些function

方法二:

1)录制可重用检查点,QTP record and run setting设为录制当前页,开始录制,不录制步骤,直接在录制过程中添加检查点,将这个只有检查点的Action设为可重用。(2)调用可重用检查点,在第一步录制好的脚本中调用这个可重用检查点,首先选中需要添加检查点的步骤,然后选择insertcall existing Action 选择after current step3)检查点添加到步骤之后,通过这种发放这个检查点可以被多次使用。

14.关于Reporter.filter用法

问题描述:在你查看QTPreporter时当有参数化时,reporter右边的选择树会很长,即使看起来很不方便,也不利于查找错误。

处理流程:(1)录制脚本(2)在expert view中设定

Reporter.filter分为四个属性:
0或者rfenableall 所有的报告都显示在test result
1或者enableerrorandwarning错误和警告信息显示在test result
2或者rfenableerroronly只把错误显示在test result
3或者rfdisableall不在test result中显示任何信息
你可以根据需要设定你要显示的错误

举例:

Reporter.filter=2
reporter.ReportEvent micPass,"测试通过01","pass"
reporter.ReportEvent micFail,"测试失败01","fail"

reporter.ReportEvent micPass,"测试通过02","pass"
reporter.ReportEvent micFail,"测试通过02","pass"

reporter.ReportEvent micPass,"测试通过02","pass"
reporter.ReportEvent micFail,"测试通过02","pass"

reporter.ReportEvent micPass,"测试通过02","pass"

reporter.ReportEvent micFail,"测试通过02","pass"

15.回车键查询问题的解决

1.(Sendkey方法)

Browser("系统登录").Page("***信息管理系统").Frame("main").WebEdit("ylzh").FireEvent("onfocus")
set WshShell =CreateObject("WScript.Shell")
WshShell.SendKeys "{ENTER}"

2)用 Type micReturn 

16.我们在用Object Spy 识别对象时注意的问题。

我们一定要在QTP加载相关插件后,再用Object Spy 去识别对象,否则,识别出来的对象不是我们需要的。如果,我在识别web页面的button,但是我如果不加载web插件时,识别出来的确是一个WinObject,呵呵。所以一定要加载web插件后,在用qtpspy对象。

17.运用childobjects获取桌面上的顶级对象!实现关闭特定browser的方法。

Desktop对象允许访问桌面上的顶级对象.运用childobjects方法可以返回此对象中的所有对象列表:以下代码实现了,从桌面顶级对象中查找name=新浪首页,然后将该browser的图像抓取出来存到特定的文件夹下.

Set des=description.Create()
set dobj=desktop.ChildObjects(des)
For i=0 to dobj.count-1
If dobj(i).Getroproperty("name")="新浪首页" then
dobj(i).CaptureBitmap"D:\Software testing\QTP\temp\"&i&".bmp",true
dobj(i).close
end if
Next

18.参数化Link的一种方法

Linkvar=DataTable("linktext",dtGlobalSheet)
Browser("163网易免费邮--中文邮箱第一品牌").Page("163网易免费邮--中文邮箱第一品牌").LinK("text:="&Linkvar).click

Datatable中的数据为:

linktext

126免费邮

Yeah.net

VIP

188

贺卡

帮助

19.将日期写入日期控件文本框的方法

Browser("电子政务").Page("::::行政审批系统::::").Frame("9_3").webedit("日期控件文本框名字").Object.value="2009-04-06"

20.关于 在线文本编辑器 QTP不能写入文字的方法

因为QTP将 在线文本编辑器 识别成了一个 WebElement,这块用到object.document.write"你想要写的内容方法.

其实 object.document.write"" 这个方法很牛大家在后边就会发现.

21.QTP脚本不能录制的解决方法

问题起因:
 在安装QTP后,或者禁用IE浏览器里的一些ActiveX控件后,正常录制QTP事,不能产生相应的录制脚本,脚本内容为空。
 解决方法:

 根据实践,我发现QTPIE中录制脚本是依靠一个叫BHOManager Class的动态链接库来完成的。当这个控件没有被加载,或者被禁用时,就会出现上述症状。于是,解决方法就很简单了,重新加载,或启用这个控件,一切就OK啦。
 具体步骤:
 打开IE,在菜单中选择[工具]/[Internet选项]进入Internet配置界面。选择[程序]/[管理加载项],查看目前加载的ActiveX的情况。
当看到存在BHOManager Class并且其状态是禁用时,点击启用开启这个功能,并保存后退出即可解决问题。
 当在管理加载项里找不到BHOManger Class这个加载项时,如果你安装了QTP,那么在C:\WINDOWS\system32下会存在一个叫BHOManager.dll的动态链接库,或者可以直接在计算机里搜索BHOManager.dll,然后查看其路径。加载这个dll,加载方法为:点击[开始]/[运行],输入cmd,然后定位到dll所在目录,键入regsvr32 BHOManager.dll命令,即可注册此dll。问题解决。

22.qtp关闭IE进程方法

SystemUtil.CloseProcessByName "iexplore.exe"

23.qtp测试web 超级链接的方法

方法一:用 CheckProperty("url","")

QTP 录制复制粘贴功能

2009-07-27 11:34

在网上找的,先记录下来,还没有实验!:)


示例一:

rem 在一个页面的某链接上按右键
Browser("Google").Page("qwewqe - Google 搜索").Link("qwewqe 的博客空间联城网[免费发布信息][分类信息,").Click micRightBtn

Dim wshShell
 Set wshShell = CreateObject("WScript.Shell")
'模拟键盘操作,向下移动两次
For i=1 to 2
wshShell.SendKeys "{DOWN}" '模拟键盘操作
Next
'模拟键盘操作,按回车键,完成在新窗口中打开链接
 wshShell.SendKeys "{ENTER}"


示例二:

em Word中复制粘贴一段文字的右键操作
'选择需要复制的原文字,Drop后面的内容定义了文字块的坐标
Window("Microsoft Word").WinObject("Microsoft Word 文档").Drag 510,180
Window("Microsoft Word").WinObject("Microsoft Word 文档").Drop 645,178
'按右键
Window("Microsoft Word").WinObject("Microsoft Word 文档").Click 576, 182, micRightBtn

Dim wshShell
 Set wshShell = CreateObject("WScript.Shell")
'模拟键盘操作,向下移动两次
For i=1 to 2
wshShell.SendKeys "{DOWN}" '模拟键盘操作
Next
'模拟键盘操作,按回车键,完成复制操作
wshShell.SendKeys "{ENTER}" '模拟键盘操作


'在需要粘贴的位置按右键
Window("Microsoft Word").WinObject("Microsoft Word 文档").Click 393, 564, micRightBtn
'模拟键盘操作,在右键菜单上向下移动三次,按回车键,完成粘贴操作
For i=1 to 3
wshShell.SendKeys "{DOWN}" '模拟键盘操作
Next
wshShell.SendKeys "{ENTER}" '模拟键盘操作


QTP中实现对文本文件(txt)的读写操作

在实际的项目中,很多Data都是保存在外部文件中,因此,我们就需要对外部文件的内容进行读写。常见的是文本文档(.txt),excel,数据库等。 本篇先介绍下对文本文档的读取。当然,在实际项目中...
  • yefan2222
  • yefan2222
  • 2011年12月23日 16:29
  • 3459

QTP对象的方法(一)

一.对象的方法 Activate:object.Activate [Item] 激活对象 Item—列表中选择(名字:用引号;数字索引:不带引号;非必填项) 例1:Browser("Demo ...
  • sunnyken_97
  • sunnyken_97
  • 2016年08月19日 17:40
  • 1212

QTP脚本编写技巧 - 从函数中返回多个值的方法

relevantcodes.com的《Passing Multiple Values from Functions》这篇文章介绍了如何从函数(Function)中返回多个值:http://releva...
  • Testing_is_believing
  • Testing_is_believing
  • 2010年03月22日 09:20
  • 4745

QTP - 工作原理

1、QTP的工作原理 测试对象是QTP在测试或组件中创建的用于表示应用程序中的实际对象的对象,并且QuickTest在对象库中存储有关该对象的信息,包括对象的属性、操作等。 录制的时候,QTP将操...
  • zhijun0901
  • zhijun0901
  • 2016年09月23日 13:38
  • 917

在QTP中自定义测试对象WinList的Select方法

在QTP中自定义测试对象WinList的Select方法,支持正则表达式和多选,类似的思想可以扩展到其他的list类型的控件。 下面的脚本摘自QTP的CodeSamplesPlus: Function...
  • Testing_is_believing
  • Testing_is_believing
  • 2010年01月07日 12:58
  • 4775

QTP中使用强制退出程序语句小记

QTP中使用强制退出程序语句小记   有好几天没怎么写东西了,可能是因为白天有点事情忙着,另外就是觉得自己确实是比较懒的。感觉学习效率不如以前那么高了,有些懒散。为了每天进步一点点是卓越的开始,只好...
  • xinke453
  • xinke453
  • 2015年12月14日 20:35
  • 1389

——Windows标准控件与QTP Windows对象的对应关系

注:本文为以前博客的原创作品,本人拥有完全的版权,未经本人书面同意,不得用于商业用途,否则本人保留追究相关责任的权利。转载可以,但需要标明出处。。 作者:文青山 联系方式:欢迎发邮件到wolaiz...
  • womengdoushizhongguo
  • womengdoushizhongguo
  • 2012年09月08日 12:02
  • 1333

LoadRunner 和QTP的区别

LR(性能测试工具)和QTP(自动化测试工具)的区别: 1、LR: 基于协议的性能测试;QTP: 基于UI对象的功能测试。 2、LR录制原理:捕获数据包。录制的前提是能识别协议报文;QTP 录制原理:...
  • hello_yang213
  • hello_yang213
  • 2012年04月06日 12:54
  • 8315

QTP如何打开浏览器,并进入网站,关闭浏览器

QTP如何打开浏览器,并进入网站,关闭浏览器 '打开IE,进入系统------方法1:快 SystemUtil.Run"C:\Program Files\Internet Explorer\I...
  • sunjob2010
  • sunjob2010
  • 2014年04月08日 05:40
  • 2359

QTP一个Test中生成多个Action的方法举例说明

一个Test中生成多个Action的方法有4个,以下分别举例说明如何使用。 方法一:Call to new Action命令(创建一个新的空白的Action) 以Flight系统打开机票订单为例说明如...
  • testerYu
  • testerYu
  • 2015年06月24日 14:17
  • 2352
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:QTP
举报原因:
原因补充:

(最多只允许输入30个字)