51Testing软件测试论坛

标题: qtp如何简易根据运行结果返回结果 [打印本页]

作者: qishenye    时间: 2008-5-16 15:49
标题: qtp如何简易根据运行结果返回结果
Exist1= Browser("1").Page("1").WebElement("1").Exist
Exist2= Browser("2").Page("2").WebElement("2").Exist
...............
...............
Exist1= Browser("n").Page("n").WebElement("n").Exist
If Exist1=1 and Exist2=1 and Exist3=1 and Exist4=1 and ...and Existn=1 then
   Reporter.ReportEvent 1, "Check Fail", "The check  failed."
   exitaction(1)
else
   Reporter.ReportEvent 0, "Check Succ", "The check  OK."
   exitaction(0)
End If
当有很多个检查点的时候,IF 条件写起来就会很麻烦,有没有方法可以根据脚本运行的结果判断,只要有一个是error的,就返回 exitaction(1),而不需向我上面一样,这么麻烦的写很多条件来限制(Exist1=1 and Exist2=1 and Exist3=1 and Exist4=1 and ...and Existn=1 )
请假好的方法

End If
作者: walker1020    时间: 2008-5-16 23:49
1, 建议你使用 数组来 存放返回结果;
2,根据 Exist1= Browser("1").Page("1").WebElement("1").Exist。那么 Exist1的值要么是 True ,要么是 False。你写的语句是  Exist1=1 ,这样有没有问题? 值得怀疑。
作者: walker1020    时间: 2008-5-16 23:55
如果 纯粹是为了代码书写方便,那么你 可以这样处理:
1,按照如下方法定义数组的每个元素的值:如果  对象存在,那么值为0,否则 就为1;
2, 计算数组的所有元素的和。如果和为0,那么说明所有的对象都存在;否则,就说明至少有一个对象不存在。
作者: walker1020    时间: 2008-5-16 23:58
只是个人感觉这样得不偿失,因为这样会降低了程序的可读性,另外可能会在执行速度上比原来慢。
作者: gy21st    时间: 2008-5-17 19:09
标题: 回复 1# 的帖子
换一下思路,自己写个函数,把exist封装一下,很容易实现你的目的

Sub myCheckExist (obj, iSeconds)
    If obj.exist(iSeconds) then
       Reporter.ReportEvent 1, "Check Fail", "The check  failed."
       exitaction(1)
    else
       Reporter.ReportEvent 0, "Check Succ", "The check  OK."
    End If
End Sub

然后,对每个对象直接调用该函数就可以了

myCheckExist Browser("1").Page("1").WebElement("1"), 10
...
myCheckExist Browser("n").Page("n").WebElement("n"), 10

对于满足某一条件就退出action,函数已经实现。当都不满足退出条件,直接检查下一个对象,完成所有检查后根据需要调用exitaction

[ 本帖最后由 gy21st 于 2008-5-19 09:19 编辑 ]




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