51Testing软件测试论坛

标题: 求助:QTP创建Object为可变对像时如何解决 [打印本页]

作者: kingsunnyv    时间: 2011-10-13 15:31
标题: 求助:QTP创建Object为可变对像时如何解决
各位大侠,大家好,小北初学QTP,在录制脚本的时候,遇到一个非常棘手的问题,需要有经验的大虾们,帮帮忙

任务目的:使用HDTunePro.exe测试硬盘性能,需要使用QTP录制自动化测试的脚本
任务问题:HDTunePro.exe有一个温度检测功能,温度显示在一个Static的框中,在录制脚本的过程中,QTP会自动创建一个当前温度的Object(如“46℃”),所以我回放脚本的时候,如果当前温度与录制脚本时的温度值不同,回放就会失败
HDTunePro软件:[attach]75606[/attach]
HDTunePro软件下载地址:http://mydown.yesky.com/soft/utilitie/test/132/440132.shtml
脚本:[attach]75607[/attach]
录制后的脚本代码如下:
  1. SystemUtil.Run "F:\TestIO","open"
  2. Window("TestIO").WinListView("SysListView32").Activate "HDTunePro.exe"
  3. 'Dim title
  4. Dialog("HD Tune 专业版 v3.00 - 硬盘工具").Maximize
  5. Dialog("HD Tune 专业版 v3.00 - 硬盘工具").WinTab("46℃").Select "文件基准"   
  6. 'set title = left(Dialog("HD Tune 专业版 v3.00 - 硬盘工具").GetVisibleText(1131,38,1209,50),2)
  7. 'MsgBoxTimeOut  title,"",1
  8. 'Dialog("HD Tune 专业版 v3.00 - 硬盘工具").WinTab(title & "℃").Select "文件基准"  
  9. Dialog("HD Tune 专业版 v3.00 - 硬盘工具").WinComboBox("文件长度").Select "512 MB"
  10. Dialog("HD Tune 专业版 v3.00 - 硬盘工具").WinButton("开始").Click
  11. Wait 5
  12. Dialog("HD Tune 专业版 v3.00 - 硬盘工具").WinButton("停止").Click
  13. Dialog("HD Tune 专业版 v3.00 - 硬盘工具").WinButton("退出").Click
复制代码
跪求哪位英雄帮助解决一下这个问题?
作者: kingsunnyv    时间: 2011-10-13 15:41
有些注释没有删掉,看时直接忽略吧
作者: JUICY525    时间: 2011-10-13 16:42
直接在对象库中把该对象显示的那个温度值去掉,不行的话,直接删掉这个属性值再加一个可以唯一识别的属性试试
作者: efficient    时间: 2011-10-13 17:03
如果这个温度不是测试的对象, 可以注释掉, 如果需要测这个 object,  可以将温度换为其他不变的属性~~ 比如 name 啊这些
作者: kingsunnyv    时间: 2011-10-13 17:30
我试过,包括直接将HDTunePro最大化后,直接使用GetVisibleText获取坐标,但是QTP只认这个温度的标签
我用spy++将HDTunePro的属性截了个图,其它的控件Caption都是空的
[attach]75615[/attach][attach]75616[/attach][attach]75616[/attach]
作者: JUICY525    时间: 2011-10-13 18:02
就是这个标签,它应该有一个text的属性,属性值就是温度,把它删掉,再加一个属性,比如window id
作者: softCore    时间: 2011-10-13 18:50
用描述性编程去写这句,或者参数化这个温度值,参数的值用regular expression。
作者: kingsunnyv    时间: 2011-10-13 19:08
用描述性编程去写这句,或者参数化这个温度值,参数的值用regular expression。
softCore 发表于 2011-10-13 18:50


这个......
不太懂啊,求指教
作者: kingsunnyv    时间: 2011-10-13 19:10
就是这个标签,它应该有一个text的属性,属性值就是温度,把它删掉,再加一个属性,比如window id
JUICY525 发表于 2011-10-13 18:02


这个Caption应该就是它的text属性了,这个HDTunePro软件是从网上下载的,我没找到也没法改它的属性,很郁闷
作者: softCore    时间: 2011-10-13 20:28
回复 8# kingsunnyv


作者: softCore    时间: 2011-10-13 20:29
按上面那个去做,就不会遇到不同的温度不识别的问题了。
作者: kingsunnyv    时间: 2011-10-17 09:21
用正则表达式也试过了,还没不行,看来只能换一个硬盘测试工具了
作者: kingsunnyv    时间: 2011-10-17 10:35
本帖最后由 kingsunnyv 于 2011-10-17 10:37 编辑
按上面那个去做,就不会遇到不同的温度不识别的问题了。
softCore 发表于 2011-10-13 20:29



谢谢SoftCore大佬,己经用正则表达式搞定了,表达式的值用[\d][\d]或[\d]{2}
[attach]75638[/attach][attach]75638[/attach]
正则表达式威武,正则表达式荡漾
作者: 云层    时间: 2011-10-17 11:46
看了一下推荐你用这个更简单的方式来解决,修改关于wintable的识别方式

在我的win2003中,该控件的windows id是不变的12320,所以你修改一下就行了
描述性的写法是

Set newtable=description.Create()
newtable("window id").value=12320
newtable("nativeclass").value=SysTabControl3
Dialog("HD Tune 专业版 v3.00 - 硬盘工具").Activate
Dialog("HD Tune 专业版 v3.00 - 硬盘工具").WinTab(newtable).Select "信息"
Dialog("HD Tune 专业版 v3.00 - 硬盘工具").WinTab(newtable).Select "健康"
作者: kingsunnyv    时间: 2011-10-17 18:01
看了一下推荐你用这个更简单的方式来解决,修改关于wintable的识别方式

在我的win2003中,该控件的windo ...
云层 发表于 2011-10-17 11:46



    果然好使,受教了!!!
看来得提升一下工具的版本了
作者: SexyCat_1113    时间: 2011-10-27 21:51
描述性编程受益匪浅,非常有用~




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2