Jmeter书中不会教你的(99)——java request实例

2 篇文章 2 订阅

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

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

agrapea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值