Jmeter之控制线程执行到某个结果时退出执行(第二种解决方案)

业务背景

  1. 触发测试用例,大约需要执行10分钟
  2. 查询执行的commitId的测试用例的执行结果
  3. 如果通过了则直接停止测试用例,或beanshell 异常也要停止,否则获取不到结果,无限执行也是没有意义的,否则继续循环执行(设置最大的重试次数)

延迟执行request

  • 如果是1和2中间需要停止10分钟,可以在 1和2中间新增一个request-3,并且配置timer的时长
  • 定时器是在每个sampler(采样器)之前执行的,而不是之后。不管这个定时器的位置放在sampler之后,还是之下,它都在sampler之前得到执行。
  • 定时器是有作用域的;当执行一个sampler之前时,所有当前作用域内的定时器都会被执行;
  • 如果希望定时器仅应用于其中一个sampler,则把该定时器作为子节点加入;
  • 如果希望在sampler执行完之后再等待,则可使用取样器里面的测试活动(Test Action);
  • 更优雅的实现步骤间的停顿的方案是 Flow Control Action

提取request的返回值

样例:

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONPath;
import java.util.List;
import org.apache.jmeter.threads.JMeterContextService;
try{
    //获取获取请求的返回值
    String response_data = prev.getResponseDataAsString();
    //日志打印获取请求的返回值
    log.info("---response_data---" + response_data);
    //将返回值转换成JSON对象
    JSONObject data_obj= JSON.parseObject(response_data);  
    log.info("------data_obj--------" + data_obj.toString());
    //获取JSON中data列表
    JSONObject data_object = data_obj.getJSONObject("data");
    log.info("---data_arr---" + data_object);
    //获取Province数组的长度
    boolean flag=data_object.getBoolean("flag");
    if(flag){
        vars.put("test_flag","true");
        Failure=false;//集测通过了,直接终止脚本的执行
        JMeterContextService.getContext().getThread().stop();
    }
    log.info(vars.get("test_flag"));
}catch(Exception e){
    log.info("beanshell failed",e);
    JMeterContextService.getContext().getThread().stop();
}

拓展

测试计划中的元件执行顺序依次为:

配置元件(CSV Data Set Config)-前置处理器-定时器-取样器-后置处理器-断言-监听器

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕城南风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值