51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2355|回复: 15
打印 上一主题 下一主题

[原创] 求助:QTP创建Object为可变对像时如何解决

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-10-13 15:31:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大侠,大家好,小北初学QTP,在录制脚本的时候,遇到一个非常棘手的问题,需要有经验的大虾们,帮帮忙

任务目的:使用HDTunePro.exe测试硬盘性能,需要使用QTP录制自动化测试的脚本
任务问题:HDTunePro.exe有一个温度检测功能,温度显示在一个Static的框中,在录制脚本的过程中,QTP会自动创建一个当前温度的Object(如“46℃”),所以我回放脚本的时候,如果当前温度与录制脚本时的温度值不同,回放就会失败
HDTunePro软件:
HDTunePro软件下载地址:http://mydown.yesky.com/soft/utilitie/test/132/440132.shtml
脚本:
录制后的脚本代码如下:
  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
复制代码
跪求哪位英雄帮助解决一下这个问题?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2011-10-13 15:41:12 | 只看该作者
有些注释没有删掉,看时直接忽略吧
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2011-10-13 16:42:02 | 只看该作者
直接在对象库中把该对象显示的那个温度值去掉,不行的话,直接删掉这个属性值再加一个可以唯一识别的属性试试
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2011-10-13 17:03:36 | 只看该作者
如果这个温度不是测试的对象, 可以注释掉, 如果需要测这个 object,  可以将温度换为其他不变的属性~~ 比如 name 啊这些
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2011-10-13 17:30:39 | 只看该作者
我试过,包括直接将HDTunePro最大化后,直接使用GetVisibleText获取坐标,但是QTP只认这个温度的标签
我用spy++将HDTunePro的属性截了个图,其它的控件Caption都是空的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2011-10-13 18:02:34 | 只看该作者
就是这个标签,它应该有一个text的属性,属性值就是温度,把它删掉,再加一个属性,比如window id
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2011-10-13 18:50:58 | 只看该作者
用描述性编程去写这句,或者参数化这个温度值,参数的值用regular expression。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2011-10-13 19:08:40 | 只看该作者
用描述性编程去写这句,或者参数化这个温度值,参数的值用regular expression。
softCore 发表于 2011-10-13 18:50


这个......
不太懂啊,求指教
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2011-10-13 19:10:55 | 只看该作者
就是这个标签,它应该有一个text的属性,属性值就是温度,把它删掉,再加一个属性,比如window id
JUICY525 发表于 2011-10-13 18:02


这个Caption应该就是它的text属性了,这个HDTunePro软件是从网上下载的,我没找到也没法改它的属性,很郁闷
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2011-10-13 20:28:57 | 只看该作者
回复 8# kingsunnyv

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2011-10-13 20:29:38 | 只看该作者
按上面那个去做,就不会遇到不同的温度不识别的问题了。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2011-10-17 09:21:32 | 只看该作者
用正则表达式也试过了,还没不行,看来只能换一个硬盘测试工具了
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2011-10-17 10:35:15 | 只看该作者
本帖最后由 kingsunnyv 于 2011-10-17 10:37 编辑
按上面那个去做,就不会遇到不同的温度不识别的问题了。
softCore 发表于 2011-10-13 20:29



谢谢SoftCore大佬,己经用正则表达式搞定了,表达式的值用[\d][\d]或[\d]{2}

正则表达式威武,正则表达式荡漾

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2011-10-17 11:46:13 | 只看该作者
看了一下推荐你用这个更简单的方式来解决,修改关于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 "健康"
回复 支持 反对

使用道具 举报

该用户从未签到

15#
 楼主| 发表于 2011-10-17 18:01:52 | 只看该作者
看了一下推荐你用这个更简单的方式来解决,修改关于wintable的识别方式

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



    果然好使,受教了!!!
看来得提升一下工具的版本了
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2011-10-27 21:51:55 | 只看该作者
描述性编程受益匪浅,非常有用~
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-22 07:00 , Processed in 0.092364 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表