JMeter-Sampler_BeanShell Sampler

BeanShell Sampler

BeanShell Sampler可以自由实现想要的功能。

JMeter-Sampler_BeanShell Sampler_第1张图片

BeanShell是一种脚本语言,jmeter还提供了其他脚本语言的Sampler比如JSR223 Sampler,都可以达到相同的效果,在这里我只介绍BeanShell(因为我比较熟悉…),如果有其他同学熟悉其他语言,不一定非要使用BeanShell的。后面涉及的BeanShell PreProcessor,BeanShell PostProcessor,BeanShell断言都是基于同样的原因只介绍一种。

BeanShell官网:
http://www.beanshell.org/

属性 描述 备注
参数 引用参数, Parameters: 单个的String参数, bsh.args: String数组,以空格分隔
脚本文件 可以将脚本保存到一个文件中,然后直接在这声明使用 与下面的Script是冲突的,只能选择一种方式来存放脚本
Script BeanShell脚本 不能为空;前提是没有Script file

常用内置变量

1. vars: 操作Jmeter变量,详见

http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterVariables.html
e.g.
1) vars.get(“name”):从jmeter中获得变量值
2) vars.put(“key”,”value”):保存数据到jmeter变量中,如果变量不存在会自动创建

2. props: 操作Jmeter属性

1) props.get(“START.HMS”);  注:START.HMS为属性名
2) props.put(“PROP1”,”1234”); 保存数据到Jmeter属性中,如果属性不存在会自动创建

3. log: 记录日志

比如log.info(“日志信息”);
具体查看: https://www.slf4j.org/api/org/slf4j/Logger.html

4. Parameters

当参数值只有一个变量时,可以直接用Parameters获取变量值

5. bsh.args

当参数有多个变量时使用,e.g: bsh.args[0]

6. SampleResult

当前Sample结果方法,具体:
http://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html

7. ResponseCode

响应码,默认是 200,

8. ResponseMessage

响应信息,默认是“OK”

9. IsSuccess

判断请求是否成功,默认是“true”

10. ctx - JMeterContext

请求上下文,具体查看:
http://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContext.html

11. 引用外部java文件

source(“D:\testdata\Add.java”);
引用后可以调用Add.java中的方法,属性等
JMeter-Sampler_BeanShell Sampler_第2张图片

12. 引用外部class文件

addClassPath(“D:\”); //设置class path
import test.Test.class; // import 类
之后就像java一样调用了
(个人觉得这个不怎么实用,引用class不如引用源码,更方便之后的修改,如果class是其他人提供的,当我没说。。。)

13. 引用外部 jar包

  • 在测试计划中添加需要的jar包
    JMeter-Sampler_BeanShell Sampler_第3张图片
    (这里用到的fastjson 是用来处理Json的)

  • 代码中import(与java一样使用)
    JMeter-Sampler_BeanShell Sampler_第4张图片

你可能感兴趣的:(jmeter)