beanshell简介
beanshell是一种完全符合java语法规则的脚本语言,并且他拥有一些自己的语法和方法
官网:http://www.Beanshell.org
beanshell语法
1.数据类型
-
整性:int ,例如:int a=10
-
字符:String 例如:String s=‘rer’
-
数组:String [] str1 = new String[]
-
列表:List list=new ArryList();
//整性的定义 int a = 10; log.info("-----"+a); //字符串的定义 String ss = "fdfdf"; log.info("++++++++"+ss) ```
2.分支语句
//if语句
List list = new ArrayList();
list.add("test3");
if(list.size()>0){
log.error(list.get(0));
}else if(list.size()<=0){
log.error("list is empty..");
}
//for循环
// for循环
for(int i=0;i<list.size();i++){
log.error(list.get(i));
3.内置对象和方法
1)vars
// 在同一个线程组内获取变量和设置全局变量
vars.get("变量名")
vars.put("变量名",值)
// 获取用户定义的变量中的值
String username = vars.get("username");
log.error(username);
//将username放到全局变量中
vars.put("username","admin123");
2)props
作用:可以设置JMeterProperties,且设置的属性值,是跨线程组的
//props的使用,获取属性的值
String starttime = props.get("START.YMD");
log.error(starttime);
//zai jmeret中的props中添加变量
props.put("aaa","testprops");
3)getResponseDataAsString()获取响应信息
import com.alibaba.fastjson.JSONObject;//需要将获取到的字符串转为json对象,此处需要导入jar包
String data=prev.getResponseDataAsString(); //获取响应结果
log.error(data);
//将类似于json的字符串转为json对象
JSONObject json = JSONObject.parseObject(data);
String res = json.getString("token");
log.error(res);
4)getResponseCode()获取响应码
5)getSampleData()获取当前请求数据
6)getRequestHeaders()获取请求头数据
jmter中的beanshell
1.属于线程组的
- 采样器:BeanShell Sample
2.属于取样器的:
-
定时器 BeanShell Timer
-
前置处理器 BeanShell PreProcessor,提前处理请求数据,加密等
-
后置处理器 BeanShell PostProcessor,在请求后对返回的结果进行处理
-
断言 BeanShell 断言,验证返回结果的正确性
//beanshell断言 import com.alibaba.fastjson.JSONObject; String data=prev.getResponseDataAsString(); log.error(data); //将类似于json的字符串转为json对象 JSONObject json = JSONObject.parseObject(data); String res = json.getString("token"); log.error(res); if (!res.equals("bearer")){ Failure=true; FailureMessage="登录失败"; }
-
监听器 BeanShell Listener