jmeter之BeanShell 的使用

jmeter之BeanShell 的使用

BeanShell是由java编写的,是一个轻量级的脚本语言,也相当于一个小巧免费的JAVA源码解释器,支持对象式的脚本语言特性,亦可嵌入到JAVA源代码中,能动态执行JAVA源代码并为其扩展了脚本语言的一些特性。

JMeter也是由java编写的,而java运行时需要先编译,然后才可以运行,而BeanShell是一款解释器,直接可能运行源代码。

Beanshell内置变量,Beanshell脚本中不用定义,可以直接使用的变量。

Beanshell常用的内置变量

log

打印日志,写入信息到jmeter.log文件,帮助调试脚本;

常用方法:

log.debu(“调试信息”)
    log.info(“响应状态码” + ResponseCode)
    log.warn(“警告信息”)
    log.error(“出错信息”)

jmeter之BeanShell 的使用_第1张图片

vars

操作jmeter变量,生成、更新、获取当前脚本的jmeter变量;(只能在同一线程组内传递);

常用方法:

1) vars.get(String key):从jmeter中获取变量值;如,user是变量,vars.get("user");
  

jmeter之BeanShell 的使用_第2张图片

常用方法:

2) vars.put(String key,String value):数据存到jmeter变量中;
  

![image-20240123151729006](C:\Users\PJXZ022\AppData\Roaming\Typora\typora-user-images\image-20240123151729006.png

jmeter之BeanShell 的使用_第3张图片

props

操作jmeter属性,该变量引用了JMeter的配置信息,可以获取Jmeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,而不能是一个对象。对应于java.util.Properties。 (可在整个测试计划中跨线程组传递)

常用方法:

    a) props.get("START.HMS"); 可以获取JMeter中已经生成的属性----注:START.HMS为属性名,在文件jmeter.properties中定义 。
    b) props.put("PROP1","1234"); 可以创建和更新JMeter属性。

ctx

获取当前线程上下文,可获取当前线程的请求信息和相应信息(可以获取http请求和响应的所有数据);

常用方法:

ctx.getVariables(“变量名”):获取变量值(同vars.get())。
    ctx.setVariables(“变量名”, “变量值”):设置变量(同vars.put())。
    ctx.getProperties(“属性名”):获取属性值(同props.get())。
    ctx.setProperties(“属性名”,“属性值”):设置属性(同props.put())。
    ctx.getPreviousResult():获取当前请求结果同(prev)。
    ctx.getCurrentSampler():获取当前采样器。
    ctx.getPreviousSampler():获取前一采样器。
    ctx.getThreadNum():获取线程数。
    ctx.getThreadGroup():获取线程组。
    ctx. getThread():获取当前线程。
    ctx.getEngine():获取引擎。
    ctx.isSamplingStarted():判断采样器是否启动。
    ctx.isRecording():判断是否开启录制。
    ctx.getSamplerContext():获取采样器山下文数据。

prev

获取当前请求的结果,或者说是获取前面的sample返回的信息;

常用方法:

a) getResponseDataAsString():获取响应信息
    b) getResponseCode() :获取响应code

BeanShell预处理程序(前置处理器)

jmeter之BeanShell 的使用_第4张图片

可通过编程方式在发起请求以前做预处理,比如编码或者加密。

编码&加密

jmeter之BeanShell 的使用_第5张图片

BeanShell后置处理程序(后置处理器)

jmeter之BeanShell 的使用_第6张图片

可通过编程方式获取对应请求的响应结果。

响应结果

jmeter之BeanShell 的使用_第7张图片

你可能感兴趣的:(测试管理,测试技术分析,jmeter,jmeter,python,压力测试,自动化,测试工具,功能测试)