一、 Beanshell概念
Beanshell:
- BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法;
- BeanShell是一种松散类型的脚本语言(这点和JS类似);
- BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文件大小为175k。
- BeanShell执行标准Java语句和表达式,另外包括一些脚本命令和语法。
二、Jmeter常用Bean Shell
-
定时器: BeanShell Timer
-
前置处理器:BeanShell PreProcessor
-
采样器: BeanShell Sampler
-
后置处理器:BeanShell PostProcessor
-
断言: BeanShell断言
-
监听器: BeanShell Listener
三、Jmeter常用内置变量
1.内置变量
BeanShell脚本中不用定义,可以直接使用的变量,常用的内置变量和方法如下:
log:写日志到控制台和jmeter.log,如log.info("XXX");
vars:操作变量
vars.get("skuId"); 从jmeter中获取${skuId}变量的值
vars.put("name","test"); 将"test"保存到${name}变量中
prev:获取前面sampler返回的信息
getResponseDataAsString(); 获取响应信息
getResponseCode(); 获取响应
更多内置变量参考:https://jmeter.apache.org
举例:
2.添加 BeanShell取样器
log.info(".....<<<<<");
log.error("xxxx");
String myip=vars.get("ip");//获取参数值(在用户定义的变量中设置了“ip”值)
log.info(myip);//日志打印
vars.put("ip","192.168.0.0");//赋值
String myip=vars.get("ip");
log.info(myip);//日志打印
3.后置处理器的应用
log.info("前一个返回结果为:"+prev.getResponseDataAsString());
log.info("前一个请求的状态码为:"+prev.getResponseCode())
四、BeanShell的用法实例
1.BeanShell面板上写脚本
需求:
1、调用接口获取sku信