51Testing软件测试论坛

标题: 如何控制出错恢复处理RS触发的次数,以避免可能的死循环 [打印本页]

作者: 026300    时间: 2012-9-24 09:20
标题: 如何控制出错恢复处理RS触发的次数,以避免可能的死循环
本帖最后由 026300 于 2012-9-24 09:22 编辑

对于出错恢复机制,QTP能处理object not visible,not found等六种情况,触发后执行后续指定的相应操作。但是触发了出错机制RS后,如果同样的错误(比如not found)再次会出现,又继续触发RS,请问,如果这种错误一直存在的话,会不会进入一个死循环,如何避免RS重复调用呢,在什么地方可以控制激活触发RS的次数?
作者: 026300    时间: 2012-9-25 11:24
顶上去看看
作者: xjwldlover    时间: 2012-9-25 11:31
没用过恢复场景的帮顶~
作者: hsjzfling    时间: 2012-9-25 15:35
这个,比较困难,放在框架之中处理会比较方便一点。

RS只适合处理一些确定的偶然发生的事件,而非不确定的可能一定会发生的错误,比如程序变更或缺陷。
作者: 026300    时间: 2012-9-26 09:21
本帖最后由 026300 于 2012-9-26 09:23 编辑

回复 4# hsjzfling
嗯,谢谢。
不过,我在想“如果在RS调用的函数里加上判断,超过一定的次数就禁止触发RS”这种方式行不行。但是我不太清楚RS中有多个调用时如何禁止后续的某些操作。比如要求RS中执行的先后动作有:1、call function1;2、kill process1;3、call function2;4、call function3.由于某些原因,function1、fuction2和funciton3不能互相调用,那么禁止激活的处理应该放到这三个funciton中的那一个比较合适呢,因为我担心放到funciton1中禁止时,2.3.4还会执行,如果放到funciton3,前三步已经执行了。有没有一种exit机制,当禁止触发的条件满足时,直接退出整个RS。
作者: hsjzfling    时间: 2012-10-15 14:25
回复 5# 026300


这个其实不算很困难,用一个外部的文件者数据库来记录某个场景被恢复的次数即可.
当场景1被触发时,调用函数1,函数1会在指定文件或库中指定字段变更状态,改为已触发,并且触发次数+1,再判断当前该次数是否超过预先指定的上限,可以通过配置文件等方式来设置.




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