JMeter脚本开发之BeanShell Sampler
2019-07-02 本文已影响0人
猿二胖
本文整理参考:https://www.cnblogs.com/puresoul/p/4949889.html
一、简介
BeanShell Sampler用来模拟向被测试系统发起请求。BeanShell 支持Java对象的调用,可以用来调用Java接口程序。
二、配置
1、引用包和依赖包路径配置
引用包:测试脚本调用的被测试类所在的包
依赖包:被测试类依赖的包
- 方法一:在测试计划中导入,如下图所示:
- 方法二:将引用包和依赖包放置在Jmeter默认的包加载路径下,即:%JMETER_HOME%/lib目录
三、BeanShell 使用
1、操作变量
通过使用Bean shell 内置对象vars可以对变量进行存取操作
vars.get("name") //从jmeter中获得变量值,这里的"name"是指变量的名称
vars.put("key","value") //将数据存入jmeter变量中,"key"为变量名,"value"为对应的数值
2、操作属性
通过使用Beanshell内置对象props可以对属性进行存取操作
props.get("propertiename")
props.put("propertiename","value")
3、自定义函数
在BeanShell中,可以使用java语言自定义函数来处理特定的逻辑,结合BeanShell内置对象进行变量的存取,方便我们进行测试提高脚本灵活性。示例:
- 在Test Plan 中添加一个变量:name = 张三
- 新建BeanShell Sampler,并在Script写入如下指令:
public static string test ()
{
vars.put("name","李四");
return "success";
}
4、引用外部java文件或者class文件
前提:java/class文件内容如下
package test;
public class Myclass
{
public int add (int a, int b)
{
return a + b;
}
}
- 引入外部java文件
source("D://filename.java");
- 引入class文件
//导入class文件
addClassPath(D://");
//导入类名
import test.Myclass;
5、引用外部jar包
引用方法如上”配置“中所示。
6、Bean Shell入参
- Bean shell可以接收传入参数,如下图所示:
- 参数可以通过bsh.args[]按顺序提取,序号开始为0
-
bean shell 提供了一个内置变量Parameters,来保存参数集合
1.png
四、Bean Shell常用的内置变量
Jmeter在它的BeanShell中内置了变量,用户可以通过这些变量与JMeter进行交互,主要的变量及其使用方法如下:
- log:写入信息到jmeter.log文件
log.info("this is a log info")
- ctx:该有变量引用了当前线程的上下文
- vars:操作jmeter变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是map),它是测试用例与beansell交互的桥梁
- props:操作jmeter属性,该变量引用了jmeter的配置信息,可以获取jmeter的属性
- prev:获取前面的sample返回的信息,常用方法:
getResponseDataAsString();//获取响应信息
getResponseCode(); 获取响应code