51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3047|回复: 8
打印 上一主题 下一主题

[原创] QTP如何自动化检查搜索结果的准确性

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-5-15 09:52:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
急需请教QTP如何自动化检查搜索结果的准确性?
比如,我在百度里搜索“qtp”关键词,如何用qtp检查搜索结果是正确的呢?
我开始考虑用GetROProperty取得第一条数据的标题或描述的文本,然后通过vb的Instr函数比较取得的字符串中是否包含‘qtp’字符串,如果函数的返回值是0,就说明搜索结果不准确,反之不是返回0就说明搜索结果对的,可现在问题是,搜索结果的数据每时每刻都是变动的,那怎么固定取第一条呢?
下面是我的录制脚本:

SystemUtil.Run "C:\Program Files\Internet Explorer\IEXPLORE.EXE","http://www.baidu.com","C:\Program Files\Internet Explorer\IEXPLORE.EXE","open"

Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set "qtp"

Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Click

Browser("百度一下,你就知道").Page("百度搜索_qtp").Sync

keywordExist=Browser("百度一下,你就知道").Page("百度搜索_qtp").Link("51Testing提供QTP课程").GetROProperty("text")

returnNum=Instr(1,keywordExist,"qtp",1)

If returnNum=0 Then
        Reporter.ReportEvent 1,"Search result check","Fail"
        Browser("百度一下,你就知道").close
        ExitAction(0)
        else
        Reporter.ReportEvent 0,"Search result check","OK"
        Browser("百度一下,你就知道").close
        ExitAction(1)

End If

Browser("百度一下,你就知道").close
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-5-15 10:10:46 | 只看该作者
keywordExist=Browser("百度一下,你就知道").Page("百度搜索_qtp").Link("51Testing提供QTP课程").GetROProperty("text")
-----------------问题就在于 Link("51Testing提供QTP课程")这里的link经常随之变的,如果有新的数据、或者这条数据被删除了就搜索不到了,此时就会出错了 怎么避免不是写死的link,用描述性编程好像也不行的 请大家帮忙,谢谢啦
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-5-15 10:29:36 | 只看该作者
使用table下的位置去定义
Browser("Browser").Page("Page").WebTable("WebTable").ChildItem("行","列","控件名","索引").执行动作

或者直接使用索引好了,测试下第一条的索引号多少就OK了~~~
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-5-15 10:34:11 | 只看该作者
aa=Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("index:=14").GetROProperty("text")
msgbox aa
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2008-5-15 10:49:31 | 只看该作者
嗯,我搞定了,谢谢啊
我又知道了另一个方法,就是把页面上所有的link对象找出来,然后定位第一条记录就ok了 
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2008-5-15 11:15:11 | 只看该作者
下面是我的解决方法,有需要的可以一起分享
SystemUtil.Run "C:\Program Files\Internet Explorer\IEXPLORE.EXE","http://www.baidu.com","C:\Program Files\Internet Explorer\IEXPLORE.EXE","open"

Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set "qtp"

Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").Click

Browser("百度一下,你就知道").Page("百度搜索_qtp").Sync

'   定义一个空对象
Dim RecordObjec
set RecordObject=Description.Create()

'   给上面定义的空对象,添加一个html tag 属性,属性值为A
RecordObject("html tag").value="A"

Dim Recordlist
set Recordlist=Browser("百度一下,你就知道").Page("百度搜索_qtp").childobjects(RecordObject)
'listcount=Recordlist.count
'msgbox listcount

'Recordlist(14).click

keywordExist=Recordlist(14).GetROProperty("text")

msgbox keywordExist

returnNum=Instr(1,keywordExist,"qtp",1)

msgbox returnNum

If returnNum=0 Then
        Reporter.ReportEvent 1,"Search result check","Fail"
        Browser("百度一下,你就知道").close
        ExitAction(0)
        else
        Reporter.ReportEvent 0,"Search result check","OK"
        Browser("百度一下,你就知道").close
        ExitAction(1)

End If

Browser("百度一下,你就知道").close
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-5-15 13:01:59 | 只看该作者
呵呵,自我解决问题
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    8#
    发表于 2008-5-16 00:10:23 | 只看该作者
    看楼主在 6# 写的代码,最后还是使用描述性编程解决了问题。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    9#
    发表于 2008-5-16 11:40:54 | 只看该作者
    跟着作了一下,学习了。
    谢谢
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-24 02:52 , Processed in 0.074219 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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