51Testing软件测试论坛

标题: wait()时间过长,会不会出现什么异常? [打印本页]

作者: simpleqq    时间: 2008-6-23 22:09
标题: wait()时间过长,会不会出现什么异常?
如果在QTP的脚本中,wait较长时间,比如:wait(3600),会造成什么异常么?像:死循环,内存泄露,连接数过多,等。。。?

我为了让脚本隔一个小时跑一次,在脚本最后加了这一句,但是每次都只能跑一遍,就挂在那里了。。。

再或者有别的办法可以实现隔一小时重复执行一次的功能么?
作者: 陈能技    时间: 2008-6-23 22:26
我觉得这不是一种好的调度测试执行的方法,建议使用Mercury Multi-Test Manager:
http://blog.csdn.net/Testing_is_ ... /03/20/2201178.aspx
作者: simpleqq    时间: 2008-6-23 22:31
我也有用Multi-Test Manager,但是,它只能设置某一天的某一时刻定时启动,不能设置循环之间的间隔
是吧?
不对的地方,麻烦指出!谢谢!
作者: 陈能技    时间: 2008-6-23 22:44
File->Preferences ->Run ->Iterations

在Iterations 中设置循环次数。



推荐新书《QTP自动化测试实践》:
http://blog.csdn.net/Testing_is_ ... /06/22/2574837.aspx

[ 本帖最后由 陈能技 于 2008-6-23 22:47 编辑 ]
作者: zbyufeifei    时间: 2008-6-24 07:39
没有问题的,wait(3600*1X)都没有问题~
作者: simpleqq    时间: 2008-6-24 10:30
原帖由 陈能技 于 2008-6-23 22:44 发表
File->Preferences ->Run ->Iterations

在Iterations 中设置循环次数。



推荐新书《QTP自动化测试实践》:
http://blog.csdn.net/Testing_is_ ... /06/22/2574837.aspx


循环的功能,我用multi test manager实现了,不能实现的是,隔一定时间间隔,循环一次。用了wait(3600)让它隔一小时跑一次,但是挂在这一句不动了。。。
作者: simpleqq    时间: 2008-6-24 10:55
原帖由 zbyufeifei 于 2008-6-24 07:39 发表
没有问题的,wait(3600*1X)都没有问题~


zbyufeifei,wait(3600*1X)是什么意思?是想说明输入更长的时间,也不会造成异常么?
作者: 陈能技    时间: 2008-6-24 11:17
可以用Mercury Multi-Test Manager或者WIndows的任务计划来设置多个任务调度,每个任务调度相隔一个小时就可以了.
作者: simpleqq    时间: 2008-6-24 11:35
原帖由 陈能技 于 2008-6-24 11:17 发表
可以用Mercury Multi-Test Manager或者WIndows的任务计划来设置多个任务调度,每个任务调度相隔一个小时就可以了.


谢谢!又离成功近了一步呢。怎么设置multi test manager任务调度的间隔呢?偶找了半天,未解。。。。
作者: zbyufeifei    时间: 2008-6-24 11:52
这是我在公司用迅雷下东西的代码,从来没有出现过问题:(没有发现有定时下载,定时停止的下载软件)

Dim MyDate
MyDate = WeekDayName(WeekDay(now),True)
strs = "星期五"

If (strcomp(strs,MyDate) = 0)  Then
        Wait(3600*7)
        SystemUtil.Run "C:\Program Files\Thunder Network\Thunder\Thunder.exe","","","open"
        Wait(3600*9)
        systemutil.CloseProcessByName "Thunder5.exe"
        Wait(3600*15)
        SystemUtil.Run "C:\Program Files\Thunder Network\Thunder\Thunder.exe","","","open"
        Wait(3600*9)
        systemutil.CloseProcessByName "Thunder5.exe"
        Wait(3600*15)
        SystemUtil.Run "C:\Program Files\Thunder Network\Thunder\Thunder.exe","","","open"
        Wait(3600*4)
        systemutil.CloseProcessByName "Thunder5.exe"
Else
        Wait(3600*7)
        SystemUtil.Run "C:\Program Files\Thunder Network\Thunder\Thunder.exe","","","open"
        Wait(3600*7)
        systemutil.CloseProcessByName "Thunder5.exe"   
End If

[ 本帖最后由 zbyufeifei 于 2008-6-24 11:55 编辑 ]
作者: 陈能技    时间: 2008-6-24 11:55
看看帮助文档吧,记得MMTM好像是支持命令行调用。

不行的话用QTP的自动化对象模型写个外部的VBS文件来调用测试脚本,然后在Windows任务计划中设置调度的任务。
作者: simpleqq    时间: 2008-6-24 16:02
我是用multi test manager调用QTP脚本,循环10次,QTP脚本中的最后加了wait(3600)

今天看了下,QTP脚本wait的过程中,multi test manager的状态由Run变成了空,也不能stop

原来是multi test manager的问题。。。这样说来,这个软件不好用啊。。。为什么大家都推荐。。。
作者: cafard-haibin    时间: 2008-6-24 19:36
1:利用vbs脚本让脚本每小时执行一边;
2:就用Wait(x),其中x为等待时间。这个x的最大值不知道。但3600是可以的。我测试过了。
作者: simpleqq    时间: 2008-6-25 12:08
嗯,谢谢楼上的!
我现在是用vbs让脚本定时执行
感觉微软的东西,还是比HP好。。。。
multi test manager跑着跑着,状态值就没了,关也关不掉,呈死掉状态。。。。




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