Jmeter组件篇-取样器之JSR223取样器详解
JSR223取样器允许执行JSR223脚本代码用于创建/更新所需的某些变量。
相比于BeanShell 取样器,JSR223取样器具有可大大提高性能的功能(编译),同时支持更多的脚本语言,其中包括BeanShell脚本,所以在编写脚本时不建议使用BeanShell 取样器,也不再对BeanShell 取样器进行讲述,如果需要,使用JSR223取样器编写脚本是更好的选择。
属性描述
名称:显示的此取样器的描述性名称,可自定义
语言:要使用的JSR223脚本语言的类型
参数:要传递到脚本文件或脚本的参数列表
脚本文件:用于执行的脚本文件,若没有脚本文件,将执行脚本
脚本:传递给JSR223执行的脚本
如果提供了脚本文件,则执行脚本文件,否则执行脚本。
为方便脚本编写,Jmeter设置了一些变量,这些JSR223变量-可以直接在脚本中使用。
log - the Logger 打印日志,可自定义级别
log.info(“String”)
vars - JMeterVariables - e.g.
vars.get(“VAR1”); 获取变量值并转为String,返回String
vars.put(“VAR2”,“value”); 创建/更新一个String变量,无返回值
vars.remove(“VAR3”); 移除一个变量,返回Object
vars.putObject(“OBJ1”,new Object()); 创建/更新一个Object变量 ,无返回值
props - JMeterProperties (class java.util.Properties) - e.g.
props.get(“START.HMS”); 获取变量值并转为String,与vars.get(“VAR1”)不同的是,props获取或更新的变量,可以跨线程使用
props.put(“PROP1”,“1234”); 创建/更新一个String变量
OUT - System.out - e.g.
OUT.println(“message”) 打印信息
根据脚本的返回值设置SampleResult ResponseData。如果脚本返回null,则可以使用SampleResult.setResponseData(data)方法直接设置响应 ,其中data是String或字节数组。数据类型为“ 文本 ”,但是可以使用方法SampleResult.setDataType(SampleResult.BINARY)设置为二进制 。
SampleResult变量使脚本可以完全访问SampleResult中的所有字段和方法。
例如,脚本可以访问方法 setStopThread(boolean)和setStopTest(boolean)。
与BeanShell Sampler不同,JSR223 Sampler不会通过脚本变量设置ResponseCode,ResponseMessage和示例状态。当前,更改它们的方法是通过SampleResult方法:
SampleResult.setSuccessful(true / false)
SampleResult.setResponseCode(“代码”)
SampleResult.setResponseMessage(“ message”)