目录
1、JMeter中的BeanShell
-
定时器,BeanShell Timer
-
前置处理器,BeanShell PreProcessor
-
取样器,BeanShell Sampler
-
后置处理器,BeanShell PostProcessor
-
断言,BeanShell 断言
-
监听器,BeanShell Listener
-
BeanShell:
- 一种脚本语言
-
完全符合java语法的java脚本,且有自己的一些语法和方法
-
属于松散类型的脚本语言,类似js
-
但是逐渐被JSR所取代
2、BeanShell 界面
-
注意,beanshell里面可以写java代码
-
说明:
- 1)Reset Bsh Interpreter before each call:是否重新构造Interpreter,其实就是是否重新初始化
-
2)Parameters:Beanshell脚本中的变量初始化时指定值,接收变量与字符串数组,数组元素之间要用空格隔开
-
3)Script File Name:指定运行的BeanShell脚本
-
4)Script:直接编写BeanShell脚本,通过BeanShell可以访问:
- ctx、vars、props、prev、sampler、log等对象
3、BeanShell前置处理器
-
前置处理器会先于取样器执行
4、BeanShell 后置处理器
-
注意,如果在控制器里面没有取样器
-
但是你又添加了beanshell的后置处理器,或者前置处理器这些,是不会运行的,因为没有取样器
5、BeanShell可引用的对象
-
ctx【JMeterContext】
- JMeter脚本上下文对象
-
JMeter上下文信息,可以从中得到线程数、线程号等信息
-
ctx.getVariables()
-
ctx.getThread()
-
ctx.getThreadGroup()
-
ctx.getTreadNum()
-
vars【JMeterVariables】
- 变量对象
-
获取JMeter中定义的变量,或者设置变量
-
vars.get(String key)
-
vars.put(String key, String value)
-
vars.put(String key, Object obj)
-
vars.getObject(String key), # Gets the value of a variable (not converted to String).
-
-
props【JMeterProperties】
- 属性对象,可以在jmeter.properties中定义
-
获取JMeter中的属性,或者设置属性
- props.get("name");
-
props.put("name", "cang laoshi");
-
log
- log日志对象
-
可以通过log写对象
-
log.info()
-
log.error()
-
log.warn()
-
log.debug()
-
Label
- 当前取样器的Label,标题
-
FileName
- 脚本文件名称
-
args
- 参数(Parameters 按空格分割成字符串数组)
-
Parameters
- Parameters字段的参数
-
参数,以字符串提示
-
bsh.args
- 参数数组
-
IsSuccess
- 取样器成功与否
-
SampleResult
- 获取响应数据,响应码等信息
-
prev
- 获取前一个响应数据,最近的取样器的取样结果
-
OUT
- System.out对象,可以进行控制台输出
-
Sampler
- 当前取样器
-
Response
- 获取响应数据
-
Faillure
- 用来设置断言成功与否,Boolean类型
-
FailureMessage
-
-
用来设置失败信息
-
-
ResponseData
-
-
获取响应数据
-
-
ResponseCode
- 获取响应代码
-
ResponseMessage
- 获取响应信息
-
ResponseHeaders
- 响应头信息
-
SampleLabel
- 取样器的Label信息
-
SamplerData
- 发送给服务器的数据
-
备注:
- 可以通过官方文档查询相关的API文档
6、BeanShell示例
-
示例:
- 前置BeanShell设置一个字符串数组
-
BeanShell取样器对其进行排序
-
后置BeanShell将其转为字符串
-
BeanShell断言进行判断
-
备注:
- BeanShell里面,log的方法只能打印字符串,如果是java对象,会报错!!!