Jmeter之控制线程执行到某个结果时退出执行(第二种解决方案)
业务背景
- 触发测试用例,大约需要执行10分钟
- 查询执行的commitId的测试用例的执行结果
- 如果通过了则直接停止测试用例,或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)-前置处理器-定时器-取样器-后置处理器-断言-监听器
Jmeter之控制线程执行到某个结果时退出执行(第二种解决方案)相关推荐
- Jmeter之控制线程执行到某个结果时退出执行
目的 今天做压力测试时,涉及到一个场景,需要先执行A场景,在执行到status=2时,在执行B场景,然后停止运行. 遇到的困难 status开始为1,需要一段时间后变为2,且不确定需要等待多久才会变为 ...
- java web 启动时执行_java Web 启动时自动执行代码的几种方式
Web容器启动后执行代码的几种方式,其执行顺序为:4===>5===>1===>2===>3,即指定init-method的Bean开始执行,接着实现spring的Bean后置 ...
- js 跳转到指定位置 高德地图_JS控制div跳转到指定的位置的几种解决方案总结
总结一下自己在写这个需求遇到的问题,相信大家应该是经常遇到的.即要求滚轮滚动到指定的位置.先看下基本的解决方案. 1.给链接a加个#的方式来实现跳转.(锚点方法)这里直接贴下代码: div1 div2 ...
- iOS多线程全套:线程生命周期,多线程的四种解决方案,线程安全问题,GCD的使用,NSOperation的使用(上)
2017-07-08 remember17 Cocoa开发者社区 目的 本文主要是分享iOS多线程的相关内容,为了更系统的讲解,将分为以下7个方面来展开描述. 多线程的基本概念 线程的状态与生命周期 ...
- join控制线程的执行循序 T1 - T2 - T3
/*** 控制线程的执行循序 T1 -> T2 -> T3* join实现*/ public static void join(){Thread t1 = new Thread(() -& ...
- C#中控制线程池的执行顺序
在使用线程池时,当用线程池执行多个任务时,由于执行的任务时间过长,会导制两个任务互相执行,如果两个任务具有一定的操作顺序,可能会导制不同的操作结果,这时,就要将线程池按顺序操作.下面先给一段代码,该代 ...
- jmeter 实际运行线程数达不到设定值_Jmeter技术知识-常用组件实战演示(2020年最新)...
在上一篇:Jmeter系列之简介与环境安装,主要介绍Jmeter简介.环境安装及接口实战.一般在实际接口自动化过程中,会同时包含多个组件共同完成工作. 工欲善其事,必先利其器,以下介绍Jmeter一些 ...
- android子线程没有运行完,android假如主线程依赖子线程A的执行结果,如何让A执行完成,之后主线程再往下执行呢?...
/* String ObjectResult="原先的结果"; //使用VOLLY框架(与问题无关) JsonObjectRequest jsonObjectRequest = n ...
- java condition详解_Java使用Condition控制线程通信的方法实例详解
Java使用Condition控制线程通信的方法实例详解 发布于 2020-4-20| 复制链接 摘记: 本文实例讲述了Java使用Condition控制线程通信的方法.分享给大家供大家参考,具体如下 ...
最新文章
- statsmodels 笔记:自回归模型 AutoReg
- TensorFlow MNIST CNN LeNet5模型
- 当代年轻人加班报告!
- mfc 使打开的窗口至于最顶层_MFC界面开发控件BCG帮助文档——功能区设计器(2)
- php date()时间不对,PHP DATE( )函数与系统时间差8小时解决办法
- 编译原理教程_9 运行时存储组织
- margin,padding之间的比较
- 从零开始的FPGA学习5-同步复位D触发器、异步复位D触发器
- python爬虫获取城市天气信息
- python清空画布_Python3 tkinter基础 Canvas delete 删除画布中的所有图形
- Domain Adaptation and Graph Neural Networks
- 如何使用K8S实现自动化部署
- Volatility内存取证使用
- 大趋势:科技赋能产业
- 无人驾驶技术的突破与挑战
- 按照奇原则配置汉明码_舞台灯光设计的原则和工艺要求
- 多媒体技术基础知识——简要知识点
- 谷歌地图高清卫星地图、电子地图和地形图有什么区别?
- 百度开放平台(文本转化音频)
- 《深度学习导论及案例分析》一导读
热门文章
- 能被选为2021最佳开源项目的WEB框架究竟有多棒?
- 轻量级 Kubernetes 发行版 k3s 1.0.0 发布!
- 「图解」ThreadLocal 在并发问题中的应用
- 还在使用 SimpleDateFormat?你的项目崩没?
- Spring Cloud构建微服务架构:消息驱动的微服务(消费分区)【Dalston版】
- led动态显示 c语言,单片机LED点阵的纵向移动(动态显示)
- mobile former测试
- python 路径双斜杠问题
- torch yolov3训练性能优化
- 阿里开源自主研发的 DFSMN 语音识别模型,引谷歌论文引用