简单来说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取样器中选择要测试的类
