简单来说java request就是在jmeter界面通过传入一些设置的参数给特定的java代码去处理,最后在jmeter中输出结果。
比如以下,设置两个参数,选择test.MyJavaRequest类,这个是一个自行创建的java代码,将这个java代码导出为jar包后存放在/lib/ext下,这时候再java request下拉菜单中会自动加载这个类。
这个java代码怎么写?在jmeter中使用的需要按固定格式
一、在eclipse创建一个java工程,比如JavaRequest
二、在src下创建package包,如test
三、在test包下创建类,比如MyJavaRequest.java
四、右击工程,将以下jar包加入到build path
五、类MyJavaRequest实现JavaSamplerClient接口或继承AbstractJavaSamplerClient,并重写
需要改写以下四个方法
public Arguments getDefaultParameters() 设置默认的参数,就是jmeter界面上看到的默认参数在此设置
public void setupTest(JavaSamplerContext arg0)在测试方法前做一些初始化工作,如读取参数值,每个线程只执行一次
public SampleResult runTest(JavaSamplerContext context) 开始测试,在这里可以使用setupTest中初始化的参数值
public void teardownTest(JavaSamplerContext arg0) 测试结束时调用,每个线程只执行一次
具体代码如下:实现读取参数值,设置取样器名称"test speed of print something",设置响应结果
package test;
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 java.util.Random;
public class MyJavaRequest extends AbstractJavaSamplerClient{
private String a;
private int b;
//jmeter gui参数
@Override
public Arguments getDefaultParameters() {
Arguments params = new Arguments();
params.addArgument("String1", "hello");
params.addArgument("number2", "1234");
return params;
}
@Override
public void setupTest(JavaSamplerContext arg0) {
a = arg0.getParameter("String1");
b = arg0.getIntParameter("number2");
}
public SampleResult runTest(JavaSamplerContext context) {
SampleResult results = new SampleResult();
results.setSampleLabel("test speed of print something");
Random r = new Random();
try {
results.sampleStart();
System.out.println(a + " " + b);
Thread.sleep(r.nextInt(100));
results.setSuccessful(true);
}catch(Exception e) {
results.setSuccessful(false);
e.printStackTrace();
}finally {
results.sampleEnd();
}
results.setResponseData("a is " + a + " and b is " + b,null);
return results;
}
@Override
public void teardownTest(JavaSamplerContext arg0) {
System.out.println("test is over");
}
}
六、将此工程导出为jar包,并将此jar包放入jmeter的lib/ext下
eclipse中file>export
七、重新打开jmeter在java request取样器中选择要测试的类