5.10 高级——脚本错误处理机制
一个好的脚本应该具有健壮性,要能够捕捉到错误,并能采取有效的错误处理方式,否则脚本一旦发生错误,唯一的出路就是退出执行。
VU提供了一套在出错情况下的脚本处理机制。VU的错误处理机制可设定Vuser在执行脚本时遇到错误怎样处理。当Vuser遇到错误时,可以有两种处理策略:一是停止执行脚本,这适用于严重的问题;二是忽略这个错误,继续执行下去。
在默认情况下,当检测到错误时,Vuser将停止执行脚本,在Run-time Settings中我们就可以看到它的默认设置,如图5-53所示。
如不想VU在出错后结束,而是继续执行。那么在运行时设置中,可以勾选“Continue on error”(出现错误时仍继续)。这个设置适用于整个Vuser脚本,它是一个全局开关。
图5-53 在Run-time Settings中设置出错处理方式
但这种方法有一个毛病,就是不够灵活,有“一竿子打翻一船人”之嫌,我们更希望脚本能够“具体情况具体分析”,能够对于不同的函数应用不同的错误处理机制。既然信不过LoadRunner,那么解决的办法就是我们自己来干,在脚本中加入lr_continue_error函数。
使用lr_continue_on_error函数。通过lr_continue_on_error函数可以控制Vuser脚本特定段的错误处理。要标记该段,就用lr_continue_on_error(1)和lr_continue_ on_error(0)语句将其括起来。
使用lr_continue_on_error函数的脚本段将会覆盖“出现错误时仍继续”的Run-time Settings运行时设置。
例如,下面的脚本,其运行时设置没有勾选“Continue on error”,VU如果访问www.51testing.com遇到错误,将会结束执行脚本。
Web_lin("test", "text = www.51testing.com", LAST); Lr_output_message("finished linking"); |
运行时,如web_link出错,“finished linking”这段文字永远也不会输出。但是如果我们认为这个web_link函数无关紧要,它即使失败,我们也要继续执行脚本。那么解决的办法是用相应的lr_continue_on_error语句将该段括起来:
lr_continue_on_error(1); Web_lin("test", "text = www.51testing.com", LAST); Lr_continue_on_error(0); Lr_output_message(" finished linking"); |
在上面的脚本中,即使web_link函数执行失败,lr_output_message("finished linking")也会被继续执行。第一个lr_continue_error(1)是将“Continue on error”设为true,其后面的语句的错误处理机制都被应用为“Continue on error”,直到VU遇见lr_continue_error(0),再将“Continue on error”恢复成false。
连载一 连载二 连载三 连载四 连载五 连载六 连载七 连载八 连载九 连载十 连载十一 连载十二
连载十三 连载十四 连载十五 连载十六 连载十七 连载十八 连载十九 连载二十 连载二十一
本文选自:《51Testing软件测试作品系列》之一的《性能测试从零开始——LoadRunner入门》,本站经电子工业出版社和作者的授权,近期将进行部分章节的连载,敬请期待!
版权声明:51Testing软件测试网及相关内容提供者拥有 51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们。