51Testing软件测试论坛
标题:
QTP如何控制出错时执行下一条测试数据
[打印本页]
作者:
拍子
时间:
2011-7-8 14:37
标题:
QTP如何控制出错时执行下一条测试数据
我们的脚本使用了框架,用testda驱动数据,用for循环控制,从第一条开始执行,执行后再执行第二条测试数据,即需要实现:当执行第一调测试数据的过程中有遇到fail步骤的话就退出,直接开始第二条测试数据的执行,请问该怎么用QTP控制,之前我们写成当遇到Fail就退出整个脚本,但如果这样的话,下面未执行侧测试数据是测试不到,请各位大侠赐教,谢谢!
序号
测试目的
服务号码
数据说明
AA
验证第一个号码
13800000000
AA
验证第二个号码
13900000000
作者:
云层
时间:
2011-7-8 14:48
on error resume next
作者:
拍子
时间:
2011-7-8 15:37
本帖最后由 拍子 于 2011-7-8 15:43 编辑
回复
2#
云层
你好,你好像没看明白我的意思,这个是会使程序按照产生错误的语句之后的语句继续执行,我的意思是第一条测试数据没有执行完所以步骤就报错,就直接进入第二条测试数据执行
作者:
17800455
时间:
2011-7-8 15:56
rowcount = DataTable.getRowCount
for i = 0 to rowcount -1
sno = DataTable.rawValue("服务号码","Global")
'//操作
DataTable.SetNextRow
next
复制代码
作者:
tankxu
时间:
2011-7-8 16:04
sno = DataTable.rawValue("服务号码","Global")
楼上的这句代码中的sno是什么意思啊?是VBS内置函数?
作者:
阳光下的橙子
时间:
2011-7-8 16:50
没看明白。。他乱贴的吧
作者:
阳光下的橙子
时间:
2011-7-8 16:51
其实这根本不用写函数或是怎样,QTP设置一下就好了
作者:
阳光下的橙子
时间:
2011-7-8 16:54
我看了下,Test Settings-->When error occurs during session:
选择
rocced to next iteration
应该可以达到你想要的目的
作者:
blanket
时间:
2011-7-8 17:29
如果出现fail,就退出ExitTestIteration()
用这个试试看
作者:
阳光下的橙子
时间:
2011-7-8 17:48
楼上这个办法做判断点可以,但不太好作为全局变量吧
作者:
拍子
时间:
2011-7-11 00:44
回复
5#
tankxu
这句话应该是把服务号码一列的值赋给变量sno,我们的脚本是这样实现了:cusNO = DataTable("服务号码", caseName)
作者:
拍子
时间:
2011-7-11 00:46
回复
8#
阳光下的橙子
--不过这个fail是我么自己定义的,并不是QTP执行中的出错。不知道这样可否行
作者:
Briefly
时间:
2011-7-11 10:57
回复
12#
拍子
个人觉得可以在你的预期结果中找个检查点进行判断、如果跟你的检查点不相符。那应该就是你们定义的错误了。然后再执行下一个用例。
作者:
阳光下的橙子
时间:
2011-7-11 13:49
回复
12#
拍子
这个是你们自己脚本定义的变量,当然不能照搬给他们啦
作者:
fzhang_uud
时间:
2011-7-12 12:04
定义个Sub或者Function,出错了就退出。
在4楼提供的for循环里调用这个函数
作者:
fzhang_uud
时间:
2011-7-12 12:10
回复
15#
fzhang_uud
PackageNum = DataTable.GetRowCount
SoftVersion = DataTable.GetSheet ("Global").GetParameter(3)
SoftVersion = "***" & SoftVersion &"***" &Now&"****"
Call WriteFile(FilePath,SoftVersion)
For j = 1 to PackageNum
DataTable.SetCurrentRow(j)
ProductLine = DataTable.GetSheet ("Global").GetParameter(1)
PackageCode = DataTable.GetSheet ("Global").GetParameter(2)
''模拟鼠标点击启动CB
Set objQTPwin=GetObject("","QuickTest.Application")
objQTPwin.WindowState="Minimized"
'Set objQTPwin = Nothing
Set Devicereplay = CreateObject("Mercury.DeviceReplay")
Devicereplay.MouseDblClick 36,18,0
Call Logon()
Wait 6
'获取登陆的SPID
sql = "select SID from d_loginInfo where userid = '" & UserID & "' order by logindate desc"
Query.Open sql,Cnn
Query.MoveFirst
UserSPID = Query(0)
Query.Close
Window("UniSTAR CBuilder").Activate
Window("UniSTAR CBuilder").WinMenu("Menu").Select "数据包;数据发布"
Wait 2
'勾选要发布的数据包
With Window("UniSTAR CBuilder").Window("Packet Release")
.WinObject("CFGDataVersion").Click 27,28
.WinObject("Price").Click 25,31
.WinObject("PublicPackage").Click 27,13
End With
Call PackageRelease()
PID = Window("UniSTAR CBuilder").GetROProperty("process id")
SystemUtil.CloseProcessById (PID)
Next
作者:
ferrylu2011
时间:
2011-7-14 10:18
如果你正在求职
如果你从事自动化测试工作
如果你能够搭建自动化测试框架
外企职位等你来
加qq:1483620344 咨询
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2