问题
在做接口自动化性能测试时,偶尔会有不稳定的因素导致请求断言失败。JMeter线程组对错误处理有两种常用处理方式:继续或停止测试
因某些原因极个别错误不影响压测结果是可以忽略的,若选择继续测试,当真正发生服务崩溃时也会一直压下去这不是我们想要的,那么在压测过程中怎样才能在达到指定的累计错误数量后停止测试呢?
解决方案
大致思路:使用beanshell脚本在每次请求结束后使用变量count记录错误数,达到预定的错误数量后通过ctx调用stopTest()结束测试。
-
setUp Thread Group中添加一个BeanShell Sampler
-
给测试计划添加BeanShell Listener
-
执行测试
以上使用httpbin提供的的接口进行测试,请求地址不存在的/error,所以在累计错误数count=5时测试停止。
-
BeanShell Code
// BeanShell Sampler
props.put("__count",