Jmeter- Beanshell语法和常用内置对象

1:Beanshell的基本语法

1.1:Beanshell的For循环与集合

String a = "aaa";
int b = 111;

List list  = new ArrayList();
//list集合只能保存String类型
list.add(a);
list.add(b.toString());
//普通for循环的写法
for(int i = 0; i<list.size();i++){
log.info(">>>>>>>>>>>");
log.info(list.get(i));
}
//增强for循环的写法
for(object : list){
log.info("==========");
log.info(object);
}

1.2:Beanshell的数组的写法

String[] str1 = new String[]{"aa","bb","cc"};//new一个String[]一维数组

String[][] str2 = new String[][]{{"AA","BB"},{"CC","DD"},{"EE","FF"}};
//遍历str1这个一维数组
for(int i = 0; i< str1.length ; i++){
log.info(str1[i]);
}
//遍历第二个二维数组
for (String[] strings : str2) {

for(int i = 0; i< strings.length ; i++){

log.info(strings[i]);
}
}

1.3:Beanshell定义一个函数 并调用

//定义一个方法
public void addlist(List list){

list.add("aaa");
list.add("bbb");
list.add("ccc");
}

List list = new ArrayList();
//调用方法
addlist(list);
//遍历list集合
for(int i = 0; i < list.size(); i++){
log.info(list.get(i));
}

2:Beanshell常用的内置对象

2.1:bsh.args对象获取数组参数


2.2:vars内置对象的使用

A:示例定义一个用户自定义变量


B:vars.get(String key)获取String变量 

   vars.put(String key,Value)放置一个Map到vars 


2.3:vars内置对象put和get Object对象

如果需要获取或者放置非String类型数据 需要用putObject()和getObject()

//Beanshell vars.putObject() vars.getObject()的使用
List list = new ArrayList();

list.add("aaa");
list.add("bbb");
//putObject()可以在vars对象中放置Object类型对象
vars.putObject("list",list);
//===========================
//获取Object list对象
Object Value = vars.getObject("list");
//log.info只能输出String类型变量
log.info(Value.toString());


 3:Beanshell的常用内置对象-cxt

3.1:cxt内置对象getPreviousResult()方法 调用请求/响应数据

cxt内置对象来自于JMeterContext 查看Jmeter API发现有下列get方法可以获取请求/响应数据

//SampleResult需要import对象
import org.apache.jmeter.samplers.SampleResult;

SampleResult result = ctx.getPreviousResult();
//getRequestHeaders()方法返回String字符串
String RequestHeaders = result.getRequestHeaders();
//getResponseHeaders() 返回响应headers
String ResponseHeaders = result.getResponseHeaders() 
//getResponseCode() 返回响应状态码字符串
String responseCode = result.getResponseCode();
//getURL() 返回请求URL对象 
URL url = result.getURL();
log.info(RequestHeaders);
log.info(RequestHeaders);

4:prev内置对象

prev是Beanshell后置处理器的内置对象 相当于ctx.getPreviousResult();

BeanShell是一种类似于Java的脚本语言,它可以在JMeter中使用。以下是一些BeanShell语法基本要点: 1. 变量声明赋值: - 使用关键字 `var` 来声明变量,例如:`var x;` - 可以在声明时同时赋初值,例如:`var x = 10;` - 变量类型是根据赋值自动推断的。 2. 脚本注释: - 使用 `//` 进行单行注释,例如:`// 这是注释` - 使用 `/* ... */` 进行多行注释,例如: ``` /* * 这是多行注释 * 第二行 */ ``` 3. 控制流语句: - `if` 条件语句: ``` if (condition) { // 执行代码块 } else if (condition) { // 执行代码块 } else { // 执行代码块 } ``` - `for` 循环语句: ``` for (initialization; condition; update) { // 执行循环体代码块 } ``` - `while` 循环语句: ``` while (condition) { // 执行循环体代码块 } ``` 4. 方法函数: - 定义方法: ``` return_type methodName(parameter1, parameter2, ...) { // 方法体 return value; } ``` - 调用方法:`methodName(argument1, argument2, ...)` 5. 输出信息: - 使用 `print` 或 `println` 来输出信息,例如:`print("Hello, world!");` 6. JMeter相关对象方法: - JMeter提供了一些内置的对象方法,例如:`vars`, `props`, `ctx`, `prev`, `log` 等。可以在BeanShell脚本中使用这些对象方法来获取操作测试相关的数据。 这些是BeanShell语法的一些基本要点。你可以根据具体的需求场景,在BeanShell脚本中使用这些语法来编写逻辑。同时,还可以参考BeanShell的官方文档示例来了解更多详细的语法规则用法。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值