自动化测试实例:用QTP实现WEB页面链接扫描功能

发表于:2010-6-28 15:17

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:sinckyzhang(sohu)    来源:51Testing软件测试网采编

  该函数实现用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

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号