jmeter脚本开发:Beanshell(八)
一. Beanshell介绍
一个小型的、免费、可嵌入java源解释器
执行java语法和表达式
Beanshell运行效率不高,官方推荐:JSR233 + Groovy,可以大大提高性能,减少资源消耗
二. Beanshell能干什么
引入自己的jar,实现增强功能
引入jmeter本身jar,扩展功能
写java代码,实现自己的逻辑功能
跨线程组传值
三. Beanshell组成
| 元件 | 名称 |
| Beanshell Sampler | Beanshell取样器 |
| Beanshell Assertion | Beanshell断言 |
| Beanshell Preprocessor | Beanshell前置处理器 |
| Beanshell Postprocessor | Beanshell后置处理器 |
| Beanshell Timer | Beanshell计时器 |
| Beanshell Listener | Beanshell监听器 |
四. Beanshell内置变量
| 变量 | 用途 |
| log | 写入信息到控制台帮助调试,log.info() |
| vars | 操作变量,生成/更新/获取当前脚本的变量:vars.get(),vars.put() |
| prev | 获取当前请求的结果:prev.get() |
| props | 获取jmeter属性,生成/更新/获取当前脚本的jmeter属性:props.get(),props.put() |
| ctx | 获取当前线程的上下文 |
| SampleResult | 获取SampleResult对象 |
| Response | 获取Response对象 |
| Failure | 查看是否成功,false是成功,true失败 |
| FailureMessage | 失败信息,set设置失败信息 |
| ResponseData | 获取response body |
| ResponseCode | 获取返回的code值 |
| ResponseMessage | 获取返回的msg内容 |
| ReponseHeaders | 获取服务器返回的头部信息 |
| RequestHeaders | 获取用户端请求的头部信息 |
| SamplerData | 获取请求的url和body |
五. Beanshell使用方式
1. 单语句,比如赋值语句和log语句
2. 定义方法, 调用方法
3. 引入本地java代码文件
#加载源码文件 source("/Users/hailongchen/Documents/workspace/hailongchen/src/main/java/utils/PhoneNoGenerateUtil.java"); #调用源码程序(略) #使用 beanshell 存/取 变量 vars.put(); vars.get();
4. 引入jar包

浙公网安备 33010602011771号