beanshell中break的使用(break不再只是结束循环!)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了beanshell中break的使用(break不再只是结束循环!)相关的知识,希望对你有一定的参考价值。

参考技术A 使用jmeter如果单纯的用什么响应断言那就没意思了,并不能起到接口测试的目的,因为实在是没啥意义……
所以会用到beanshell来解析接口返回的json,针对json中的某些值进行具体的断言

使用beanshell时就会遇到问题!
用了就会知道,那个Failure=true或false就是断言的结果,但是!当你的beanshell脚本写一堆,不只一处Failure时,就会发现最后的结果并不是自己想要的。尤其是在循环里,该怎么用??

多次尝试和探索,终于知道了break的妙用
首先说一下Failure这个玩楞在jmeter中的作用:Failure就是一个普通的beanloon变量,当beanshell脚本执行完后(注意:是执行完后!),jmeter会去判断Failure的值,是true的话就是断言失败,也就是接口有问题
那么~问题来了,脚本写的多的时候,本来前边Failure是true了,但是后边的继续执行,又把Failure置为了false。导致最后结果并没有报错,而是接口执行成功,如下这样

在java编写时,break一般是用在循环或switch里的,如果这样写在if里是报错的……
居然!!!jmeter中可以这样用!
在Failure断言后加break,来结束脚本的执行
当然,这样一旦断言失败,就结束脚本,后边的也就不执行了……
没关系啊,断言失败就说明接口有问题,后边的可以不执行。也比断言有问题最后还显示成功好吧,哈哈。不过这也是jmeter不完善的地方

break可以结束脚本,那beanshell脚本的for循环或者switch中的break还是结束循环的作用吗?
yes,他们的break依旧生效

如图,既有多个for循环,又有switch,如果if里的break执行,则脚本结束,case的break执行,继续下一个循环,不会结束switch

以上是关于beanshell中break的使用(break不再只是结束循环!)的主要内容,如果未能解决你的问题,请参考以下文章

shell break与continue

scala中break和java中的break有什么不同

控制流之break

Java—break跳出语句

写switch case语句不加break会怎样

循环语句中break 与 continue的区别