51Testing软件测试论坛

标题: QTP如何自动化检查搜索结果的准确性 [打印本页]

作者: qishenye    时间: 2008-5-15 09:52
标题: QTP如何自动化检查搜索结果的准确性
急需请教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
作者: qishenye    时间: 2008-5-15 10:10
keywordExist=Browser("百度一下,你就知道").Page("百度搜索_qtp").Link("51Testing提供QTP课程").GetROProperty("text")
-----------------问题就在于 Link("51Testing提供QTP课程")这里的link经常随之变的,如果有新的数据、或者这条数据被删除了就搜索不到了,此时就会出错了 怎么避免不是写死的link,用描述性编程好像也不行的 请大家帮忙,谢谢啦
作者: 鹭岛    时间: 2008-5-15 10:29
使用table下的位置去定义
Browser("Browser").Page("Page").WebTable("WebTable").ChildItem("行","列","控件名","索引").执行动作

或者直接使用索引好了,测试下第一条的索引号多少就OK了~~~
作者: 鹭岛    时间: 2008-5-15 10:34
aa=Browser("百度一下,你就知道").Page("百度一下,你就知道").Link("index:=14").GetROProperty("text")
msgbox aa
作者: qishenye    时间: 2008-5-15 10:49
嗯,我搞定了,谢谢啊
我又知道了另一个方法,就是把页面上所有的link对象找出来,然后定位第一条记录就ok了 
作者: qishenye    时间: 2008-5-15 11:15
下面是我的解决方法,有需要的可以一起分享
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
作者: zte_boy    时间: 2008-5-15 13:01
呵呵,自我解决问题
作者: walker1020    时间: 2008-5-16 00:10
看楼主在 6# 写的代码,最后还是使用描述性编程解决了问题。
作者: luoisa    时间: 2008-5-16 11:40
跟着作了一下,学习了。
谢谢




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