11.Jmeter--BeanShell vars.get() 及vars.put()方法

vars: 引用Jmeter线程的局部变量,将 局部变量 改为  全局变量 亦可达到引用全局变量的效果

方法

String State1= vars.get("State");  // 获取变量的值, State 为变量名称

vars.put("Comment",Comment);//将放置一个Map到vars,后期可通过key引用value

需求:传入参数为任务状态,当任务状态为已延期时,需要将延期原因的值改为字符串; 任务状态不为已延期时,任务状态的值要为空

方法:使用BeanShell预处理器:

示例代码如下:


import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;


String State1=bsh.args[0]; //传入任务条状态

//String State1= vars.get("State");  //任务条状态也可通过vars.get()获取

String Comment=null;

log.info(State1);

//延期状态为已延期时,将Comment的值设置为"我延期了"


if(State1.equals("OVERDUED")){

Comment="\"我延期了\"";    //双引号里要填写\"我延期了\",而不是我延期了,不然引用的数据没有引号

}


vars.put("Comment",Comment);//将放置一个Map到vars,后期可通过key引用value

log.info("任务状态:"+State1);  //用于调试值是否传入成功

log.info("延期原因:"+Comment);//用于调试Comment值是否正确


遇到的问题:

1.equals与==的区别,equals比较的是值的存储位置是否相等,==比较的是变量名是否相等

         字符串/对象都要用equals

          基本数据类型用==

2.put(key,value),value里要自己加引号(使用反斜杠注释特殊字符),不然引用的数据没有引号

你可能感兴趣的:(11.Jmeter--BeanShell vars.get() 及vars.put()方法)