51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1815|回复: 0
打印 上一主题 下一主题

[原创] 用QTP实现WEB页面链接扫描功能

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-8-27 11:43:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  该函数实现用QTP脚本检查任何一个网页所有链接是否有效的功能。实际上,QTP自带一个对 WEB page里的链接进行检查的checkpoint,但是不能自定义扩展和编辑;这里Sincky演示一个自定义的函数,模拟某个网页的每个链接发送 HTTP请求、再检查HTTP响应结果来实现对该网页所有链接进行正确性扫描的过程。代码请见:
  '==========================================================================
  ' Name: CheckAllLinkReachable
  ' Summary: CheckAllLinkReachable
  ' Parameters:
  '         strBrowser: browser name
  '         strPage: page name
  '         strURLPattern: URL pattern you wan't to check. such as: ^http.*
  ' Return: None
  '==========================================================================
  Function CheckAllLinkReachable(strBrowser, strPage, strURLPattern)
  Dim blnReachable
  blnReachable = True
  Set objXML = CreateObject("Msxml2.XMLHTTP")
  ' Get all link on the page
  Set objDes = Description.Create
  objDes("micclass").Value = "Link"
  Set objLinkList = Browser(strBrowser).Page(strPage).ChildObjects(objDes)
  For i = 0 To objLinkList.Count() - 1
  ' Create XML HTTP Object
  strURL = objLinkList(i).GetROProperty("href")
  If RegExpTest(strURLPattern, strURL) Then
  objXML.Open "POST", strURL, false
  objXML.Send
  '         msgbox objXML.responseText
  print (objLinkList(i).GetROProperty("href") & " Ready State:" & objXML.readyState & " Status: " & objXML.status)
  If objXML.status <> "200" Then
  blnReachable = False
  End If
  objXML.abort()
  End If
  Next
  Set objXML = Nothing
  CheckAllLinkReachable = blnReachable
  End Function
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-13 20:22 , Processed in 0.074635 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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