51Testing软件测试论坛

标题: 脚本运行中途失灵,求高手解答 [打印本页]

作者: zengli80    时间: 2012-7-24 14:38
标题: 脚本运行中途失灵,求高手解答
本帖最后由 zengli80 于 2012-7-24 14:42 编辑

版本:QTP 8.2+IE6.0
以下脚本是循环点击菜单树的每个模块,检查是否有页面报错,总是运行到中途,整个页面会刷新,导致无法进行下去


Public Function RegExpbld(patrn, strng)
Dim regEx, retVal                      ' 建立变量。
Set regEx = New RegExp         ' 建立正则表达式。
regEx.Pattern = patrn             ' 设置模式。
          regEx.IgnoreCase = true          ' 设置是否区分大小写。
          retVal = regEx.Test(strng)         ' 执行搜索测试。
         RegExpbld=retVal
End Function

Public Function QTP_DocIsLive()
Dim Src_text,patrn
Src_text=TextUtil.GetText(0, 20, 20, 2000, 2000)   '窗口的大小需要根据实际去定义
patrn="错误|error|无法"   
If RegExpbld(patrn,Src_text) Then
QTP_DocIsLive=true
        Exit Function
End If
QTP_DocIsLive=false         
End Function


Browser("CreationTime:=1").Page("index:=0").WebEdit("name:=strAccount").Set"admin"
Browser("CreationTime:=1").Page("index:=0").WebEdit("name:=strPassword").Set"123456"
Browser("CreationTime:=1").Page("index:=0").Image("name:=btnLoginIn").Click
Browser("CreationTime:=1").Page("index:=0").WebElement("html id:=fun_menu").Click
count=120
j=0
For i=1 to count
       Browser("CreationTime:=1").Page("index:=0").Image("html id:=TreeView1_item_"&i&"_icon").Click
                wait(2)
         
                if QTP_DocIsLive=true  Then
                               j=j+1
                              'msgbox j
                        
                else
                     Browser("CreationTime:=1").Page("index:=0").Image("index:="&j+1).click
                  end if
Next
         msgbox j
作者: zengli80    时间: 2012-7-24 15:44
就是登陆后点击左边的菜单树,通过循环,一层层的展开,每次打开一个模块就检查页面有没有报错
若没报错就关闭模块,有报错就不关闭,继续点击菜单打开另一模块
现象就是运行的好好的,突然整个页面刷新,菜单树后收起来,没法运行下去
似乎跟那两个正则表达式的函数有关系,我要是去掉,只是简单的

If Browser("CreationTime:=1").Page("index:=0").Image("file name:=error.gif","index:="&j).exist(0)  Then
判断页面上是否出现错误的图片,运行就不会中途刷新
作者: zengli80    时间: 2012-7-24 15:44
就是登陆后点击左边的菜单树,通过循环,一层层的展开,每次打开一个模块就检查页面有没有报错
若没报错就关闭模块,有报错就不关闭,继续点击菜单打开另一模块
现象就是运行的好好的,突然整个页面刷新,菜单树后收起来,没法运行下去
似乎跟那两个正则表达式的函数有关系,我要是去掉,只是简单的

If Browser("CreationTime:=1").Page("index:=0").Image("file name:=error.gif","index:="&j).exist(0)  Then
判断页面上是否出现错误的图片,运行就不会中途刷新
作者: zengli80    时间: 2012-7-30 15:30

一个回帖的都没有啊
作者: 测试工坊    时间: 2012-7-30 21:09
不知道你的被测试软件具体是什么样的,有可能网页自身在一定条件下刷新了。
这种情况你可以检查你要点击的树节点是否展开,如果因为刷新了而没有展开,你可以增加一个展开的操作。

If Not targetNode.exist(1) Then
ExtendTrees
End If

targetNode.click

但是最好还是单步调试,如果固定在某个步骤会刷新页面,就自己检查一下为什么,把它解决。
作者: yazi0127    时间: 2012-7-31 11:11
打个断点,单步调试




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