Jmeter中控制某一段脚本失败后重复执行,并在每个HTTP Request名字中加上循环次数
==================================================
1.While Controller之前有一个BeanShell Sampler,用于Init Note Parameters
vars.put("INCREMENT", "0");
vars.putObject("ANYSAMPLEFAIL", false);
vars.putObject("ISCONTINUE", true);
vars.putObject("MAXLOOP", 5);
==================================================
2.While Controller内则是这样的
==================================================
2.1首先是需要在失败之后重复执行的一些步骤,每个HTTP request名称后面都可以加上一个“_${INCREMENT}”,这样就可以标识出循环到了第几次;
==================================================
2.2接着是一个BeanShell Assertion,用于判断取样器的结果(Judge Sample Result)
import org.apache.jmeter.util.JMeterUtils;
import org.apache.jmeter.samplers.SampleResult;
import org.apache.jmeter.assertions.AssertionResult;
SampleResult prev_result=ctx.getPreviousResult();
var increment = vars.get("INCREMENT");
Integer maxloop = (Integer)vars.getObject("MAXLOOP");
if (prev_result != null && !prev_result.isSuccessful())
{
vars.putObject("ANYSAMPLEFAIL", true);
if (Integer.parseInt(increment)< (maxloop.intValue() - 1))
{
prev_result.setSuccessful(true);
}
}
==================================================
2.3最后是一个BeanShell Sampler用于控制循环次数(Control Loop Count)
import org.apache.jmeter.util.JMeterUtils;
var increment = vars.get("INCREMENT");
Integer tempIncrement=Integer.parseInt(increment);
tempIncrement++;
Boolean requestResult = (Boolean)vars.getObject("ANYSAMPLEFAIL");
Integer maxloop = (Integer)vars.getObject("MAXLOOP");
boolean iscontinue = (tempIncrement < maxloop) && requestResult.booleanValue() ;
vars.putObject("ISCONTINUE", iscontinue);
vars.putObject("ANYSAMPLEFAIL", false);
vars.put("INCREMENT",tempIncrement.toString());
==================================================
备注:
只有以vars.put("INCREMENT", "0")的方式定义变量,才可以在HTTP request中通过${INCREMENT}直接进行引用,以vars.putObject("INCREMENT", "0")的方式定义变量就不可以。
而且,通过vars.get("INCREMENT")获取变量的值时,必须这样:var increment = vars.get("INCREMENT"),即左边的变量必须定义为var,否则就总是报错。
Jmeter中控制某一段脚本失败后重复执行,并在每个HTTP Request名字中加上循环次数的更多相关文章
- testNG实现test失败后重复执行,
test失败自动执行大大提高测试结果的准确性, 1.修改testNG源码实现test失败自动执行, 首先获取testng的源码, 获取源代码,构建过程: $ git clone git://githu ...
- Oracle 11g RAC 第二节点root.sh执行失败后再次执行root.sh
Oracle 11g RAC 第二节点root.sh执行失败后再次执行root.sh前,要先清除之前的crs配置信息 # /u01/app/11.2.0/grid/crs/install/rootcr ...
- 关于Action中ValidateXXX方法校验一次失败后\导致以后一直返回input视图的情况
问题: 使用struts2的validateXXX()进行验证,出错后自动返回之前的画面,但是Form中的数据全部丢失了,如何才能保存出错前的Form是要解决的问题. 调查: 调查后发 ...
- jmeter 通过csv data set config 设置参数化后,执行结果显示为<EOF>
通过csv data set config 设置参数化后,执行结果显示为<EOF>: 反复确认相应的参数的设置均没有问题,其中csv文件编码方式采用uft-8.在csv data set ...
- robotframework中的try exception。断言失败后,后面语句能继续执行
1.在robot中,断言有时会失败,但不想影响后面语句的执行,这时候要用到 Run Keyword And Continue On Failure
- yum update过程中失败后再次执行出现“xxxx is a duplicate with xxxx”问题
问题现象: 解决办法: 利用yum-uitls中的工具package-cleanup指令,使用方法见下图,具体可通过man package-cleanup查询 列出重复的rpm包 pac ...
- 解决Jquery中click里面包含click事件,出现重复执行的问题
出现问题的代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.o ...
- jmeter利用自身代理录制电脑脚本(一)
在利用代理录制脚本时一定要安装java jdk,不然不能录制的. 没有安装过java jdk安装jmeter后打开时会提示安装jdk,但是mac系统中直接打开提示安装jdk页面后下载的java并不是j ...
- maven下载jar包失败后无法再次重新下载
maven下载jar包失败后无法再次重新下载:删除maven 资源库中的 *.lastUpdated文件
随机推荐
- 并发基础(八) java线程的中断机制
文章转载自 详细分析Java中断机制 1. 引言 当我们点击某个杀毒软件的取消按钮来停止查杀病毒时,当我们在控制台敲入quit命令以结束某个后台服务时--都需要通过一个线程去取消另一个线程正在执行的任 ...
- Bogart gData.vb
Imports System Imports System.Data Imports System.Data.OleDb Imports Microsoft.VisualBasic Imports S ...
- classification-softmax
softmax分类 import tensorflow as tf import numpy as npfrom input_data import read_data_sets mnist = re ...
- text-overflow:ellipsis ,溢出文本显示省略号
text-overflow:ellipsis 对溢出文本显示省略号有两个好处, 一是不用通过程序限定字数 二是有利于SEO. 需要使用对对溢出文本显示省略号的通常是文章标题列表,这样处理对搜索引擎更友 ...
- linux7安装teamViewer
参考网站:http://blog.sina.com.cn/s/blog_15308c8290102x72u.html 下载网站:https://www.teamviewer.com/zhCN/down ...
- windows10系统右键添加cmd命令
https://blog.csdn.net/Mr_BEelzebub/article/details/78776104 首先,在桌面新建一个文本文档. Windows Registry Editor ...
- Git revert merge
从history1分出来的A, B两个branch A上有一些更改,例如 changeA2 changeA1 history1 B上有一些更改,例如 changeB2 changeB1 history ...
- salt常用模块及API
saltstack提供了非常丰富的功能模块,涉及操作系统的基础功能,常用工具支持等,更多模块信息见官网模块介绍:https://docs.saltstack.com/en/latest/ref/mod ...
- fabric应用
安装: easy_install fabric 或 pip install fabric 验证: #python >>> import fabric 有时候我们可以直接使用命令行的 ...
- 吴裕雄 数据挖掘与分析案例实战(4)——python数据处理工具:Pandas
# 导入模块import pandas as pdimport numpy as np # 构造序列gdp1 = pd.Series([2.8,3.01,8.99,8.59,5.18])print(g ...