Jmeter外部函数引用
1、Beanshell引用Jmeter变量
添加用户自定义变量,输入变量名称和变量值,添加Debug sampler,用于输出初始变量值。
添加Beanshell sampler,修改username变量值,添加Debug sampler用户输出修改后username变量值。Beanshell 内容如下:
vars.put("username","AutoLoadTest"); var a = vars.get("username"); log.info(a); return a; |
运行察看结果树,username变量值被修改。
2、Java请求调用外部jar包
步骤:
1)创建java工程;
2)将{Jmeter_home}/lib/ext下的jar包导入Build path;
3)创建一个Test类并继承AbstractJavaSamplerClient接口;
4)Test调用实际被测方法Add;
5)Export为JAR file,并将jar包放入{Jmeter_home}/lib/ext
6)打开Jmeter创建线程组,新建java请求,引用jar包中的类。
被测方法Add代码如下:
package com.test.jmeter;
public class Add { public int sum(int a,int b) { return a+b; } } |
Test类方法如下:
package com.test.jmeter;
import org.apache.jmeter.config.Arguments; import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient; import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext; import org.apache.jmeter.samplers.SampleResult; import com.test.jmeter.Add;
public class Test extends AbstractJavaSamplerClient { private String a; private String b; private String resultData; // 自定义jmeter输入参数,设置默认值。 public Arguments getDefaultParameters() { Arguments params = new Arguments(); params.addArgument("num1", ""); params.addArgument("num2", ""); return params; } //每个线程测试前执行一次,做一些初始化工作; public void setupTest(JavaSamplerContext arg0) { } //开始测试,从arg0参数可以获得参数值; public SampleResult runTest(JavaSamplerContext arg0) { a = arg0.getParameter("num1"); b = arg0.getParameter("num2"); SampleResult sr = new SampleResult(); sr.setSampleLabel( "Java请求名称"); try { // jmeter 开始统计响应时间标记 sr.sampleStart(); Add test = new Add(); // 调用sum方法,保存结果。 resultData = String.valueOf(test.sum(Integer.parseInt(a), Integer .parseInt(b))); //将结果显示在jmeter察看结果树响应数据中。 if (resultData != null && resultData.length() > 0) { sr.setResponseData("结果是:"+resultData, null); sr.setDataType(SampleResult.TEXT); } sr.setSuccessful(true); } catch (Throwable e) { sr.setSuccessful(false); e.printStackTrace(); } finally { // jmeter 结束统计响应时间标记 sr.sampleEnd(); } return sr; } //测试结束时调用; public void teardownTest(JavaSamplerContext arg0) {
} } |
Jmeter中调用Test类如下:
运行结果:
3、Beanshell调用java文件
在D盘目录下创建.java文件,代码内容如下:
package com.test.jmeter;
public class Add { public int sum(int a,int b) { return a+b; } } |
Jmeter中新建Beanshell sampler,内容如下:
source("D:\\Add.java");用于引用外部java文件。
运行结果:
4、Beanshell调用jar包
步骤:
1)创建java工程;
2)创建一个idNum类用于随机生成身份证号;
3)Export为JAR file,并将jar包放入{Jmeter_home}/lib/ext
4)打开Jmeter创建线程组,新建Beanshell sampler请求,import引用jar包中的类。
运行结果: