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

1.场景描述

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

2.所遇问题

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

3.解决方法

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


image.png

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

4.one more thing

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


image.png

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 引言 这估计是目前国内能找到的相对比较全面的JMeter自动化测试介绍了吧。希望能给予您一点帮助。 1.1 J...
    __yanyan阅读 15,758评论 1 45
  • 在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需...
    燕京博士阅读 4,214评论 0 16
  • 明天是什么? 有人说,没有明天。 明天是一个画不...
    拾夜者阅读 738评论 0 1
  • 这个秋天真的很冷。我们在一起已经一年零三个月。时间真的过的很快,我们竟平安的走过了一年多。 我...
    颦繁Lady阅读 326评论 0 0
  • 如何获得幸福,古典老师《拆掉思维里的墙》告诉我们答案。 01 安全感 安全感来自内心,如果依赖外物,会成为安全感的...
    君琰77阅读 321评论 1 5