51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3033|回复: 11
打印 上一主题 下一主题

[原创] 怎样做一个可以测试网页所有连接都可用得脚本!

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-5-30 21:44:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
怎样用QTP做一个可以测试网页所有连接都可用得脚本!我是刚刚接触得QTP,求一个比较详细得方法
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-5-30 22:53:41 | 只看该作者
你所谓的测试网页所有链接是啥意思?要达到什么效果?
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-5-30 22:54:28 | 只看该作者
是要获取Page中的所有Link?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-5-31 12:27:12 | 只看该作者
就是楼上的意思
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-5-31 14:53:03 | 只看该作者
set a= Browser("Yahoo!")
set b= Browser("Yahoo!").Page("Yahoo!")
call CheckLinks(a,b)

Function CheckLinks (BrowserObject,BrowserPage)
CheckLinks=TRUE
Dim s_URL,i_CreationTime
Dim s_LinkOuterText,s_LinkInnerText,s_Linkhref
s_URL=BrowserPage.GetROProperty("url")
i_CreationTime=1
i_LinkCount=BrowserPage.object.links.length - 1

Dim i_Link

For i_Link=0 to i_LinkCount
If Trim(BrowserPage.object.links(i_Link).target)="" Then
BrowserPage.object.links(i_Link).target="_blank" ' Set the link to open i a new window so that we dont have any change in current window
End If

BrowserPage.object.links(i_Link).click
On error resume next
Browser("CreationTime:=" & i_CreationTime).sync
Browser("CreationTime:=" & i_CreationTime).Page("micClass:=Page").sync
On error goto 0
Dim s_LinkDetails

IHTML = Browser("CreationTime:=" & i_CreationTime).Page("micClass:=Page").object.Body.innerHTML
'Check if page was not able to be displayed
If (InStr(IHTML,"HTTP 404") <> 0) Or (InStr(IHTML,"cannot be displayed") <> 0) Then
s_LinkDetails="Link Broken" + vbcrlf + "Link Details:" +vbcrlf
s_LinkDetails=s_LinkDetails+"OuterText: "+ s_LinkOuterText + vbcrlf
s_LinkDetails=s_LinkDetails+"InnerText: "+ s_LinkInnerText + vbcrlf
s_LinkDetails=s_LinkDetails+ "href: " + s_Linkhref+ vbcrlf
s_LinkDetails=s_LinkDetails+ "Links Open in New Browse: " & bNewBrowser & vbcrlf
Reporter.ReportEvent micWarning,"Check Link(" & i_Link & ") -> " & s_LinkOuterText ,s_LinkDetails
CheckLinks=FALSE
Else
s_LinkDetails="Link Working" + vbcrlf + "Link Details:" +vbcrlf
s_LinkDetails=s_LinkDetails+"OuterText: "+ s_LinkOuterText + vbcrlf
s_LinkDetails=s_LinkDetails+"InnerText: "+ s_LinkInnerText+ vbcrlf
s_LinkDetails=s_LinkDetails+ "href: " + s_Linkhref+ vbcrlf
s_LinkDetails=s_LinkDetails+ "Links Open in New Browse: " & bNewBrowser & vbcrlf
Reporter.ReportEvent micPass,"Check Link(" & i_Link & ") -> " & s_LinkOuterText ,s_LinkDetails
End If

Browser("CreationTime:=1").close ' Close the link open.
Next
End Function
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-5-31 15:22:05 | 只看该作者
这么一大堆,看不懂
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-5-31 21:37:09 | 只看该作者
我发觉养成做代码注释习惯的人很少
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2008-6-1 14:26:39 | 只看该作者
3Q3Q 非常感谢
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-6-1 21:03:01 | 只看该作者
大概能明白5#的意思。这样做确实是可以对链接进行检查,代码的思路我觉的也挺好。
但是有一个问题,B/S的软件一般比较复杂,5#的代码应该只是能检查当前页面中所有的链接是否有效(没注释,没法看得很仔细)。但是如果我的需求是检查该网站中所有链接的有效性呢?
对于楼主的需求,我觉的还是从网上下一个网页测试的工具比较好吧。我记的有一款工具能够自动检查网站中所有的链接的,效果也比较不错。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-6-2 22:24:46 | 只看该作者
插入检查点就行了
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2017-4-10 01:47
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    11#
    发表于 2008-12-12 14:38:37 | 只看该作者

    回复 1# 的帖子

    好象有这样的工具吧,很简单
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
    发表于 2008-12-12 21:01:55 | 只看该作者
    XENU吧
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-28 02:50 , Processed in 0.071576 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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