QTP中用于场景恢复的函数
上一篇 / 下一篇 2012-07-03 17:35:48 / 个人分类:自动化测试
在制作场景恢复的时候可以选择调用函数来解决,下面的函数就是为此写的。因为之前用的场景恢复只报错了,看报告后大概了解了Object、
Method、Arguments、retVal等参数的意义,于是写了这个方法,一方面可以截图,另一方面可以在报告中看到哪个对象出问题了。因为我经
常是通过公司的自动化平台调用测试案例,一般晚上或凌晨执行,第二天看结果,看结果的时候一般直接从QC打开报告查看,这样方便自己定位问题。51Testing软件测试网4C%RwF e2^8fPh
Function RecoveryFunctions(Object, Method, Arguments, retVal)
5f:k U[*h |0JU~R0 '有错误发生时,对Desktop进行截图并保存51Testing软件测试网0jd0[C1BJ
' SaveTestError ""
v.Jkh Y&KqF0 Set bjWS = CreateObject("WScript.Shell")51Testing软件测试网;Bd[\cb'd`d
strDesktopFolder = "T:/TestData/测试组/测试截图/"51Testing软件测试网 MQ/V2I/P3Yo'DG@ze
If QCUtil.IsConnected then51Testing软件测试网-j~)m B!}V
If TypeName(QCUtil.CurrentTestSet) <> "Nothing" Then
Q9X f+zMx p u0 set CurrentTSTest = QCUtil.CurrentTestSet
1|kp-b4x/DDy0 strDesktopFolder = strDesktopFolder & CurrentTSTest.Name '如果从QC的测试集运行的,则保存到测试集名字的目录下51Testing软件测试网/X"x/R K;{'LJ f'\a
Else51Testing软件测试网-GvgiwzP5@
strDesktopFolder = strDesktopFolder & "SingleTest" '如果不是从QC运行,保存到SingleTest目录下51Testing软件测试网'Ca)j&^ HM ij.Zup
End If
6OD f#}'l [0T.W0 Else
;A:w0oh3b0r2WC'QL0 strDesktopFolder = strDesktopFolder & "SingleTest"51Testing软件测试网A!w$SyZKO~?+^
End If51Testing软件测试网#[M:q!O B^h p vn
Set bjFSO = CreateObject("Scripting.FileSystemObject")
+qLcCq3g0 If objFSO.FolderExists(strDesktopFolder) Then51Testing软件测试网h%U@ MA6Q6Iz
Set bjFolder = objFSO.GetFolder(strDesktopFolder)
这个方法的作用我简单描述一下:首先是指定一个目录,然后检查是否从QC调用的(因为有时候自己单机执行也用到这个),如果是就记录测试集的名称,如果 不是就放到SingleTest目录,然后判断对应的目录是否存在,不存在就创建目录。之后是创建日期时间标签,然后把文件完整路径组合起来,并加上了案 例名称,测试机器等等(因为有很多台机器,方便查看是否某台机器出问题了)。之后模拟2次回车按键是防止有异常对话框存在,然后把原来的对象语句自己还原 回来,这样如果是某个对象执行什么操作的时候语句出错,就可以在报告里看到了。51Testing软件测试网#TDu/A:sz `/n5W
Lz\ }a ??Mvn0 当然并不是很完善,比如时间标签的分秒没有加0的判断,Arguments其实是个集合,只不过我只考虑了1个的情况,没考虑多个的情况。51Testing软件测试网v9Ugjr!pT
|z#W9l v/G0 需要用这个的朋友可以自己稍微维护改进一下。使用方法就是自己创建一个场景恢复,然后选择指定文件里的函数,下面的函数最好单独保存为一个文件,因为我之前把他和我的函数库放在一起,发现里面的初始化函数被执行了2次,可能和场景恢复有关,分开后就没问题了。
Ib4l x2P!W P:T!s0'用于恢复场景控制。51Testing软件测试网$k9j1a1Z;o)YFunction RecoveryFunctions(Object, Method, Arguments, retVal)
5f:k U[*h |0JU~R0 '有错误发生时,对Desktop进行截图并保存51Testing软件测试网0jd0[C1BJ
' SaveTestError ""
v.Jkh Y&KqF0 Set bjWS = CreateObject("WScript.Shell")51Testing软件测试网;Bd[\cb'd`d
strDesktopFolder = "T:/TestData/测试组/测试截图/"51Testing软件测试网 MQ/V2I/P3Yo'DG@ze
If QCUtil.IsConnected then51Testing软件测试网-j~)m B!}V
If TypeName(QCUtil.CurrentTestSet) <> "Nothing" Then
Q9X f+zMx p u0 set CurrentTSTest = QCUtil.CurrentTestSet
1|kp-b4x/DDy0 strDesktopFolder = strDesktopFolder & CurrentTSTest.Name '如果从QC的测试集运行的,则保存到测试集名字的目录下51Testing软件测试网/X"x/R K;{'LJ f'\a
Else51Testing软件测试网-GvgiwzP5@
strDesktopFolder = strDesktopFolder & "SingleTest" '如果不是从QC运行,保存到SingleTest目录下51Testing软件测试网'Ca)j&^ HM ij.Zup
End If
6OD f#}'l [0T.W0 Else
;A:w0oh3b0r2WC'QL0 strDesktopFolder = strDesktopFolder & "SingleTest"51Testing软件测试网A!w$SyZKO~?+^
End If51Testing软件测试网#[M:q!O B^h p vn
Set bjFSO = CreateObject("Scripting.FileSystemObject")
+qLcCq3g0 If objFSO.FolderExists(strDesktopFolder) Then51Testing软件测试网h%U@ MA6Q6Iz
Set bjFolder = objFSO.GetFolder(strDesktopFolder)