JMeter BeanShell示例

JMeter中的BeanShell主要有:

定时器BeanShell Timer

前置处理器BeanShell PreProcessor

采样器BeanShell Sampler

后置处理器BeanShell PostProcessor

断言BeanShell

断言监听器BeanShell Listener

 

一、变量

JMeter中保存变量和获取变量值

vars.put("key",value)

vars.get("key"))

二、调试查看变量

1.通过log.info("value is "+vars.get("key"))

需要配合打开Log Viewer查看

2.通过Debug Sampler查看

每次运行的时候,在察看结果树中会多出一个Debug Sampler,里面有详细的变量信息

如下等号左是变量名,等号右是变量值

三、示例:引用外部java文件和java class文件

准备一个.java文件,因为是示例,用记事本写一个简单的Calculator保存到一个目录下

将.java文件编译成.class文件:在目录下运行javac Calculator.java

public class Calculator{
    //加法
	public int add(int a,int b){
		return a+b;
	}
    //减法
	public int sub(int a,int b){
		return a-b;
	}
}

在JMeter中引用,加载java文件,用source()函数。加载class文件目录,用addClassPath()函数。 

 

四、示例:引用jar包

方式1直接将jar包复制到JMeter的lib目录下

方式2在测试计划中添加

1.在测试计划中引用jar包

导入一个同事写的jar包,获取两个经纬度的距离,接收的参数是两个double型数组,为了方便使用,写一个函数将两个String类型的数转换成double数组

2.这里先添加一个Beashell PreProcessor前置处理器

import com.bigdata.mapmeshapi.pojo.PolygonInfo;
import com.bigdata.mapmeshapi.service.PolygonService;
import com.bigdata.mapmeshapi.util.ComputeMapPoint;

/**
* 获取经纬度之间的距离
* @param lnglatA  101.727957 36.647654 经纬度空格分开
* @param lnglatB  101.685684 36.665703 经纬度空格分开
* @return 千米为单位
*/
public static double getDistanceBylnglat(String lnglatA,String lnglatB){

	String[] str = lnglatA.split(" ");
	double[] a = new double[2];
	a[0] = Double.parseDouble(str[0]);
	a[1] = Double.parseDouble(str[1]);
	
	String[] str1 = lnglatB.split(" ");
	double[] b = new double[2];
	b[0] = Double.parseDouble(str1[0]);
	b[1] = Double.parseDouble(str1[1]);
	
	ComputeMapPoint computeMapPoint = new ComputeMapPoint();
	double result = computeMapPoint.getDistanceBylonlat(a,b);
	//System.out.println(result);
	return result;
}


String b = "116.532139 39.906607";//第一个经纬度
String b1 = "116.291 39.826";//第二个经纬度
double result1 = getDistanceBylnglat(b,b1);

vars.put("distance",result1.toString());
log.info("value:"+vars.get("distance"));

3、在请求里使用变量

在察看结果树里可以看到HTTP请求为:GET http://127.0.0.1:8080/test?distance=22.472

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值